Blob Blame Raw


#ifndef VERSION_CONTROL_WIDGET_H
#define VERSION_CONTROL_WIDGET_H

#include <QWidget>
#include <QMap>
#include <QString>

class QLabel;
class QRadioButton;
class QSpinBox;
class QDateTimeEdit;
class QTimeEdit;
class QVBoxLayout;

class DoubleRadioWidget;

//-----------------------------------------------------------------------------

class DateChooserWidget : 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 : public QWidget
{
	Q_OBJECT

	QVBoxLayout *m_mainLayout;
	QMap<DoubleRadioWidget *, int> 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 : 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