Przeglądaj źródła

Provide methods for querying the current module state.

Sascha Zelzer 13 lat temu
rodzic
commit
736b3a4af7

+ 18 - 1
Libs/CommandLineModules/Core/ctkCmdLineModule.cpp

@@ -51,6 +51,8 @@ struct ctkCmdLineModulePrivate
 
   QList<QString> ParameterNames;
 
+  ctkCmdLineModuleFuture Future;
+
 private:
 
   ctkCmdLineModule* q;
@@ -161,9 +163,24 @@ ctkCmdLineModuleFuture ctkCmdLineModule::run() const
   // thread pool.
   ctkCmdLineModuleProcessTask* moduleProcess =
       new ctkCmdLineModuleProcessTask(d->ModuleReference.location(), args);
-  return moduleProcess->start();
+  d->Future = moduleProcess->start();
+  return d->Future;
 }
 
+ctkCmdLineModuleFuture ctkCmdLineModule::future() const
+{
+  return d->Future;
+}
+
+bool ctkCmdLineModule::isRunning() const
+{
+  return d->Future.isRunning();
+}
+
+bool ctkCmdLineModule::isPaused() const
+{
+  return d->Future.isPaused();
+}
 
 QHash<QString, QVariant> ctkCmdLineModule::values() const
 {

+ 5 - 0
Libs/CommandLineModules/Core/ctkCmdLineModule.h

@@ -62,6 +62,11 @@ public:
 
   ctkCmdLineModuleFuture run() const;
 
+  ctkCmdLineModuleFuture future() const;
+
+  bool isRunning() const;
+  bool isPaused() const;
+
   Q_SIGNAL void valueChanged(const QString& parameter, const QVariant& value);
 
 protected: