00001
00002
00003
00004
00005
00006
00007 #ifndef DLG_SETTINGS_EXPORT_FORMAT_H
00008 #define DLG_SETTINGS_EXPORT_FORMAT_H
00009
00010 #include "DlgSettingsAbstractBase.h"
00011
00012 class DocumentModelExportFormat;
00013 class QCheckBox;
00014 class QComboBox;
00015 class QDoubleValidator;
00016 class QGridLayout;
00017 class QHBoxLayout;
00018 class QLineEdit;
00019 class QLabel;
00020 class QListWidget;
00021 class QPushButton;
00022 class QRadioButton;
00023 class QTabWidget;
00024 class QTextEdit;
00025 class QVBoxLayout;
00026
00028 class DlgSettingsExportFormat : public DlgSettingsAbstractBase
00029 {
00030 Q_OBJECT;
00031
00032 public:
00034 DlgSettingsExportFormat(MainWindow &mainWindow);
00035 virtual ~DlgSettingsExportFormat();
00036
00037 virtual void createOptionalSaveDefault (QHBoxLayout *layout);
00038 virtual QWidget *createSubPanel ();
00039 virtual void load (CmdMediator &cmdMediator);
00040
00041 private slots:
00042 void slotDelimitersCommas();
00043 void slotDelimitersSpaces();
00044 void slotDelimitersTabs();
00045 void slotExclude();
00046 void slotFunctionsLayoutAllCurves();
00047 void slotFunctionsLayoutOneCurve();
00048 void slotFunctionsPointsAllCurves();
00049 void slotFunctionsPointsEvenlySpaced();
00050 void slotFunctionsPointsEvenlySpacedInterval(const QString &);
00051 void slotFunctionsPointsEvenlySpacedIntervalUnits(const QString &);
00052 void slotFunctionsPointsFirstCurve();
00053 void slotFunctionsPointsRaw();
00054 void slotHeaderGnuplot();
00055 void slotHeaderNone();
00056 void slotHeaderSimple();
00057 void slotInclude();
00058 void slotListExcluded();
00059 void slotListIncluded();
00060 void slotOverrideCsvTsv(int);
00061 void slotRelationsPointsEvenlySpaced();
00062 void slotRelationsPointsEvenlySpacedInterval(const QString &);
00063 void slotRelationsPointsEvenlySpacedIntervalUnits(const QString &);
00064 void slotRelationsPointsRaw();
00065 void slotSaveDefault();
00066 void slotTabChanged (int);
00067 void slotXLabel (const QString &);
00068
00069 protected:
00070 virtual void handleOk ();
00071
00072 private:
00073
00074 void createCurveSelection (QGridLayout *layout, int &row);
00075 void createDelimiters (QHBoxLayout *layoutMisc);
00076 void createFileLayout (QHBoxLayout *layoutMisc);
00077 void createFunctionsPointsSelection (QHBoxLayout *layout);
00078 void createHeader (QHBoxLayout *layoutMisc);
00079 void createPreview (QGridLayout *layout, int &row);
00080 void createRelationsPointsSelection (QHBoxLayout *layout);
00081 void createTabWidget (QGridLayout *layout,
00082 int &row);
00083 void createXLabel (QGridLayout *layoutHeader,
00084 int colLabel);
00085 bool goodIntervalFunctions() const;
00086 bool goodIntervalRelations() const;
00087 void initializeIntervalConstraints ();
00088 void updateControls();
00089 void updateIntervalConstraints();
00090 void updatePreview();
00091
00092 QTabWidget *m_tabWidget;
00093
00094 QListWidget *m_listIncluded;
00095 QListWidget *m_listExcluded;
00096
00097 QPushButton *m_btnInclude;
00098 QPushButton *m_btnExclude;
00099
00100 QRadioButton *m_btnFunctionsPointsAllCurves;
00101 QRadioButton *m_btnFunctionsPointsFirstCurve;
00102 QRadioButton *m_btnFunctionsPointsEvenlySpaced;
00103 QLineEdit *m_editFunctionsPointsEvenlySpacing;
00104 QDoubleValidator *m_validatorFunctionsPointsEvenlySpacing;
00105 QComboBox *m_cmbFunctionsPointsEvenlySpacingUnits;
00106 QRadioButton *m_btnFunctionsPointsRaw;
00107
00108 QRadioButton *m_btnFunctionsLayoutAllCurves;
00109 QRadioButton *m_btnFunctionsLayoutOneCurve;
00110
00111 QRadioButton *m_btnRelationsPointsEvenlySpaced;
00112 QLineEdit *m_editRelationsPointsEvenlySpacing;
00113 QDoubleValidator *m_validatorRelationsPointsEvenlySpacing;
00114 QComboBox *m_cmbRelationsPointsEvenlySpacingUnits;
00115 QRadioButton *m_btnRelationsPointsRaw;
00116
00117 QRadioButton *m_btnDelimitersCommas;
00118 QRadioButton *m_btnDelimitersSpaces;
00119 QRadioButton *m_btnDelimitersTabs;
00120 QCheckBox *m_chkOverrideCsvTsv;
00121
00122 QRadioButton *m_btnHeaderNone;
00123 QRadioButton *m_btnHeaderSimple;
00124 QRadioButton *m_btnHeaderGnuplot;
00125
00126 QLineEdit *m_editXLabel;
00127
00128 QTextEdit *m_editPreview;
00129
00130 QPushButton *m_btnSaveDefault;
00131
00132 DocumentModelExportFormat *m_modelExportBefore;
00133 DocumentModelExportFormat *m_modelExportAfter;
00134
00135
00136
00137
00138 double m_minIntervalGraph;
00139 double m_minIntervalScreen;
00140 };
00141
00142 #endif // DLG_SETTINGS_EXPORT_FORMAT_H