Hello community, here is the log from the commit of package plasma-framework for openSUSE:Factory checked in at 2015-09-02 07:49:16 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/plasma-framework (Old) and /work/SRC/openSUSE:Factory/.plasma-framework.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "plasma-framework" Changes: -------- --- /work/SRC/openSUSE:Factory/plasma-framework/plasma-framework.changes 2015-08-10 09:14:03.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.plasma-framework.new/plasma-framework.changes 2015-09-02 07:49:17.000000000 +0200 @@ -1,0 +2,29 @@ +Tue Aug 4 19:20:52 UTC 2015 - [email protected] + +- Update to 5.13.0 + * The Qt version requirement has been bumped from 5.2 to 5.3 + * Debug output has been ported to categorized output, for less + noise by default + * Docbook documentation has been reviewed and updated + * Using a pinch gesture one can now switch between the different + zoom levels of the calenda + * comment about code duplication in icondialog + * Slider groove color was hardcoded, modified to use color scheme + * Use QBENCHMARK instead of a hard requirement on the machine's + performance + * Calendar navigation has been significantly improved, providing + a year and decade overview + * PlasmaCore.Dialog now has an 'opacity' property + * Make some space for the radio button + * Don't show the circular background if there's a menu + * Add X-Plasma-NotificationAreaCategory definition + * Set notifications and osd to show on all desktops + * Print useful warning when we can not get valid KPluginInfo + * Fix potential endless recursion in + PlatformStatus::findLookAndFeelPackage() + * Rename software-updates.svgz to software.svgz + * For more details please see: + https://www.kde.org/announcements/kde-frameworks-5.13.0.php +- Drop 0001-Also-check-for-SharedEngineView.patch, merged upstream + +------------------------------------------------------------------- Old: ---- 0001-Also-check-for-SharedEngineView.patch plasma-framework-5.12.0.tar.xz New: ---- plasma-framework-5.13.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ plasma-framework.spec ++++++ --- /var/tmp/diff_new_pack.zk4vj1/_old 2015-09-02 07:49:19.000000000 +0200 +++ /var/tmp/diff_new_pack.zk4vj1/_new 2015-09-02 07:49:19.000000000 +0200 @@ -17,9 +17,9 @@ %bcond_without lang -%define _tar_path 5.12 +%define _tar_path 5.13 Name: plasma-framework -Version: 5.12.0 +Version: 5.13.0 Release: 0 %define kf5_version %{version} Summary: Plasma library and runtime components based upon KF5 and Qt5 @@ -28,8 +28,6 @@ Url: https://projects.kde.org/plasma-framework Source: http://download.kde.org/stable/frameworks/%{_tar_path}/%{name}-%{version}.tar.xz Source1: baselibs.conf -# PATCH-FIX-UPSTREAM 0001-Also-check-for-SharedEngineView.patch -Patch0: 0001-Also-check-for-SharedEngineView.patch BuildRequires: extra-cmake-modules >= %{_tar_path} BuildRequires: fdupes BuildRequires: kactivities5-devel >= %{_tar_path} @@ -54,15 +52,15 @@ BuildRequires: kxmlgui-devel >= %{_tar_path} BuildRequires: libxcb-devel BuildRequires: xz -BuildRequires: pkgconfig(Qt5Gui) >= 5.2.0 -BuildRequires: pkgconfig(Qt5Qml) >= 5.2.0 -BuildRequires: pkgconfig(Qt5Quick) >= 5.2.0 -BuildRequires: pkgconfig(Qt5Script) >= 5.2.0 -BuildRequires: pkgconfig(Qt5Sql) >= 5.2.0 -BuildRequires: pkgconfig(Qt5Svg) >= 5.2.0 -BuildRequires: pkgconfig(Qt5Test) >= 5.2.0 -BuildRequires: pkgconfig(Qt5Widgets) >= 5.2.0 -BuildRequires: pkgconfig(Qt5X11Extras) >= 5.2.0 +BuildRequires: cmake(Qt5Gui) >= 5.3.0 +BuildRequires: cmake(Qt5Qml) >= 5.3.0 +BuildRequires: cmake(Qt5Quick) >= 5.3.0 +BuildRequires: cmake(Qt5Script) >= 5.3.0 +BuildRequires: cmake(Qt5Sql) >= 5.3.0 +BuildRequires: cmake(Qt5Svg) >= 5.3.0 +BuildRequires: cmake(Qt5Test) >= 5.3.0 +BuildRequires: cmake(Qt5Widgets) >= 5.3.0 +BuildRequires: cmake(Qt5X11Extras) >= 5.3.0 BuildRequires: pkgconfig(egl) %ifarch %arm aarch64 BuildRequires: pkgconfig(glesv2) @@ -112,9 +110,9 @@ Requires: kf5-filesystem Requires: kpackage-devel >= %{_tar_path} Requires: kservice-devel >= %{_tar_path} -Requires: pkgconfig(Qt5Gui) >= 5.2.0 -Requires: pkgconfig(Qt5Qml) >= 5.2.0 -Requires: pkgconfig(Qt5Quick) >= 5.2.0 +Requires: cmake(Qt5Gui) >= 5.3.0 +Requires: cmake(Qt5Qml) >= 5.3.0 +Requires: cmake(Qt5Quick) >= 5.3.0 %description devel Plasma library and runtime components based upon KF5 and Qt5 @@ -122,7 +120,6 @@ %lang_package %prep %setup -q -%patch0 -p1 %build %cmake_kf5 -d build ++++++ plasma-framework-5.12.0.tar.xz -> plasma-framework-5.13.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.12.0/CMakeLists.txt new/plasma-framework-5.13.0/CMakeLists.txt --- old/plasma-framework-5.12.0/CMakeLists.txt 2015-07-05 11:17:34.000000000 +0200 +++ new/plasma-framework-5.13.0/CMakeLists.txt 2015-08-04 13:46:18.000000000 +0200 @@ -4,7 +4,7 @@ # ECM setup include(FeatureSummary) -find_package(ECM 5.12.0 NO_MODULE) +find_package(ECM 5.13.0 NO_MODULE) set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://projects.kde.org/projects/kdesupport/extra-cmake-modules") feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES) @@ -20,8 +20,8 @@ include(ECMSetupVersion) include(KDEFrameworkCompilerSettings) -set(KF5_VERSION "5.12.0") # handled by release scripts -set(KF5_DEP_VERSION "5.12.0") # handled by release scripts +set(KF5_VERSION "5.13.0") # handled by release scripts +set(KF5_DEP_VERSION "5.13.0") # handled by release scripts ecm_setup_version(${KF5_VERSION} VARIABLE_PREFIX PLASMA @@ -43,7 +43,7 @@ ################# now find all used packages ################# -set (REQUIRED_QT_VERSION "5.2.0") +set (REQUIRED_QT_VERSION "5.3.0") find_package(Qt5 ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE COMPONENTS Quick Gui Sql Qml Svg Script) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.12.0/README.md new/plasma-framework-5.13.0/README.md --- old/plasma-framework-5.12.0/README.md 2015-07-05 11:17:34.000000000 +0200 +++ new/plasma-framework-5.13.0/README.md 2015-08-04 13:46:18.000000000 +0200 @@ -1,5 +1,6 @@ # Plasma Framework -The plasma framework provides the foundations that can be used to build a primary user interface, from graphical to logical components. + +Foundational libraries, components, and tools of the Plasma workspaces ## Introduction The plasma framework provides the following: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.12.0/autotests/packagestructuretest.cpp new/plasma-framework-5.13.0/autotests/packagestructuretest.cpp --- old/plasma-framework-5.12.0/autotests/packagestructuretest.cpp 2015-07-05 11:17:34.000000000 +0200 +++ new/plasma-framework-5.13.0/autotests/packagestructuretest.cpp 2015-08-04 13:46:18.000000000 +0200 @@ -76,15 +76,11 @@ // seed the cache first ps.filePath("mainscript"); - QTime t; - t.start(); - - for (int i = 0; i < 100000; ++i) { + QBENCHMARK { Plasma::Package foo(ps); const QString bar = foo.filePath("mainscript"); + Q_UNUSED(bar); } - - QVERIFY(t.elapsed() < 400); } void PackageStructureTest::mutateAfterCopy() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.12.0/docs/plasmapkg/man-plasmapkg2.1.docbook new/plasma-framework-5.13.0/docs/plasmapkg/man-plasmapkg2.1.docbook --- old/plasma-framework-5.12.0/docs/plasmapkg/man-plasmapkg2.1.docbook 2015-07-05 11:17:34.000000000 +0200 +++ new/plasma-framework-5.13.0/docs/plasmapkg/man-plasmapkg2.1.docbook 2015-08-04 13:46:18.000000000 +0200 @@ -7,8 +7,8 @@ <refentryinfo> <title>Plasma Package Manager</title> <date>2014-04-25</date> -<releaseinfo>5.0</releaseinfo> -<productname>&kde; plasmapkg2</productname> +<releaseinfo>Frameworks 5.0</releaseinfo> +<productname>KDE Frameworks</productname> </refentryinfo> <refmeta> @@ -35,8 +35,6 @@ <group choice="opt"><option>--list-types</option></group> <group choice="opt"><option>-r, --remove</option> <replaceable> name</replaceable></group> <group choice="opt"><option>-p, --packageroot</option> <replaceable> path</replaceable></group> -<arg choice="opt">KDE Generic Options</arg> -<arg choice="opt">Qt Generic Options</arg> </cmdsynopsis> </refsynopsisdiv> @@ -90,7 +88,7 @@ <varlistentry> <term><option>-p, --packageroot</option> <replaceable> path</replaceable></term> <listitem><para>Absolute path to the package root. If not supplied, then the standard data -directories for this &kde; session will be searched instead.</para></listitem> +directories for this &plasma; session will be searched instead.</para></listitem> </varlistentry> </variablelist> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.12.0/src/declarativeimports/calendar/calendar.cpp new/plasma-framework-5.13.0/src/declarativeimports/calendar/calendar.cpp --- old/plasma-framework-5.12.0/src/declarativeimports/calendar/calendar.cpp 2015-07-05 11:17:34.000000000 +0200 +++ new/plasma-framework-5.13.0/src/declarativeimports/calendar/calendar.cpp 2015-08-04 13:46:18.000000000 +0200 @@ -48,10 +48,22 @@ if (m_displayedDate == dateTime) { return; } + + const int oldMonth = m_displayedDate.month(); + const int oldYear = m_displayedDate.year(); + m_displayedDate = dateTime; + // m_dayHelper->setDate(m_displayedDate.year(), m_displayedDate.month()); + updateData(); emit displayedDateChanged(); + if (oldMonth != m_displayedDate.month()) { + emit monthNameChanged(); + } + if (oldYear != m_displayedDate.year()) { + emit yearChanged(); + } } QDate Calendar::today() const @@ -222,9 +234,7 @@ //QDate previousMonth(m_displayedDate.year(), m_displayedDate.month() - 1, 1); for (int i = 0; i < daysBeforeCurrentMonth; i++) { DayData day; - day.isCurrentMonth = false; - day.isNextMonth = false; - day.isPreviousMonth = true; + day.isCurrent = false; day.dayNumber = previousMonth.daysInMonth() - (daysBeforeCurrentMonth - (i + 1)); day.monthNumber = previousMonth.month(); day.yearNumber = previousMonth.year(); @@ -235,9 +245,7 @@ for (int i = 0; i < m_displayedDate.daysInMonth(); i++) { DayData day; - day.isCurrentMonth = true; - day.isNextMonth = false; - day.isPreviousMonth = false; + day.isCurrent = true; day.dayNumber = i + 1; // +1 to go form 0 based index to 1 based calendar dates // day.containsEventItems = m_dayHelper->containsEventItems(i + 1); day.monthNumber = m_displayedDate.month(); @@ -249,9 +257,7 @@ if (daysAfterCurrentMonth > 0) { for (int i = 0; i < daysAfterCurrentMonth; i++) { DayData day; - day.isCurrentMonth = false; - day.isNextMonth = true; - day.isPreviousMonth = false; + day.isCurrent = false; day.dayNumber = i + 1; // +1 to go form 0 based index to 1 based calendar dates // day.containsEventItems = false; day.monthNumber = m_displayedDate.addMonths(1).month(); @@ -292,36 +298,43 @@ // qDebug() << "m_dayList size: " << m_dayList.count(); // qDebug() << "---------------------------------------------------------------"; } + +void Calendar::nextDecade() +{ + setDisplayedDate(m_displayedDate.addYears(10)); +} + +void Calendar::previousDecade() +{ + setDisplayedDate(m_displayedDate.addYears(-10)); +} + void Calendar::nextYear() { - m_displayedDate = m_displayedDate.addYears(1); - updateData(); - emit displayedDateChanged(); - emit yearChanged(); + setDisplayedDate(m_displayedDate.addYears(1)); } void Calendar::previousYear() { - m_displayedDate = m_displayedDate.addYears(-1); - updateData(); - emit displayedDateChanged(); - emit yearChanged(); + setDisplayedDate(m_displayedDate.addYears(-1)); } void Calendar::nextMonth() { - m_displayedDate = m_displayedDate.addMonths(1); - updateData(); - emit displayedDateChanged(); - emit monthNameChanged(); - emit yearChanged(); + setDisplayedDate(m_displayedDate.addMonths(1)); } void Calendar::previousMonth() { - m_displayedDate = m_displayedDate.addMonths(-1); - updateData(); - emit displayedDateChanged(); - emit monthNameChanged(); - emit yearChanged(); + setDisplayedDate(m_displayedDate.addMonths(-1)); +} + +void Calendar::goToMonth(int month) +{ + setDisplayedDate(QDate(m_displayedDate.year(), month, m_displayedDate.day())); +} + +void Calendar::goToYear(int year) +{ + setDisplayedDate(QDate(year, m_displayedDate.month(), m_displayedDate.day())); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.12.0/src/declarativeimports/calendar/calendar.h new/plasma-framework-5.13.0/src/declarativeimports/calendar/calendar.h --- old/plasma-framework-5.12.0/src/declarativeimports/calendar/calendar.h 2015-07-05 11:17:34.000000000 +0200 +++ new/plasma-framework-5.13.0/src/declarativeimports/calendar/calendar.h 2015-08-04 13:46:18.000000000 +0200 @@ -118,7 +118,7 @@ */ Q_PROPERTY(QAbstractListModel *daysModel READ daysModel CONSTANT) - Q_ENUMS(Type) + Q_ENUMS(Type DateMatchingPrecision) public: enum Type { @@ -129,6 +129,12 @@ }; Q_DECLARE_FLAGS(Types, Type) + enum DateMatchingPrecision { + MatchYear, + MatchYearAndMonth, + MatchYearMonthAndDay + }; + explicit Calendar(QObject *parent = 0); // Displayed date @@ -171,9 +177,13 @@ Q_INVOKABLE void previousMonth(); Q_INVOKABLE void nextYear(); Q_INVOKABLE void previousYear(); + Q_INVOKABLE void nextDecade(); + Q_INVOKABLE void previousDecade(); Q_INVOKABLE QString dayName(int weekday) const; Q_INVOKABLE int currentWeek() const; Q_INVOKABLE void resetToToday(); + Q_INVOKABLE void goToMonth(int month); + Q_INVOKABLE void goToYear(int year); Q_SIGNALS: void displayedDateChanged(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.12.0/src/declarativeimports/calendar/daydata.h new/plasma-framework-5.13.0/src/declarativeimports/calendar/daydata.h --- old/plasma-framework-5.12.0/src/declarativeimports/calendar/daydata.h 2015-07-05 11:17:34.000000000 +0200 +++ new/plasma-framework-5.13.0/src/declarativeimports/calendar/daydata.h 2015-08-04 13:46:18.000000000 +0200 @@ -4,9 +4,7 @@ class DayData { public: - bool isPreviousMonth; - bool isCurrentMonth; - bool isNextMonth; + bool isCurrent; // bool containsHolidayItems; // bool containsEventItems; // bool containsTodoItems; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.12.0/src/declarativeimports/calendar/daysmodel.cpp new/plasma-framework-5.13.0/src/declarativeimports/calendar/daysmodel.cpp --- old/plasma-framework-5.12.0/src/declarativeimports/calendar/daysmodel.cpp 2015-07-05 11:17:34.000000000 +0200 +++ new/plasma-framework-5.13.0/src/declarativeimports/calendar/daysmodel.cpp 2015-08-04 13:46:18.000000000 +0200 @@ -26,9 +26,7 @@ { QHash<int, QByteArray> roleNames; - roleNames.insert(isPreviousMonth, "isPreviousMonth"); - roleNames.insert(isCurrentMonth, "isCurrentMonth"); - roleNames.insert(isNextMonth, "isNextMonth"); + roleNames.insert(isCurrent, "isCurrent"); //roleNames.insert(containsHolidayItems, "containsHolidayItems"); //roleNames.insert(containsEventItems, "containsEventItems"); // roleNames.insert(containsTodoItems, "containsTodoItems"); @@ -63,13 +61,11 @@ { if (index.isValid()) { - DayData currentData = m_data->at(index.row()); + const DayData ¤tData = m_data->at(index.row()); switch (role) { - case isPreviousMonth: - return currentData.isPreviousMonth; - case isNextMonth: - return currentData.isNextMonth; + case isCurrent: + return currentData.isCurrent; // case containsHolidayItems: // return currentData.containsHolidayItems; /* case containsEventItems: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.12.0/src/declarativeimports/calendar/daysmodel.h new/plasma-framework-5.13.0/src/declarativeimports/calendar/daysmodel.h --- old/plasma-framework-5.12.0/src/declarativeimports/calendar/daysmodel.h 2015-07-05 11:17:34.000000000 +0200 +++ new/plasma-framework-5.13.0/src/declarativeimports/calendar/daysmodel.h 2015-08-04 13:46:18.000000000 +0200 @@ -28,9 +28,7 @@ Q_OBJECT public: enum Roles { - isPreviousMonth = Qt::UserRole + 1, - isCurrentMonth, - isNextMonth, + isCurrent = Qt::UserRole + 1, //containsHolidayItems, //containsEventItems, //containsTodoItems, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.12.0/src/declarativeimports/calendar/qml/DayDelegate.qml new/plasma-framework-5.13.0/src/declarativeimports/calendar/qml/DayDelegate.qml --- old/plasma-framework-5.12.0/src/declarativeimports/calendar/qml/DayDelegate.qml 2015-07-05 11:17:34.000000000 +0200 +++ new/plasma-framework-5.13.0/src/declarativeimports/calendar/qml/DayDelegate.qml 2015-08-04 13:46:18.000000000 +0200 @@ -1,6 +1,7 @@ /* * Copyright 2013 Heena Mahour <[email protected]> * Copyright 2013 Sebastian Kügler <[email protected]> + * Copyright 2015 Kai Uwe Broulik <[email protected]> * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as @@ -20,26 +21,57 @@ import org.kde.plasma.core 2.0 as PlasmaCore import org.kde.plasma.components 2.0 as Components +import org.kde.plasma.calendar 2.0 -Item { +MouseArea { id: dayStyle - width: root.cellWidth - height: root.cellHeight - property bool today: root.today.toDateString() == new Date(yearNumber, monthNumber - 1, dayNumber).toDateString() // for some reason the comparison doesn't work without toDateString() + hoverEnabled: true + + signal activated + + readonly property date thisDate: new Date(yearNumber, typeof monthNumber !== "undefined" ? monthNumber - 1 : 0, typeof dayNumber !== "undefined" ? dayNumber : 1) + readonly property bool today: { + var today = root.today; + var result = true; + if (dateMatchingPrecision >= Calendar.MatchYear) { + result = result && today.getFullYear() === thisDate.getFullYear() + } + if (dateMatchingPrecision >= Calendar.MatchYearAndMonth) { + result = result && today.getMonth() === thisDate.getMonth() + } + if (dateMatchingPrecision >= Calendar.MatchYearMonthAndDay) { + result = result && today.getDate() === thisDate.getDate() + } + return result + } + readonly property bool selected: { + var current = root.currentDate + var result = true + if (dateMatchingPrecision >= Calendar.MatchYear) { + result = result && current.getFullYear() === thisDate.getFullYear() + } + if (dateMatchingPrecision >= Calendar.MatchYearAndMonth) { + result = result && current.getMonth() === thisDate.getMonth() + } + if (dateMatchingPrecision >= Calendar.MatchYearMonthAndDay) { + result = result && current.getDate() === thisDate.getDate() + } + return result + } onHeightChanged: { // this is needed here as the text is first rendered, counting with the default root.cellHeight // then root.cellHeight actually changes to whatever it should be, but the Label does not pick // it up after that, so we need to change it explicitly after the cell size changes - label.font.pixelSize = Math.max(theme.smallestFont.pixelSize, Math.floor(root.cellHeight / 3)) + label.font.pixelSize = Math.max(theme.smallestFont.pixelSize, Math.floor(daysCalendar.cellHeight / 3)) } Rectangle { id: todayRect anchors.fill: parent opacity: { - if (calendarGrid.selectedItem == dayStyle && today) { + if (selected && today) { 0.6 } else if (today) { 0.4 @@ -55,9 +87,9 @@ id: highlightDate anchors.fill: todayRect opacity: { - if (calendarGrid.selectedItem == dayStyle) { + if (selected) { 0.6 - } else if (dateMouse.containsMouse) { + } else if (dayStyle.containsMouse) { 0.4 } else { 0 @@ -71,28 +103,22 @@ Components.Label { id: label - anchors.centerIn: parent - text: dayNumber - opacity: (isPreviousMonth || isNextMonth) ? 0.5: 1.0 - color: today ? theme.backgroundColor : theme.textColor - } - - MouseArea { - id: dateMouse anchors.fill: parent - //z: label.z + 1 - hoverEnabled: true - onClicked: { - var rowNumber = Math.floor(index / 7); - week = 1+calendarBackend.weeksModel[rowNumber]; - root.date = model; - calendarGrid.selectedItem = dayStyle; + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + text: model.label || dayNumber + opacity: isCurrent ? 1.0 : 0.5 + wrapMode: Text.NoWrap + elide: Text.ElideRight + color: today ? theme.backgroundColor : theme.textColor + Behavior on color { + ColorAnimation { duration: units.shortDuration * 2 } } } Component.onCompleted: { - if (today) { - root.date = model; + if (stack.depth === 1 && today) { + root.date = model } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.12.0/src/declarativeimports/calendar/qml/DaysCalendar.qml new/plasma-framework-5.13.0/src/declarativeimports/calendar/qml/DaysCalendar.qml --- old/plasma-framework-5.12.0/src/declarativeimports/calendar/qml/DaysCalendar.qml 2015-07-05 11:17:34.000000000 +0200 +++ new/plasma-framework-5.13.0/src/declarativeimports/calendar/qml/DaysCalendar.qml 2015-08-04 13:46:18.000000000 +0200 @@ -1,6 +1,7 @@ /* * Copyright 2013 Heena Mahour <[email protected]> * Copyright 2013 Sebastian Kügler <[email protected]> + * Copyright 2015 Kai Uwe Broulik <[email protected]> * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as @@ -15,23 +16,174 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import QtQuick 2.0 +import QtQuick 2.2 +import QtQuick.Controls 1.1 + import org.kde.plasma.calendar 2.0 import org.kde.plasma.core 2.0 as PlasmaCore import org.kde.plasma.components 2.0 as Components import org.kde.plasma.extras 2.0 as PlasmaExtras + Item { id: daysCalendar - readonly property int gridColumns: root.showWeekNumbers ? calendarGrid.columns + 1 : calendarGrid.columns + signal headerClicked + + signal previous + signal next + + signal activated(int index, var date, var item) + // so it forwards it to the delegate which then emits activated with all the neccessary data + signal activateHighlightedItem + + readonly property int gridColumns: showWeekNumbers ? calendarGrid.columns + 1 : calendarGrid.columns + + property int rows + property int columns + + property bool showWeekNumbers + + onShowWeekNumbersChanged: canvas.requestPaint() + + // how precise date matching should be, 3 = day+month+year, 2 = month+year, 1 = just year + property int dateMatchingPrecision + + property alias headerModel: days.model + property alias gridModel: repeater.model + + property alias title: heading.text + + // Take the calendar width, subtract the inner and outer spacings and divide by number of columns (==days in week) + readonly property int cellWidth: Math.floor((stack.width - (daysCalendar.columns + 1) * root.borderWidth) / (daysCalendar.columns + (showWeekNumbers ? 1 : 0))) + // Take the calendar height, subtract the inner spacings and divide by number of rows (root.weeks + one row for day names) + readonly property int cellHeight: Math.floor((stack.height - heading.height - (daysCalendar.rows + 1) * root.borderWidth) / (daysCalendar.rows + 1)) + + property real transformScale: 1 + property point transformOrigin: Qt.point(width / 2, height / 2) + + transform: Scale { + xScale: daysCalendar.transformScale + yScale: xScale + origin.x: transformOrigin.x + origin.y: transformOrigin.y + } + + Behavior on scale { + id: scaleBehavior + ScaleAnimator { + duration: units.longDuration + } + } + + Stack.onStatusChanged: { + if (Stack.status === Stack.Inactive) { + daysCalendar.transformScale = 1 + opacity = 1 + } + } + + PlasmaExtras.Heading { + id: heading + + anchors { + top: parent.top + left: parent.left + right: parent.right + } + + level: 1 + elide: Text.ElideRight + font.capitalization: Font.Capitalize + + MouseArea { + id: monthMouse + property int previousPixelDelta + + width: heading.paintedWidth + anchors { + left: parent.left + top: parent.top + bottom: parent.bottom + } + onClicked: { + if (!stack.busy) { + daysCalendar.headerClicked() + } + } + onExited: previousPixelDelta = 0 + onWheel: { + var delta = wheel.angleDelta.y || wheel.angleDelta.x + var pixelDelta = wheel.pixelDelta.y || wheel.pixelDelta.x + + // For high-precision touchpad scrolling, we get a wheel event for basically every slightest + // finger movement. To prevent the view from suddenly ending up in the next century, we + // cumulate all the pixel deltas until they're larger than the label and then only change + // the month. Standard mouse wheel scrolling is unaffected since it's fine. + if (pixelDelta) { + if (Math.abs(previousPixelDelta) < monthMouse.height) { + previousPixelDelta += pixelDelta + return + } + } + + if (delta >= 15) { + daysCalendar.previous() + } else if (delta <= -15) { + daysCalendar.next() + } + previousPixelDelta = 0 + } + } + } + + Components.Label { + anchors { + top: heading.bottom + left: parent.left + leftMargin: Math.floor(units.largeSpacing / 2) + } + text: "◀" + opacity: leftmouse.containsMouse ? 1 : 0.4 + Behavior on opacity { NumberAnimation {} } + + MouseArea { + id: leftmouse + anchors.fill: parent + anchors.margins: -units.largeSpacing / 3 + hoverEnabled: true + onClicked: daysCalendar.previous() + } + } + + Components.Label { + anchors { + top: heading.bottom + right: parent.right + rightMargin: Math.floor(units.largeSpacing / 2) + } + text: "▶" + opacity: rightmouse.containsMouse ? 1 : 0.4 + Behavior on opacity { NumberAnimation {} } + + MouseArea { + id: rightmouse + anchors.fill: parent + anchors.margins: -units.largeSpacing / 3 + hoverEnabled: true + onClicked: daysCalendar.next() + } + } // Paints the inner grid and the outer frame Canvas { id: canvas - width: (root.cellWidth + root.borderWidth) * gridColumns + root.borderWidth - height: (root.cellHeight + root.borderWidth) * calendarGrid.rows + root.borderWidth - anchors.bottom: parent.bottom + anchors { + horizontalCenter: parent.horizontalCenter + bottom: parent.bottom + } + width: (daysCalendar.cellWidth + root.borderWidth) * gridColumns + root.borderWidth + height: (daysCalendar.cellHeight + root.borderWidth) * calendarGrid.rows + root.borderWidth opacity: root.borderOpacity antialiasing: false @@ -58,26 +210,26 @@ // horizontal lines for (var i = 0; i < calendarGrid.rows + 1; i++) { - var lineY = lineBasePoint + (root.cellHeight + root.borderWidth) * (i); + var lineY = lineBasePoint + (daysCalendar.cellHeight + root.borderWidth) * (i); if (i == 0 || i == calendarGrid.rows) { ctx.moveTo(0, lineY); } else { - ctx.moveTo(root.showWeekNumbers ? root.cellWidth + root.borderWidth : root.borderWidth, lineY); + ctx.moveTo(showWeekNumbers ? daysCalendar.cellWidth + root.borderWidth : root.borderWidth, lineY); } ctx.lineTo(width, lineY); } // vertical lines for (var i = 0; i < gridColumns + 1; i++) { - var lineX = lineBasePoint + (root.cellWidth + root.borderWidth) * (i); + var lineX = lineBasePoint + (daysCalendar.cellWidth + root.borderWidth) * (i); // Draw the outer vertical lines in full height so that it closes // the outer rectangle if (i == 0 || i == gridColumns) { ctx.moveTo(lineX, 0); } else { - ctx.moveTo(lineX, root.borderWidth + root.cellHeight); + ctx.moveTo(lineX, root.borderWidth + daysCalendar.cellHeight); } ctx.lineTo(lineX, height); } @@ -89,13 +241,6 @@ } Connections { - target: root - onShowWeekNumbersChanged: { - canvas.requestPaint(); - } - } - - Connections { target: theme onTextColorChanged: { canvas.requestPaint(); @@ -104,7 +249,7 @@ Column { id: weeksColumn - visible: root.showWeekNumbers + visible: showWeekNumbers anchors { top: canvas.top left: parent.left @@ -112,40 +257,38 @@ // The borderWidth needs to be counted twice here because it goes // in fact through two lines - the topmost one (the outer edge) // and then the one below weekday strings - topMargin: root.cellHeight + root.borderWidth + root.borderWidth + topMargin: daysCalendar.cellHeight + root.borderWidth + root.borderWidth } spacing: root.borderWidth Repeater { - model: root.showWeekNumbers ? calendarBackend.weeksModel : [] + model: showWeekNumbers ? calendarBackend.weeksModel : [] Components.Label { - height: root.cellHeight - width: root.cellWidth + height: daysCalendar.cellHeight + width: daysCalendar.cellWidth horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter opacity: 0.4 text: modelData - font.pixelSize: Math.max(theme.smallestFont.pixelSize, root.cellHeight / 6) + font.pixelSize: Math.max(theme.smallestFont.pixelSize, daysCalendar.cellHeight / 6) } } } Grid { id: calendarGrid - // Pad the grid to not overlap with the top and left frame - // When week numbers are shown, the border needs to be counted twice - // because there's one more cell to count with and therefore also - // another border to add - x: root.showWeekNumbers ? 2 * root.borderWidth + root.cellWidth: root.borderWidth anchors { + right: canvas.right + rightMargin: root.borderWidth bottom: parent.bottom bottomMargin: root.borderWidth } - columns: calendarBackend.days - rows: calendarBackend.weeks + 1 + columns: daysCalendar.columns + rows: daysCalendar.rows + 1 + spacing: root.borderWidth property Item selectedItem property bool containsEventItems: false // FIXME @@ -159,17 +302,16 @@ } } - - Repeater { id: days - model: calendarBackend.days + Item { - width: root.cellWidth - height: root.cellHeight + width: daysCalendar.cellWidth + height: daysCalendar.cellHeight + Components.Label { text: Qt.locale().dayName(calendarBackend.firstDayOfWeek + index, Locale.ShortFormat) - font.pixelSize: Math.max(theme.smallestFont.pixelSize, root.cellHeight / 6) + font.pixelSize: Math.max(theme.smallestFont.pixelSize, daysCalendar.cellHeight / 6) horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignBottom anchors.horizontalCenter: parent.horizontalCenter @@ -181,9 +323,23 @@ Repeater { id: repeater - model: calendarBackend.daysModel - DayDelegate {} + DayDelegate { + id: delegate + width: daysCalendar.cellWidth + height: daysCalendar.cellHeight + + onClicked: daysCalendar.activated(index, model, delegate) + + Connections { + target: daysCalendar + onActivateHighlightedItem: { + if (delegate.containsMouse) { + delegate.clicked(null) + } + } + } + } } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.12.0/src/declarativeimports/calendar/qml/MonthView.qml new/plasma-framework-5.13.0/src/declarativeimports/calendar/qml/MonthView.qml --- old/plasma-framework-5.12.0/src/declarativeimports/calendar/qml/MonthView.qml 2015-07-05 11:17:34.000000000 +0200 +++ new/plasma-framework-5.13.0/src/declarativeimports/calendar/qml/MonthView.qml 2015-08-04 13:46:18.000000000 +0200 @@ -1,6 +1,7 @@ /* * Copyright 2013 Heena Mahour <[email protected]> * Copyright 2013 Sebastian Kügler <[email protected]> + * Copyright 2015 Kai Uwe Broulik <[email protected]> * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as @@ -16,41 +17,61 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ import QtQuick 2.0 +import QtQuick.Controls 1.1 import QtQuick.Layouts 1.1 + import org.kde.plasma.calendar 2.0 import org.kde.plasma.core 2.0 as PlasmaCore import org.kde.plasma.components 2.0 as PlasmaComponents import org.kde.plasma.extras 2.0 as PlasmaExtras -Item { +PinchArea { id: root anchors.fill: parent - property QtObject date - property date showDate: new Date() - property alias selectedMonth: calendarBackend.monthName property alias selectedYear: calendarBackend.year + property QtObject date + property date currentDate + + property date showDate: new Date() + property int borderWidth: 1 property real borderOpacity: 0.4 property int columns: calendarBackend.days property int rows: calendarBackend.weeks - // Take the calendar width, subtract the inner and outer spacings and divide by number of columns (==days in week) - property int cellWidth: Math.floor((calendar.width - (root.columns + 1) * borderWidth) / (root.columns + (root.showWeekNumbers ? 1 : 0))) //prefCellWidth() - - // Take the calendar height, subtract the inner spacings and divide by number of rows (root.weeks + one row for day names) - property int cellHeight: Math.floor((calendar.height - (root.rows + 1) * borderWidth) / (root.rows + 1)) //prefCellHeight() - property Item selectedItem property int week; property int firstDay: new Date(showDate.getFullYear(), showDate.getMonth(), 1).getDay() property date today property bool showWeekNumbers: false + onPinchStarted: stack.currentItem.transformOrigin = pinch.center + onPinchUpdated: { + var item = stack.currentItem + if (stack.depth < 3 && pinch.scale < 1) { + item.transformScale = pinch.scale + item.opacity = pinch.scale + } else if (stack.depth > 1 && pinch.scale > 1) { + item.transformScale = pinch.scale + item.opacity = (2 - pinch.scale / 2) + } + } + onPinchFinished: { + var item = stack.currentItem + if (item.transformScale < 0.7) { + item.headerClicked() + } else if (item.transformScale > 1.4) { + item.activateHighlightedItem() + } else { + item.transformScale = 1 + item.opacity = 1 + } + } function isToday(date) { if (date.toDateString() == new Date().toDateString()) { @@ -67,6 +88,31 @@ function resetToToday() { calendarBackend.resetToToday(); + stack.pop(null); + } + + function updateYearOverview() { + var date = calendarBackend.displayedDate; + var day = date.getDate(); + var year = date.getFullYear(); + + for (var i = 0, j = monthModel.count; i < j; ++i) { + monthModel.setProperty(i, "yearNumber", year); + } + } + + function updateDecadeOverview() { + var date = calendarBackend.displayedDate; + var day = date.getDate(); + var month = date.getMonth() + 1; + var year = date.getFullYear(); + var decade = year - year % 10; + + for (var i = 0, j = yearModel.count; i < j; ++i) { + var label = decade - 1 + i; + yearModel.setProperty(i, "yearNumber", label); + yearModel.setProperty(i, "label", label); + } } Calendar { @@ -76,176 +122,167 @@ weeks: 6 firstDayOfWeek: Qt.locale().firstDayOfWeek today: root.today + + onYearChanged: { + updateYearOverview() + updateDecadeOverview() + } } - ColumnLayout { - // This is to ensure that the inner grid.width is always aligned to be divisible by 7, - // fixes wrong side margins because of the rounding of cell size - // (consider the parent.width to be 404, the cell width would be 56, - // but 56*7 + 6 (the inner spacing) is 398, so we split the remaining 6 to avoid - // wrong alignment) - anchors { - fill: parent - leftMargin: Math.floor(((parent.width - (calendar.gridColumns + 1) * borderWidth) % calendar.gridColumns) / 2) - rightMargin: anchors.leftMargin - bottomMargin: anchors.leftMargin - } - - PlasmaExtras.Heading { - id: monthHeading - - level: 1 - text: calendarBackend.displayedDate.getFullYear() == new Date().getFullYear() ? root.selectedMonth : root.selectedMonth + ", " + root.selectedYear - elide: Text.ElideRight - font.capitalization: Font.Capitalize - - Loader { - id: menuLoader - property QtObject calendarBackend: calendarBackend - } - MouseArea { - id: monthMouse - property int previousPixelDelta - - width: monthHeading.paintedWidth - anchors { - left: parent.left - top: parent.top - bottom: parent.bottom - } - onClicked: { - if (menuLoader.source == "") { - menuLoader.source = "MonthMenu.qml" - } - menuLoader.item.year = selectedYear - menuLoader.item.open(0, height); - } - onExited: previousPixelDelta = 0 - onWheel: { - var delta = wheel.angleDelta.y || wheel.angleDelta.x - var pixelDelta = wheel.pixelDelta.y || wheel.pixelDelta.x - - // For high-precision touchpad scrolling, we get a wheel event for basically every slightest - // finger movement. To prevent the view from suddenly ending up in the next century, we - // cumulate all the pixel deltas until they're larger than the label and then only change - // the month. Standard mouse wheel scrolling is unaffected since it's fine. - if (pixelDelta) { - if (Math.abs(previousPixelDelta) < monthMouse.height) { - previousPixelDelta += pixelDelta - return - } - } - - if (delta >= 15) { - calendarBackend.previousMonth() - } else if (delta <= -15) { - calendarBackend.nextMonth() - } - previousPixelDelta = 0 - } + ListModel { + id: monthModel + + Component.onCompleted: { + for (var i = 0; i < 12; ++i) { + append({ + label: Qt.locale().standaloneMonthName(i, Locale.LongFormat), + monthNumber: i + 1, + isCurrent: true + }) } + updateYearOverview() } + } - DaysCalendar { - id: calendar - - Layout.fillWidth: true - Layout.fillHeight: true + ListModel { + id: yearModel - PlasmaComponents.Label { - text: "◀" - opacity: leftmouse.containsMouse ? 1 : 0.4 - Behavior on opacity { NumberAnimation {} } - font.pixelSize: Math.max(theme.smallestFont.pixelSize, Math.floor(root.cellHeight / 3)) - anchors { - top: parent.top - left: parent.left - leftMargin: Math.floor(units.largeSpacing / 2) + root.borderWidth - topMargin: anchors.leftMargin - } - MouseArea { - id: leftmouse - anchors.fill: parent - anchors.margins: -units.largeSpacing / 3 - hoverEnabled: true - onClicked: { - calendarBackend.previousMonth() - } - } - } - PlasmaComponents.Label { - text: "▶" - opacity: rightmouse.containsMouse ? 1 : 0.4 - Behavior on opacity { NumberAnimation {} } - font.pixelSize: Math.max(theme.smallestFont.pixelSize, Math.floor(root.cellHeight / 3)) - anchors { - top: parent.top - right: parent.right - rightMargin: Math.floor(units.largeSpacing / 2) + root.borderWidth - topMargin: anchors.rightMargin - } - MouseArea { - id: rightmouse - anchors.fill: parent - anchors.margins: -units.largeSpacing / 3 - hoverEnabled: true - onClicked: { - calendarBackend.nextMonth() - } - } + Component.onCompleted: { + for (var i = 0; i < 12; ++i) { + append({ + isCurrent: (i > 0 && i < 11) // first and last year are outside the decade + }) } + updateDecadeOverview() } } + StackView { + id: stack -/* - Item { - id: calendarToolbar - visible: false - anchors { - left: parent.left - right: parent.right - bottomMargin: 20 - bottom: parent.bottom - } + anchors.fill: parent - PlasmaComponents.ToolButton { - id: currentDate - iconSource: "view-pim-calendar" - width: height - onClicked: { - calendarBackend.startDate = today(); + delegate: StackViewDelegate { + pushTransition: StackViewTransition { + NumberAnimation { + target: exitItem + duration: units.longDuration + property: "opacity" + from: 1 + to: 0 + } + NumberAnimation { + target: enterItem + duration: units.longDuration + property: "opacity" + from: 0 + to: 1 + } + NumberAnimation { + target: enterItem + duration: units.longDuration + property: "transformScale" + from: 1.5 + to: 1 + } } - PlasmaCore.ToolTipArea { - id: tool - anchors.fill: currentDate - mainText: "Select Today" + popTransition: StackViewTransition { + NumberAnimation { + target: exitItem + duration: units.longDuration + property: "opacity" + from: 1 + to: 0 + } + NumberAnimation { + target: exitItem + duration: units.longDuration + property: "transformScale" + // so no matter how much you scaled, it would still fly towards you + to: exitItem.transformScale * 1.5 + } + NumberAnimation { + target: enterItem + duration: units.longDuration + property: "opacity" + from: 0 + to: 1 + } + } + } + + initialItem: DaysCalendar { + title: calendarBackend.displayedDate.getFullYear() == new Date().getFullYear() ? root.selectedMonth : root.selectedMonth + ", " + root.selectedYear + + columns: calendarBackend.days + rows: calendarBackend.weeks + + showWeekNumbers: root.showWeekNumbers + + headerModel: calendarBackend.days + gridModel: calendarBackend.daysModel + + dateMatchingPrecision: Calendar.MatchYearMonthAndDay + + onPrevious: calendarBackend.previousMonth() + onNext: calendarBackend.nextMonth() + onHeaderClicked: { + stack.push(yearOverview) } - anchors { - left: parent.left + onActivated: { + var rowNumber = Math.floor(index / 7); + week = 1 + calendarBackend.weeksModel[rowNumber]; + root.date = date + root.currentDate = new Date(date.yearNumber, date.monthNumber - 1, date.dayNumber) } } + } + + Component { + id: yearOverview - PlasmaComponents.TextField { - id: dateField - text: date == "" ? Qt.formatDateTime ( new Date(), "d/M/yyyy" ): date - width: calendarOperations.width/3 - anchors { - leftMargin: 20 - rightMargin: 30 - left: currentDate.right - right: weekField.left + DaysCalendar { + title: calendarBackend.displayedDate.getFullYear() + columns: 3 + rows: 4 + + dateMatchingPrecision: Calendar.MatchYearAndMonth + + gridModel: monthModel + + onPrevious: calendarBackend.previousYear() + onNext: calendarBackend.nextYear() + onHeaderClicked: stack.push(decadeOverview) + onActivated: { + calendarBackend.goToMonth(date.monthNumber) + stack.pop() } } + } + + Component { + id: decadeOverview + + DaysCalendar { + readonly property int decade: { + var year = calendarBackend.displayedDate.getFullYear() + return year - year % 10 + } - PlasmaComponents.TextField { - id: weekField - text: week == 0 ? calendarBackend.currentWeek(): week - width: calendarOperations.width/10 - anchors { - right: parent.right + title: decade + " – " + (decade + 9) + columns: 3 + rows: 4 + + dateMatchingPrecision: Calendar.MatchYear + + gridModel: yearModel + + onPrevious: calendarBackend.previousDecade() + onNext: calendarBackend.nextDecade() + onActivated: { + calendarBackend.goToYear(date.yearNumber) + stack.pop() } } } - */ } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.12.0/src/declarativeimports/core/corebindingsplugin.cpp new/plasma-framework-5.13.0/src/declarativeimports/core/corebindingsplugin.cpp --- old/plasma-framework-5.12.0/src/declarativeimports/core/corebindingsplugin.cpp 2015-07-05 11:17:34.000000000 +0200 +++ new/plasma-framework-5.13.0/src/declarativeimports/core/corebindingsplugin.cpp 2015-08-04 13:46:18.000000000 +0200 @@ -49,6 +49,7 @@ // #include "dataenginebindings_p.h" #include <QDebug> +#include <QWindow> void CoreBindingsPlugin::initializeEngine(QQmlEngine *engine, const char *uri) { @@ -91,6 +92,8 @@ qmlRegisterType<Plasma::SortFilterModel, 1>(uri, 2, 1, "SortFilterModel"); qmlRegisterType<PlasmaQuick::Dialog>(uri, 2, 0, "Dialog"); + // HACK make properties like "opacity" work that are in REVISION 1 of QWindow + qmlRegisterRevision<QWindow, 1>(uri, 2, 0); qmlRegisterType<ToolTip>(uri, 2, 0, "ToolTipArea"); qmlRegisterInterface<Plasma::Service>("Service"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.12.0/src/declarativeimports/plasmastyle/MenuStyle.qml new/plasma-framework-5.13.0/src/declarativeimports/plasmastyle/MenuStyle.qml --- old/plasma-framework-5.12.0/src/declarativeimports/plasmastyle/MenuStyle.qml 2015-07-05 11:17:34.000000000 +0200 +++ new/plasma-framework-5.13.0/src/declarativeimports/plasmastyle/MenuStyle.qml 2015-08-04 13:46:18.000000000 +0200 @@ -32,6 +32,7 @@ submenuOverlap: 0 submenuPopupDelay: 0 __maxPopupHeight: 0 + __leftLabelMargin: theme.mSize(theme.defaultFont).height * 2 //see RadioButtonStyle size frame: StyleItem { elementType: "menu" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.12.0/src/declarativeimports/plasmastyle/ToolButtonStyle.qml new/plasma-framework-5.13.0/src/declarativeimports/plasmastyle/ToolButtonStyle.qml --- old/plasma-framework-5.12.0/src/declarativeimports/plasmastyle/ToolButtonStyle.qml 2015-07-05 11:17:34.000000000 +0200 +++ new/plasma-framework-5.13.0/src/declarativeimports/plasmastyle/ToolButtonStyle.qml 2015-08-04 13:46:18.000000000 +0200 @@ -119,7 +119,7 @@ } background: { - if (control.text.length == 0 && (control.parent && control.parent.checkedButton === undefined) && !style.flat) { + if (control.text.length == 0 && (control.parent && control.parent.checkedButton === undefined) && !style.flat && !control.menu) { return roundButtonComponent } else { return buttonComponent diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.12.0/src/declarativeimports/platformcomponents/icondialog.h new/plasma-framework-5.13.0/src/declarativeimports/platformcomponents/icondialog.h --- old/plasma-framework-5.12.0/src/declarativeimports/platformcomponents/icondialog.h 2015-07-05 11:17:34.000000000 +0200 +++ new/plasma-framework-5.13.0/src/declarativeimports/platformcomponents/icondialog.h 2015-08-04 13:46:18.000000000 +0200 @@ -26,7 +26,9 @@ #include "utils/d_ptr.h" /** - * Class which handles an icondialog execution. + * @class which handles an icondialog execution. + * + * @deprecated Use IconDialog from org.kde.kquickcontrolsaddons * * Example: * <code> Files old/plasma-framework-5.12.0/src/desktoptheme/breeze/icons/software-updates.svgz and new/plasma-framework-5.13.0/src/desktoptheme/breeze/icons/software-updates.svgz differ Files old/plasma-framework-5.12.0/src/desktoptheme/breeze/icons/software.svgz and new/plasma-framework-5.13.0/src/desktoptheme/breeze/icons/software.svgz differ Files old/plasma-framework-5.12.0/src/desktoptheme/breeze/widgets/slider.svgz and new/plasma-framework-5.13.0/src/desktoptheme/breeze/widgets/slider.svgz differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.12.0/src/plasma/data/servicetypes/plasma-applet.desktop new/plasma-framework-5.13.0/src/plasma/data/servicetypes/plasma-applet.desktop --- old/plasma-framework-5.12.0/src/plasma/data/servicetypes/plasma-applet.desktop 2015-07-05 11:17:34.000000000 +0200 +++ new/plasma-framework-5.13.0/src/plasma/data/servicetypes/plasma-applet.desktop 2015-08-04 13:46:18.000000000 +0200 @@ -58,6 +58,9 @@ [PropertyDef::X-Plasma-NotificationArea] Type=bool +[PropertyDef::X-Plasma-NotificationAreaCategory] +Type=QString + [PropertyDef::X-Plasma-DBusActivationService] Type=QString diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.12.0/src/plasma/pluginloader.cpp new/plasma-framework-5.13.0/src/plasma/pluginloader.cpp --- old/plasma-framework-5.12.0/src/plasma/pluginloader.cpp 2015-07-05 11:17:34.000000000 +0200 +++ new/plasma-framework-5.13.0/src/plasma/pluginloader.cpp 2015-08-04 13:46:18.000000000 +0200 @@ -574,7 +574,7 @@ for (auto md : KPackage::PackageLoader::self()->findPackages("Plasma/Applet", QString(), filter)) { auto pi = KPluginInfo(KService::serviceByStorageId(md.metaDataFileName())); if (!pi.isValid()) { - qWarning() << "Could not load plugin info:" << md.metaDataFileName() << "skipping plugin"; + qWarning() << "Could not load plugin info for plugin :" << md.pluginId() << "skipping plugin"; continue; } list << pi; @@ -600,7 +600,7 @@ for (auto md : KPackage::PackageLoader::self()->findPackages("Plasma/Applet", QString(), filter)) { auto pi = KPluginInfo(KService::serviceByStorageId(md.metaDataFileName())); if (!pi.isValid()) { - qWarning() << "Could not load plugin info:" << md.metaDataFileName() << "skipping plugin"; + qWarning() << "Could not load plugin info for plugin :" << md.pluginId() << "skipping plugin"; continue; } list << pi; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.12.0/src/plasmaquick/dialog.cpp new/plasma-framework-5.13.0/src/plasmaquick/dialog.cpp --- old/plasma-framework-5.12.0/src/plasmaquick/dialog.cpp 2015-07-05 11:17:34.000000000 +0200 +++ new/plasma-framework-5.13.0/src/plasmaquick/dialog.cpp 2015-08-04 13:46:18.000000000 +0200 @@ -35,6 +35,8 @@ #include <kwindowsystem.h> #include <KWindowSystem/KWindowInfo> +#include <kquickaddons/quickviewsharedengine.h> + #include <kwindoweffects.h> #include <Plasma/Plasma> #include <Plasma/Corona> @@ -307,7 +309,7 @@ } else { q->setFlags(Qt::FramelessWindowHint | q->flags()); } - if (type == Dialog::Dock) { + if (type == Dialog::Dock || type == Dialog::Notification || type == Dialog::OnScreenDisplay) { KWindowSystem::setOnAllDesktops(q->winId(), true); } else { KWindowSystem::setOnAllDesktops(q->winId(), false); @@ -998,7 +1000,7 @@ } } - if (type == Dock) { + if (type == Dock || type == Notification || type == OnScreenDisplay) { KWindowSystem::setOnAllDesktops(winId(), true); } else { KWindowSystem::setOnAllDesktops(winId(), false); @@ -1038,7 +1040,9 @@ const QWindow *focusWindow = QGuiApplication::focusWindow(); bool childHasFocus = focusWindow && ((focusWindow->isActive() && isAncestorOf(focusWindow)) || focusWindow->type() & Qt::Popup); - if (qobject_cast<const View *>(focusWindow) || (!parentHasFocus && !childHasFocus)) { + const bool viewClicked = qobject_cast<const KQuickAddons::QuickViewSharedEngine *>(focusWindow) || qobject_cast<const View *>(focusWindow); + + if (viewClicked || (!parentHasFocus && !childHasFocus)) { setVisible(false); emit windowDeactivated(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.12.0/src/platformstatus/platformstatus.cpp new/plasma-framework-5.13.0/src/platformstatus/platformstatus.cpp --- old/plasma-framework-5.12.0/src/platformstatus/platformstatus.cpp 2015-07-05 11:17:34.000000000 +0200 +++ new/plasma-framework-5.13.0/src/platformstatus/platformstatus.cpp 2015-08-04 13:46:18.000000000 +0200 @@ -87,7 +87,7 @@ QStandardPaths::LocateDirectory); if (path.isEmpty()) { if (package != defaultPackage) { - group.deleteEntry("LookAndFeel"); + group.deleteEntry("LookAndFeelPackage"); findLookAndFeelPackage(sendSignal); }
