Mercurial > hg > easyhg
diff multichoicedialog.h @ 69:6d5a5571caec
* Basic working "Open Repository" dialog
author | Chris Cannam |
---|---|
date | Thu, 18 Nov 2010 15:14:39 +0000 |
parents | b918e57c7bea |
children | 121cb1032717 |
line wrap: on
line diff
--- a/multichoicedialog.h Wed Nov 17 22:13:34 2010 +0000 +++ b/multichoicedialog.h Thu Nov 18 15:14:39 2010 +0000 @@ -18,24 +18,31 @@ #ifndef MULTICHOICEDIALOG_H #define MULTICHOICEDIALOG_H +#include "recentfiles.h" + #include <QDialog> #include <QString> -#include <QPushButton> +#include <QAbstractButton> #include <QMap> #include <QLabel> #include <QLineEdit> #include <QGridLayout> +#include <QHBoxLayout> #include <QStackedWidget> +#include <QSharedPointer> +#include <QComboBox> class MultiChoiceDialog : public QDialog { Q_OBJECT public: - explicit MultiChoiceDialog(QString title, QString heading, QWidget *parent = 0); + explicit MultiChoiceDialog(QString title, QString heading, + QWidget *parent = 0); enum ArgType { NoArg, FileArg, + DirectoryArg, UrlArg, FileOrUrlArg }; @@ -43,29 +50,30 @@ void addChoice(QString identifier, QString text, QString description, ArgType arg); - QString getSelectedIdentifier(); + void setCurrentChoice(QString); + QString getCurrentChoice(); QString getArgument(); -signals: + static void addRecentArgument(QString identifier, QString name); private slots: - + void choiceChanged(); + void browse(); private: - void updateArgWidgets(); // when choice changes - QMap<QString, QString> m_texts; QMap<QString, QString> m_descriptions; + QMap<QString, ArgType> m_argTypes; + QMap<QString, QSharedPointer<RecentFiles> > m_recentFiles; QString m_currentChoice; - QMap<QString, QPushButton *> m_choiceButtons; + QMap<QWidget *, QString> m_choiceButtons; - QGridLayout *m_choiceLayout; + QHBoxLayout *m_choiceLayout; QLabel *m_descriptionLabel; QLabel *m_argLabel; - QLineEdit *m_argEdit; - QPushButton *m_browseButton; - + QComboBox *m_argEdit; + QAbstractButton *m_browseButton; }; #endif // MULTICHOICEDIALOG_H