|
1 #ifndef EXPERT_H |
|
2 #define EXPERT_H |
|
3 |
|
4 #include <QSplitter> |
|
5 #include <QDomElement> |
|
6 #include <QHash> |
|
7 |
|
8 class QTreeWidget; |
|
9 class QTreeWidgetItem; |
|
10 class QStackedWidget; |
|
11 class QSettings; |
|
12 class QTextEdit; |
|
13 class QTextCodec; |
|
14 class QPushButton; |
|
15 class Input; |
|
16 |
|
17 class Expert : public QSplitter |
|
18 { |
|
19 Q_OBJECT |
|
20 |
|
21 public: |
|
22 Expert(); |
|
23 ~Expert(); |
|
24 void loadSettings(QSettings *); |
|
25 void saveSettings(QSettings *); |
|
26 void loadConfig(const QString &fileName); |
|
27 bool writeConfig(QTextStream &t,bool brief); |
|
28 QByteArray saveInnerState () const; |
|
29 bool restoreInnerState ( const QByteArray & state ); |
|
30 const QHash<QString,Input*> &modelData() const { return m_options; } |
|
31 void resetToDefaults(); |
|
32 bool htmlOutputPresent(const QString &workingDir) const; |
|
33 bool pdfOutputPresent(const QString &workingDir) const; |
|
34 QString getHtmlOutputIndex(const QString &workingDir) const; |
|
35 |
|
36 public slots: |
|
37 void activateTopic(QTreeWidgetItem *,QTreeWidgetItem *); |
|
38 QWidget *createTopicWidget(QDomElement &elem); |
|
39 |
|
40 private slots: |
|
41 void showHelp(Input *); |
|
42 void nextTopic(); |
|
43 void prevTopic(); |
|
44 |
|
45 signals: |
|
46 void changed(); |
|
47 |
|
48 private: |
|
49 void createTopics(const QDomElement &); |
|
50 void saveTopic(QTextStream &t,QDomElement &elem,QTextCodec *codec,bool brief); |
|
51 |
|
52 QSplitter *m_splitter; |
|
53 QTextEdit *m_helper; |
|
54 QTreeWidget *m_treeWidget; |
|
55 QStackedWidget *m_topicStack; |
|
56 QHash<QString,QWidget *> m_topics; |
|
57 QHash<QString,QObject *> m_optionWidgets; |
|
58 QHash<QString,Input *> m_options; |
|
59 QPushButton *m_next; |
|
60 QPushButton *m_prev; |
|
61 QDomElement m_rootElement; |
|
62 }; |
|
63 |
|
64 #endif |