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