diff options
author | Michael Palimaka <kensington@gentoo.org> | 2016-06-17 21:28:33 +1000 |
---|---|---|
committer | Michael Palimaka <kensington@gentoo.org> | 2016-06-17 21:28:48 +1000 |
commit | b56c4afdc884086debd747c1e014a98e7b71f721 (patch) | |
tree | 486325c38e5ec3b79507d919a98344f21b9fa0ae /kde-plasma/plasma-workspace | |
parent | dev-libs/libutf8proc: Fix S, thanks AlexOmskiy@yandex.ru and Philipp Ammann, ... (diff) | |
download | gentoo-b56c4afdc884086debd747c1e014a98e7b71f721.tar.gz gentoo-b56c4afdc884086debd747c1e014a98e7b71f721.tar.bz2 gentoo-b56c4afdc884086debd747c1e014a98e7b71f721.zip |
kde-plasma: version bump 5.6.5
Package-Manager: portage-2.3.0_rc1
Diffstat (limited to 'kde-plasma/plasma-workspace')
3 files changed, 729 insertions, 0 deletions
diff --git a/kde-plasma/plasma-workspace/Manifest b/kde-plasma/plasma-workspace/Manifest index b5f84df44db8..b958432847e8 100644 --- a/kde-plasma/plasma-workspace/Manifest +++ b/kde-plasma/plasma-workspace/Manifest @@ -1,2 +1,3 @@ DIST plasma-workspace-5.5.5.tar.xz 7374560 SHA256 bed1e65d878b963dbbb85129c206dc70db71461de29c19e95b6053c9c4fe7b26 SHA512 0fdf19650bd8718b03a8004182caa29080cc02afb0f4808d40f9976c3d261b80afa0e86c8cb659276d49eb1e711d7e26f84ced989342f0f6dbccc23e56d16ff7 WHIRLPOOL 51e122d4c180537a9a4a6ac1b8cae60526c0b6167fb832244e813224c4977556693253b06035ca2d8319db0e0ade817cf09ef0ca44a9cc56128c541bd9be1da1 DIST plasma-workspace-5.6.4.tar.xz 7031012 SHA256 1b058bd04a7d5a7b358fa8763c4a9f21fa34889eeacb4e110263a10c47e030e7 SHA512 a4ff3047aec35fef1d18dc3249b9a2e980f24c98f59d55084bacaa99bf15082012569063b96b245cd1e1df45802aa7fa08bfb36c67aba1073fff4c9e9457b8b1 WHIRLPOOL fbb310ea6deef205ece7a8620406e860b58a8bcea66136f81cda479e413023eb230dde2963ee3d6b3b0c18eb37ce688cb2f746a8af76747880b5c9b7b1ac0994 +DIST plasma-workspace-5.6.5.1.tar.xz 6941608 SHA256 459e7d361551437007620fd4d05cc7252cbc85e039fa824899832ebcb7ad1495 SHA512 86d2f9208d4c2c9de9d17acf2112a81dfcdedb061f2209ce6289f0c702c2687ed8720bb81d127916219c39f4e9e763f5bf8311ee6c36f62c1a9cca7103560780 WHIRLPOOL 1792b3df0ffaaf972d6c4988c52e64f6f2e9df3367e969f5b06e13ca4696379c81214a37767df9d0944247dbd8fc48b21a78e76ec02369caeddb7b0de83b6b09 diff --git a/kde-plasma/plasma-workspace/files/plasma-workspace-5.6.5-drop-kscreen-dep.patch b/kde-plasma/plasma-workspace/files/plasma-workspace-5.6.5-drop-kscreen-dep.patch new file mode 100644 index 000000000000..80a7bc9d1a66 --- /dev/null +++ b/kde-plasma/plasma-workspace/files/plasma-workspace-5.6.5-drop-kscreen-dep.patch @@ -0,0 +1,562 @@ +commit 816b8a0e17cc087b05ac0155757c5d4a1ee6673a +Author: Aleix Pol <aleixpol@kde.org> +Date: Mon May 30 13:20:50 2016 +0200 + + Drop KScreen dependency from PlasmaShell + REVIEW: 125451 + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -26,6 +26,4 @@ find_package(KF5XmlRpcClient REQUIRED) + find_package(KF5 REQUIRED COMPONENTS PlasmaQuick) + find_package(KF5 REQUIRED COMPONENTS SysGuard) +-# Require KScreen >= 5.0.93 due to large API change +-find_package(KF5 5.0.93 REQUIRED COMPONENTS Screen) + find_package(KF5 REQUIRED COMPONENTS Package) + # Baloo has a different version scheme than KF5 for now +--- a/shell/CMakeLists.txt ++++ b/shell/CMakeLists.txt +@@ -81,5 +81,4 @@ target_link_libraries(plasmashell + KF5::CoreAddons + KF5::DBusAddons +- KF5::Screen + KF5::Declarative + KF5::QuickAddons +--- a/shell/panelview.cpp ++++ b/shell/panelview.cpp +@@ -37,8 +37,6 @@ + + #include <Plasma/Containment> + #include <Plasma/Package> +-#include <KScreen/Config> +-#include <KScreen/Output> + + #include <KWayland/Client/plasmashell.h> + #include <KWayland/Client/surface.h> +@@ -87,5 +85,6 @@ PanelView::PanelView(ShellCorona *corona, QScreen *targetScreen, QWindow *parent + connect(&m_unhideTimer, &QTimer::timeout, + this, &PanelView::restoreAutoHide); + ++ m_lastScreen = targetScreen; + connect(screen(), SIGNAL(geometryChanged(QRect)), + &m_positionPaneltimer, SLOT(start())); +@@ -102,8 +101,5 @@ PanelView::PanelView(ShellCorona *corona, QScreen *targetScreen, QWindow *parent + connect(&m_strutsTimer, &QTimer::timeout, + this, &PanelView::updateStruts); + +- connect(m_corona->screensConfiguration()->screen().data(), &KScreen::Screen::currentSizeChanged, +- this, &PanelView::updateStruts); +- + qmlRegisterType<QScreen>(); + rootContext()->setContextProperty(QStringLiteral("panel"), this); +@@ -682,19 +678,23 @@ void PanelView::showEvent(QShowEvent *event) + { + PanelShadows::self()->addWindow(this); + PlasmaQuick::ContainmentView::showEvent(event); +- integrateScreen(); + + //When the screen is set, the screen is recreated internally, so we need to + //set anything that depends on the winId() +- connect(this, &QWindow::screenChanged, this, [this](QScreen* screen) { +- emit screenChangedProxy(screen); ++ connect(this, &QWindow::screenChanged, this, &PanelView::moveScreen, Qt::UniqueConnection); ++ integrateScreen(); ++} + +- if (!screen) +- return; +- integrateScreen(); +- showTemporarily(); +- m_positionPaneltimer.start(); +- }); ++void PanelView::moveScreen(QScreen* screen) ++{ ++ emit screenChangedProxy(screen); ++ m_lastScreen = screen; ++ ++ if (!screen) ++ return; ++ integrateScreen(); ++ showTemporarily(); ++ m_positionPaneltimer.start(); + } + + bool PanelView::event(QEvent *e) +@@ -904,5 +904,5 @@ void PanelView::updateStruts() + const QRect thisScreen = screen()->geometry(); + // QScreen::virtualGeometry() is very unreliable (Qt 5.5) +- const QRect wholeScreen = QRect(QPoint(0, 0), m_corona->screensConfiguration()->screen()->currentSize()); ++ const QRect wholeScreen = QRect(QPoint(0, 0), screen()->geometry().size()); + + //Extended struts against a screen edge near to another screen are really harmful, so windows maximized under the panel is a lesser pain +--- a/shell/panelview.h ++++ b/shell/panelview.h +@@ -136,6 +136,8 @@ public: + /* Shared with script/panel.cpp */ + static KConfigGroup panelConfig(ShellCorona *corona, Plasma::Containment *containment, QScreen *screen); + ++ void updateStruts(); ++ + protected: + void resizeEvent(QResizeEvent *ev) override; + void showEvent(QShowEvent *event) override; +@@ -162,7 +164,6 @@ protected Q_SLOTS: + * It will be called when the configuration is requested + */ + void showConfigurationInterface(Plasma::Applet *applet) override; +- void updateStruts(); + + private Q_SLOTS: + void themeChanged(); +@@ -176,5 +177,6 @@ private Q_SLOTS: + void screenDestroyed(QObject* screen); + + private: ++ void moveScreen(QScreen* screen); + void integrateScreen(); + bool containmentContainsPosition(const QPointF &point) const; +@@ -198,6 +200,7 @@ private: + //only for the mask, not to actually paint + Plasma::FrameSvg *m_background; + KWayland::Client::PlasmaShellSurface *m_shellSurface; ++ QWeakPointer<QScreen> m_lastScreen; + + static const int STRUTSTIMERDELAY = 200; + }; +--- a/shell/shellcorona.cpp ++++ b/shell/shellcorona.cpp +@@ -44,11 +44,6 @@ + #include <kdeclarative/qmlobject.h> + #include <KMessageBox> + +-#include <KScreen/Config> +-#include <KScreen/ConfigMonitor> +-#include <KScreen/GetConfigOperation> +-#include <KScreen/Output> +- + #include <KPackage/PackageLoader> + + #include <KWayland/Client/connection_thread.h> +@@ -90,7 +85,6 @@ ShellCorona::ShellCorona(QObject *parent) + m_addPanelAction(nullptr), + m_addPanelsMenu(nullptr), + m_interactiveConsole(nullptr), +- m_screenConfiguration(nullptr), + m_waylandPlasmaShell(nullptr) + { + setupWaylandIntegration(); +@@ -305,14 +299,7 @@ void ShellCorona::setShell(const QString &shell) + + connect(m_activityConsumer, &KActivities::Consumer::serviceStatusChanged, this, &ShellCorona::load, Qt::UniqueConnection); + +- connect(new KScreen::GetConfigOperation(KScreen::GetConfigOperation::NoEDID), &KScreen::GetConfigOperation::finished, +- this, [this](KScreen::ConfigOperation *op) { +- if (op->hasError()) { +- qWarning() << "Error found while setting up ShellCorona's KScreen: " << op->errorString(); +- } +- m_screenConfiguration = qobject_cast<KScreen::GetConfigOperation*>(op)->config(); +- load(); +- }); ++ load(); + } + + QString ShellCorona::shell() const +@@ -320,17 +307,19 @@ QString ShellCorona::shell() const + return m_shell; + } + +-bool outputLess(const KScreen::OutputPtr &a, const KScreen::OutputPtr &b) ++bool outputLess(QScreen* a, QScreen* b) + { +- return ((a->isEnabled() && !b->isEnabled()) +- || (a->isEnabled() == b->isEnabled() && (a->isPrimary() && !b->isPrimary())) +- || (a->isPrimary() == b->isPrimary() && (a->pos().x() < b->pos().x() +- || (a->pos().x() == b->pos().x() && a->pos().y() < b->pos().y())))); ++ const QPoint aPos = a->geometry().topLeft(); ++ const QPoint bPos = b->geometry().topLeft(); ++ ++ return (qGuiApp->primaryScreen() == a ++ || (qGuiApp->primaryScreen() != b && (aPos.x() < bPos.x() ++ || (aPos.x() == bPos.x() && aPos.y() < bPos.y())))); + } + +-static QList<KScreen::OutputPtr> sortOutputs(const KScreen::OutputList &outputs) ++static QList<QScreen*> sortOutputs(const QList<QScreen*> &outputs) + { +- QList<KScreen::OutputPtr> ret = outputs.values(); ++ QList<QScreen*> ret = outputs; + std::sort(ret.begin(), ret.end(), outputLess); + return ret; + } +@@ -338,8 +327,7 @@ static QList<KScreen::OutputPtr> sortOutputs(const KScreen::OutputList &outputs) + void ShellCorona::load() + { + if (m_shell.isEmpty() || +- m_activityConsumer->serviceStatus() == KActivities::Consumer::Unknown || +- !m_screenConfiguration) { ++ m_activityConsumer->serviceStatus() == KActivities::Consumer::Unknown) { + return; + } + +@@ -373,13 +361,11 @@ void ShellCorona::load() + } + } + +- KScreen::ConfigMonitor::instance()->addConfig(m_screenConfiguration); +- //we're not going through the connectedOutputs because we need to connect to all outputs +- for (const KScreen::OutputPtr &output : sortOutputs(m_screenConfiguration->outputs())) { +- addOutput(output); ++ for (QScreen* screen : sortOutputs(qGuiApp->screens())) { ++ addOutput(screen); + } +- connect(m_screenConfiguration.data(), &KScreen::Config::outputAdded, this, &ShellCorona::addOutput); +- connect(m_screenConfiguration.data(), &KScreen::Config::primaryOutputChanged, this, &ShellCorona::primaryOutputChanged); ++ connect(qGuiApp, &QGuiApplication::screenAdded, this, &ShellCorona::addOutput); ++ connect(qGuiApp, &QGuiApplication::primaryScreenChanged, this, &ShellCorona::primaryOutputChanged); + connect(qGuiApp, &QGuiApplication::screenRemoved, this, &ShellCorona::screenRemoved); + + if (!m_waitingPanels.isEmpty()) { +@@ -401,13 +387,8 @@ void ShellCorona::primaryOutputChanged() + return; + } + +- const KScreen::OutputPtr output = m_screenConfiguration->primaryOutput(); +- if (!output) { +- return; +- } +- + QScreen *oldPrimary = m_views[0]->screen(); +- QScreen *newPrimary = outputToScreen(output); ++ QScreen *newPrimary = qGuiApp->primaryScreen(); + if (!newPrimary || newPrimary == oldPrimary) { + return; + } +@@ -433,7 +414,7 @@ void ShellCorona::primaryOutputChanged() + Q_ASSERT(oldPrimary != newPrimary); + Q_ASSERT(m_views[0]->screen() == oldPrimary); + Q_ASSERT(m_views[0]->screen() != newPrimary); +- Q_ASSERT(m_views[0]->geometry() == oldPrimary->geometry()); ++// Q_ASSERT(m_views[0]->geometry() == oldPrimary->geometry()); + qDebug() << "adapting" << newPrimary->geometry() << oldPrimary->geometry(); + + view->setScreen(oldPrimary); +@@ -442,6 +423,7 @@ void ShellCorona::primaryOutputChanged() + } + + m_views[0]->setScreen(newPrimary); ++ Q_ASSERT(m_views[0]->screen()==newPrimary); + + foreach (PanelView *panel, m_panelViews) { + if (panel->screen() == oldPrimary) { +@@ -459,20 +441,15 @@ void ShellCorona::screenInvariants() const + { + Q_ASSERT(m_views.count() <= QGuiApplication::screens().count()); + QScreen *s = m_views.isEmpty() ? nullptr : m_views[0]->screen(); +- const KScreen::OutputPtr primaryOutput = m_screenConfiguration->primaryOutput(); +- if (!s) { +- qWarning() << "error: couldn't find primary output" << primaryOutput; +- return; +- } + +- QScreen* ks = outputToScreen(primaryOutput); +- Q_ASSERT(!ks || ks == s || !primaryOutput->isEnabled() || m_redundantOutputs.contains(primaryOutput)); ++ QScreen* ks = qGuiApp->primaryScreen(); ++ Q_ASSERT(ks == s); + + QSet<QScreen*> screens; + int i = 0; + foreach (const DesktopView *view, m_views) { + QScreen *screen = view->screen(); + Q_ASSERT(!screens.contains(screen)); +- Q_ASSERT(!m_redundantOutputs.contains(screenToOutput(screen))); ++ Q_ASSERT(!m_redundantOutputs.contains(screen)); + // commented out because a different part of the code-base is responsible for this + // and sometimes is not yet called here. +@@ -492,7 +469,7 @@ void ShellCorona::screenInvariants() const + ++i; + } + +- foreach (const KScreen::OutputPtr &out, m_redundantOutputs) { ++ foreach (QScreen* out, m_redundantOutputs) { + Q_ASSERT(isOutputRedundant(out)); + } + +@@ -630,18 +607,14 @@ KActivities::Controller *ShellCorona::activityController() + + int ShellCorona::numScreens() const + { +- //don't start loading screens until kscreen has finished initialising. +- if (!m_screenConfiguration) { +- return 0; +- } +- return m_screenConfiguration->connectedOutputs().count(); ++ return qGuiApp->screens().count(); + } + + QRect ShellCorona::screenGeometry(int id) const + { + if (id >= m_views.count() || id < 0) { + qWarning() << "requesting unexisting screen" << id; +- QScreen *s = outputToScreen(m_screenConfiguration->primaryOutput()); ++ QScreen *s = qGuiApp->primaryScreen(); + return s ? s->geometry() : QRect(); + } + return m_views[id]->geometry(); +@@ -652,7 +625,7 @@ QRegion ShellCorona::availableScreenRegion(int id) const + if (id >= m_views.count() || id < 0) { + //each screen should have a view + qWarning() << "requesting unexisting screen" << id; +- QScreen *s = outputToScreen(m_screenConfiguration->primaryOutput()); ++ QScreen *s = qGuiApp->primaryScreen(); + return s ? s->availableGeometry() : QRegion(); + } + DesktopView *view = m_views[id]; +@@ -673,7 +646,7 @@ QRect ShellCorona::availableScreenRect(int id) const + if (id >= m_views.count() || id < 0) { + //each screen should have a view + qWarning() << "requesting unexisting screen" << id; +- QScreen *s = outputToScreen(m_screenConfiguration->primaryOutput()); ++ QScreen *s = qGuiApp->primaryScreen(); + return s ? s->availableGeometry() : QRect(); + } + +@@ -793,24 +766,20 @@ void ShellCorona::screenRemoved(QScreen* screen) + { + if (DesktopView* v = desktopForScreen(screen)) + remove(v); +-// addOutput(screenToOutput(screen)); +- m_reconsiderOutputsTimer.start(); +-} + +-void ShellCorona::outputEnabledChanged() +-{ +- addOutput(KScreen::OutputPtr(qobject_cast<KScreen::Output *>(sender()), [](void*){})); ++ m_reconsiderOutputsTimer.start(); ++ m_redundantOutputs.remove(screen); + } + +-bool ShellCorona::isOutputRedundant(const KScreen::OutputPtr &screen) const ++bool ShellCorona::isOutputRedundant(QScreen* screen) const + { +- Q_ASSERT(screen->currentMode()); ++ Q_ASSERT(screen); + const QRect geometry = screen->geometry(); + + //FIXME: QScreen doesn't have any idea of "this qscreen is clone of this other one + //so this ultra inefficient heuristic has to stay until we have a slightly better api +- foreach (const KScreen::OutputPtr &s, m_screenConfiguration->connectedOutputs()) { +- if (screen == s || !s->isEnabled() || !s->currentMode()) { ++ foreach (QScreen* s, qGuiApp->screens()) { ++ if (screen == s) { + continue; + } + +@@ -827,71 +796,47 @@ bool ShellCorona::isOutputRedundant(const KScreen::OutputPtr &screen) const + + void ShellCorona::reconsiderOutputs() + { +- if (!m_screenConfiguration) { +- return; +- } +- foreach (const KScreen::OutputPtr &out, m_screenConfiguration->connectedOutputs()) { +- if (!out->isEnabled() || !out->currentMode()) { +-// qDebug() << "skip screen" << out << desktopForScreen(outputToScreen(out)); +- continue; +- } +- +- if (m_redundantOutputs.contains(out)) { +- if (!isOutputRedundant(out)) { ++ foreach (QScreen* screen, qGuiApp->screens()) { ++ if (m_redundantOutputs.contains(screen)) { ++ if (!isOutputRedundant(screen)) { + // qDebug() << "not redundant anymore" << out; +- addOutput(out); ++ addOutput(screen); + } +- } else if (isOutputRedundant(out)) { +-// qDebug() << "new redundant screen" << out; ++ } else if (isOutputRedundant(screen)) { ++ qDebug() << "new redundant screen" << screen; + +- if (DesktopView* v = desktopForScreen(outputToScreen(out))) ++ if (DesktopView* v = desktopForScreen(screen)) + remove(v); + +- m_redundantOutputs.insert(out); ++ m_redundantOutputs.insert(screen); + } + // else + // qDebug() << "fine screen" << out; + } + ++ updateStruts(); ++ + CHECK_SCREEN_INVARIANTS + } + +-void ShellCorona::addOutput(const KScreen::OutputPtr &output) ++void ShellCorona::addOutput(QScreen* screen) + { +- if (!output) { +- return; +- } ++ Q_ASSERT(screen); + +- connect(output.data(), &KScreen::Output::isEnabledChanged, +- this, &ShellCorona::outputEnabledChanged, +- Qt::UniqueConnection); +- connect(output.data(), &KScreen::Output::posChanged, +- &m_reconsiderOutputsTimer, static_cast<void (QTimer::*)()>(&QTimer::start), +- Qt::UniqueConnection); +- connect(output.data(), &KScreen::Output::currentModeIdChanged, ++ connect(screen, &QScreen::geometryChanged, + &m_reconsiderOutputsTimer, static_cast<void (QTimer::*)()>(&QTimer::start), + Qt::UniqueConnection); + +- if (!output->isEnabled()) { +- m_redundantOutputs.remove(output); +- m_reconsiderOutputsTimer.start(); +- return; +- } +- +- QScreen *screen = outputToScreen(output); +- Q_ASSERT(screen); +- +- if (isOutputRedundant(output)) { +- m_redundantOutputs.insert(output); ++ if (isOutputRedundant(screen)) { ++ m_redundantOutputs.insert(screen); + return; + } else { +- m_redundantOutputs.remove(output); ++ m_redundantOutputs.remove(screen); + } + + int insertPosition = 0; + foreach (DesktopView *view, m_views) { +- const KScreen::OutputPtr out = screenToOutput(view->screen()); +- if (outputLess(output, out)) { ++ if (outputLess(screen, view->screen())) { + break; + } + +@@ -930,32 +875,6 @@ void ShellCorona::addOutput(const KScreen::OutputPtr &output) + CHECK_SCREEN_INVARIANTS + } + +-QScreen *ShellCorona::outputToScreen(const KScreen::OutputPtr &output) const +-{ +- if (!output) { +- return nullptr; +- } +- +- foreach (QScreen *screen, QGuiApplication::screens()) { +- if (screen->name() == output->name()) { +- return screen; +- } +- } +- +- return nullptr; +-} +- +-KScreen::OutputPtr ShellCorona::screenToOutput(QScreen *screen) const +-{ +- foreach (const KScreen::OutputPtr &output, m_screenConfiguration->connectedOutputs()) { +- if (screen->name() == output->name()) { +- return output; +- } +- } +- +- return KScreen::OutputPtr(); +-} +- + QScreen* ShellCorona::insertScreen(QScreen *screen, int idx) + { + if (idx == m_views.count()) { +@@ -1579,5 +1498,5 @@ int ShellCorona::screenForContainment(const Plasma::Containment *containment) co + //won't be associated to a screen + // qDebug() << "ShellCorona screenForContainment: " << containment << " Last screen is " << containment->lastScreen(); +- for (int i = 0, count = m_screenConfiguration->outputs().count(); i<count; ++i) { ++ for (int i = 0, count = qGuiApp->screens().count(); i<count; ++i) { + if (containment->lastScreen() == i && + (containment->activity() == m_activityConsumer->currentActivity() || +@@ -1703,11 +1622,6 @@ void ShellCorona::desktopContainmentDestroyed(QObject *obj) + } + } + +-KScreen::ConfigPtr ShellCorona::screensConfiguration() const +-{ +- return m_screenConfiguration; +-} +- + void ShellCorona::showOpenGLNotCompatibleWarning() + { + static bool s_multipleInvokations = false; +@@ -1750,6 +1664,13 @@ KWayland::Client::PlasmaShell *ShellCorona::waylandPlasmaShellInterface() const + return m_waylandPlasmaShell; + } + ++void ShellCorona::updateStruts() ++{ ++ foreach(PanelView* view, m_panelViews) { ++ view->updateStruts(); ++ } ++} ++ + // Desktop corona handler + + +--- a/shell/shellcorona.h ++++ b/shell/shellcorona.h +@@ -30,8 +30,6 @@ + + #include <KPackage/Package> + +-#include <KScreen/Types> +- + class Activity; + class DesktopView; + class PanelView; +@@ -99,8 +97,6 @@ public: + + Plasma::Containment *setContainmentTypeForScreen(int screen, const QString &plugin); + +- KScreen::ConfigPtr screensConfiguration() const; +- + QScreen *screenForId(int screenId) const; + void remove(DesktopView *desktopView); + +@@ -182,8 +178,7 @@ private Q_SLOTS: + void addPanel(QAction *action); + void populateAddPanelsMenu(); + +- void outputEnabledChanged(); +- void addOutput(const KScreen::OutputPtr &output); ++ void addOutput(QScreen* screen); + void primaryOutputChanged(); + + void activityOpened(); +@@ -197,10 +192,9 @@ private Q_SLOTS: + void screenRemoved(QScreen* screen); + + private: +- QScreen *outputToScreen(const KScreen::OutputPtr &output) const; +- KScreen::OutputPtr screenToOutput(QScreen *screen) const; ++ void updateStruts(); + QScreen *insertScreen(QScreen *screen, int idx); + void removeView(int idx); +- bool isOutputRedundant(const KScreen::OutputPtr &output) const; ++ bool isOutputRedundant(QScreen* screen) const; + void reconsiderOutputs(); + QList<PanelView *> panelsForScreen(QScreen *screen) const; +@@ -227,9 +221,8 @@ private: + QMenu *m_addPanelsMenu; + KPackage::Package m_lookAndFeelPackage; +- QSet<KScreen::OutputPtr> m_redundantOutputs; ++ QSet<QScreen*> m_redundantOutputs; + QList<KDeclarative::QmlObject *> m_alternativesObjects; + KDeclarative::QmlObject *m_interactiveConsole; + +- KScreen::ConfigPtr m_screenConfiguration; + QTimer m_waitingPanelsTimer; + QTimer m_appConfigSyncTimer; diff --git a/kde-plasma/plasma-workspace/plasma-workspace-5.6.5.1.ebuild b/kde-plasma/plasma-workspace/plasma-workspace-5.6.5.1.ebuild new file mode 100644 index 000000000000..62c107a15fca --- /dev/null +++ b/kde-plasma/plasma-workspace/plasma-workspace-5.6.5.1.ebuild @@ -0,0 +1,166 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 + +KDE_HANDBOOK="forceoptional" +KDE_TEST="forceoptional" +VIRTUALX_REQUIRED="test" +inherit kde5 multilib qmake-utils + +DESCRIPTION="KDE Plasma workspace" +KEYWORDS="~amd64 ~arm ~x86" +IUSE="+geolocation gps prison qalculate" + +COMMON_DEPEND=" + $(add_frameworks_dep baloo) + $(add_frameworks_dep kactivities) + $(add_frameworks_dep kauth) + $(add_frameworks_dep kbookmarks) + $(add_frameworks_dep kcmutils) + $(add_frameworks_dep kcompletion) + $(add_frameworks_dep kconfig) + $(add_frameworks_dep kconfigwidgets) + $(add_frameworks_dep kcoreaddons) + $(add_frameworks_dep kcrash) + $(add_frameworks_dep kdbusaddons) + $(add_frameworks_dep kdeclarative) + $(add_frameworks_dep kdelibs4support) + $(add_frameworks_dep kdesu) + $(add_frameworks_dep kglobalaccel) + $(add_frameworks_dep kguiaddons) + $(add_frameworks_dep ki18n) + $(add_frameworks_dep kiconthemes) + $(add_frameworks_dep kidletime) + $(add_frameworks_dep kio) + $(add_frameworks_dep kitemviews) + $(add_frameworks_dep kjobwidgets) + $(add_frameworks_dep kjs) + $(add_frameworks_dep kjsembed) + $(add_frameworks_dep knewstuff) + $(add_frameworks_dep knotifications) + $(add_frameworks_dep knotifyconfig) + $(add_frameworks_dep kpackage) + $(add_frameworks_dep krunner) + $(add_frameworks_dep kservice) + $(add_frameworks_dep ktexteditor) + $(add_frameworks_dep ktextwidgets) + $(add_frameworks_dep kwallet) + $(add_frameworks_dep kwayland) + $(add_frameworks_dep kwidgetsaddons) + $(add_frameworks_dep kwindowsystem) + $(add_frameworks_dep kxmlgui) + $(add_frameworks_dep kxmlrpcclient) + $(add_frameworks_dep plasma) + $(add_frameworks_dep solid) + $(add_plasma_dep kscreenlocker) + $(add_plasma_dep kwin) + $(add_plasma_dep libksysguard) + $(add_qt_dep qtconcurrent) + $(add_qt_dep qtdbus) + $(add_qt_dep qtdeclarative 'widgets') + $(add_qt_dep qtgui 'jpeg') + $(add_qt_dep qtnetwork) + $(add_qt_dep qtscript) + $(add_qt_dep qtsql) + $(add_qt_dep qtwidgets) + $(add_qt_dep qtx11extras) + $(add_qt_dep qtxml) + dev-libs/libdbusmenu-qt[qt5] + media-libs/phonon[qt5] + sys-libs/zlib + x11-libs/libICE + x11-libs/libSM + x11-libs/libX11 + x11-libs/libXau + x11-libs/libxcb + x11-libs/libXfixes + x11-libs/libXrender + x11-libs/xcb-util + x11-libs/xcb-util-image + geolocation? ( $(add_frameworks_dep networkmanager-qt) ) + gps? ( sci-geosciences/gpsd ) + prison? ( media-libs/prison:5 ) + qalculate? ( sci-libs/libqalculate ) +" +RDEPEND="${COMMON_DEPEND} + $(add_frameworks_dep kded) + $(add_kdeapps_dep kio-extras) + $(add_plasma_dep kde-cli-tools) + $(add_plasma_dep ksysguard) + $(add_plasma_dep milou) + $(add_qt_dep qdbus) + $(add_qt_dep qtgraphicaleffects) + $(add_qt_dep qtpaths) + $(add_qt_dep qtquickcontrols 'widgets') + app-text/iso-codes + x11-apps/mkfontdir + x11-apps/xmessage + x11-apps/xprop + x11-apps/xrdb + x11-apps/xset + x11-apps/xsetroot + !dev-libs/xembed-sni-proxy + !kde-base/freespacenotifier:4 + !kde-base/libtaskmanager:4 + !kde-base/kcminit:4 + !kde-base/kdebase-startkde:4 + !kde-base/klipper:4 + !kde-base/krunner:4 + !kde-base/ksmserver:4 + !kde-base/ksplash:4 + !kde-base/plasma-workspace:4 +" +DEPEND="${COMMON_DEPEND} + x11-proto/xproto +" + +PATCHES=( + "${FILESDIR}/${PN}-5.4-startkde-script.patch" + "${FILESDIR}/${PN}-5.6.0-rpath.patch" + "${FILESDIR}/${PN}-5.6.5-drop-kscreen-dep.patch" +) + +RESTRICT="test" + +S=${WORKDIR}/${PN}-5.6.5 + +src_prepare() { + kde5_src_prepare + + sed -e "s|\`qtpaths|\`$(qt5_get_bindir)/qtpaths|" \ + -i startkde/startkde.cmake startkde/startplasmacompositor.cmake || die +} + +src_configure() { + local mycmakeargs=( + $(cmake-utils_use_find_package geolocation KF5NetworkManagerQt) + $(cmake-utils_use_find_package gps libgps) + $(cmake-utils_use_find_package prison KF5Prison) + $(cmake-utils_use_find_package qalculate Qalculate) + ) + + kde5_src_configure +} + +src_install() { + kde5_src_install + + # startup and shutdown scripts + insinto /etc/plasma/startup + doins "${FILESDIR}/10-agent-startup.sh" + + insinto /etc/plasma/shutdown + doins "${FILESDIR}/10-agent-shutdown.sh" +} + +pkg_postinst () { + kde5_pkg_postinst + + echo + elog "To enable gpg-agent and/or ssh-agent in Plasma sessions," + elog "edit ${EPREFIX}/etc/plasma/startup/10-agent-startup.sh and" + elog "${EPREFIX}/etc/plasma/shutdown/10-agent-shutdown.sh" + echo +} |