1 #pragma once 2 3 #ifndef VERSION_CONTROL_WIDGET_H 4 #define VERSION_CONTROL_WIDGET_H 5 6 #include <QWidget> 7 #include <QMap> 8 #include <QString> 9 10 class QLabel; 11 class QRadioButton; 12 class QSpinBox; 13 class QDateTimeEdit; 14 class QTimeEdit; 15 class QVBoxLayout; 16 17 class DoubleRadioWidget; 18 19 //----------------------------------------------------------------------------- 20 21 class DateChooserWidget final : public QWidget { 22 Q_OBJECT 23 24 int m_selectedRadioIndex; 25 26 QRadioButton *m_timeRadioButton, *m_dayRadioButton, *m_weekRadioButton, 27 *m_dateRadioButton; 28 29 QTimeEdit *m_timeEdit; 30 QSpinBox *m_dayEdit; 31 QSpinBox *m_weekEdit; 32 QDateTimeEdit *m_dateTimeEdit; 33 34 public: 35 DateChooserWidget(QWidget *parent = 0); 36 37 QString getRevisionString() const; 38 39 private: 40 void disableAllWidgets(); 41 42 protected slots: 43 void onRadioButtonClicked(); 44 }; 45 46 //----------------------------------------------------------------------------- 47 48 class ConflictWidget final : public QWidget { 49 Q_OBJECT 50 51 QVBoxLayout *m_mainLayout; 52 QMap<DoubleRadioWidget *, int> m_radios; 53 54 QString m_button1Text; 55 QString m_button2Text; 56 57 public: 58 ConflictWidget(QWidget *parent = 0); 59 void setFiles(const QStringList &files); 60 61 QStringList getFilesWithOption(int option) const; 62 setButton1Text(const QString & b1text)63 void setButton1Text(const QString &b1text) { m_button1Text = b1text; } setButton2Text(const QString & b2text)64 void setButton2Text(const QString &b2text) { m_button2Text = b2text; } 65 66 protected slots: 67 void onRadioValueChanged(); 68 69 signals: 70 void allConflictSetted(); 71 }; 72 73 //----------------------------------------------------------------------------- 74 75 class DoubleRadioWidget final : public QWidget { 76 Q_OBJECT 77 78 QLabel *m_label; 79 QRadioButton *m_firstButton; 80 QRadioButton *m_secondButton; 81 82 public: 83 DoubleRadioWidget(const QString &button1Text, const QString &button2Text, 84 const QString &text, QWidget *parent = 0); 85 86 // -1 No button checked, 0 firstButton, 1 secondButton 87 int getValue() const; 88 QString getText() const; 89 90 signals: 91 void valueChanged(); 92 }; 93 94 #endif // VERSION_CONTROL_WIDGET_H 95