Imported Upstream version 1.8.8
[platform/upstream/doxygen.git] / addon / doxywizard / doxywizard.h
1 #ifndef DOXYWIZARD_H
2 #define DOXYWIZARD_H
3
4 #include <QMainWindow>
5 #include <QSettings>
6 #include <QStringList>
7
8 class Expert;
9 class Wizard;
10 class QLabel;
11 class QLineEdit;
12 class QPushButton;
13 class QTextEdit;
14 class QMenu;
15 class QProcess;
16 class QTimer;
17 class QTabWidget;
18
19 class MainWindow : public QMainWindow
20 {
21     Q_OBJECT
22
23   public:
24     static MainWindow &instance();
25     void loadConfigFromFile(const QString &fileName);
26     void loadSettings();
27     void saveSettings();
28     void closeEvent(QCloseEvent *event);
29     QString configFileName() const { return m_fileName; }
30     void updateTitle();
31
32   public slots:
33     void manual();
34     void about();
35     void openConfig();
36     bool saveConfig();
37     bool saveConfigAs();
38     void makeDefaults();
39     void resetToDefaults();
40     void selectTab(int);
41     void quit();
42
43   private slots:
44     void openRecent(QAction *action);
45     void selectWorkingDir();
46     void updateWorkingDir();
47     void runDoxygen();
48     void readStdout();
49     void runComplete();
50     void showHtmlOutput();
51     void saveLog();
52     void showSettings();
53     void configChanged();
54     void clearRecent();
55     void selectRunTab();
56     
57   private:
58     MainWindow();
59     void saveConfig(const QString &fileName);
60     void addRecentFile(const QString &fileName);
61     void updateConfigFileName(const QString &fileName);
62     void setWorkingDir(const QString &dirName);
63     void updateLaunchButtonState();
64     bool discardUnsavedChanges(bool saveOption=true);
65
66     QLineEdit *m_workingDir;
67     QPushButton *m_selWorkingDir;
68     QPushButton *m_run;
69     QPushButton *m_saveLog;
70     QPushButton *m_launchHtml;
71     QPushButton *m_launchPdf;
72     QTextEdit *m_outputLog;
73     QLabel *m_runStatus;
74     Expert *m_expert;
75     Wizard *m_wizard;
76     QString m_fileName;
77     QSettings m_settings;
78     QMenu *m_recentMenu;
79     QStringList m_recentFiles;
80     QProcess *m_runProcess;
81     QTimer *m_timer;
82     QTabWidget *m_tabs;
83     bool m_running;
84     bool m_modified;
85 };
86
87 #endif