#pragma once #ifndef VERSION_CONTROL_WIDGET_H #define VERSION_CONTROL_WIDGET_H #include #include #include class QLabel; class QRadioButton; class QSpinBox; class QDateTimeEdit; class QTimeEdit; class QVBoxLayout; class DoubleRadioWidget; //----------------------------------------------------------------------------- class DateChooserWidget final : public QWidget { Q_OBJECT int m_selectedRadioIndex; QRadioButton *m_timeRadioButton, *m_dayRadioButton, *m_weekRadioButton, *m_dateRadioButton; QTimeEdit *m_timeEdit; QSpinBox *m_dayEdit; QSpinBox *m_weekEdit; QDateTimeEdit *m_dateTimeEdit; public: DateChooserWidget(QWidget *parent = 0); QString getRevisionString() const; private: void disableAllWidgets(); protected slots: void onRadioButtonClicked(); }; //----------------------------------------------------------------------------- class ConflictWidget final : public QWidget { Q_OBJECT QVBoxLayout *m_mainLayout; QMap m_radios; QString m_button1Text; QString m_button2Text; public: ConflictWidget(QWidget *parent = 0); void setFiles(const QStringList &files); QStringList getFilesWithOption(int option) const; void setButton1Text(const QString &b1text) { m_button1Text = b1text; } void setButton2Text(const QString &b2text) { m_button2Text = b2text; } protected slots: void onRadioValueChanged(); signals: void allConflictSetted(); }; //----------------------------------------------------------------------------- class DoubleRadioWidget final : public QWidget { Q_OBJECT QLabel *m_label; QRadioButton *m_firstButton; QRadioButton *m_secondButton; public: DoubleRadioWidget(const QString &button1Text, const QString &button2Text, const QString &text, QWidget *parent = 0); // -1 No button checked, 0 firstButton, 1 secondButton int getValue() const; QString getText() const; signals: void valueChanged(); }; #endif // VERSION_CONTROL_WIDGET_H