diff --git a/Plugins/org.mitk.gui.qt.cli/src/QmitkCmdLineModuleMenuComboBox.h b/Plugins/org.mitk.gui.qt.cli/src/QmitkCmdLineModuleMenuComboBox.h index 75dd05055f..8cd6546950 100644 --- a/Plugins/org.mitk.gui.qt.cli/src/QmitkCmdLineModuleMenuComboBox.h +++ b/Plugins/org.mitk.gui.qt.cli/src/QmitkCmdLineModuleMenuComboBox.h @@ -1,66 +1,67 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) University College London (UCL). All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #ifndef QMITKCMDLINEMODULEMENUCOMBOBOX_H #define QMITKCMDLINEMODULEMENUCOMBOBOX_H #include #include #include #include #include /** * \class QmitkCmdLineModuleMenuComboBox * \brief Subclass of ctkMenuComboBox to listen to ctkCmdLineModuleManager * moduleRegistered and moduleUnregistered signals, and update the menu accordingly. * \ingroup org_mitk_gui_qt_cli_internal + * \sa ctkMenuComboBox */ class QmitkCmdLineModuleMenuComboBox : public ctkMenuComboBox { Q_OBJECT public: QmitkCmdLineModuleMenuComboBox(QWidget* parent = 0); virtual ~QmitkCmdLineModuleMenuComboBox(); /** * \brief Inject the module manager, so that this widget can * still easily be used via widget promotion in Qt Designer, * as it will maintain the default constructor. */ void SetManager(ctkCmdLineModuleManager* manager); /** * \brief Returns the ctkCmdLineModuleManager. */ ctkCmdLineModuleManager* GetManager() const; private slots: void OnModuleRegistered(const ctkCmdLineModuleReference&); void OnModuleUnRegistered(const ctkCmdLineModuleReference&); private: void RebuildMenu(); void AddName(QList< QHash* >& listOfHashMaps, const int& depth, const QString& name, QMenu* menu); ctkCmdLineModuleManager* m_ModuleManager; }; #endif QMITKCMDLINEMODULEMENUCOMBOBOX_H diff --git a/Plugins/org.mitk.gui.qt.cli/src/QmitkCmdLineModuleProgressWidget.cpp b/Plugins/org.mitk.gui.qt.cli/src/QmitkCmdLineModuleProgressWidget.cpp deleted file mode 100644 index 689e9c97c1..0000000000 --- a/Plugins/org.mitk.gui.qt.cli/src/QmitkCmdLineModuleProgressWidget.cpp +++ /dev/null @@ -1,307 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#include "QmitkCmdLineModuleProgressWidget.h" -#include "ui_QmitkCmdLineModuleProgressWidget.h" - -// Qt -#include - -// CTK -#include -#include -#include -#include -#include - -// MITK -#include -#include -#include -#include -#include - -QmitkCmdLineModuleProgressWidget::QmitkCmdLineModuleProgressWidget(QWidget *parent) - : QWidget(parent) - , m_UI(new Ui::QmitkCmdLineModuleProgressWidget) -{ - qRegisterMetaType(); - qRegisterMetaType(); - - m_UI->setupUi(this); - - m_UI->m_RemoveButton->setIcon(QApplication::style()->standardIcon(QStyle::SP_TitleBarCloseButton)); - - // Due to Qt bug 12152, we cannot listen to the "paused" signal because it is - // not emitted directly when the QFuture is paused. Instead, it is emitted after - // resuming the future, after the "resume" signal has been emitted... we use - // a polling aproach instead. - m_PollPauseTimer.setInterval(300); - connect(&m_PollPauseTimer, SIGNAL(timeout()), SLOT(checkModulePaused())); - - connect(&m_FutureWatcher, SIGNAL(started()), SLOT(moduleStarted())); - connect(&m_FutureWatcher, SIGNAL(canceled()), SLOT(moduleCanceled())); - connect(&m_FutureWatcher, SIGNAL(finished()), SLOT(moduleFinished())); - connect(&m_FutureWatcher, SIGNAL(resumed()), SLOT(moduleResumed())); - connect(&m_FutureWatcher, SIGNAL(progressRangeChanged(int,int)), SLOT(moduleProgressRangeChanged(int,int))); - connect(&m_FutureWatcher, SIGNAL(progressTextChanged(QString)), SLOT(moduleProgressTextChanged(QString))); - connect(&m_FutureWatcher, SIGNAL(progressValueChanged(int)), SLOT(moduleProgressValueChanged(int))); - - connect(m_UI->m_CancelButton, SIGNAL(clicked()), &this->m_FutureWatcher, SLOT(cancel())); - - m_PollPauseTimer.start(); -} - -QmitkCmdLineModuleProgressWidget::~QmitkCmdLineModuleProgressWidget() -{ - this->ClearUpTemporaryFiles(); - delete m_UI; -} - - -void QmitkCmdLineModuleProgressWidget::setTitle(const QString &title) -{ - m_UI->m_ProgressTitle->setText(title); -} - - -void QmitkCmdLineModuleProgressWidget::mouseReleaseEvent(QMouseEvent*) -{ - emit clicked(); -} - -void QmitkCmdLineModuleProgressWidget::on_PauseButton_toggled(bool toggled) -{ - this->m_FutureWatcher.setPaused(toggled); -} - -void QmitkCmdLineModuleProgressWidget::on_RemoveButton_clicked() -{ - this->deleteLater(); -} - -void QmitkCmdLineModuleProgressWidget::moduleStarted() -{ - this->m_UI->m_ProgressBar->setMaximum(0); -} - -void QmitkCmdLineModuleProgressWidget::moduleCanceled() -{ - this->m_UI->m_PauseButton->setEnabled(false); - this->m_UI->m_PauseButton->setChecked(false); - this->m_UI->m_CancelButton->setEnabled(false); - this->m_UI->m_RemoveButton->setEnabled(true); -} - -void QmitkCmdLineModuleProgressWidget::moduleFinished() -{ - QString message = "finishing."; - this->PublishMessage(message); - - this->m_UI->m_PauseButton->setEnabled(false); - this->m_UI->m_PauseButton->setChecked(false); - this->m_UI->m_CancelButton->setEnabled(false); - this->m_UI->m_RemoveButton->setEnabled(true); - - this->LoadOutputData(); - this->ClearUpTemporaryFiles(); - - message = "finished."; - this->PublishMessage(message); -} - -void QmitkCmdLineModuleProgressWidget::checkModulePaused() -{ - if (this->m_FutureWatcher.future().isPaused()) - { - if (!m_UI->m_PauseButton->isChecked()) - { - m_UI->m_PauseButton->setChecked(true); - } - } - else - { - if (m_UI->m_PauseButton->isChecked()) - { - m_UI->m_PauseButton->setChecked(false); - } - } -} - -void QmitkCmdLineModuleProgressWidget::moduleResumed() -{ - this->m_UI->m_PauseButton->setChecked(false); -} - -void QmitkCmdLineModuleProgressWidget::moduleProgressRangeChanged(int progressMin, int progressMax) -{ - this->m_UI->m_ProgressBar->setMinimum(progressMin); - this->m_UI->m_ProgressBar->setMaximum(progressMax); -} - -void QmitkCmdLineModuleProgressWidget::moduleProgressTextChanged(const QString& progressText) -{ - //m_UI->m_ProgressText->setText(progressText); -} - -void QmitkCmdLineModuleProgressWidget::moduleProgressValueChanged(int progressValue) -{ - m_UI->m_ProgressBar->setValue(progressValue); -} - -//----------------------------------------------------------------------------- -void QmitkCmdLineModuleProgressWidget::PublishMessage(const QString& message) -{ - QString prefix = ""; // Can put additional prefix here if needed. - qDebug() << prefix << message; -} - - -//----------------------------------------------------------------------------- -void QmitkCmdLineModuleProgressWidget::ClearUpTemporaryFiles() -{ - QString message; - QString fileName; - - foreach (fileName, m_TemporaryFileNames) - { - QFile file(fileName); - if (file.exists()) - { - message = QObject::tr("removing %1").arg(fileName); - this->PublishMessage(message); - - bool success = file.remove(); - - message = QObject::tr("removed %1, successfully=%2").arg(fileName).arg(success); - this->PublishMessage(message); - } - } -} - - -//----------------------------------------------------------------------------- -void QmitkCmdLineModuleProgressWidget::LoadOutputData() -{ - assert(m_DataStorage); - - std::vector fileNames; - - QString fileName; - foreach (fileName, m_OutputDataToLoad) - { - QString message = QObject::tr("loading %1").arg(fileName); - this->PublishMessage(message); - - fileNames.push_back(fileName.toStdString()); - } - - if (fileNames.size() > 0) - { - int numberLoaded = mitk::IOUtil::LoadFiles(fileNames, *(m_DataStorage)); - - QString message = QObject::tr("loaded %1 files").arg(numberLoaded); - this->PublishMessage(message); - } -} - - -//----------------------------------------------------------------------------- -void QmitkCmdLineModuleProgressWidget::Run(ctkCmdLineModuleFrontend* moduleInstance) -{ - assert(m_ModuleManager); - - if (!moduleInstance) - { - qWarning() << "Invalid module instance"; - return; - } - - m_OutputDataToLoad.clear(); - ctkCmdLineModuleReference reference = moduleInstance->moduleReference(); - ctkCmdLineModuleDescription description = reference.description(); - - QString message = "Saving image data to temporary storage..."; - this->PublishMessage(message); - - // Sanity check we have actually specified some input: - QString parameterName; - QList parameters; - - // For each input image, write a temporary file as a Nifti image, - // and then save the full path name back on the parameter. - parameters = moduleInstance->parameters("image", ctkCmdLineModuleFrontend::Input); - foreach (ctkCmdLineModuleParameter parameter, parameters) - { - parameterName = parameter.name(); - - QVariant tmp = moduleInstance->value(parameterName, ctkCmdLineModuleFrontend::UserRole); - mitk::DataNode::Pointer node = tmp.value(); - - if (node.IsNotNull()) - { - mitk::Image* image = dynamic_cast(node->GetData()); - if (image != NULL) - { - QString name = QString::fromStdString(node->GetName()); - int pid = QCoreApplication::applicationPid(); - int randomInt = qrand() % 1000000; - - QString fileName = m_TemporaryDirectoryName + "/" + name + QString::number(pid) + "." + QString::number(randomInt) + ".nii"; - - message = "Saving " + fileName; - this->PublishMessage(message); - - std::string tmpFN = CommonFunctionality::SaveImage(image, fileName.toStdString().c_str()); - QString temporaryStorageFileName = QString::fromStdString(tmpFN); - - m_TemporaryFileNames.push_back(temporaryStorageFileName); - moduleInstance->setValue(parameterName, temporaryStorageFileName); - - message = "Saved " + temporaryStorageFileName; - this->PublishMessage(message); - } // end if image - } // end if node - } // end foreach input image - - // For each output image or file, store the filename, so we can auto-load it once the process finishes. - parameters = moduleInstance->parameters("image", ctkCmdLineModuleFrontend::Output); - parameters << moduleInstance->parameters("file", ctkCmdLineModuleFrontend::Output); - foreach (ctkCmdLineModuleParameter parameter, parameters) - { - parameterName = parameter.name(); - QString outputFileName = moduleInstance->value(parameterName).toString(); - - if (!outputFileName.isEmpty()) - { - m_OutputDataToLoad.push_back(outputFileName); - - message = "Command Line Module ... Registered " + outputFileName + " to auto load upon completion."; - this->PublishMessage(message); - } - } - - // Now we run stuff. - message = "starting."; - this->PublishMessage(message); - - ctkCmdLineModuleFuture future = m_ModuleManager->run(moduleInstance); - m_FutureWatcher.setFuture(future); - - m_UI->m_PauseButton->setEnabled(future.canPause()); - m_UI->m_CancelButton->setEnabled(future.canCancel()); - m_UI->m_RemoveButton->setEnabled(!future.isRunning()); -} diff --git a/Plugins/org.mitk.gui.qt.cli/src/QmitkCmdLineModuleProgressWidget.h b/Plugins/org.mitk.gui.qt.cli/src/QmitkCmdLineModuleProgressWidget.h deleted file mode 100644 index 7c6bd64e1f..0000000000 --- a/Plugins/org.mitk.gui.qt.cli/src/QmitkCmdLineModuleProgressWidget.h +++ /dev/null @@ -1,115 +0,0 @@ -/*=================================================================== - -The Medical Imaging Interaction Toolkit (MITK) - -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. -All rights reserved. - -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. - -See LICENSE.txt or http://www.mitk.org for details. - -===================================================================*/ - -#ifndef QMITKCMDLINEMODULEPROGRESSWIDGET_H -#define QMITKCMDLINEMODULEPROGRESSWIDGET_H - -#include -#include -#include - -class ctkCmdLineModuleManager; -class ctkCmdLineModuleFrontend; -class ctkCmdLineModuleFuture; - -namespace Ui { -class QmitkCmdLineModuleProgressWidget; -} - -namespace mitk { -class DataStorage; -} - -/** - * \class QmitkCmdLineModuleProgressWidget - * \brief Based on ctkCmdLineModuleExplorerProgressWidget, implements a progress widget - * with console output, and space for storing the GUI widget once the module is running. - */ -class QmitkCmdLineModuleProgressWidget : public QWidget -{ - Q_OBJECT - -public: - - QmitkCmdLineModuleProgressWidget(QWidget *parent = 0); - ~QmitkCmdLineModuleProgressWidget(); - - void Run(ctkCmdLineModuleFrontend* moduleInstance); - void setTitle(const QString& title); - -Q_SIGNALS: - - void clicked(); - -protected: - - void mouseReleaseEvent(QMouseEvent*); - -private Q_SLOTS: - - void on_PauseButton_toggled(bool toggled); - void on_RemoveButton_clicked(); - - void checkModulePaused(); - - void moduleStarted(); - void moduleCanceled(); - void moduleFinished(); - void moduleResumed(); - void moduleProgressRangeChanged(int progressMin, int progressMax); - void moduleProgressTextChanged(const QString& progressText); - void moduleProgressValueChanged(int progressValue); - -private: - - /** - * \brief Used to write output to console widget, and qDebug(). - */ - void PublishMessage(const QString& message); - - /** - * \brief Destroys any images listed in m_TemporaryFileNames. - */ - void ClearUpTemporaryFiles(); - - /** - * \brief Loads any data listed in m_OutputDataToLoad into the mitk::DataStorage. - */ - void LoadOutputData(); - - - Ui::QmitkCmdLineModuleProgressWidget *m_UI; - ctkCmdLineModuleFutureWatcher m_FutureWatcher; - ctkCmdLineModuleManager* m_ModuleManager; - QTimer m_PollPauseTimer; - mitk::DataStorage* m_DataStorage; - QString m_TemporaryDirectoryName; - - /** - * \brief We store a list of temporary file names that are saved to disk before - * launching a command line app, and then must be cleared up when the command line - * app successfully finishes. - */ - QStringList m_TemporaryFileNames; - - /** - * \brief We store a list of output images, so that on successfull completion of - * a command line module, we load the output data into the mitk::DataStorage. - */ - QStringList m_OutputDataToLoad; -}; - -#endif // QMITKCMDLINEMODULEPROGRESSWIDGET_H diff --git a/Plugins/org.mitk.gui.qt.cli/src/QmitkCmdLineModuleProgressWidget.ui b/Plugins/org.mitk.gui.qt.cli/src/QmitkCmdLineModuleProgressWidget.ui deleted file mode 100644 index df302dacf6..0000000000 --- a/Plugins/org.mitk.gui.qt.cli/src/QmitkCmdLineModuleProgressWidget.ui +++ /dev/null @@ -1,134 +0,0 @@ - - - QmitkCmdLineModuleProgressWidget - - - - 0 - 0 - 586 - 388 - - - - Form - - - - - - - 0 - 0 - - - - TextLabel - - - - - - - - 0 - 0 - - - - Parameters - - - - - - - - - 0 - - - - - - - ... - - - - :/CommandLineModulesResources/pause.png:/CommandLineModulesResources/pause.png - - - true - - - true - - - - - - - ... - - - - :/CommandLineModulesResources/stop.png:/CommandLineModulesResources/stop.png - - - true - - - - - - - Remove - - - true - - - - - - - - - Console - - - - - - - - - - - - Qt::Vertical - - - - 20 - 30 - - - - - - - - - ctkCollapsibleGroupBox - QGroupBox -
ctkCollapsibleGroupBox.h
- 1 -
-
- - - - -
diff --git a/Plugins/org.mitk.gui.qt.cli/src/internal/CommandLineModulesViewConstants.h b/Plugins/org.mitk.gui.qt.cli/src/internal/CommandLineModulesViewConstants.h index 2285948a4a..b57e164ffc 100644 --- a/Plugins/org.mitk.gui.qt.cli/src/internal/CommandLineModulesViewConstants.h +++ b/Plugins/org.mitk.gui.qt.cli/src/internal/CommandLineModulesViewConstants.h @@ -1,79 +1,81 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) University College London (UCL). All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #ifndef CommandLineModulesViewConstants_h #define CommandLineModulesViewConstants_h #include #include /** * \class CommandLineModulesViewConstants * \brief Structure to define a namespace for constants used privately within this view. + * \author Matt Clarkson (m.clarkson@ucl.ac.uk) + * \ingroup org_mitk_gui_qt_cli_internal */ struct CommandLineModulesViewConstants { /** * \brief The name of the preferences node containing the temporary directory. */ static const std::string TEMPORARY_DIRECTORY_NODE_NAME; /** * \brief The name of the preferences node containing the list of directories to scan. */ static const std::string MODULE_DIRECTORIES_NODE_NAME; /** * \brief The name of the preferences node containing the additional files to add to the module list. */ static const std::string MODULE_FILES_NODE_NAME; /** * \brief The name of the preferences node containing whether we are producing debug output. */ static const std::string DEBUG_OUTPUT_NODE_NAME; /** * \brief The name of the preferences node containing a boolean describing whether * we are loading modules from the application directory. */ static const std::string LOAD_FROM_APPLICATION_DIR; /** * \brief The name of the preferences node containing a boolean describing whether * we are loading modules from the users home directory. */ static const std::string LOAD_FROM_HOME_DIR; /** * \brief The name of the preferences node containing a boolean describing whether * we are loading modules from the applications current working directory. */ static const std::string LOAD_FROM_CURRENT_DIR; /** * \brief The name of the preferences node containing a boolean describing whether * we are loading modules from the directory specified in CTK_MODULE_LOAD_PATH. */ static const std::string LOAD_FROM_AUTO_LOAD_DIR; /** * \brief The View ID = org.mitk.gui.qt.cli, and should match that in plugin.xml. */ static const std::string VIEW_ID; }; #endif // CommandLineModulesViewConstants_h diff --git a/Plugins/org.mitk.gui.qt.cli/src/internal/QmitkCmdLineModuleFactoryGui.h b/Plugins/org.mitk.gui.qt.cli/src/internal/QmitkCmdLineModuleFactoryGui.h index 561d06735d..6345c8a187 100644 --- a/Plugins/org.mitk.gui.qt.cli/src/internal/QmitkCmdLineModuleFactoryGui.h +++ b/Plugins/org.mitk.gui.qt.cli/src/internal/QmitkCmdLineModuleFactoryGui.h @@ -1,53 +1,54 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) University College London (UCL). All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #ifndef QmitkCmdLineModuleFactoryGui_h #define QmitkCmdLineModuleFactoryGui_h #include #include namespace mitk { class DataStorage; } class QmitkCmdLineModuleFactoryGuiPrivate; /** * \class QmitkCmdLineModuleFactoryGui - * \brief Derived from ctkCmdLineModuleFactory to instantiate QmitkCmdLineModuleGui + * \brief Derived from ctkCmdLineModuleFactory to instantiate QmitkCmdLineModuleGui front ends. * \author Matt Clarkson (m.clarkson@ucl.ac.uk) * \ingroup org_mitk_gui_qt_cli_internal * \sa QmitkCmdLineModuleGui + * \sa ctkCmdLineModuleFrontendFactoryQtGui */ class QmitkCmdLineModuleFactoryGui : public ctkCmdLineModuleFrontendFactoryQtGui { public: QmitkCmdLineModuleFactoryGui(const mitk::DataStorage* dataStorage); virtual ~QmitkCmdLineModuleFactoryGui(); /** - * \brief Simply creates QmitkCmdLineModuleGui which is an MITK specific module. + * \brief Simply creates QmitkCmdLineModuleGui which is an MITK specific Qt front end. */ ctkCmdLineModuleFrontendQtGui* create(const ctkCmdLineModuleReference& moduleRef); private: QScopedPointer d; }; #endif // QmitkCmdLineModuleFactoryGui_h diff --git a/Plugins/org.mitk.gui.qt.cli/src/internal/QmitkCmdLineModuleGui.h b/Plugins/org.mitk.gui.qt.cli/src/internal/QmitkCmdLineModuleGui.h index 734188a6c8..9638fd4c19 100644 --- a/Plugins/org.mitk.gui.qt.cli/src/internal/QmitkCmdLineModuleGui.h +++ b/Plugins/org.mitk.gui.qt.cli/src/internal/QmitkCmdLineModuleGui.h @@ -1,85 +1,86 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) University College London (UCL). All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #ifndef QmitkCmdLineModuleGui_h #define QmitkCmdLineModuleGui_h #include #include #include #include namespace mitk { class DataStorage; } class QmitkCmdLineModuleGuiPrivate; /** * \class QmitkCmdLineModuleGui * \brief Derived from ctkCmdLineModuleQtGui to implement an MITK specific command line module, * that has access to the mitk::DataStorage, and also instantiates QmitkDataStorageComboBox * for any "imageInputWidget" type, and also provides QmitkDataStorageComboBox.xsl to override * the standard CTK xslt transformation. * \author Matt Clarkson (m.clarkson@ucl.ac.uk) * \ingroup org_mitk_gui_qt_cli_internal * \sa QmitkCmdLineModuleFactoryGui + * \sa ctkCmdLineModuleFrontendQtGui */ class QmitkCmdLineModuleGui : public ctkCmdLineModuleFrontendQtGui { Q_OBJECT public: QmitkCmdLineModuleGui(const mitk::DataStorage* dataStorage, const ctkCmdLineModuleReference& moduleRef); virtual ~QmitkCmdLineModuleGui(); protected: /** * \brief Virtual getter. * \see ctkCmdLineModuleFrontendQtGui::uiLoader() */ virtual QUiLoader* uiLoader() const; /** * \brief Virtual getter. * \see ctkCmdLineModuleFrontendQtGui::xslTransform() */ virtual ctkCmdLineModuleXslTransform* xslTransform() const; /** * \brief A custom method to enable access to a mitk::DataNode::Pointer for input images. * \param parameter The name of the parameter as specified in XML. * \param role The role, see ctkCmdLineModuleFrontend. * \return QVariant * * If role==UserRole and the parameter specified by parameter name is an * input image, will return a mitk::DataNode::Pointer wrapped in a QVariant. * * If role==UserRole and the parameter specified is not an input image, * returns an Empty QVariant. * * For any other role, calls base class. */ virtual QVariant value(const QString ¶meter, int role) const; private: QScopedPointer d; }; // end class #endif // QmitkCmdLineModuleGui_h diff --git a/Plugins/org.mitk.gui.qt.cli/src/internal/QmitkDirectoryListWidget.h b/Plugins/org.mitk.gui.qt.cli/src/internal/QmitkDirectoryListWidget.h index 14eec497ca..3e9ca3532e 100644 --- a/Plugins/org.mitk.gui.qt.cli/src/internal/QmitkDirectoryListWidget.h +++ b/Plugins/org.mitk.gui.qt.cli/src/internal/QmitkDirectoryListWidget.h @@ -1,56 +1,58 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) University College London (UCL). All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #ifndef QMITKDIRECTORYLISTWIDGET_H #define QMITKDIRECTORYLISTWIDGET_H #include "ui_QmitkPathListWidget.h" #include /** * \class QmitkDirectoryListWidget * \brief Widget to contain a ctkPathListWidget and a ctkPathListButtonsWidget * and provide simple directory access for readable, executable directories. + * \author Matt Clarkson (m.clarkson@ucl.ac.uk) + * \ingroup org_mitk_gui_qt_cli_internal */ class QmitkDirectoryListWidget : public QWidget, public Ui::QmitkPathListWidget { Q_OBJECT public: QmitkDirectoryListWidget(QWidget* parent=0); /** * \brief Get all directory entries. * \param absolutePath If true, resolve all entries to absolute paths. * \return A list of all directory entries. */ QStringList directories(bool absolutePath = false) const; /** * \brief Sets the list of directory entries. * \param paths The new path list. */ void setDirectories(const QStringList& paths); Q_SIGNALS: void pathsChanged(const QStringList&, const QStringList&); private Q_SLOTS: void OnPathsChanged(const QStringList&, const QStringList&); }; #endif // QMITKDIRECTORYLISTWIDGET_H diff --git a/Plugins/org.mitk.gui.qt.cli/src/internal/QmitkFileListWidget.h b/Plugins/org.mitk.gui.qt.cli/src/internal/QmitkFileListWidget.h index aa3433eade..cc03e948d1 100644 --- a/Plugins/org.mitk.gui.qt.cli/src/internal/QmitkFileListWidget.h +++ b/Plugins/org.mitk.gui.qt.cli/src/internal/QmitkFileListWidget.h @@ -1,56 +1,58 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) University College London (UCL). All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #ifndef QMITKFILELISTWIDGET_H #define QMITKFILELISTWIDGET_H #include "ui_QmitkPathListWidget.h" #include /** * \class QmitkFileListWidget * \brief Widget to contain a ctkPathListWidget and a ctkPathListButtonsWidget * and provide simple file access for readable, executable files. + * \author Matt Clarkson (m.clarkson@ucl.ac.uk) + * \ingroup org_mitk_gui_qt_cli_internal */ class QmitkFileListWidget : public QWidget, public Ui::QmitkPathListWidget { Q_OBJECT public: QmitkFileListWidget(QWidget* parent=0); /** * \brief Get all file entries. * \param absolutePath If true, resolve all entries to absolute paths. * \return A list of all file entries. */ QStringList files(bool absolutePath = false) const; /** * \brief Sets the list of file entries. * \param paths The new path list. */ void setFiles(const QStringList& paths); Q_SIGNALS: void pathsChanged(const QStringList&, const QStringList&); private Q_SLOTS: void OnPathsChanged(const QStringList&, const QStringList&); }; #endif // QMITKDIRECTORYLISTWIDGET_H diff --git a/Plugins/org.mitk.gui.qt.cli/src/internal/QmitkUiLoader.h b/Plugins/org.mitk.gui.qt.cli/src/internal/QmitkUiLoader.h index e2cdc5630f..e4b67fe5b1 100644 --- a/Plugins/org.mitk.gui.qt.cli/src/internal/QmitkUiLoader.h +++ b/Plugins/org.mitk.gui.qt.cli/src/internal/QmitkUiLoader.h @@ -1,58 +1,59 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) University College London (UCL). All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #ifndef QmitkUiLoader_h #define QmitkUiLoader_h #include #include #include "mitkDataStorage.h" /** * \class QmitkUiLoader * \brief Derived from ctkCmdLineModuleQtGuiLoader to enable us to instantiate widgets from Qmitk at runtime, * and currently we instatiate QmitkDataStorageComboBoxWithSelectNone, used for image input widgets. * \author Matt Clarkson (m.clarkson@ucl.ac.uk) * \ingroup org_mitk_gui_qt_cli_internal + * \sa ctkCmdLineModuleQtUiLoader */ class QmitkUiLoader : public ctkCmdLineModuleQtUiLoader { Q_OBJECT public: QmitkUiLoader(const mitk::DataStorage* dataStorage, QObject *parent=0); virtual ~QmitkUiLoader(); /** * \brief Returns the list of available widgets in ctkCmdLineModuleQtGuiLoader and also QmitkDataStorageComboBoxWithSelectNone. * \see ctkCmdLineModuleQtGuiLoader::availableWidgets() */ QStringList availableWidgets () const; /** * \brief If className is QmitkDataStorageComboBox, instantiates QmitkDataStorageComboBoxWithSelectNone and * otherwise delegates to base class. * \see ctkCmdLineModuleQtGuiLoader::createWidget() */ virtual QWidget* createWidget(const QString & className, QWidget * parent = 0, const QString & name = QString() ); private: const mitk::DataStorage* m_DataStorage; }; // end class #endif // QmitkUiLoader_h diff --git a/Plugins/org.mitk.gui.qt.cli/src/internal/org_mitk_gui_qt_cli_Activator.cpp b/Plugins/org.mitk.gui.qt.cli/src/internal/org_mitk_gui_qt_cli_Activator.cpp index 74f384b42e..ef2c4318e5 100644 --- a/Plugins/org.mitk.gui.qt.cli/src/internal/org_mitk_gui_qt_cli_Activator.cpp +++ b/Plugins/org.mitk.gui.qt.cli/src/internal/org_mitk_gui_qt_cli_Activator.cpp @@ -1,40 +1,39 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) -Copyright (c) German Cancer Research Center, -Division of Medical and Biological Informatics. +Copyright (c) University College London (UCL). All rights reserved. -This software is distributed WITHOUT ANY WARRANTY; without -even the implied warranty of MERCHANTABILITY or FITNESS FOR +This software is distributed WITHOUT ANY WARRANTY; without +even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #include "org_mitk_gui_qt_cli_Activator.h" #include #include "CommandLineModulesView.h" #include "CommandLineModulesPreferencesPage.h" namespace mitk { void org_mitk_gui_qt_cli_Activator::start(ctkPluginContext* context) { BERRY_REGISTER_EXTENSION_CLASS(CommandLineModulesView, context) BERRY_REGISTER_EXTENSION_CLASS(CommandLineModulesPreferencesPage, context) } void org_mitk_gui_qt_cli_Activator::stop(ctkPluginContext* context) { Q_UNUSED(context) } } Q_EXPORT_PLUGIN2(org_mitk_gui_qt_cli, mitk::org_mitk_gui_qt_cli_Activator) diff --git a/Plugins/org.mitk.gui.qt.cli/src/internal/org_mitk_gui_qt_cli_Activator.h b/Plugins/org.mitk.gui.qt.cli/src/internal/org_mitk_gui_qt_cli_Activator.h index 3d697645cc..e7aa6f64f1 100644 --- a/Plugins/org.mitk.gui.qt.cli/src/internal/org_mitk_gui_qt_cli_Activator.h +++ b/Plugins/org.mitk.gui.qt.cli/src/internal/org_mitk_gui_qt_cli_Activator.h @@ -1,39 +1,45 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) University College London (UCL). All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #ifndef org_mitk_gui_qt_cli_Activator_h #define org_mitk_gui_qt_cli_Activator_h #include namespace mitk { +/** + * \class org_mitk_gui_qt_cli_Activator + * \brief Blueberry plugin activator for CommandLineModulesView. + * \author Matt Clarkson (m.clarkson@ucl.ac.uk) + * \ingroup org_mitk_gui_qt_cli_internal + */ class org_mitk_gui_qt_cli_Activator : public QObject, public ctkPluginActivator { Q_OBJECT Q_INTERFACES(ctkPluginActivator) public: void start(ctkPluginContext* context); void stop(ctkPluginContext* context); }; // org_mitk_gui_qt_cli_Activator } #endif // org_mitk_gui_qt_cli_Activator_h