[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdebase/workspace/systemsettings
From:       Ben Cooksley <bcooksley () kde ! org>
Date:       2010-06-18 10:56:22
Message-ID: 20100618105622.7CCA2AC8D7 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1139476 by bcooksley:

Use the model for retrieving the list of modules to display, to ensure they are \
sorted.

 M  +1 -2      classic/ClassicMode.cpp  
 M  +1 -1      core/CMakeLists.txt  
 M  +11 -10    core/ModuleView.cpp  
 M  +3 -2      core/ModuleView.h  
 M  +1 -2      icons/IconMode.cpp  


--- trunk/KDE/kdebase/workspace/systemsettings/classic/ClassicMode.cpp \
#1139475:1139476 @@ -159,8 +159,7 @@
         d->classicCategory->changeModule(activeModule);
         emit viewChanged( false );
     } else {
-        MenuItem *menuItem = d->proxyModel->data( activeModule, Qt::UserRole \
                ).value<MenuItem*>();
-        d->moduleView->loadModule( menuItem );
+        d->moduleView->loadModule( activeModule );
     }
 }
 
--- trunk/KDE/kdebase/workspace/systemsettings/core/CMakeLists.txt #1139475:1139476
@@ -26,7 +26,7 @@
 
 target_link_libraries( systemsettingsview ${KDE4_KDECORE_LIBS} ${KDE4_KCMUTILS_LIBS} \
)  
-set_target_properties( systemsettingsview PROPERTIES SOVERSION 1 )
+set_target_properties( systemsettingsview PROPERTIES SOVERSION 2 )
 
 install( TARGETS systemsettingsview  ${INSTALL_TARGETS_DEFAULT_ARGS} )
 install( FILES ${systemsettingsview_LIB_HDRS} DESTINATION \
                ${INCLUDE_INSTALL_DIR}/systemsettingsview COMPONENT Devel )
--- trunk/KDE/kdebase/workspace/systemsettings/core/ModuleView.cpp #1139475:1139476
@@ -28,6 +28,7 @@
 #include <QWhatsThis>
 #include <QScrollArea>
 #include <QVBoxLayout>
+#include <QAbstractItemModel>
 
 #include <KDebug>
 #include <KDialog>
@@ -124,23 +125,23 @@
     return 0;
 }
 
-void ModuleView::loadModule( MenuItem *menuItem )
+void ModuleView::loadModule( QModelIndex menuItem )
 {
-    if ( !menuItem ) {
+    if ( !menuItem.isValid() ) {
         return;
     }
 
-    QList<KCModuleInfo*> modules;
-    if ( menuItem->children().empty() ) {
-        modules << &menuItem->item();
-    } else {
-        foreach ( MenuItem *child, menuItem->children() ) {
-            modules << &child->item();
+    QList<QModelIndex> indexes;
+    for ( int done = 0; menuItem.model()->rowCount( menuItem ) > done; done = 1 + \
done ) { +        indexes << menuItem.model()->index( done, 0, menuItem );
         }
+    if ( indexes.empty() ) {
+        indexes << menuItem;
     }
 
-    foreach ( KCModuleInfo *module, modules ) {
-        addModule(module);
+    foreach ( QModelIndex module, indexes ) {
+        MenuItem *menuItem = module.data( Qt::UserRole ).value<MenuItem*>();
+        addModule( &menuItem->item() );
     }
     // changing state is not needed here as the adding / changing of pages does it
 }
--- trunk/KDE/kdebase/workspace/systemsettings/core/ModuleView.h #1139475:1139476
@@ -22,6 +22,7 @@
 #define MODULE_VIEW_H
 
 #include <QtGui/QWidget>
+#include <QtCore/QModelIndex>
 #include "systemsettingsview_export.h"
 
 class MenuItem;
@@ -95,9 +96,9 @@
      * Loads the module specified by menuItem.\n
      * If the module has children, they will all be loaded instead of the module.
      *
-     * @param menuItem the MenuItem that you want to load.
+     * @param menuItem the QModelIndex that you want to load. Must be sourced from \
                either MenuModel or MenuProxyModel
      */
-    void loadModule( MenuItem *menuItem );
+    void loadModule( QModelIndex menuItem );
 
     /**
      * Will open KHelpCenter, and load the help for the active module.
--- trunk/KDE/kdebase/workspace/systemsettings/icons/IconMode.cpp #1139475:1139476
@@ -130,8 +130,7 @@
 void IconMode::changeModule( const QModelIndex& activeModule )
 {
     d->moduleView->closeModules();
-    MenuItem *menuItem = activeModule.model()->data( activeModule, Qt::UserRole \
                ).value<MenuItem*>();
-    d->moduleView->loadModule( menuItem );
+    d->moduleView->loadModule( activeModule );
 }
 
 void IconMode::moduleLoaded()


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic