[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdebase/workspace/plasma/generic/applets/lock_logout
From: Nicolas Lécureuil <neoclust.kde () free ! fr>
Date: 2010-12-23 18:45:55
Message-ID: 20101223184555.AA31D3E1F1 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1208946 by nlecureuil:
Show indication that Lock/Logout widget settings were not saved
BUG: 256879
http://reviewboard.kde.org/r/6041/
M +81 -30 lockout.cpp
M +3 -0 lockout.h
--- trunk/KDE/kdebase/workspace/plasma/generic/applets/lock_logout/lockout.cpp \
#1208945:1208946 @@ -53,7 +53,13 @@
static const int MARGINSIZE = 1;
LockOut::LockOut(QObject *parent, const QVariantList &args)
- : Plasma::Applet(parent, args), m_iconLock(0), m_iconSwitchUser(0), \
m_iconLogout(0), m_iconSleep(0), m_iconHibernate(0) + : Plasma::Applet(parent, \
args), + m_iconLock(0),
+ m_iconSwitchUser(0),
+ m_iconLogout(0),
+ m_iconSleep(0),
+ m_iconHibernate(0),
+ m_changed(false)
{
#ifndef Q_OS_WIN
setHasConfigurationInterface(true);
@@ -92,7 +98,65 @@
}
showButtons();
}
+void LockOut::buttonChanged()
+{
+ if (m_showLockButton != ui.checkBox_lock->isChecked()) {
+ m_showLockButton = !m_showLockButton;
+ m_changed = true;
+ }
+ if (m_showSwitchUserButton != ui.checkBox_switchUser->isChecked()) {
+ m_showSwitchUserButton = !m_showSwitchUserButton;
+ m_changed = true;
+ }
+
+ if (m_showLogoutButton != ui.checkBox_logout->isChecked()) {
+ m_showLogoutButton = !m_showLogoutButton;
+ m_changed = true;
+ }
+
+ if (m_showSleepButton != ui.checkBox_sleep->isChecked()) {
+ m_showSleepButton = !m_showSleepButton;
+ m_changed = true;
+ }
+
+ if (m_showHibernateButton != ui.checkBox_hibernate->isChecked()) {
+ m_showHibernateButton = !m_showHibernateButton;
+ m_changed = true;
+ }
+
+ setCheckable();
+}
+void LockOut::setCheckable()
+{
+ countButtons();
+ if (m_visibleButtons == 1) {
+ if (ui.checkBox_lock->isChecked()) {
+ ui.checkBox_lock->setEnabled(false);
+ }
+ if (ui.checkBox_switchUser->isChecked()) {
+ ui.checkBox_switchUser->setEnabled(false);
+ }
+ if (ui.checkBox_logout->isChecked()) {
+ ui.checkBox_logout->setEnabled(false);
+ }
+ if (ui.checkBox_sleep->isChecked()) {
+ ui.checkBox_sleep->setEnabled(false);
+ }
+ if(ui.checkBox_hibernate->isChecked()) {
+ ui.checkBox_hibernate->setEnabled(false);
+ }
+ }
+
+ if (m_visibleButtons > 1) {
+ ui.checkBox_lock->setEnabled(true);
+ ui.checkBox_switchUser->setEnabled(true);
+ ui.checkBox_logout->setEnabled(true);
+ ui.checkBox_sleep->setEnabled(true);
+ ui.checkBox_hibernate->setEnabled(true);
+ }
+}
+
void LockOut::countButtons()
{
m_visibleButtons = 0;
@@ -270,35 +334,8 @@
void LockOut::configAccepted()
{
#ifndef Q_OS_WIN
- bool changed = false;
KConfigGroup cg = config();
-
- if (m_showLockButton != ui.checkBox_lock->isChecked()) {
- m_showLockButton = !m_showLockButton;
- changed = true;
- }
-
- if (m_showSwitchUserButton != ui.checkBox_switchUser->isChecked()) {
- m_showSwitchUserButton = !m_showSwitchUserButton;
- changed = true;
- }
-
- if (m_showLogoutButton != ui.checkBox_logout->isChecked()) {
- m_showLogoutButton = !m_showLogoutButton;
- changed = true;
- }
-
- if (m_showSleepButton != ui.checkBox_sleep->isChecked()) {
- m_showSleepButton = !m_showSleepButton;
- changed = true;
- }
-
- if (m_showHibernateButton != ui.checkBox_hibernate->isChecked()) {
- m_showHibernateButton = !m_showHibernateButton;
- changed = true;
- }
-
- if (changed) {
+ if (m_changed) {
int oldButtonCount = m_visibleButtons;
countButtons();
if(m_visibleButtons == 0) {
@@ -326,15 +363,29 @@
#ifndef Q_OS_WIN
QWidget *widget = new QWidget(parent);
ui.setupUi(widget);
- parent->addPage(widget, i18n("Entries"), Applet::icon());
+ parent->addPage(widget, i18n("Please select one or more items on the list \
below"), Applet::icon());
connect(parent, SIGNAL(applyClicked()), this, SLOT(configAccepted()));
connect(parent, SIGNAL(okClicked()), this, SLOT(configAccepted()));
+ countButtons();
+ if (m_visibleButtons == 1) {
+ ui.checkBox_lock->setEnabled(!m_showLockButton);
+ ui.checkBox_switchUser->setEnabled(!m_showSwitchUserButton);
+ ui.checkBox_logout->setEnabled(!m_showLogoutButton);
+ ui.checkBox_sleep->setEnabled(!m_showSleepButton);
+ ui.checkBox_hibernate->setEnabled(!m_showHibernateButton);
+ }
+
ui.checkBox_lock->setChecked(m_showLockButton);
+ connect(ui.checkBox_lock, SIGNAL(toggled(bool)), this, SLOT(buttonChanged()));
ui.checkBox_switchUser->setChecked(m_showSwitchUserButton);
+ connect(ui.checkBox_switchUser, SIGNAL(toggled(bool)), this, \
SLOT(buttonChanged())); ui.checkBox_logout->setChecked(m_showLogoutButton);
+ connect(ui.checkBox_logout, SIGNAL(toggled(bool)), this, SLOT(buttonChanged()));
ui.checkBox_sleep->setChecked(m_showSleepButton);
+ connect(ui.checkBox_sleep, SIGNAL(toggled(bool)), this, SLOT(buttonChanged()));
ui.checkBox_hibernate->setChecked(m_showHibernateButton);
+ connect(ui.checkBox_hibernate, SIGNAL(toggled(bool)), this, \
SLOT(buttonChanged())); #endif
}
--- trunk/KDE/kdebase/workspace/plasma/generic/applets/lock_logout/lockout.h \
#1208945:1208946 @@ -51,6 +51,7 @@
void clickLock();
void clickSleep();
void clickHibernate();
+ void buttonChanged();
protected Q_SLOTS:
void configAccepted();
@@ -58,6 +59,7 @@
protected:
void createConfigurationInterface(KConfigDialog *parent);
void countButtons();
+ void setCheckable();
private:
#ifndef Q_OS_WIN
@@ -79,6 +81,7 @@
void showButtons();
int m_visibleButtons;
+ bool m_changed;
};
K_EXPORT_PLASMA_APPLET(lockout, LockOut)
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic