Procházet zdrojové kódy

ENH: PluginGenerator: added private implementations

Sascha Zelzer před 15 roky
rodič
revize
4a0624ae4b

+ 28 - 0
Plugins/org.commontk.plugingenerator.core/ctkPluginGeneratorAbstractExtension.cpp

@@ -22,6 +22,34 @@
 
 #include "ctkPluginGeneratorAbstractExtension.h"
 
+class ctkPluginGeneratorAbstractExtensionPrivate
+{
+public:
+
+  QString errorMessage;
+};
+
 ctkPluginGeneratorAbstractExtension::ctkPluginGeneratorAbstractExtension()
+  : d_ptr(new ctkPluginGeneratorAbstractExtensionPrivate())
+{
+}
+
+ctkPluginGeneratorAbstractExtension::~ctkPluginGeneratorAbstractExtension()
+{
+}
+
+QString ctkPluginGeneratorAbstractExtension::getErrorMessage() const
+{
+  Q_D(const ctkPluginGeneratorAbstractExtension);
+  return d->errorMessage;
+}
+
+void ctkPluginGeneratorAbstractExtension::setErrorMessage(const QString& errorMsg)
 {
+  Q_D(ctkPluginGeneratorAbstractExtension);
+  if (d->errorMessage != errorMsg)
+  {
+    d->errorMessage = errorMsg;
+    emit errorMessageChanged(errorMsg);
+  }
 }

+ 18 - 2
Plugins/org.commontk.plugingenerator.core/ctkPluginGeneratorAbstractExtension.h

@@ -23,12 +23,18 @@
 #ifndef CTKPLUGINGENERATORABSTRACTEXTENSION_H
 #define CTKPLUGINGENERATORABSTRACTEXTENSION_H
 
+#include <QObject>
 #include <QHash>
 
-class ctkPluginGeneratorAbstractExtension
+class ctkPluginGeneratorAbstractExtensionPrivate;
+
+class ctkPluginGeneratorAbstractExtension : public QObject
 {
+  Q_OBJECT
+
 public:
     ctkPluginGeneratorAbstractExtension();
+    virtual ~ctkPluginGeneratorAbstractExtension();
 
     virtual void getCommandLineArgs() const = 0;
 
@@ -37,15 +43,25 @@ public:
 
     bool isValid() const;
 
-    void setErrorMessage(const QString& errMsg);
     QString getErrorMessage() const;
 
     void generate();
 
+signals:
+
+    void errorMessageChanged(const QString&);
+
 protected:
 
+    void setErrorMessage(const QString& errMsg);
+
     virtual void verifyParameter(const QHash<QString, QVariant>& params) = 0;
 
+private:
+
+    Q_DECLARE_PRIVATE(ctkPluginGeneratorAbstractExtension)
+
+    const QScopedPointer<ctkPluginGeneratorAbstractExtensionPrivate> d_ptr;
 
 };
 

+ 1 - 1
Plugins/org.commontk.plugingenerator.core/ctkPluginGeneratorCMakeLists.cpp

@@ -30,7 +30,7 @@ const QString ctkPluginGeneratorCMakeLists::PLUGIN_SRCS_MARKER = "plugin_srcs";
 const QString ctkPluginGeneratorCMakeLists::PLUGIN_MOC_SRCS_MARKER = "plugin_moc_srcs";
 const QString ctkPluginGeneratorCMakeLists::PLUGIN_RESOURCES_MARKER = "plugin_resources";
 
-ctkPluginGeneratorCMakeLists::ctkPluginGeneratorCMakeLists(QObject *parent) :
+ctkPluginGeneratorCMakeLists::ctkPluginGeneratorCMakeLists(ctkPluginGeneratorAbstractTemplate *parent) :
     ctkPluginGeneratorAbstractTemplate("CMakeLists.txt", parent)
 {
 }

+ 1 - 1
Plugins/org.commontk.plugingenerator.core/ctkPluginGeneratorCMakeLists.h

@@ -37,7 +37,7 @@ public:
   static const QString PLUGIN_MOC_SRCS_MARKER;
   static const QString PLUGIN_RESOURCES_MARKER;
 
-  ctkPluginGeneratorCMakeLists(QObject *parent = 0);
+  ctkPluginGeneratorCMakeLists(ctkPluginGeneratorAbstractTemplate *parent = 0);
 
   QString generateContent();
 

+ 8 - 6
Plugins/org.commontk.plugingenerator.core/ctkPluginGeneratorCodeModel.cpp

@@ -25,6 +25,8 @@
 #include <QDir>
 #include <QHash>
 
+#include <stdexcept>
+
 class ctkPluginGeneratorCodeModelPrivate
 {
 public:
@@ -37,7 +39,7 @@ class ctkPluginGeneratorFolderTemplate : public ctkPluginGeneratorAbstractTempla
 {
 public:
 
-  ctkPluginGeneratorFolderTemplate(const QString& name, ctkPluginGeneratorAbstractTemplate* parent)
+  ctkPluginGeneratorFolderTemplate(const QString& name, ctkPluginGeneratorAbstractTemplate* parent = 0)
     : ctkPluginGeneratorAbstractTemplate(name, parent)
   {}
 
@@ -60,7 +62,7 @@ public:
     }
     else
     {
-      throw std::exception("The directory " + location.append(this->objectName()).toAscii() + " could not be created");
+      throw std::runtime_error(std::string("The directory ") + (location + this->objectName()).toStdString() + " could not be created");
     }
   }
 };
@@ -95,7 +97,7 @@ void ctkPluginGeneratorCodeModel::addTemplate(ctkPluginGeneratorAbstractTemplate
       {
         if (!dynamic_cast<ctkPluginGeneratorFolderTemplate*>(d->rootTemplates[rootEntry]))
         {
-          throw std::exception("The segment \"" + rootEntry.toAscii() + "\" in \"" + path.toAscii() + "\" is not a folder");
+          throw std::runtime_error(std::string("The segment \"") + rootEntry.toStdString() + "\" in \"" + path.toStdString() + "\" is not a folder");
         }
         parentTemplate = d->rootTemplates[rootEntry];
       }
@@ -111,14 +113,14 @@ void ctkPluginGeneratorCodeModel::addTemplate(ctkPluginGeneratorAbstractTemplate
         bool childFound = false;
         while (children.hasNext())
         {
-          QObject* child = it.next();
+          QObject* child = children.next();
           if (child->objectName() == currEntry)
           {
             childFound = true;
             parentTemplate = qobject_cast<ctkPluginGeneratorAbstractTemplate*>(child);
             if (parentTemplate == 0)
             {
-              throw std::exception("The segment \"" + currEntry.toAscii() + "\" in \"" + path.toAscii() + "\" is not a folder");
+              throw std::runtime_error(std::string("The segment \"") + currEntry.toStdString() + "\" in \"" + path.toStdString() + "\" is not a folder");
             }
             break;
           }
@@ -139,7 +141,7 @@ void ctkPluginGeneratorCodeModel::create(const QString& location)
 {
   Q_D(ctkPluginGeneratorCodeModel);
 
-  QListIterator<ctkPluginGeneratorAbstractTemplate*> it(d->rootTemplates);
+  QListIterator<ctkPluginGeneratorAbstractTemplate*> it(d->rootTemplates.values());
   while (it.hasNext())
   {
     ctkPluginGeneratorAbstractTemplate* templ = it.next();

+ 40 - 27
Plugins/org.commontk.plugingenerator.ui/ctkPluginGeneratorAbstractUiExtension.cpp

@@ -21,8 +21,26 @@
 
 #include "ctkPluginGeneratorAbstractUiExtension.h"
 
+class ctkPluginGeneratorAbstractUiExtensionPrivate
+{
+public:
+
+  ctkPluginGeneratorAbstractUiExtensionPrivate()
+    : sectionWidget(0)
+  {
+
+  }
+
+  QWidget* sectionWidget;
+
+  QString description;
+  QString title;
+  QString message;
+  QIcon icon;
+};
+
 ctkPluginGeneratorAbstractUiExtension::ctkPluginGeneratorAbstractUiExtension()
-  : sectionWidget(0)
+  : d_ptr(new ctkPluginGeneratorAbstractUiExtensionPrivate())
 {
 
 }
@@ -34,73 +52,68 @@ ctkPluginGeneratorAbstractUiExtension::~ctkPluginGeneratorAbstractUiExtension()
 
 QWidget* ctkPluginGeneratorAbstractUiExtension::getWidget()
 {
-  return sectionWidget;
+  Q_D(ctkPluginGeneratorAbstractExtension);
+  return d->sectionWidget;
 }
 
 QString ctkPluginGeneratorAbstractUiExtension::getDescription() const
 {
-  return this->description;
+  Q_D(ctkPluginGeneratorAbstractExtension);
+  return d->description;
 }
 
 QString ctkPluginGeneratorAbstractUiExtension::getTitle() const
 {
-  return this->title;
-}
-
-QString ctkPluginGeneratorAbstractUiExtension::getErrorMessage() const
-{
-  return this->errorMessage;
+  Q_D(ctkPluginGeneratorAbstractExtension);
+  return d->title;
 }
 
 QString ctkPluginGeneratorAbstractUiExtension::getMessage() const
 {
-  return this->message;
+  Q_D(ctkPluginGeneratorAbstractExtension);
+  return d->message;
 }
 
 QIcon ctkPluginGeneratorAbstractUiExtension::getIcon() const
 {
-  return this->icon;
+  Q_D(ctkPluginGeneratorAbstractExtension);
+  return d->icon;
 }
 
 void ctkPluginGeneratorAbstractUiExtension::setDescription(const QString& description)
 {
-  if (this->description != description)
+  Q_D(ctkPluginGeneratorAbstractExtension);
+  if (d->description != description)
   {
-    this->description = description;
+    d->description = description;
     emit descriptionChanged(description);
   }
 }
 
 void ctkPluginGeneratorAbstractUiExtension::setTitle(const QString& title)
 {
-  if (this->title != title)
+  Q_D(ctkPluginGeneratorAbstractExtension);
+  if (d->title != title)
   {
-    this->title = title;
+    d->title = title;
     emit titleChanged(title);
   }
 }
 
-void ctkPluginGeneratorAbstractUiExtension::setErrorMessage(const QString& errorMsg)
-{
-  if (this->errorMessage != errorMsg)
-  {
-    this->errorMessage = errorMsg;
-    emit errorMessageChanged(errorMsg);
-  }
-}
-
 void ctkPluginGeneratorAbstractUiExtension::setMessage(const QString& msg)
 {
-  if (this->message != msg)
+  Q_D(ctkPluginGeneratorAbstractExtension);
+  if (d->message != msg)
   {
-    this->message = msg;
+    d->message = msg;
     emit messageChanged(msg);
   }
 }
 
 void ctkPluginGeneratorAbstractUiExtension::setIcon(const QIcon& icon)
 {
-  this->icon = icon;
+  Q_D(ctkPluginGeneratorAbstractExtension);
+  d->icon = icon;
   emit iconChanged(icon);
 }
 

+ 6 - 9
Plugins/org.commontk.plugingenerator.ui/ctkPluginGeneratorAbstractUiExtension.h

@@ -25,9 +25,12 @@
 #include <QObject>
 #include <QIcon>
 
+#include <ctkPluginGeneratorAbstractExtension.h>
+
 class QWidget;
+class ctkPluginGeneratorAbstractUiExtensionPrivate;
 
-class ctkPluginGeneratorAbstractUiExtension : public QObject
+class ctkPluginGeneratorAbstractUiExtension : public ctkPluginGeneratorAbstractExtension
 {
 
   Q_OBJECT
@@ -53,7 +56,6 @@ signals:
 
   void descriptionChanged(const QString&);
   void titleChanged(const QString&);
-  void errorMessageChanged(const QString&);
   void messageChanged(const QString&);
   void iconChanged(const QIcon&);
 
@@ -62,20 +64,15 @@ protected:
   void setDescription(const QString& description);
   void setTitle(const QString& title);
 
-  void setErrorMessage(const QString& errorMsg);
   void setMessage(const QString& msg);
 
   void setIcon(const QIcon& icon);
 
 private:
 
-  QWidget* sectionWidget;
+  Q_DECLARE_PRIVATE(ctkPluginGeneratorAbstractUiExtension)
 
-  QString description;
-  QString title;
-  QString errorMessage;
-  QString message;
-  QIcon icon;
+  const QScopedPointer<ctkPluginGeneratorAbstractUiExtensionPrivate> d_ptr;
 
 };