00001
00002
00003
00004
00005
00006
00007 #ifndef DLG_SETTINGS_CURVE_PROPERTIES_H
00008 #define DLG_SETTINGS_CURVE_PROPERTIES_H
00009
00010 #include "CurveStyles.h"
00011 #include "DlgSettingsAbstractBase.h"
00012 #include "MainWindowModel.h"
00013
00014 class GraphicsPoint;
00015 class QComboBox;
00016 class QGraphicsScene;
00017 class QGridLayout;
00018 class QGroupBox;
00019 class QSpinBox;
00020 class ViewPreview;
00021
00023 class DlgSettingsCurveProperties : public DlgSettingsAbstractBase
00024 {
00025 Q_OBJECT;
00026
00027 public:
00029 DlgSettingsCurveProperties(MainWindow &mainWindow);
00030 virtual ~DlgSettingsCurveProperties();
00031
00032 virtual void createOptionalSaveDefault (QHBoxLayout *layout);
00033 virtual QWidget *createSubPanel ();
00034 virtual void load (CmdMediator &cmdMediator);
00035
00037 void setCurveName (const QString &curveName);
00038 virtual void setSmallDialogs (bool smallDialogs);
00039
00040 private slots:
00041 void slotCurveName(const QString &);
00042 void slotLineColor(const QString &);
00043 void slotLineType(const QString &);
00044 void slotLineWidth(int);
00045 void slotPointColor(const QString &);
00046 void slotPointLineWidth (int);
00047 void slotPointRadius(int);
00048 void slotPointShape(const QString &);
00049 void slotSaveDefault();
00050
00051 protected:
00052 virtual void handleOk ();
00053
00054 private:
00055
00056 void createCurveName (QGridLayout *layout, int &row);
00057 void createLine (QGridLayout *layout, int &row);
00058 void createPoint (QGridLayout *layout, int &row);
00059 void createPreview (QGridLayout *layout, int &row);
00060 void drawLine (bool isRelation,
00061 const LineStyle &lineStyle);
00062 void drawPoints (const PointStyle &pointStyle);
00063 void loadForCurveName(const QString &curveName);
00064 void resetSceneRectangle();
00065 void updateControls();
00066 void updatePreview();
00067
00068 MainWindowModel m_modelMainWindow;
00069
00070 QComboBox *m_cmbCurveName;
00071
00072 QGroupBox *m_groupPoint;
00073 QComboBox *m_cmbPointShape;
00074 QSpinBox *m_spinPointRadius;
00075 QSpinBox *m_spinPointLineWidth;
00076 QComboBox *m_cmbPointColor;
00077
00078 QGroupBox *m_groupLine;
00079 QSpinBox *m_spinLineWidth;
00080 QComboBox *m_cmbLineColor;
00081 QComboBox *m_cmbLineType;
00082
00083 QPushButton *m_btnSaveDefault;
00084
00085 QGraphicsScene *m_scenePreview;
00086 ViewPreview *m_viewPreview;
00087
00088 CurveStyles *m_modelCurveStylesBefore;
00089 CurveStyles *m_modelCurveStylesAfter;
00090
00091 bool m_isDirty;
00092 };
00093
00094 #endif // DLG_SETTINGS_CURVE_PROPERTIES_H