summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sturmlechner <asturm@gentoo.org>2017-04-15 21:50:26 +0200
committerAndreas Sturmlechner <asturm@gentoo.org>2017-04-15 22:31:21 +0200
commita5decb2f6b741174c2906759260db3fac6beb96d (patch)
treee7844610bed97f33764ecd986c102850cfa06441 /kde-frameworks/plasma
parentapp-crypt/certbot: Sync live ebuild (diff)
downloadgentoo-a5decb2f6b741174c2906759260db3fac6beb96d.tar.gz
gentoo-a5decb2f6b741174c2906759260db3fac6beb96d.tar.bz2
gentoo-a5decb2f6b741174c2906759260db3fac6beb96d.zip
kde-frameworks/plasma: Add upstream fixes
- Wrong/weird toolbox icon sizes - Wrong language locale in calendar popup - Plasmashell runtime crashes caused by systray applets Package-Manager: Portage-2.3.3, Repoman-2.3.1
Diffstat (limited to 'kde-frameworks/plasma')
-rw-r--r--kde-frameworks/plasma/files/plasma-5.33.0-calendar-locale.patch49
-rw-r--r--kde-frameworks/plasma/files/plasma-5.33.0-iconsize.patch164
-rw-r--r--kde-frameworks/plasma/files/plasma-5.33.0-systray-crash-plasmashell.patch55
-rw-r--r--kde-frameworks/plasma/plasma-5.33.0-r1.ebuild76
4 files changed, 344 insertions, 0 deletions
diff --git a/kde-frameworks/plasma/files/plasma-5.33.0-calendar-locale.patch b/kde-frameworks/plasma/files/plasma-5.33.0-calendar-locale.patch
new file mode 100644
index 000000000000..554ac228d65d
--- /dev/null
+++ b/kde-frameworks/plasma/files/plasma-5.33.0-calendar-locale.patch
@@ -0,0 +1,49 @@
+commit a01e4fb69efeb7a803e6d3a272c62224d7df2494
+Author: David Rosca <nowrep@gmail.com>
+Date: Sat Apr 8 10:40:27 2017 +0200
+
+ Calendar: Use correct language for month and day names
+
+ Apply fix for bug 353715 also on QML side.
+
+ Differential Revision: https://phabricator.kde.org/D5345
+
+diff --git a/src/declarativeimports/calendar/qml/DaysCalendar.qml b/src/declarativeimports/calendar/qml/DaysCalendar.qml
+index 02b23b6e5..2b3ce446c 100644
+--- a/src/declarativeimports/calendar/qml/DaysCalendar.qml
++++ b/src/declarativeimports/calendar/qml/DaysCalendar.qml
+@@ -312,7 +312,7 @@ Item {
+ Components.Label {
+ width: daysCalendar.cellWidth
+ height: daysCalendar.cellHeight
+- text: Qt.locale().dayName(calendarBackend.firstDayOfWeek + index, Locale.ShortFormat)
++ text: Qt.locale(Qt.locale().uiLanguages[0]).dayName(calendarBackend.firstDayOfWeek + index, Locale.ShortFormat)
+ font.pixelSize: Math.max(theme.smallestFont.pixelSize, daysCalendar.cellHeight / 3)
+ opacity: 0.4
+ horizontalAlignment: Text.AlignHCenter
+diff --git a/src/declarativeimports/calendar/qml/MonthMenu.qml b/src/declarativeimports/calendar/qml/MonthMenu.qml
+index aa5d3b46d..beddf6852 100644
+--- a/src/declarativeimports/calendar/qml/MonthMenu.qml
++++ b/src/declarativeimports/calendar/qml/MonthMenu.qml
+@@ -28,7 +28,7 @@ PlasmaComponents.Menu {
+ property Instantiator items: Instantiator {
+ model: 12
+ PlasmaComponents.MenuItem {
+- text: capitalizeFirstLetter(Qt.locale().standaloneMonthName(index))
++ text: capitalizeFirstLetter(Qt.locale(Qt.locale().uiLanguages[0]).standaloneMonthName(index))
+ onClicked: calendarBackend.displayedDate = new Date(year, index, 1)
+ }
+ onObjectAdded: testMenu.addMenuItem(object)
+diff --git a/src/declarativeimports/calendar/qml/MonthView.qml b/src/declarativeimports/calendar/qml/MonthView.qml
+index a2229e5f2..e3c0e95d0 100644
+--- a/src/declarativeimports/calendar/qml/MonthView.qml
++++ b/src/declarativeimports/calendar/qml/MonthView.qml
+@@ -143,7 +143,7 @@ PinchArea {
+ Component.onCompleted: {
+ for (var i = 0; i < 12; ++i) {
+ append({
+- label: Qt.locale().standaloneMonthName(i, Locale.LongFormat),
++ label: Qt.locale(Qt.locale().uiLanguages[0]).standaloneMonthName(i, Locale.LongFormat),
+ monthNumber: i + 1,
+ isCurrent: true
+ })
diff --git a/kde-frameworks/plasma/files/plasma-5.33.0-iconsize.patch b/kde-frameworks/plasma/files/plasma-5.33.0-iconsize.patch
new file mode 100644
index 000000000000..b74c8224fdeb
--- /dev/null
+++ b/kde-frameworks/plasma/files/plasma-5.33.0-iconsize.patch
@@ -0,0 +1,164 @@
+commit fb8ed07651a7101c2f9c41c6e6676ac8196c1225
+Author: Marco Martin <notmart@gmail.com>
+Date: Mon Apr 3 15:42:29 2017 +0200
+
+ if the user did set an implicit size, keep it
+
+ Summary:
+ if the user code did something like
+ IconItem {
+ implicitWidth: 32
+ implicitHeight: 32
+ }
+
+ then never automatically update implicitWidth or height.
+ this favors compatibility and fixes the desktop
+ toolbox appearance
+
+ Test Plan:
+ textbox works, other icon items in plasmashell seems properly sized.
+ applet alternatives fix is still needed
+
+ Reviewers: #plasma, hein
+
+ Reviewed By: #plasma, hein
+
+ Subscribers: hein, davidedmundson, plasma-devel, #frameworks
+
+ Tags: #plasma, #frameworks
+
+ Differential Revision: https://phabricator.kde.org/D5243
+
+diff --git a/src/declarativeimports/core/iconitem.cpp b/src/declarativeimports/core/iconitem.cpp
+index e1666aa32..2b96c619d 100644
+--- a/src/declarativeimports/core/iconitem.cpp
++++ b/src/declarativeimports/core/iconitem.cpp
+@@ -49,6 +49,8 @@ IconItem::IconItem(QQuickItem *parent)
+ m_sizeChanged(false),
+ m_allowNextAnimation(false),
+ m_blockNextAnimation(false),
++ m_implicitHeightSetByUser(false),
++ m_implicitWidthSetByUser(false),
+ m_colorGroup(Plasma::Theme::NormalColorGroup),
+ m_animValue(0)
+ {
+@@ -75,6 +77,9 @@ IconItem::IconItem(QQuickItem *parent)
+ connect(this, SIGNAL(overlaysChanged()),
+ this, SLOT(schedulePixmapUpdate()));
+
++ connect(this, &IconItem::implicitWidthChanged, this, &IconItem::implicitWidthChanged2);
++ connect(this, &IconItem::implicitHeightChanged, this, &IconItem::implicitHeightChanged2);
++
+ updateImplicitSize();
+ }
+
+@@ -88,7 +93,13 @@ void IconItem::updateImplicitSize()
+ const QSize &s = m_imageIcon.size();
+
+ if (s.isValid()) {
+- setImplicitSize(s.width(), s.height());
++ if (!m_implicitWidthSetByUser && !m_implicitHeightSetByUser) {
++ setImplicitSize(s.width(), s.height());
++ } else if (!m_implicitWidthSetByUser) {
++ setImplicitWidth(s.width());
++ } else if (!m_implicitHeightSetByUser) {
++ setImplicitHeight(s.height());
++ }
+
+ return;
+ }
+@@ -105,7 +116,13 @@ void IconItem::updateImplicitSize()
+ s = m_svgIcon->size();
+ }
+ if (s.isValid()) {
+- setImplicitSize(s.width(), s.height());
++ if (!m_implicitWidthSetByUser && !m_implicitHeightSetByUser) {
++ setImplicitSize(s.width(), s.height());
++ } else if (!m_implicitWidthSetByUser) {
++ setImplicitWidth(s.width());
++ } else if (!m_implicitHeightSetByUser) {
++ setImplicitHeight(s.height());
++ }
+
+ return;
+ }
+@@ -113,7 +130,14 @@ void IconItem::updateImplicitSize()
+
+ // Fall back to initializing implicit size to the Dialog size.
+ const int implicitSize = KIconLoader::global()->currentSize(KIconLoader::Dialog);
+- setImplicitSize(implicitSize, implicitSize);
++
++ if (!m_implicitWidthSetByUser && !m_implicitHeightSetByUser) {
++ setImplicitSize(implicitSize, implicitSize);
++ } else if (!m_implicitWidthSetByUser) {
++ setImplicitWidth(implicitSize);
++ } else if (!m_implicitHeightSetByUser) {
++ setImplicitHeight(implicitSize);
++ }
+ }
+
+ void IconItem::setSource(const QVariant &source)
+@@ -418,6 +442,20 @@ Plasma::Svg::Status IconItem::status() const
+ return m_status;
+ }
+
++void IconItem::setImplicitHeight2(int height)
++{
++ m_implicitHeightSetByUser = true;
++ setImplicitHeight(height);
++ emit implicitHeightChanged2();
++}
++
++void IconItem::setImplicitWidth2(int width)
++{
++ m_implicitWidthSetByUser = true;
++ setImplicitWidth(width);
++ emit implicitWidthChanged2();
++}
++
+ void IconItem::updatePolish()
+ {
+ QQuickItem::updatePolish();
+diff --git a/src/declarativeimports/core/iconitem.h b/src/declarativeimports/core/iconitem.h
+index e4b2a959d..8b524e7a0 100644
+--- a/src/declarativeimports/core/iconitem.h
++++ b/src/declarativeimports/core/iconitem.h
+@@ -119,6 +119,10 @@ class IconItem : public QQuickItem
+ */
+ Q_PROPERTY(int paintedHeight READ paintedHeight NOTIFY paintedSizeChanged)
+
++ Q_PROPERTY(int implicitHeight READ implicitHeight WRITE setImplicitHeight2 NOTIFY implicitHeightChanged2)
++
++ Q_PROPERTY(int implicitWidth READ implicitWidth WRITE setImplicitWidth2 NOTIFY implicitWidthChanged2)
++
+ public:
+ IconItem(QQuickItem *parent = 0);
+ ~IconItem();
+@@ -155,6 +159,9 @@ public:
+ void setStatus(Plasma::Svg::Status status);
+ Plasma::Svg::Status status() const;
+
++ void setImplicitHeight2(int height);
++ void setImplicitWidth2(int height);
++
+ void updatePolish() Q_DECL_OVERRIDE;
+ QSGNode* updatePaintNode(QSGNode * oldNode, UpdatePaintNodeData * updatePaintNodeData) Q_DECL_OVERRIDE;
+
+@@ -176,6 +183,8 @@ Q_SIGNALS:
+ void colorGroupChanged();
+ void paintedSizeChanged();
+ void statusChanged();
++ void implicitHeightChanged2();
++ void implicitWidthChanged2();
+
+ private Q_SLOTS:
+ void schedulePixmapUpdate();
+@@ -210,6 +219,8 @@ private:
+ bool m_sizeChanged;
+ bool m_allowNextAnimation;
+ bool m_blockNextAnimation;
++ bool m_implicitHeightSetByUser;
++ bool m_implicitWidthSetByUser;
+
+ QPixmap m_iconPixmap;
+ QPixmap m_oldIconPixmap;
diff --git a/kde-frameworks/plasma/files/plasma-5.33.0-systray-crash-plasmashell.patch b/kde-frameworks/plasma/files/plasma-5.33.0-systray-crash-plasmashell.patch
new file mode 100644
index 000000000000..64a50b9c1640
--- /dev/null
+++ b/kde-frameworks/plasma/files/plasma-5.33.0-systray-crash-plasmashell.patch
@@ -0,0 +1,55 @@
+commit 1387b5efe31e330777c8ffd9029f79063cc7a7a9
+Author: David Edmundson <kde@davidedmundson.co.uk>
+Date: Thu Apr 13 10:41:40 2017 +0100
+
+ Guard against Applet not loading AppletInterface
+
+ Summary:
+ This can happen if an applet has invalid metadata, it doesn't have a
+ script engine set (X-Plasma-API) so it won't load the DeclarativeAppletScripts
+ Having invalid metadata could come from the applet, or from the fallback applet
+ created in Containment::Private::createApplet.
+
+ We guard against it in appletAdded but not in appletRemoved, which is
+ inconsistent. We also apparently must have guards elsewhere otherwise
+ we'd see the crash more.
+
+ BUG: 377050
+
+ Test Plan: Had corrupt applet, used to crash, now doesn't
+
+ Reviewers: #plasma
+
+ Subscribers: plasma-devel, #frameworks
+
+ Tags: #plasma, #frameworks
+
+ Differential Revision: https://phabricator.kde.org/D5423
+
+diff --git a/src/scriptengines/qml/plasmoid/containmentinterface.cpp b/src/scriptengines/qml/plasmoid/containmentinterface.cpp
+index 2ba4a8218..e311f6018 100644
+--- a/src/scriptengines/qml/plasmoid/containmentinterface.cpp
++++ b/src/scriptengines/qml/plasmoid/containmentinterface.cpp
+@@ -821,7 +821,8 @@ void ContainmentInterface::appletAddedForward(Plasma::Applet *applet)
+ // qDebug() << "Applet added on containment:" << m_containment->title() << contGraphicObject
+ // << "Applet: " << applet << applet->title() << appletGraphicObject;
+
+- //Every applet should have a graphics object, otherwise don't disaplay anything
++ //applets can not have a graphic object if they don't have a script engine loaded
++ //this can happen if they were loaded with an invalid metadata
+ if (!appletGraphicObject) {
+ return;
+ }
+@@ -843,8 +844,10 @@ void ContainmentInterface::appletAddedForward(Plasma::Applet *applet)
+ void ContainmentInterface::appletRemovedForward(Plasma::Applet *applet)
+ {
+ AppletInterface *appletGraphicObject = applet->property("_plasma_graphicObject").value<AppletInterface *>();
+- m_appletInterfaces.removeAll(appletGraphicObject);
+- appletGraphicObject->m_positionBeforeRemoval = appletGraphicObject->mapToItem(this, QPointF());
++ if (appletGraphicObject) {
++ m_appletInterfaces.removeAll(appletGraphicObject);
++ appletGraphicObject->m_positionBeforeRemoval = appletGraphicObject->mapToItem(this, QPointF());
++ }
+ emit appletRemoved(appletGraphicObject);
+ emit appletsChanged();
+ }
diff --git a/kde-frameworks/plasma/plasma-5.33.0-r1.ebuild b/kde-frameworks/plasma/plasma-5.33.0-r1.ebuild
new file mode 100644
index 000000000000..c2e74f8b08e6
--- /dev/null
+++ b/kde-frameworks/plasma/plasma-5.33.0-r1.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+KMNAME="${PN}-framework"
+VIRTUALX_REQUIRED="test"
+inherit kde5
+
+DESCRIPTION="Plasma framework"
+LICENSE="LGPL-2+"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="gles2 wayland X"
+
+COMMON_DEPEND="
+ $(add_frameworks_dep kactivities)
+ $(add_frameworks_dep karchive)
+ $(add_frameworks_dep kconfig)
+ $(add_frameworks_dep kconfigwidgets)
+ $(add_frameworks_dep kcoreaddons)
+ $(add_frameworks_dep kdeclarative)
+ $(add_frameworks_dep kglobalaccel)
+ $(add_frameworks_dep kguiaddons)
+ $(add_frameworks_dep ki18n)
+ $(add_frameworks_dep kiconthemes)
+ $(add_frameworks_dep kio)
+ $(add_frameworks_dep knotifications)
+ $(add_frameworks_dep kpackage)
+ $(add_frameworks_dep kservice)
+ $(add_frameworks_dep kwindowsystem)
+ $(add_frameworks_dep kxmlgui)
+ $(add_qt_dep qtdbus)
+ $(add_qt_dep qtdeclarative)
+ $(add_qt_dep qtgui 'gles2=')
+ $(add_qt_dep qtquickcontrols)
+ $(add_qt_dep qtsql)
+ $(add_qt_dep qtsvg)
+ $(add_qt_dep qtwidgets)
+ !gles2? ( virtual/opengl )
+ wayland? (
+ $(add_frameworks_dep kwayland)
+ media-libs/mesa[egl]
+ )
+ X? (
+ $(add_qt_dep qtx11extras)
+ x11-libs/libX11
+ x11-libs/libxcb
+ )
+"
+DEPEND="${COMMON_DEPEND}
+ $(add_frameworks_dep kdoctools)
+ X? ( x11-proto/xproto )
+"
+RDEPEND="${COMMON_DEPEND}
+ !<kde-apps/kapptemplate-15.08.3-r1:5
+"
+
+RESTRICT+=" test"
+
+PATCHES=(
+ "${FILESDIR}/${P}-iconsize.patch"
+ "${FILESDIR}/${P}-calendar-locale.patch"
+ "${FILESDIR}/${P}-systray-crash-plasmashell.patch"
+)
+
+src_configure() {
+ local mycmakeargs=(
+ $(cmake-utils_use_find_package !gles2 OpenGL)
+ $(cmake-utils_use_find_package wayland EGL)
+ $(cmake-utils_use_find_package wayland KF5Wayland)
+ $(cmake-utils_use_find_package X X11)
+ $(cmake-utils_use_find_package X XCB)
+ )
+
+ kde5_src_configure
+}