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

List:       kde-commits
Subject:    KDE/kdelibs/kdeui/dialogs
From:       Roberto Raggi <roberto () kdevelop ! org>
Date:       2007-02-20 14:36:48
Message-ID: 1171982208.835249.11231.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 635652 by raggi:

API cleanup. Keep the public header clean(yeah, and make the source file ugly :-)


 M  +16 -10    kconfigdialog.cpp  
 M  +3 -5      kconfigdialog.h  


--- trunk/KDE/kdelibs/kdeui/dialogs/kconfigdialog.cpp #635651:635652
@@ -33,20 +33,26 @@
 #include <qlayout.h>
 #include <qmap.h>
 
-QHash<QString,KConfigDialog *> KConfigDialog::openDialogs;
-
 // This class is here purely so we don't break binary compatibility down the road.
 class KConfigDialog::KConfigDialogPrivate
 {
 public:
-  KConfigDialogPrivate()
-  : shown(false), manager(0) { }
+  KConfigDialogPrivate(KConfigDialog *q)
+    : q(q), shown(false), manager(0) { }
 
+  KConfigDialog *q;
   bool shown;
   KConfigDialogManager *manager;
   QMap<QWidget *, KConfigDialogManager *> managerForPage;
+  
+  /**
+    * The list of existing dialogs.
+   */
+  static QHash<QString,KConfigDialog *> openDialogs;
 };
 
+QHash<QString,KConfigDialog *> KConfigDialog::KConfigDialogPrivate::openDialogs;
+
 KConfigDialog::KConfigDialog( QWidget *parent, const QString& name,
           KConfigSkeleton *config,
           FaceType faceType,
@@ -54,7 +60,7 @@
           ButtonCode defaultButton,
           bool modal ) :
     KPageDialog( parent, Qt::MSWindowsFixedSizeDialogHint ),
-    d(new KConfigDialogPrivate)
+    d(new KConfigDialogPrivate(this))
 {
   setCaption( i18n("Configure") );
   setFaceType( faceType );
@@ -64,11 +70,11 @@
   setModal( modal );
 
   if ( !name.isEmpty() ) {
-    openDialogs.insert(name, this);
+    KConfigDialogPrivate::openDialogs.insert(name, this);
   } else {
     QString genericName;
     genericName.sprintf("SettingsDialog-%p", static_cast<void*>(this));
-    openDialogs.insert(genericName, this);
+    KConfigDialogPrivate::openDialogs.insert(genericName, this);
     setObjectName(genericName);
   }
 
@@ -86,7 +92,7 @@
 
 KConfigDialog::~KConfigDialog()
 {
-  openDialogs.remove(objectName());
+  KConfigDialogPrivate::openDialogs.remove(objectName());
   delete d;
 }
 
@@ -151,8 +157,8 @@
 
 KConfigDialog* KConfigDialog::exists(const QString& name)
 {
-  QHash<QString,KConfigDialog *>::const_iterator it = openDialogs.find( name );
-  if ( it != openDialogs.end() )
+  QHash<QString,KConfigDialog *>::const_iterator it = KConfigDialogPrivate::openDialogs.find( name );
+  if ( it != KConfigDialogPrivate::openDialogs.end() )
       return *it;
   return 0;
 }
--- trunk/KDE/kdelibs/kdeui/dialogs/kconfigdialog.h #635651:635652
@@ -256,16 +256,14 @@
   void setupManagerConnections(KConfigDialogManager *manager);
 
 private:
-  /**
-   * The list of existing dialogs.
-   */
-  static QHash<QString,KConfigDialog *> openDialogs;
-
   class KConfigDialogPrivate;
+  friend class KConfigDialogPrivate;
   /**
    * Private class.
    */
   KConfigDialogPrivate *const d;
+  
+  Q_DISABLE_COPY(KConfigDialog)
 };
 
 #endif //KCONFIGDIALOG_H
[prev in list] [next in list] [prev in thread] [next in thread] 

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