Slicer 4.2
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
qSlicerAnnotationModulePropertyDialog.h
Go to the documentation of this file.
00001 #ifndef __qSlicerAnnotationModulePropertyDialog_h
00002 #define __qSlicerAnnotationModulePropertyDialog_h
00003 
00004 #include <QLineEdit>
00005 #include "ui_qSlicerAnnotationModulePropertyDialog.h"
00006 
00007 #include "qSlicerAbstractModuleWidget.h"
00008 
00009 #include "vtkStdString.h"
00010 
00011 class vtkSlicerAnnotationModuleLogic;
00012 class vtkMRMLAnnotationLinesNode;
00013 class vtkMRMLAnnotationControlPointsNode;
00014 class vtkMRMLAnnotationNode;
00015 class vtkMRMLNode;
00016 class vtkMRMLAnnotationDisplayNode;
00017 class vtkMRMLAnnotationLineDisplayNode;
00018 class vtkMRMLAnnotationPointDisplayNode;
00019 class vtkMRMLAnnotationRulerNode;
00020 class vtkMRMLAnnotationAngleNode;
00021 class vtkMRMLAnnotationFiducialNode;
00022 
00024 class qSlicerAnnotationModulePropertyDialog : public QDialog
00025 {
00026   Q_OBJECT
00027 
00028 public:
00029   qSlicerAnnotationModulePropertyDialog(const char * id, vtkSlicerAnnotationModuleLogic* logic);
00030   ~qSlicerAnnotationModulePropertyDialog();
00031 
00032   const char * GetID() { return this->m_id; }
00033 
00034 
00035   void updateTextFromTable(QString text);
00036   void updateValue(QString valueString);
00037 
00038   void saveStateForUndo(vtkMRMLNode* node);
00039   void undo(vtkMRMLNode* node);
00040   void SetButtonText(int type);
00041   void updateLockUnlockStatus(bool isLock);
00042 
00043   static void toQColor(const double* color, QColor &qcolor);
00044   static void toColor(const QColor &qcolor, double* color);
00045   static void formatValueToChar(const char* format, std::vector<double> vv, QString &valueString );
00046 
00049   void getAllColor(QColor &qcolor);
00051   void updateAllColorButton();
00052 
00056   void setColorOnAnnotationDisplayNodes(const char *id, QColor qcolor);
00057 
00058 protected:
00060   void updateTypeLabelText();
00062   void updateIDLabelText();
00064   void updateNameText();
00065 protected slots:
00066 
00067   void onNameLineEditChanged();
00070   void onAllColorChanged(QColor qcolor);
00072   void onHierarchyPointSizeChanged(double value);
00074   void onHierarchyPointSizeDefaultButtonClicked();
00076   void onHierarchyTextScaleChanged(double value);
00078   void onHierarchyTextScaleDefaultButtonClicked();
00080   void onHierarchyPointGlyphChanged(QString value);
00082   void onHierarchyPointGlyphTypeDefaultButtonClicked();
00083 
00084   
00085   void onSizeSmallPushButtonClicked();
00086   void onSizeMediumPushButtonClicked();
00087   void onSizeLargePushButtonClicked();
00088   
00089     void onCoordinateChanged(QString text);
00090 
00091     void onPointsTableWidgetChanged(QTableWidgetItem *tableItem);
00092     void onPointColorChanged(QColor qcolor);
00093     void onPointSelectedColorChanged(QColor qcolor);
00094     void onPointSizeChanged(double value);
00095     void onPointOpacityChanged(double value);
00096     void onPointAmbientChanged(double value);
00097     void onPointDiffuseChanged(double value);
00098     void onPointSpecularChanged(double value);
00099     void onPointGlyphChanged(QString value);
00100     void onLineColorChanged(QColor qcolor);
00101     void onLineSelectedColorChanged(QColor qcolor);
00102     void onLineWidthChanged(double value);
00103     void onLineLabelPositionChanged(double value);
00104     void onLineLabelVisibilityStateChanged(int state);
00105     void onLineTickSpacingChanged();
00106     void onLineMaxTicksChanged(double value);
00107     void onLineOpacityChanged(double value);
00108     void onLineAmbientChanged(double value);
00109     void onLineDiffuseChanged(double value);
00110     void onLineSpecularChanged(double value);
00111 
00112   void onDescriptionTextChanged();
00113   void onTextChanged();
00114   void onRASCoordinatesChanged(double *coords);
00115   void onDialogRejected();
00116   void onDialogAccepted();
00117   void onTextUnselectedColorChanged(QColor qcolor);
00118   void onTextSelectedColorChanged(QColor qcolor);
00119   void onTextScaleChanged(double value);
00120   void onTextOpacityChanged(double value);
00121 
00122   void onLockUnlockButtonClicked();
00123   void onVisibleInvisibleButtonClicked();
00124 
00125 
00126 signals:
00127     void coordinateChanged(QString, char*);
00128     void textChanged();
00129     void textChanged(const QString &);
00130     void dialogRejected();
00131     void dialogAccepted();
00132     void doublePropertyChanged(double, char*, int);
00133     void colorPropertyChanged(QColor, char*, int);
00134     void itemChanged(QTableWidgetItem *);
00135   void coordinatesChanged(double*);
00136   
00137 private:
00138 
00139     void saveLinesNode(vtkMRMLAnnotationLinesNode* node);
00140     void saveControlPoints(vtkMRMLAnnotationControlPointsNode* node);
00141     void saveAnnotationNode(vtkMRMLAnnotationNode* node);
00142     void undoLinesNode(vtkMRMLAnnotationLinesNode* node);
00143     void undoControlPoints(vtkMRMLAnnotationControlPointsNode* node);
00144     void undoAnnotationNode(vtkMRMLAnnotationNode* node);
00145 
00146     // approved code starts here
00147     Ui::qSlicerAnnotationModulePropertyDialog ui;
00148 
00149     vtkStdString m_id;
00150     vtkSlicerAnnotationModuleLogic* m_logic;
00151 
00152     // create the slot and signal connections
00153     void createConnection();
00154 
00155     // initialize the GUI in respect to values from the logic
00156     void initialize();
00157 
00158     // lock/unlock the complete interface
00159     void lockUnlockInterface(bool lock);
00160 };
00161 
00162 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines