00001
00002
00003
00004
00005
00006
00007 #ifndef DLG_EDIT_POINT_AXIS_H
00008 #define DLG_EDIT_POINT_AXIS_H
00009
00010 #include "DocumentAxesPointsRequired.h"
00011 #include <QDialog>
00012 #include <QLineEdit>
00013 #include <QPushButton>
00014
00015 class DlgValidatorAbstract;
00016 class DocumentModelCoords;
00017 class DocumentModelGeneral;
00018 class MainWindow;
00019 class MainWindowModel;
00020 class QDoubleValidator;
00021 class QVBoxLayout;
00022 class Transformation;
00023
00025 class DlgEditPointAxis : public QDialog
00026 {
00027 Q_OBJECT;
00028
00029 public:
00032 DlgEditPointAxis (MainWindow &mainWindow,
00033 const DocumentModelCoords &modelCoords,
00034 const DocumentModelGeneral &modelGeneral,
00035 const MainWindowModel &modelMainWindow,
00036 const Transformation &transformation,
00037 DocumentAxesPointsRequired documentAxesPointsRequired,
00038 bool isXOnly = false,
00039 const double *xInitialValue = 0,
00040 const double *yInitialValue = 0);
00041 ~DlgEditPointAxis ();
00042
00044 QPointF posGraph (bool &isXOnly) const;
00045
00046 private slots:
00047 void slotTextChanged (const QString &);
00048
00049 private:
00050 void createCoords (QVBoxLayout *layoutOuter);
00051 void createHint (QVBoxLayout *layoutOuter);
00052 void createOkCancel (QVBoxLayout *layoutOuter);
00053 void initializeGraphCoordinates (const double *xInitialValue,
00054 const double *yInitialValue,
00055 const Transformation &transformation,
00056 bool isX,
00057 bool isY);
00058 bool isCartesian () const;
00059 QChar nameXTheta () const;
00060 QChar nameYRadius () const;
00061 QString unitsType (bool isXTheta) const;
00062 void updateControls ();
00063
00064 QLineEdit *m_editGraphX;
00065 DlgValidatorAbstract *m_validatorGraphX;
00066 QLineEdit *m_editGraphY;
00067 DlgValidatorAbstract *m_validatorGraphY;
00068 QPushButton *m_btnOk;
00069 QPushButton *m_btnCancel;
00070
00071 DocumentAxesPointsRequired m_documentAxesPointsRequired;
00072
00073 const DocumentModelCoords &m_modelCoords;
00074 const DocumentModelGeneral &m_modelGeneral;
00075 const MainWindowModel &m_modelMainWindow;
00076 };
00077
00078 #endif // DLG_EDIT_POINT_AXIS_H