Hello community,
here is the log from the commit of package powerdevil5 for openSUSE:Factory checked in at 2015-03-16 09:33:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/powerdevil5 (Old)
and /work/SRC/openSUSE:Factory/.powerdevil5.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "powerdevil5"
Changes:
--------
--- /work/SRC/openSUSE:Factory/powerdevil5/powerdevil5.changes 2015-03-01 15:06:35.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.powerdevil5.new/powerdevil5.changes 2015-03-16 09:33:30.000000000 +0100
@@ -1,0 +2,11 @@
+Fri Mar 13 09:55:49 UTC 2015 - hrvoje.senjan@gmail.com
+
+- Added patches from upstream:
+ 0003-prepare-for-kernel-4.0.patch,
+ 0005-Fix-default-critical-action.patch (kde#344905),
+ 0006-Change-default-low-battery-threshold-to-10.patch and
+ activityConfig.patch (restores the ability to configure
+ activity-specific power management settings)
+- Added kactivities5-devel BuildRequires, per activityConfig.patch
+
+-------------------------------------------------------------------
New:
----
0003-prepare-for-kernel-4.0.patch
0005-Fix-default-critical-action.patch
0006-Change-default-low-battery-threshold-to-10.patch
activityConfig.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ powerdevil5.spec ++++++
--- /var/tmp/diff_new_pack.CQt92y/_old 2015-03-16 09:33:31.000000000 +0100
+++ /var/tmp/diff_new_pack.CQt92y/_new 2015-03-16 09:33:31.000000000 +0100
@@ -25,6 +25,13 @@
Url: http://www.kde.org
Source: powerdevil-%{version}.tar.xz
Source99: %{name}-rpmlintrc
+# PATCHES 100-1000 and above are from upstream 5.2 branch
+Patch100: 0003-prepare-for-kernel-4.0.patch
+Patch101: 0005-Fix-default-critical-action.patch
+Patch102: 0006-Change-default-low-battery-threshold-to-10.patch
+# PATCHES 1000 and above are from upstream master/5.3 branch
+Patch1000: activityConfig.patch
+BuildRequires: kactivities5-devel
BuildRequires: kauth-devel
BuildRequires: kconfig-devel
BuildRequires: kdelibs4support-devel
@@ -59,6 +66,10 @@
%lang_package
%prep
%setup -q -n powerdevil-%{version}
+%patch100 -p1
+%patch101 -p1
+%patch102 -p1
+%patch1000 -p1
%build
%cmake_kf5 -d build -- -DCMAKE_INSTALL_LOCALEDIR=share/locale/kf5
++++++ 0003-prepare-for-kernel-4.0.patch ++++++
From 2d3a341bfc11c89dcd80269dd8abb5f991349f00 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Tinkl?=
Date: Fri, 27 Feb 2015 22:57:58 +0100
Subject: [PATCH 3/6] prepare for kernel 4.0 ;)
---
daemon/backends/upower/backlighthelper.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/daemon/backends/upower/backlighthelper.cpp b/daemon/backends/upower/backlighthelper.cpp
index bf630fa241d7c3bf6bb6dd11d7f354324dbc429a..e79cc88ec9c7d8c440d2ad175e5803567f723562 100644
--- a/daemon/backends/upower/backlighthelper.cpp
+++ b/daemon/backends/upower/backlighthelper.cpp
@@ -163,8 +163,8 @@ bool BacklightHelper::useWhitelistInit()
return true; // Malformed version
}
- if (major == 3) {
- return false; //Kernel 3, we want type based init
+ if (major >= 3) {
+ return false; //Kernel 3+, we want type based init
}
result = sscanf(uts.release, "%d.%d.%d", &major, &minor, &patch);
--
2.3.1
++++++ 0005-Fix-default-critical-action.patch ++++++
From 00eed59164a92c70030913728e81c37397b53551 Mon Sep 17 00:00:00 2001
From: Kai Uwe Broulik
Date: Sun, 8 Mar 2015 13:58:39 +0100
Subject: [PATCH 5/6] Fix default critical action
The default is hibernate but might not be available on the given machine.
Also save the PowerDevilSettings afterwards, or else it won't pick up our change
to the setting. The action is not in the powermanagementprofilesrc but powerdevilrc.
BUG: 344905
FIXED-IN: 5.2.2
---
daemon/powerdevilprofilegenerator.cpp | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/daemon/powerdevilprofilegenerator.cpp b/daemon/powerdevilprofilegenerator.cpp
index 57899f63caef300536d592460f46740a14b82af1..336fe9ca6e1a9871ee1611aab810f504631a2df2 100644
--- a/daemon/powerdevilprofilegenerator.cpp
+++ b/daemon/powerdevilprofilegenerator.cpp
@@ -31,13 +31,15 @@ namespace PowerDevil {
void ProfileGenerator::generateProfiles(bool toRam, bool toDisk)
{
- // Let's change some defaults
- if (!toRam) {
- if (!toDisk) {
+ // Change critical action if default (hibernate) is unavailable
+ if (!toDisk) {
+ if (!toRam) {
PowerDevilSettings::setBatteryCriticalAction(0);
} else {
- PowerDevilSettings::setBatteryCriticalAction(2);
+ PowerDevilSettings::setBatteryCriticalAction(1);
}
+
+ PowerDevilSettings::self()->save();
}
// Ok, let's get our config file.
--
2.3.1
++++++ 0006-Change-default-low-battery-threshold-to-10.patch ++++++
From 3836e992b179eff8538c4321dd9f3861b0a0c00b Mon Sep 17 00:00:00 2001
From: Kai Uwe Broulik
Date: Sun, 8 Mar 2015 16:06:15 +0100
Subject: [PATCH 6/6] Change default low battery threshold to 10%
Back in the days when laptops ran for one hour that was reasonable; however
today 20% of battery easily tranlates to 1 hour of battery life, or more.
Thus when you get that notification you ignore it and when the critical battery
timer eventually kicks in you potentially stumble down the staircase rushing
for your AC adpater.
---
PowerDevilSettings.kcfg | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/PowerDevilSettings.kcfg b/PowerDevilSettings.kcfg
index 54853f16bb4e41a3c978f0045178a0986dc2aa91..b24838ae4d4775da67107bf319b8707fd49bc1b0 100644
--- a/PowerDevilSettings.kcfg
+++ b/PowerDevilSettings.kcfg
@@ -30,7 +30,7 @@
<group name="BatteryManagement">
<entry name="BatteryLowLevel" type="Int">
- <default>20</default>
+ <default>10</default>
</entry>
<entry name="BatteryCriticalLevel" type="Int">
<default>5</default>
--
2.3.1
++++++ activityConfig.patch ++++++
From: Kai Uwe Broulik
Date: Tue, 27 Jan 2015 21:01:04 +0000
Subject: Merge branch 'broulik/activityConfig'
---
Merge branch 'broulik/activityConfig'
REVIEW: 122236
Conflicts:
CMakeLists.txt
---
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -15,7 +15,7 @@ include(KDECMakeSettings)
include(KDECompilerSettings)
find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Widgets DBus X11Extras)
-find_package(KF5 REQUIRED COMPONENTS Auth IdleTime Config Solid I18n GlobalAccel KIO NotifyConfig KDELibs4Support)
+find_package(KF5 REQUIRED COMPONENTS Activities Auth IdleTime Config Solid I18n GlobalAccel KIO NotifyConfig KDELibs4Support)
find_package(LibKWorkspace CONFIG REQUIRED)
find_package(ScreenSaverDBusInterface CONFIG REQUIRED)
diff --git a/daemon/CMakeLists.txt b/daemon/CMakeLists.txt
index f1e6efb..4c57ecb 100644
--- a/daemon/CMakeLists.txt
+++ b/daemon/CMakeLists.txt
@@ -56,6 +56,7 @@ set_target_properties(powerdevilcore PROPERTIES VERSION ${POWERDEVIL_CORE_VERSIO
# not exported, so just make the deps public
target_link_libraries(powerdevilcore
+ KF5::Activities
KF5::ConfigCore
KF5::ConfigGui
KF5::I18n
diff --git a/daemon/powerdevilcore.cpp b/daemon/powerdevilcore.cpp
index d51ab19..ba2d7d8 100644
--- a/daemon/powerdevilcore.cpp
+++ b/daemon/powerdevilcore.cpp
@@ -41,7 +41,7 @@
#include <KNotification>
#include <KServiceTypeTrader>
-// #include
+#include
#include
#include
@@ -58,7 +58,7 @@ Core::Core(QObject* parent)
, m_backend(0)
, m_notificationsWatcher(nullptr)
, m_criticalBatteryTimer(new QTimer(this))
-// , m_activityConsumer(new KActivities::Consumer(this))
+ , m_activityConsumer(new KActivities::Consumer(this))
, m_pendingWakeupEvent(true)
{
}
@@ -127,8 +127,9 @@ void Core::onBackendReady()
this, SLOT(onKIdleTimeoutReached(int,int)));
connect(KIdleTime::instance(), SIGNAL(resumingFromIdle()),
this, SLOT(onResumingFromIdle()));
-// connect(m_activityConsumer, SIGNAL(currentActivityChanged(QString)),
-// this, SLOT(loadProfile()));
+ connect(m_activityConsumer, &KActivities::Consumer::currentActivityChanged, this, [this]() {
+ loadProfile();
+ });
// Set up the policy agent
PowerDevil::PolicyAgent::instance()->init();
@@ -249,10 +250,7 @@ void Core::loadProfile(bool force)
KConfigGroup config;
// Check the activity in which we are in
- QString activity;/* = m_activityConsumer->currentActivity();*/
- if (activity.isEmpty()) {
- activity = "default";
- }
+ QString activity = m_activityConsumer->currentActivity();
qCDebug(POWERDEVIL) << "We are now into activity " << activity;
KConfigGroup activitiesConfig(m_profilesConfig, "Activities");
qCDebug(POWERDEVIL) << activitiesConfig.groupList() << activitiesConfig.keyList();
diff --git a/daemon/powerdevilcore.h b/daemon/powerdevilcore.h
index e255703..7584849 100644
--- a/daemon/powerdevilcore.h
+++ b/daemon/powerdevilcore.h
@@ -120,7 +120,7 @@ private:
QTimer *m_criticalBatteryTimer;
-// KActivities::Consumer *m_activityConsumer;
+ KActivities::Consumer *m_activityConsumer;
// Idle time management
QHash< Action*, QList< int > > m_registeredActionTimeouts;
diff --git a/kcmodule/CMakeLists.txt b/kcmodule/CMakeLists.txt
index dfd0870..a4ece1c 100644
--- a/kcmodule/CMakeLists.txt
+++ b/kcmodule/CMakeLists.txt
@@ -6,6 +6,6 @@ include_directories (
add_subdirectory(common)
-# add_subdirectory(activities)
+add_subdirectory(activities)
add_subdirectory(global)
add_subdirectory(profiles)
diff --git a/kcmodule/activities/CMakeLists.txt b/kcmodule/activities/CMakeLists.txt
index a5129d6..0e3c979 100644
--- a/kcmodule/activities/CMakeLists.txt
+++ b/kcmodule/activities/CMakeLists.txt
@@ -1,6 +1,7 @@
add_definitions(-DTRANSLATION_DOMAIN=\"powerdevilactivitiesconfig\")
set( kcm_powerdevil_activities_SRCS
+ ${PowerDevil_SOURCE_DIR}/daemon/powerdevil_debug.cpp
activitypage.cpp
activitywidget.cpp
../common/ErrorOverlay.cpp
@@ -14,9 +15,9 @@ kconfig_add_kcfg_files(kcm_powerdevil_activities_SRCS ../../PowerDevilSettings.k
add_library(kcm_powerdevilactivitiesconfig MODULE ${kcm_powerdevil_activities_SRCS})
target_link_libraries(kcm_powerdevilactivitiesconfig
-
KF5::Solid
KF5::Activities
+ KF5::KDELibs4Support
powerdevilconfigcommonprivate
)
diff --git a/kcmodule/activities/activityWidget.ui b/kcmodule/activities/activityWidget.ui
index ec22df2..e17aaeb 100644
--- a/kcmodule/activities/activityWidget.ui
+++ b/kcmodule/activities/activityWidget.ui
@@ -33,7 +33,7 @@
</widget>
</item>
<item>
- <widget class="KComboBox" name="actLikeComboBox">
+ <widget class="QComboBox" name="actLikeComboBox">
<property name="enabled">
<bool>false</bool>
</property>
@@ -93,7 +93,7 @@
</widget>
</item>
<item>
- <widget class="KComboBox" name="alwaysActionBox"/>
+ <widget class="QComboBox" name="alwaysActionBox"/>
</item>
<item>
<widget class="QLabel" name="alwaysAfterLabel">
@@ -163,13 +163,6 @@
</item>
</layout>
</widget>
- <customwidgets>
- <customwidget>
- <class>KComboBox</class>
- <extends>QComboBox</extends>
- <header>kcombobox.h</header>
- </customwidget>
- </customwidgets>
<resources/>
<connections>
<connection>
diff --git a/kcmodule/activities/activitypage.cpp b/kcmodule/activities/activitypage.cpp
index ed0ac45..ec18dee 100644
--- a/kcmodule/activities/activitypage.cpp
+++ b/kcmodule/activities/activitypage.cpp
@@ -1,5 +1,6 @@
/***************************************************************************
* Copyright (C) 2011 by Dario Freddi *
+ * Copyright (C) 2015 by Kai Uwe Broulik *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
@@ -29,6 +30,8 @@
#include <QScrollArea>
#include <QVBoxLayout>
+#include
+
#include
#include
#include
@@ -41,7 +44,6 @@
#include <KMessageWidget>
#include <KPluginFactory>
#include <KSharedConfig>
-#include <KTabWidget>
#include <KLocalizedString>
K_PLUGIN_FACTORY(PowerDevilActivitiesKCMFactory,
@@ -50,12 +52,12 @@ K_PLUGIN_FACTORY(PowerDevilActivitiesKCMFactory,
K_EXPORT_PLUGIN(PowerDevilActivitiesKCMFactory("powerdevilactivitiesconfig","powerdevil"))
ActivityPage::ActivityPage(QWidget *parent, const QVariantList &args)
- : KCModule(PowerDevilActivitiesKCMFactory::componentData(), parent, args)
+ : KCModule(0, parent, args)
, m_activityConsumer(new KActivities::Consumer(this))
{
setButtons(Apply | Help);
- KAboutData *about =
+ /*KAboutData *about =
new KAboutData("powerdevilactivitiesconfig", "powerdevilactivitiesconfig", ki18n("Activities Power Management Configuration"),
"", ki18n("A per-activity configurator of KDE Power Management System"),
KAboutData::License_GPL, ki18n("(c), 2010 Dario Freddi"),
@@ -64,35 +66,12 @@ ActivityPage::ActivityPage(QWidget *parent, const QVariantList &args)
about->addAuthor(ki18n("Dario Freddi"), ki18n("Maintainer") , "drf@kde.org",
"http://drfav.wordpress.com");
- setAboutData(about);
+ setAboutData(about);*/
// Build the UI
- KTabWidget *tabWidget = new KTabWidget();
+ m_tabWidget = new QTabWidget();
QVBoxLayout *lay = new QVBoxLayout();
- foreach (const QString &activity, m_activityConsumer->listActivities()) {
- KActivities::Info *info = new KActivities::Info(activity, this);
- QString icon = info->icon();
- QString name = info->name();
- qCDebug(POWERDEVIL) << activity << info->isValid() << info->availability();
-
- QScrollArea *scrollArea = new QScrollArea();
- scrollArea->setFrameShape(QFrame::NoFrame);
- scrollArea->setFrameShadow(QFrame::Plain);
- scrollArea->setLineWidth(0);
- scrollArea->setWidgetResizable(true);
-
- ActivityWidget *activityWidget = new ActivityWidget(activity);
- scrollArea->setWidget(activityWidget);
-
- activityWidget->load();
- m_activityWidgets.append(activityWidget);
-
- connect(activityWidget, SIGNAL(changed(bool)), this, SIGNAL(changed(bool)));
-
- tabWidget->addTab(scrollArea, QIcon::fromTheme(icon), name);
- }
-
// Message widget
m_messageWidget = new KMessageWidget(i18n("The activity service is running with bare functionalities.\n"
"Names and icons of the activities might not be available."));
@@ -100,12 +79,11 @@ ActivityPage::ActivityPage(QWidget *parent, const QVariantList &args)
m_messageWidget.data()->hide();
lay->addWidget(m_messageWidget.data());
- lay->addWidget(tabWidget);
+ lay->addWidget(m_tabWidget);
setLayout(lay);
- connect(m_activityConsumer, SIGNAL(serviceStatusChanged(KActivities::Consumer::ServiceStatus)),
- this, SLOT(onActivityServiceStatusChanged(KActivities::Consumer::ServiceStatus)));
onActivityServiceStatusChanged(m_activityConsumer->serviceStatus());
+ connect(m_activityConsumer, &KActivities::Consumer::serviceStatusChanged, this, &ActivityPage::onActivityServiceStatusChanged);
QDBusServiceWatcher *watcher = new QDBusServiceWatcher("org.kde.Solid.PowerManagement",
QDBusConnection::sessionBus(),
@@ -161,6 +139,7 @@ void ActivityPage::fillUi()
void ActivityPage::onActivityServiceStatusChanged(KActivities::Consumer::ServiceStatus status)
{
switch (status) {
+ case KActivities::Consumer::Unknown: // fall through
case KActivities::Consumer::NotRunning:
// Create error overlay, if not present
if (m_errorOverlay.isNull()) {
@@ -170,25 +149,69 @@ void ActivityPage::onActivityServiceStatusChanged(KActivities::Consumer::Service
this);
}
break;
- case KActivities::Consumer::BareFunctionality:
- // Show message widget
- m_messageWidget.data()->show();
- break;
- case KActivities::Consumer::FullFunctionality:
- if (m_previousServiceStatus != KActivities::Consumer::FullFunctionality &&
- !m_errorOverlay.isNull()) {
- m_errorOverlay.data()->deleteLater();
- if (QDBusConnection::sessionBus().interface()->isServiceRegistered("org.kde.Solid.PowerManagement")) {
- onServiceRegistered("org.kde.Solid.PowerManagement");
- } else {
- onServiceUnregistered("org.kde.Solid.PowerManagement");
+ case KActivities::Consumer::Running:
+ if (m_previousServiceStatus != KActivities::Consumer::Running) {
+
+ if (!m_errorOverlay.isNull()) {
+ m_errorOverlay.data()->deleteLater();
+ if (QDBusConnection::sessionBus().interface()->isServiceRegistered("org.kde.Solid.PowerManagement")) {
+ onServiceRegistered("org.kde.Solid.PowerManagement");
+ } else {
+ onServiceUnregistered("org.kde.Solid.PowerManagement");
+ }
}
+
+ populateTabs();
}
+
if (m_messageWidget.data()->isVisible()) {
m_messageWidget.data()->hide();
}
+
break;
}
+
+ m_previousServiceStatus = status;
+}
+
+void ActivityPage::populateTabs()
+{
+ if (m_activityConsumer->serviceStatus() != KActivities::Consumer::Running) {
+ return;
+ }
+
+ int index = 0;
+ foreach (const QString &activity, m_activityConsumer->activities()) {
+ KActivities::Info *info = new KActivities::Info(activity, this);
+ const QString icon = info->icon();
+ const QString name = info->name();
+ qCDebug(POWERDEVIL) << activity << info->isValid() << info->availability();
+
+ QScrollArea *scrollArea = new QScrollArea();
+ scrollArea->setFrameShape(QFrame::NoFrame);
+ scrollArea->setFrameShadow(QFrame::Plain);
+ scrollArea->setLineWidth(0);
+ scrollArea->setWidgetResizable(true);
+
+ ActivityWidget *activityWidget = new ActivityWidget(activity);
+ scrollArea->setWidget(activityWidget);
+
+ activityWidget->load();
+ m_activityWidgets.append(activityWidget);
+
+ connect(activityWidget, SIGNAL(changed(bool)), this, SIGNAL(changed(bool)));
+ if (!icon.isEmpty()) {
+ m_tabWidget->addTab(scrollArea, QIcon::fromTheme(icon), name);
+ } else {
+ m_tabWidget->addTab(scrollArea, name);
+ }
+
+ if (m_activityConsumer->currentActivity() == activity) {
+ m_tabWidget->setCurrentIndex(index);
+ }
+
+ ++index;
+ }
}
void ActivityPage::defaults()
@@ -203,8 +226,6 @@ void ActivityPage::onServiceRegistered(const QString& service)
if (!m_errorOverlay.isNull()) {
m_errorOverlay.data()->deleteLater();
}
-
- onActivityServiceStatusChanged(m_activityConsumer->serviceStatus());
}
void ActivityPage::onServiceUnregistered(const QString& service)
diff --git a/kcmodule/activities/activitypage.h b/kcmodule/activities/activitypage.h
index 230f835..cc4e3cd 100644
--- a/kcmodule/activities/activitypage.h
+++ b/kcmodule/activities/activitypage.h
@@ -25,9 +25,13 @@
#include
+class QTabWidget;
+
+class KMessageWidget;
+
class ErrorOverlay;
class ActivityWidget;
-class KMessageWidget;
+
class ActivityPage : public KCModule
{
Q_OBJECT
@@ -47,6 +51,10 @@ private Q_SLOTS:
void onServiceUnregistered(const QString &service);
private:
+ void populateTabs();
+
+ QTabWidget *m_tabWidget;
+
KActivities::Consumer *m_activityConsumer;
QList< ActivityWidget* > m_activityWidgets;
QWeakPointer< ErrorOverlay > m_errorOverlay;
diff --git a/kcmodule/activities/activitywidget.cpp b/kcmodule/activities/activitywidget.cpp
index bfd0e1f..c3e9ce1 100644
--- a/kcmodule/activities/activitywidget.cpp
+++ b/kcmodule/activities/activitywidget.cpp
@@ -22,8 +22,9 @@
#include "ui_activityWidget.h"
-#include "daemon/actions/bundled/suspendsession.h"
+#include "../daemon/actions/bundled/suspendsession.h"
+#include <KConfigGroup>
#include
#include
#include
@@ -106,7 +107,7 @@ void ActivityWidget::load()
m_ui->actLikeComboBox->addItem(QIcon::fromTheme("battery-060"), i18n("PC running on battery power"), "Battery");
m_ui->actLikeComboBox->addItem(QIcon::fromTheme("battery-low"), i18n("PC running on low battery"), "LowBattery");
- foreach (const QString &activity, m_activityConsumer->listActivities()) {
+ foreach (const QString &activity, m_activityConsumer->activities()) {
if (activity == m_activity) {
continue;
}
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org