[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