[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdebase/workspace/systemsettings
From: Ben Cooksley <sourtooth () gmail ! com>
Date: 2010-05-01 22:38:56
Message-ID: 20100501223856.250F7AC8AA () svn ! kde ! org
[Download RAW message or body]
SVN commit 1121620 by bcooksley:
Don't load modules to check for KAuth status until module is shown.
Ensure that module changing signals are disabled when closing modules.
BUG: 235089
M +14 -5 core/ModuleView.cpp
M +1 -1 core/ModuleView.h
M +0 -1 icons/IconMode.cpp
--- trunk/KDE/kdebase/workspace/systemsettings/core/ModuleView.cpp #1121619:1121620
@@ -56,6 +56,7 @@
KPushButton* mReset;
KPushButton* mDefault;
KPushButton* mHelp;
+ bool pageChangeSupressed;
};
ModuleView::ModuleView( QWidget * parent )
@@ -183,12 +184,12 @@
}
d->mModules.insert( page, module );
- updatePageIconHeader( page );
+ updatePageIconHeader( page, true );
// Add the new page
d->mPageWidget->addPage( page );
}
-void ModuleView::updatePageIconHeader( KPageWidgetItem * page )
+void ModuleView::updatePageIconHeader( KPageWidgetItem * page, bool light )
{
if( !page ) {
// Page is invalid. Probably means we have a race condition during closure \
of everyone so do nothing @@ -198,12 +199,15 @@
KCModuleProxy * moduleProxy = d->mPages.value( page );
KCModuleInfo * moduleInfo = d->mModules.value( page );
+ page->setHeader( moduleInfo->comment() );
+ page->setIcon( KIcon( moduleInfo->icon() ) );
+ if( light ) {
+ return;
+ }
+
if( moduleProxy && moduleProxy->realModule()->useRootOnlyMessage() ) {
page->setHeader( "<b>" + moduleInfo->comment() + "</b><br><i>" + \
moduleProxy->rootOnlyMessage() + "</i>" );
page->setIcon( KIcon( moduleInfo->icon(), 0, QStringList() << \
"dialog-warning" ) );
- } else {
- page->setHeader( moduleInfo->comment() );
- page->setIcon( KIcon( moduleInfo->icon() ) );
}
}
@@ -250,6 +254,7 @@
void ModuleView::closeModules()
{
+ d->pageChangeSupressed = true;
QMap<KPageWidgetItem*, KCModuleInfo*>::iterator page = d->mModules.begin();
QMap<KPageWidgetItem*, KCModuleInfo*>::iterator pageEnd = d->mModules.end();
for ( ; page != pageEnd; ++page ) {
@@ -258,6 +263,7 @@
d->mPages.clear();
d->mModules.clear();
+ d->pageChangeSupressed = false;
}
bool ModuleView::moduleSave()
@@ -316,6 +322,9 @@
d->mPageWidget->setCurrentPage(current);
}
d->mPageWidget->blockSignals(false);
+ if( d->pageChangeSupressed ) {
+ return;
+ }
// We need to get the state of the now active module
stateChanged();
}
--- trunk/KDE/kdebase/workspace/systemsettings/core/ModuleView.h #1121619:1121620
@@ -128,7 +128,7 @@
bool resolveChanges( KCModuleProxy *currentProxy );
void addModule( KCModuleInfo *module );
bool moduleSave( KCModuleProxy *module );
- void updatePageIconHeader( KPageWidgetItem * page );
+ void updatePageIconHeader( KPageWidgetItem * page, bool light = false );
private Q_SLOTS:
void activeModuleChanged( KPageWidgetItem* current, KPageWidgetItem* previous);
--- trunk/KDE/kdebase/workspace/systemsettings/icons/IconMode.cpp #1121619:1121620
@@ -146,7 +146,6 @@
if( d->moduleView->resolveChanges() ) {
d->mainWidget->setCurrentWidget( d->categoryView );
d->moduleView->closeModules();
- d->mainWidget->setCurrentWidget( d->categoryView );
d->backAction->setEnabled( false );
emit changeToolBarItems( BaseMode::Search | BaseMode::Configure | \
BaseMode::Quit ); emit viewChanged( false );
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic