expert.h 1.7 KB
Newer Older
1 2 3
#ifndef EXPERT_H
#define EXPERT_H

4 5 6
#include <QSplitter>
#include <QDomElement>
#include <QHash>
7

8 9 10 11 12 13 14 15
class QTreeWidget;
class QTreeWidgetItem;
class QStackedWidget;
class QSettings;
class QTextEdit;
class QTextCodec;
class QPushButton;
class Input;
16

17
class Expert : public QSplitter
18
{
19
    Q_OBJECT
20 21

  public:
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
    Expert();
   ~Expert();
    void loadSettings(QSettings *);
    void saveSettings(QSettings *);
    void loadConfig(const QString &fileName);
    bool writeConfig(QTextStream &t,bool brief);
    QByteArray saveInnerState () const;
    bool restoreInnerState ( const QByteArray & state );
    const QHash<QString,Input*> &modelData() const { return m_options; }
    void resetToDefaults();
    bool htmlOutputPresent(const QString &workingDir) const;
    bool pdfOutputPresent(const QString &workingDir) const;
    QString getHtmlOutputIndex(const QString &workingDir) const;
  
  public slots:
    void activateTopic(QTreeWidgetItem *,QTreeWidgetItem *);
    QWidget *createTopicWidget(QDomElement &elem);
39 40

  private slots:
41 42 43 44 45
    void showHelp(Input *);
    void nextTopic();
    void prevTopic();

  signals:
Dimitri van Heesch's avatar
Dimitri van Heesch committed
46
    void changed();
47 48

  private:
49 50 51 52 53 54 55 56 57 58 59 60 61
    void createTopics(const QDomElement &);
    void saveTopic(QTextStream &t,QDomElement &elem,QTextCodec *codec,bool brief);

    QSplitter               *m_splitter;
    QTextEdit               *m_helper;
    QTreeWidget             *m_treeWidget;
    QStackedWidget          *m_topicStack;
    QHash<QString,QWidget *> m_topics;
    QHash<QString,QObject *> m_optionWidgets;
    QHash<QString,Input *>   m_options;
    QPushButton             *m_next;
    QPushButton             *m_prev;
    QDomElement              m_rootElement;
Dimitri van Heesch's avatar
Dimitri van Heesch committed
62
    bool                     m_inShowHelp;
63 64 65
};

#endif