diff --git a/Plugins/org.mitk.gui.qt.xnat/src/internal/QmitkXnatEditor.h b/Plugins/org.mitk.gui.qt.xnat/src/internal/QmitkXnatEditor.h index 5a6f111790..d2c95e0c23 100644 --- a/Plugins/org.mitk.gui.qt.xnat/src/internal/QmitkXnatEditor.h +++ b/Plugins/org.mitk.gui.qt.xnat/src/internal/QmitkXnatEditor.h @@ -1,127 +1,126 @@ /*=================================================================== 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 QMITKXNATEDITOR_h #define QMITKXNATEDITOR_h #include #include #include #include #include #include "ui_QmitkXnatEditorControls.h" #include "ctkXnatListModel.h" #include "ctkXnatSession.h" #include #include "mitkXnatSessionTracker.h" /*! \brief QmitkXnatEditor \warning This class is not yet documented. Use "git blame" and ask the author to provide basic documentation. -\sa QmitkFunctionality \ingroup ${plugin_target}_internal */ class QmitkXnatEditor : public berry::QtEditorPart, public berry::IReusableEditor { // this is needed for all Qt objects that should have a Qt meta-object // (everything that derives from QObject and wants to have signal/slots) Q_OBJECT public: berryObjectMacro(QmitkXnatEditor) QmitkXnatEditor(); ~QmitkXnatEditor(); static const QString EDITOR_ID; void CreateQtPartControl(QWidget *parent) override; void DoSave(/*IProgressMonitor monitor*/) override; void DoSaveAs() override; void Init(berry::IEditorSite::Pointer site, berry::IEditorInput::Pointer input) override; bool IsDirty() const override; bool IsSaveAsAllowed() const override; void SetInput(berry::IEditorInput::Pointer input) override; /** \brief Here the root object will be set and the view reset. Additionally the breadcrumbs will set visible. */ void UpdateList(); protected slots: /** \brief Any XNAT resource (file or folder) will be downloaded to the chosen download path. */ void DownloadResource(); /** \brief Every time you activate a node in the list, the root item will be updated to a child of the previous parent.\ In exception of the node is a file. The file will be downloaded and loaded to the DataManager. */ void OnObjectActivated(const QModelIndex& index); // Breadcrumb button slots void OnDataModelButtonClicked(); void OnProjectButtonClicked(); void OnSubjectButtonClicked(); void OnExperimentButtonClicked(); void OnKindOfDataButtonClicked(); void OnSessionButtonClicked(); void OnResourceButtonClicked(); /// \brief Updates the ctkXnatSession and the user interface void UpdateSession(ctkXnatSession* session); void CleanListModel(ctkXnatSession* session); void itemSelected(const QModelIndex &index); protected: virtual void SetFocus() override; Ui::QmitkXnatEditorControls m_Controls; private: int m_ParentCount; QString m_DownloadPath; ctkServiceTracker m_DataStorageServiceTracker; void InternalFileDownload(const QModelIndex& index); int ParentChecker(ctkXnatObject* child); void ToHigherLevel(); ctkXnatListModel* m_ListModel; ctkXnatSession* m_Session; mitk::XnatSessionTracker* m_Tracker; QScopedPointer m_SelectionListener; void SelectionChanged(const berry::IWorkbenchPart::Pointer& sourcepart, const berry::ISelection::ConstPointer& selection); }; #endif // QMITKXNATEDITOR_h diff --git a/Plugins/org.mitk.gui.qt.xnat/src/internal/QmitkXnatSimpleSearchView.h b/Plugins/org.mitk.gui.qt.xnat/src/internal/QmitkXnatSimpleSearchView.h index ae73e28a44..e80a23068a 100644 --- a/Plugins/org.mitk.gui.qt.xnat/src/internal/QmitkXnatSimpleSearchView.h +++ b/Plugins/org.mitk.gui.qt.xnat/src/internal/QmitkXnatSimpleSearchView.h @@ -1,85 +1,84 @@ /*=================================================================== 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 QMITKXNATSIMPLESEARCHVIEW_H #define QMITKXNATSIMPLESEARCHVIEW_H #include #include #include "QmitkXnatTreeBrowserView.h" #include "ui_QmitkXnatSimpleSearchViewControls.h" // ctkXnatCore #include "ctkXnatSession.h" // ctkXnatWidget #include "ctkXnatTreeModel.h" /*! \brief QmitkXnatSimpleSearchView \warning This class is not yet documented. Use "git blame" and ask the author to provide basic documentation. -\sa QmitkFunctionality \ingroup ${plugin_target}_internal */ class QmitkXnatSimpleSearchView : public QmitkXnatTreeBrowserView { // this is needed for all Qt objects that should have a Qt meta-object // (everything that derives from QObject and wants to have signal/slots) Q_OBJECT public: enum MatchingObject { EMPTY, PROJECT, SUBJECT, EXPERIMENT }; QmitkXnatSimpleSearchView(); ~QmitkXnatSimpleSearchView(); static const std::string VIEW_ID; virtual void CreateQtPartControl(QWidget *parent); berry::QtSelectionProvider::Pointer m_SelectionProvider; protected slots: /// \brief Called when the user clicks the GUI button void StartSearch(); protected: virtual void SetFocus(); Ui::QmitkXnatSimpleSearchViewControls m_Controls; private: void SetSelectionProvider(); ctkXnatSession* m_Session; ctkXnatTreeModel* m_TreeModel; }; #endif // QMITKXNATSIMPLESEARCHVIEW_H diff --git a/Plugins/org.mitk.gui.qt.xnat/src/internal/QmitkXnatTreeBrowserView.h b/Plugins/org.mitk.gui.qt.xnat/src/internal/QmitkXnatTreeBrowserView.h index f991eb5b26..0f1286a589 100644 --- a/Plugins/org.mitk.gui.qt.xnat/src/internal/QmitkXnatTreeBrowserView.h +++ b/Plugins/org.mitk.gui.qt.xnat/src/internal/QmitkXnatTreeBrowserView.h @@ -1,149 +1,148 @@ /*=================================================================== 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 QMITKXNATTREEBROWSERVIEW_H #define QMITKXNATTREEBROWSERVIEW_H #include #include "ui_QmitkXnatTreeBrowserViewControls.h" #include "QmitkHttpStatusCodeHandler.h" // ctkXnatCore #include "ctkXnatSession.h" // ctkXnatWidget #include "QmitkXnatTreeModel.h" // MitkXNAT Module #include "mitkXnatSessionTracker.h" #include #include #include class QMenu; /*! \brief QmitkXnatTreeBrowserView \warning This class is not yet documented. Use "git blame" and ask the author to provide basic documentation. -\sa QmitkFunctionality \ingroup ${plugin_target}_internal */ class QmitkXnatTreeBrowserView : public QmitkAbstractView { // this is needed for all Qt objects that should have a Qt meta-object // (everything that derives from QObject and wants to have signal/slots) Q_OBJECT public: QmitkXnatTreeBrowserView(); ~QmitkXnatTreeBrowserView(); static const QString VIEW_ID; virtual void CreateQtPartControl(QWidget *parent) override; enum SearchMethod { ProjectLevel = 0, SubjectLevel = 1 }; protected slots: /// \brief Opens or reuses the xnat editor with the activated node as root item. void OnActivatedNode(const QModelIndex& index); /// \brief Updates the ctkXnatSession and the user interface void UpdateSession(ctkXnatSession* session); /// \brief Cleans the tree model void CleanTreeModel(ctkXnatSession* session); /// \brief Searches the tree model void search(const QString &toSearch); void OnContextMenuRequested(const QPoint & pos); void OnContextMenuDownloadAndOpenFile(); void OnContextMenuDownloadFile(); void OnContextMenuCreateResourceFolder(); void OnContextMenuUploadFile(); void OnContextMenuCreateNewSubject(); void OnContextMenuCreateNewExperiment(); void OnContextMenuCopyXNATUrlToClipboard(); void OnContextMenuRefreshItem(); void OnUploadResource(const QList& , ctkXnatObject *, const QModelIndex &parentIndex); void OnProgress(QUuid, double); void itemSelected(const QModelIndex& index); void OnUploadFromDataStorage(); void sessionTimedOutMsg(); void sessionTimesOutSoonMsg(); void ToggleConnection(); protected: virtual void SetFocus() override; Ui::QmitkXnatTreeBrowserViewControls m_Controls; private slots: void OnXnatNodeSelected(const QModelIndex &index); void OnDownloadSelectedXnatFile(); void OnCreateResourceFolder(); private: void OnPreferencesChanged(const berry::IBerryPreferences*) override; void InternalFileDownload(const QModelIndex& index, bool loadData); void InternalDICOMDownload(ctkXnatObject* obj, QDir &DICOMDirPath); void InternalFileUpload(ctkXnatFile *file); ctkXnatResource* InternalAddResourceFolder(ctkXnatObject* parent); void InternalOpenFiles(const QFileInfoList&, mitk::StringProperty::Pointer xnatURL); void SetStatusInformation(const QString&); void FilePathNotAvailableWarning(QString file); void CleanUp(); ctkServiceTracker m_DataStorageServiceTracker; QmitkXnatTreeModel* m_TreeModel; mitk::XnatSessionTracker* m_Tracker; QString m_DownloadPath; QMenu* m_ContextMenu; bool m_SilentMode; QModelIndexList m_hiddenItems; bool m_AlreadyInSearch = false; }; #endif // QMITKXNATTREEBROWSERVIEW_H