parent
2265317410
commit
df7c839759
@ -1 +1,2 @@
|
|||||||
/plasma-workspace-5.1.2.tar.xz
|
/plasma-workspace-5.1.2.tar.xz
|
||||||
|
/plasma-workspace-5.1.95.tar.xz
|
||||||
|
@ -1,61 +0,0 @@
|
|||||||
From: David Edmundson <kde@davidedmundson.co.uk>
|
|
||||||
Date: Sun, 04 Jan 2015 16:12:36 +0000
|
|
||||||
Subject: Uncondtionally monitor for all KAMD service status until we have first loaded
|
|
||||||
X-Git-Url: http://quickgit.kde.org/?p=plasma-workspace.git&a=commitdiff&h=8de060418e2c13057a443eb0aa997844466330b9
|
|
||||||
---
|
|
||||||
Uncondtionally monitor for all KAMD service status until we have first loaded
|
|
||||||
|
|
||||||
There is an issue where as m_activityConsumer starts the
|
|
||||||
kactivitymanagerd, as KAMD is starting the serviceStatus will be not
|
|
||||||
running.
|
|
||||||
|
|
||||||
Whilst we are loading the kscreen config, the event loop runs and we
|
|
||||||
might find KAMD has started.
|
|
||||||
|
|
||||||
m_activityConsumer will change from "not running" to unknown, and might
|
|
||||||
still be unknown when the kscreen fetching is complete.
|
|
||||||
|
|
||||||
If that happens we want to continue monitoring for state changes so we
|
|
||||||
can finally load when it is up
|
|
||||||
|
|
||||||
BUG: 342431
|
|
||||||
---
|
|
||||||
|
|
||||||
|
|
||||||
--- a/shell/shellcorona.cpp
|
|
||||||
+++ b/shell/shellcorona.cpp
|
|
||||||
@@ -226,9 +226,30 @@
|
|
||||||
|
|
||||||
unload();
|
|
||||||
|
|
||||||
- if (m_activityConsumer->serviceStatus() == KActivities::Consumer::Unknown) {
|
|
||||||
- connect(m_activityConsumer, SIGNAL(serviceStatusChanged(Consumer::ServiceStatus)), SLOT(load()), Qt::UniqueConnection);
|
|
||||||
- }
|
|
||||||
+
|
|
||||||
+ /*
|
|
||||||
+ * we want to make an initial load once we have the initial screen config and we have loaded the activities _IF_ KAMD is running
|
|
||||||
+ * it is valid for KAMD to not be running.
|
|
||||||
+ *
|
|
||||||
+ * Potentially 2 async jobs
|
|
||||||
+ *
|
|
||||||
+ * here we connect for status changes from KAMD, and fetch the first config from kscreen.
|
|
||||||
+ * load() will check that we have a kscreen config, and m_activityConsumer->serviceStatus() is not loading (i.e not unknown)
|
|
||||||
+ *
|
|
||||||
+ * It might seem that we only need this connection if the activityConsumer is currently in state Unknown, however
|
|
||||||
+ * there is an issue where m_activityConsumer will start the kactivitymanagerd, as KAMD is starting the serviceStatus will be "not running"
|
|
||||||
+ * Whilst we are loading the kscreen config, the event loop runs and we might find KAMD has started.
|
|
||||||
+ * m_activityConsumer will change from "not running" to unknown, and might still be unknown when the kscreen fetching is complete.
|
|
||||||
+ *
|
|
||||||
+ * if that happens we want to continue monitoring for state changes, and only finally load when it is up.
|
|
||||||
+ *
|
|
||||||
+ * See https://bugs.kde.org/show_bug.cgi?id=342431 be careful about changing
|
|
||||||
+ *
|
|
||||||
+ * The unique connection makes sure we don't reload plasma if KAMD ever crashes and reloads, the signal is disconnected in the body of load
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+ connect(m_activityConsumer, SIGNAL(serviceStatusChanged(Consumer::ServiceStatus)), SLOT(load()), Qt::UniqueConnection);
|
|
||||||
+
|
|
||||||
connect(new KScreen::GetConfigOperation(KScreen::GetConfigOperation::NoEDID), &KScreen::GetConfigOperation::finished,
|
|
||||||
this, [=](KScreen::ConfigOperation *op) {
|
|
||||||
m_screenConfiguration = qobject_cast<KScreen::GetConfigOperation*>(op)->config();
|
|
||||||
|
|
@ -1,364 +0,0 @@
|
|||||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
||||||
index edfdf66..5cf725e 100644
|
|
||||||
--- a/CMakeLists.txt
|
|
||||||
+++ b/CMakeLists.txt
|
|
||||||
@@ -19,7 +19,8 @@ find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS
|
|
||||||
# WARNING PlasmaQuick provides unversioned CMake config
|
|
||||||
find_package(KF5 REQUIRED COMPONENTS PlasmaQuick)
|
|
||||||
find_package(KF5 REQUIRED COMPONENTS SysGuard)
|
|
||||||
-find_package(KF5 REQUIRED COMPONENTS Screen)
|
|
||||||
+# Require KScreen >= 5.0.93 due to large API change
|
|
||||||
+find_package(KF5 5.0.93 REQUIRED COMPONENTS Screen)
|
|
||||||
find_package(KF5TextEditor)
|
|
||||||
find_package(KWinDBusInterface CONFIG REQUIRED)
|
|
||||||
|
|
||||||
diff --git a/shell/panelview.cpp b/shell/panelview.cpp
|
|
||||||
index 997f8d0..cf6357b 100644
|
|
||||||
--- a/shell/panelview.cpp
|
|
||||||
+++ b/shell/panelview.cpp
|
|
||||||
@@ -38,6 +38,7 @@
|
|
||||||
#include <Plasma/Containment>
|
|
||||||
#include <Plasma/Package>
|
|
||||||
#include <KScreen/Config>
|
|
||||||
+#include <KScreen/Output>
|
|
||||||
|
|
||||||
#if HAVE_X11
|
|
||||||
#include <xcb/xcb.h>
|
|
||||||
@@ -100,10 +101,14 @@ PanelView::PanelView(ShellCorona *corona, QScreen *targetScreen, QWindow *parent
|
|
||||||
m_strutsTimer.setSingleShot(true);
|
|
||||||
connect(&m_strutsTimer, &QTimer::timeout,
|
|
||||||
this, &PanelView::updateStruts);
|
|
||||||
- connect(m_corona->screensConfiguration(), &KScreen::Config::outputAdded,
|
|
||||||
- this, &PanelView::updateStruts);
|
|
||||||
- connect(m_corona->screensConfiguration(), &KScreen::Config::outputRemoved,
|
|
||||||
- this, &PanelView::updateStruts);
|
|
||||||
+ connect(m_corona->screensConfiguration().data(), &KScreen::Config::outputAdded,
|
|
||||||
+ this, [=] (const KScreen::OutputPtr &) {
|
|
||||||
+ updateStruts();
|
|
||||||
+ });
|
|
||||||
+ connect(m_corona->screensConfiguration().data(), &KScreen::Config::outputRemoved,
|
|
||||||
+ this, [=] (int) {
|
|
||||||
+ updateStruts();
|
|
||||||
+ });
|
|
||||||
|
|
||||||
qmlRegisterType<QScreen>();
|
|
||||||
engine()->rootContext()->setContextProperty("panel", this);
|
|
||||||
diff --git a/shell/shellcorona.cpp b/shell/shellcorona.cpp
|
|
||||||
index 37a1cfd..00e0441 100644
|
|
||||||
--- a/shell/shellcorona.cpp
|
|
||||||
+++ b/shell/shellcorona.cpp
|
|
||||||
@@ -44,7 +44,9 @@
|
|
||||||
#include <KMessageBox>
|
|
||||||
|
|
||||||
#include <KScreen/Config>
|
|
||||||
-#include <kscreen/configmonitor.h>
|
|
||||||
+#include <KScreen/ConfigMonitor>
|
|
||||||
+#include <KScreen/GetConfigOperation>
|
|
||||||
+#include <KScreen/Output>
|
|
||||||
|
|
||||||
#include "config-ktexteditor.h" // HAVE_KTEXTEDITOR
|
|
||||||
|
|
||||||
@@ -160,7 +162,6 @@ ShellCorona::ShellCorona(QObject *parent)
|
|
||||||
connect(m_activityConsumer, SIGNAL(activityRemoved(QString)), this, SLOT(activityRemoved(QString)));
|
|
||||||
|
|
||||||
new Osd(this);
|
|
||||||
- m_screenConfiguration = KScreen::Config::current();
|
|
||||||
|
|
||||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 4, 0))
|
|
||||||
connect(qGuiApp, &QGuiApplication::screenRemoved, this, &ShellCorona::screenRemoved);
|
|
||||||
@@ -227,9 +228,12 @@ void ShellCorona::setShell(const QString &shell)
|
|
||||||
|
|
||||||
if (m_activityConsumer->serviceStatus() == KActivities::Consumer::Unknown) {
|
|
||||||
connect(m_activityConsumer, SIGNAL(serviceStatusChanged(Consumer::ServiceStatus)), SLOT(load()), Qt::UniqueConnection);
|
|
||||||
- } else {
|
|
||||||
- load();
|
|
||||||
}
|
|
||||||
+ connect(new KScreen::GetConfigOperation(KScreen::GetConfigOperation::NoEDID), &KScreen::GetConfigOperation::finished,
|
|
||||||
+ this, [=](KScreen::ConfigOperation *op) {
|
|
||||||
+ m_screenConfiguration = qobject_cast<KScreen::GetConfigOperation*>(op)->config();
|
|
||||||
+ load();
|
|
||||||
+ });
|
|
||||||
}
|
|
||||||
|
|
||||||
QString ShellCorona::shell() const
|
|
||||||
@@ -237,7 +241,7 @@ QString ShellCorona::shell() const
|
|
||||||
return m_shell;
|
|
||||||
}
|
|
||||||
|
|
||||||
-bool outputLess(KScreen::Output *a, KScreen::Output *b)
|
|
||||||
+bool outputLess(const KScreen::OutputPtr &a, const KScreen::OutputPtr &b)
|
|
||||||
{
|
|
||||||
return ((a->isEnabled() && !b->isEnabled())
|
|
||||||
|| (a->isEnabled() == b->isEnabled() && (a->isPrimary() && !b->isPrimary()))
|
|
||||||
@@ -245,9 +249,9 @@ bool outputLess(KScreen::Output *a, KScreen::Output *b)
|
|
||||||
|| (a->pos().x() == b->pos().x() && a->pos().y() < b->pos().y()))));
|
|
||||||
}
|
|
||||||
|
|
||||||
-static QList<KScreen::Output*> sortOutputs(const QHash<int, KScreen::Output*> &outputs)
|
|
||||||
+static QList<KScreen::OutputPtr> sortOutputs(const KScreen::OutputList &outputs)
|
|
||||||
{
|
|
||||||
- QList<KScreen::Output*> ret = outputs.values();
|
|
||||||
+ QList<KScreen::OutputPtr> ret = outputs.values();
|
|
||||||
std::sort(ret.begin(), ret.end(), outputLess);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
@@ -255,7 +259,8 @@ static QList<KScreen::Output*> sortOutputs(const QHash<int, KScreen::Output*> &o
|
|
||||||
void ShellCorona::load()
|
|
||||||
{
|
|
||||||
if (m_shell.isEmpty() ||
|
|
||||||
- m_activityConsumer->serviceStatus() == KActivities::Consumer::Unknown) {
|
|
||||||
+ m_activityConsumer->serviceStatus() == KActivities::Consumer::Unknown ||
|
|
||||||
+ !m_screenConfiguration) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -292,10 +297,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 (KScreen::Output *output : sortOutputs(m_screenConfiguration->outputs())) {
|
|
||||||
+ for (const KScreen::OutputPtr &output : sortOutputs(m_screenConfiguration->outputs())) {
|
|
||||||
addOutput(output);
|
|
||||||
}
|
|
||||||
- connect(m_screenConfiguration, &KScreen::Config::outputAdded, this, &ShellCorona::addOutput);
|
|
||||||
+ connect(m_screenConfiguration.data(), &KScreen::Config::outputAdded, this, &ShellCorona::addOutput);
|
|
||||||
+ connect(m_screenConfiguration.data(), &KScreen::Config::primaryOutputChanged, this, &ShellCorona::primaryOutputChanged);
|
|
||||||
|
|
||||||
if (!m_waitingPanels.isEmpty()) {
|
|
||||||
m_waitingPanelsTimer.start();
|
|
||||||
@@ -321,7 +327,7 @@ void ShellCorona::primaryOutputChanged()
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
- KScreen::Output *output = findPrimaryOutput();
|
|
||||||
+ const KScreen::OutputPtr output = m_screenConfiguration->primaryOutput();
|
|
||||||
if (!output) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
@@ -367,7 +373,7 @@ void ShellCorona::screenInvariants() const
|
|
||||||
Q_ASSERT(!m_loading);
|
|
||||||
Q_ASSERT(m_views.count() <= QGuiApplication::screens().count());
|
|
||||||
QScreen *s = m_views.isEmpty() ? nullptr : m_views[0]->screen();
|
|
||||||
- KScreen::Output *primaryOutput = findPrimaryOutput();
|
|
||||||
+ const KScreen::OutputPtr primaryOutput = m_screenConfiguration->primaryOutput();
|
|
||||||
if (!s) {
|
|
||||||
qWarning() << "error: couldn't find primary output" << primaryOutput;
|
|
||||||
return;
|
|
||||||
@@ -400,7 +406,7 @@ void ShellCorona::screenInvariants() const
|
|
||||||
++i;
|
|
||||||
}
|
|
||||||
|
|
||||||
- foreach (KScreen::Output* out, m_redundantOutputs) {
|
|
||||||
+ foreach (const KScreen::OutputPtr &out, m_redundantOutputs) {
|
|
||||||
Q_ASSERT(isOutputRedundant(out));
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -520,7 +526,7 @@ QRect ShellCorona::screenGeometry(int id) const
|
|
||||||
{
|
|
||||||
if (id >= m_views.count() || id < 0) {
|
|
||||||
qWarning() << "requesting unexisting screen" << id;
|
|
||||||
- QScreen *s = outputToScreen(findPrimaryOutput());
|
|
||||||
+ QScreen *s = outputToScreen(m_screenConfiguration->primaryOutput());
|
|
||||||
return s ? s->geometry() : QRect();
|
|
||||||
}
|
|
||||||
return m_views[id]->geometry();
|
|
||||||
@@ -531,7 +537,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(findPrimaryOutput());
|
|
||||||
+ QScreen *s = outputToScreen(m_screenConfiguration->primaryOutput());
|
|
||||||
return s ? s->availableGeometry() : QRegion();
|
|
||||||
}
|
|
||||||
DesktopView *view = m_views[id];
|
|
||||||
@@ -552,7 +558,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(findPrimaryOutput());
|
|
||||||
+ QScreen *s = outputToScreen(m_screenConfiguration->primaryOutput());
|
|
||||||
return s ? s->availableGeometry() : QRect();
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -678,17 +684,17 @@ void ShellCorona::screenRemoved(QScreen* screen)
|
|
||||||
|
|
||||||
void ShellCorona::outputEnabledChanged()
|
|
||||||
{
|
|
||||||
- addOutput(qobject_cast<KScreen::Output *>(sender()));
|
|
||||||
+ addOutput(KScreen::OutputPtr(qobject_cast<KScreen::Output *>(sender()), [](void*){}));
|
|
||||||
}
|
|
||||||
|
|
||||||
-bool ShellCorona::isOutputRedundant(KScreen::Output *screen) const
|
|
||||||
+bool ShellCorona::isOutputRedundant(const KScreen::OutputPtr &screen) const
|
|
||||||
{
|
|
||||||
Q_ASSERT(screen->currentMode());
|
|
||||||
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::Output *s, m_screenConfiguration->connectedOutputs()) {
|
|
||||||
+ foreach (const KScreen::OutputPtr &s, m_screenConfiguration->connectedOutputs()) {
|
|
||||||
if (screen == s || !s->isEnabled() || !s->currentMode()) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
@@ -711,7 +717,7 @@ void ShellCorona::reconsiderOutputs()
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
- foreach (KScreen::Output *out, m_screenConfiguration->connectedOutputs()) {
|
|
||||||
+ foreach (const KScreen::OutputPtr &out, m_screenConfiguration->connectedOutputs()) {
|
|
||||||
if (!out->isEnabled() || !out->currentMode()) {
|
|
||||||
// qDebug() << "skip screen" << out << desktopForScreen(outputToScreen(out));
|
|
||||||
continue;
|
|
||||||
@@ -737,16 +743,21 @@ void ShellCorona::reconsiderOutputs()
|
|
||||||
CHECK_SCREEN_INVARIANTS
|
|
||||||
}
|
|
||||||
|
|
||||||
-void ShellCorona::addOutput(KScreen::Output *output)
|
|
||||||
+void ShellCorona::addOutput(const KScreen::OutputPtr &output)
|
|
||||||
{
|
|
||||||
if (!output) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
- connect(output, &KScreen::Output::isEnabledChanged, this, &ShellCorona::outputEnabledChanged, Qt::UniqueConnection);
|
|
||||||
- connect(output, &KScreen::Output::posChanged, &m_reconsiderOutputsTimer, static_cast<void (QTimer::*)()>(&QTimer::start), Qt::UniqueConnection);
|
|
||||||
- connect(output, &KScreen::Output::currentModeIdChanged, &m_reconsiderOutputsTimer, static_cast<void (QTimer::*)()>(&QTimer::start), Qt::UniqueConnection);
|
|
||||||
- connect(output, &KScreen::Output::isPrimaryChanged, this, &ShellCorona::primaryOutputChanged, Qt::UniqueConnection);
|
|
||||||
+ 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,
|
|
||||||
+ &m_reconsiderOutputsTimer, static_cast<void (QTimer::*)()>(&QTimer::start),
|
|
||||||
+ Qt::UniqueConnection);
|
|
||||||
|
|
||||||
if (!output->isEnabled()) {
|
|
||||||
m_redundantOutputs.remove(output);
|
|
||||||
@@ -766,7 +777,7 @@ void ShellCorona::addOutput(KScreen::Output *output)
|
|
||||||
|
|
||||||
int insertPosition = 0;
|
|
||||||
foreach (DesktopView *view, m_views) {
|
|
||||||
- KScreen::Output *out = screenToOutput(view->screen());
|
|
||||||
+ const KScreen::OutputPtr out = screenToOutput(view->screen());
|
|
||||||
if (outputLess(output, out)) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
@@ -807,7 +818,7 @@ void ShellCorona::addOutput(KScreen::Output *output)
|
|
||||||
CHECK_SCREEN_INVARIANTS
|
|
||||||
}
|
|
||||||
|
|
||||||
-QScreen *ShellCorona::outputToScreen(KScreen::Output *output) const
|
|
||||||
+QScreen *ShellCorona::outputToScreen(const KScreen::OutputPtr &output) const
|
|
||||||
{
|
|
||||||
if (!output) {
|
|
||||||
return nullptr;
|
|
||||||
@@ -822,25 +833,15 @@ QScreen *ShellCorona::outputToScreen(KScreen::Output *output) const
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
-KScreen::Output *ShellCorona::screenToOutput(QScreen *screen) const
|
|
||||||
+KScreen::OutputPtr ShellCorona::screenToOutput(QScreen *screen) const
|
|
||||||
{
|
|
||||||
- foreach (KScreen::Output *output, m_screenConfiguration->connectedOutputs()) {
|
|
||||||
+ foreach (const KScreen::OutputPtr &output, m_screenConfiguration->connectedOutputs()) {
|
|
||||||
if (screen->name() == output->name()) {
|
|
||||||
return output;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- return nullptr;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-KScreen::Output *ShellCorona::findPrimaryOutput() const
|
|
||||||
-{
|
|
||||||
- foreach (KScreen::Output *output, m_screenConfiguration->connectedOutputs()) {
|
|
||||||
- if (output->isPrimary())
|
|
||||||
- return output;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- return nullptr;
|
|
||||||
+ return KScreen::OutputPtr();
|
|
||||||
}
|
|
||||||
|
|
||||||
QScreen* ShellCorona::insertScreen(QScreen *screen, int idx)
|
|
||||||
@@ -1506,7 +1507,7 @@ void ShellCorona::desktopContainmentDestroyed(QObject *obj)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
-KScreen::Config* ShellCorona::screensConfiguration() const
|
|
||||||
+KScreen::ConfigPtr ShellCorona::screensConfiguration() const
|
|
||||||
{
|
|
||||||
return m_screenConfiguration;
|
|
||||||
}
|
|
||||||
diff --git a/shell/shellcorona.h b/shell/shellcorona.h
|
|
||||||
index 5e97e02..37f8b0e 100644
|
|
||||||
--- a/shell/shellcorona.h
|
|
||||||
+++ b/shell/shellcorona.h
|
|
||||||
@@ -30,6 +30,8 @@
|
|
||||||
|
|
||||||
#include <Plasma/Package>
|
|
||||||
|
|
||||||
+#include <KScreen/Types>
|
|
||||||
+
|
|
||||||
class Activity;
|
|
||||||
class DesktopView;
|
|
||||||
class PanelView;
|
|
||||||
@@ -49,7 +51,6 @@ namespace KDeclarative
|
|
||||||
|
|
||||||
namespace KScreen {
|
|
||||||
class Output;
|
|
||||||
- class Config;
|
|
||||||
} // namespace KScreen
|
|
||||||
|
|
||||||
namespace Plasma
|
|
||||||
@@ -90,7 +91,7 @@ public:
|
|
||||||
|
|
||||||
Plasma::Containment *setContainmentTypeForScreen(int screen, const QString &plugin);
|
|
||||||
|
|
||||||
- KScreen::Config *screensConfiguration() const;
|
|
||||||
+ KScreen::ConfigPtr screensConfiguration() const;
|
|
||||||
|
|
||||||
QScreen *screenForId(int screenId) const;
|
|
||||||
void remove(DesktopView *desktopView);
|
|
||||||
@@ -166,7 +167,7 @@ private Q_SLOTS:
|
|
||||||
void populateAddPanelsMenu();
|
|
||||||
|
|
||||||
void outputEnabledChanged();
|
|
||||||
- void addOutput(KScreen::Output *output);
|
|
||||||
+ void addOutput(const KScreen::OutputPtr &output);
|
|
||||||
void primaryOutputChanged();
|
|
||||||
|
|
||||||
void activityOpened();
|
|
||||||
@@ -179,12 +180,11 @@ private Q_SLOTS:
|
|
||||||
void screenRemoved(QScreen* screen);
|
|
||||||
|
|
||||||
private:
|
|
||||||
- QScreen *outputToScreen(KScreen::Output *output) const;
|
|
||||||
- KScreen::Output *screenToOutput(QScreen *screen) const;
|
|
||||||
- KScreen::Output *findPrimaryOutput() const;
|
|
||||||
+ QScreen *outputToScreen(const KScreen::OutputPtr &output) const;
|
|
||||||
+ KScreen::OutputPtr screenToOutput(QScreen *screen) const;
|
|
||||||
QScreen *insertScreen(QScreen *screen, int idx);
|
|
||||||
void removeView(int idx);
|
|
||||||
- bool isOutputRedundant(KScreen::Output *output) const;
|
|
||||||
+ bool isOutputRedundant(const KScreen::OutputPtr &output) const;
|
|
||||||
void reconsiderOutputs();
|
|
||||||
QList<PanelView *> panelsForScreen(QScreen *screen) const;
|
|
||||||
DesktopView* desktopForScreen(QScreen *screen) const;
|
|
||||||
@@ -207,11 +207,11 @@ private:
|
|
||||||
QAction *m_addPanelAction;
|
|
||||||
QMenu *m_addPanelsMenu;
|
|
||||||
Plasma::Package m_lookAndFeelPackage;
|
|
||||||
- QSet<KScreen::Output *> m_redundantOutputs;
|
|
||||||
+ QSet<KScreen::OutputPtr> m_redundantOutputs;
|
|
||||||
QList<KDeclarative::QmlObject *> m_alternativesObjects;
|
|
||||||
KDeclarative::QmlObject *m_interactiveConsole;
|
|
||||||
|
|
||||||
- KScreen::Config *m_screenConfiguration;
|
|
||||||
+ KScreen::ConfigPtr m_screenConfiguration;
|
|
||||||
QTimer m_waitingPanelsTimer;
|
|
||||||
QTimer m_appConfigSyncTimer;
|
|
||||||
QTimer m_reconsiderOutputsTimer;
|
|
@ -1,30 +0,0 @@
|
|||||||
diff --git a/startkde/ksyncdbusenv/ksyncdbusenv.cpp b/startkde/ksyncdbusenv/ksyncdbusenv.cpp
|
|
||||||
index 05ffb0e..8a01e7d 100644
|
|
||||||
--- a/startkde/ksyncdbusenv/ksyncdbusenv.cpp
|
|
||||||
+++ b/startkde/ksyncdbusenv/ksyncdbusenv.cpp
|
|
||||||
@@ -23,6 +23,7 @@
|
|
||||||
#include <QDBusMetaType>
|
|
||||||
#include <QDBusPendingCall>
|
|
||||||
#include <QProcessEnvironment>
|
|
||||||
+#include <QDebug>
|
|
||||||
|
|
||||||
typedef QMap<QString,QString> EnvMap;
|
|
||||||
Q_DECLARE_METATYPE(EnvMap)
|
|
||||||
@@ -39,7 +40,7 @@ int main(int argc, char **argv)
|
|
||||||
}
|
|
||||||
|
|
||||||
QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.freedesktop.DBus"),
|
|
||||||
- QStringLiteral("/"),
|
|
||||||
+ QStringLiteral("/org/freedesktop/DBus"),
|
|
||||||
QStringLiteral("org.freedesktop.DBus"),
|
|
||||||
QStringLiteral("UpdateActivationEnvironment"));
|
|
||||||
qDBusRegisterMetaType<EnvMap>();
|
|
||||||
@@ -47,5 +48,8 @@ int main(int argc, char **argv)
|
|
||||||
|
|
||||||
QDBusPendingCall reply = QDBusConnection::sessionBus().asyncCall(msg);
|
|
||||||
reply.waitForFinished();
|
|
||||||
+ if (reply.isError()) {
|
|
||||||
+ qDebug() << reply.error().name() << reply.error().message();
|
|
||||||
+ }
|
|
||||||
return reply.isError() ? 1 : 0;
|
|
||||||
}
|
|
Loading…
Reference in new issue