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