浏览代码

Provide PIMPL q pointer to access public class

Matt Clarkson 11 年之前
父节点
当前提交
e65d8cd49e

+ 6 - 3
Libs/CommandLineModules/Core/ctkCmdLineModuleDirectoryWatcher.cpp

@@ -41,7 +41,7 @@
 
 //-----------------------------------------------------------------------------
 ctkCmdLineModuleDirectoryWatcher::ctkCmdLineModuleDirectoryWatcher(ctkCmdLineModuleManager* moduleManager)
-  : d(new ctkCmdLineModuleDirectoryWatcherPrivate(moduleManager))
+  : d(new ctkCmdLineModuleDirectoryWatcherPrivate(this, moduleManager))
 {
   Q_ASSERT(moduleManager);
 }
@@ -101,8 +101,11 @@ QStringList ctkCmdLineModuleDirectoryWatcher::commandLineModules() const
 
 
 //-----------------------------------------------------------------------------
-ctkCmdLineModuleDirectoryWatcherPrivate::ctkCmdLineModuleDirectoryWatcherPrivate(ctkCmdLineModuleManager* moduleManager)
-: ModuleManager(moduleManager)
+ctkCmdLineModuleDirectoryWatcherPrivate::ctkCmdLineModuleDirectoryWatcherPrivate(
+    ctkCmdLineModuleDirectoryWatcher* d,
+    ctkCmdLineModuleManager* moduleManager)
+: q(d)
+, ModuleManager(moduleManager)
 , FileSystemWatcher(NULL)
 , Debug(false)
 {

+ 3 - 1
Libs/CommandLineModules/Core/ctkCmdLineModuleDirectoryWatcher_p.h

@@ -46,7 +46,8 @@ class ctkCmdLineModuleDirectoryWatcherPrivate : public QObject
 
 public:
 
-  ctkCmdLineModuleDirectoryWatcherPrivate(ctkCmdLineModuleManager* ModuleManager);
+  ctkCmdLineModuleDirectoryWatcherPrivate(ctkCmdLineModuleDirectoryWatcher* d,
+                                          ctkCmdLineModuleManager* ModuleManager);
   virtual ~ctkCmdLineModuleDirectoryWatcherPrivate();
 
   /**
@@ -165,6 +166,7 @@ private:
    */
   void unloadModules(const QStringList& executables);
 
+  ctkCmdLineModuleDirectoryWatcher* q;
   QHash<QString, ctkCmdLineModuleReferenceResult> MapFileNameToReferenceResult;
   ctkCmdLineModuleManager* ModuleManager;
   QFileSystemWatcher* FileSystemWatcher;