Slicer  5.0
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
qSlicerCLIProgressBar.h
Go to the documentation of this file.
1 /*==============================================================================
2 
3  Program: 3D Slicer
4 
5  Copyright (c) Kitware Inc.
6 
7  See COPYRIGHT.txt
8  or http://www.slicer.org/copyright/copyright.txt for details.
9 
10  Unless required by applicable law or agreed to in writing, software
11  distributed under the License is distributed on an "AS IS" BASIS,
12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  See the License for the specific language governing permissions and
14  limitations under the License.
15 
16  This file was originally developed by Jean-Christophe Fillion-Robin, Kitware Inc.
17  and was partially funded by NIH grant 3P41RR013218-12S1
18 
19 ==============================================================================*/
20 
21 #ifndef __qSlicerCLIProgressBar_h
22 #define __qSlicerCLIProgressBar_h
23 
24 // Qt includes
25 #include <QMetaType>
26 #include <QWidget>
27 
28 // CTK includes
29 #include <ctkVTKObject.h>
30 
31 // Slicer includes
32 #include "qSlicerBaseQTCLIExport.h"
33 
35 class qSlicerCLIProgressBarPrivate;
36 
37 class Q_SLICER_BASE_QTCLI_EXPORT qSlicerCLIProgressBar : public QWidget
38 {
39  Q_OBJECT
40  Q_ENUMS(Visibility)
41  QVTK_OBJECT
42 
47  Q_PROPERTY(Visibility nameVisibility READ nameVisibility WRITE setNameVisibility)
52  Q_PROPERTY(Visibility statusVisibility READ statusVisibility WRITE setStatusVisibility)
57  Q_PROPERTY(Visibility progressVisibility READ progressVisibility WRITE setProgressVisibility)
58 public:
59 
60  typedef QWidget Superclass;
61  qSlicerCLIProgressBar(QWidget *parent=nullptr);
62  ~qSlicerCLIProgressBar() override;
63 
65  Q_INVOKABLE vtkMRMLCommandLineModuleNode * commandLineModuleNode()const;
66 
69  {
70  AlwaysHidden = 0,
73  VisibleAfterCompletion
74  };
75 
78  Visibility nameVisibility()const;
81  Visibility statusVisibility()const;
84  Visibility progressVisibility()const;
85 
86 public slots:
87 
89  void setCommandLineModuleNode(vtkMRMLCommandLineModuleNode* commandLineModuleNode);
90 
93  void setNameVisibility(qSlicerCLIProgressBar::Visibility visibility);
94 
97  void setStatusVisibility(qSlicerCLIProgressBar::Visibility visibility);
98 
101  void setProgressVisibility(qSlicerCLIProgressBar::Visibility visibility);
102 
103 protected slots:
104 
106  void updateUiFromCommandLineModuleNode(vtkObject* commandLineModuleNode);
107 
109  void showDetails(bool show);
110 
111 protected:
112 
113  QScopedPointer<qSlicerCLIProgressBarPrivate> d_ptr;
114 
115 private:
116 
117  Q_DECLARE_PRIVATE(qSlicerCLIProgressBar);
118  Q_DISABLE_COPY(qSlicerCLIProgressBar);
119 
120 };
121 
122 
123 #endif
Visibility
Visibility behavior of the GUI elements of the CLI progress bar.
QScopedPointer< qSlicerCLIProgressBarPrivate > d_ptr
MRML node for representing the parameters allowing to run a command line interface module (CLI)...