#ifndef VOUTLINE_H #define VOUTLINE_H #include #include "vtoc.h" class VOutline : public QTreeWidget { Q_OBJECT public: VOutline(QWidget *parent = 0); signals: void outlineItemActivated(const VAnchor &anchor); public slots: void updateOutline(const VToc &toc); void updateCurHeader(const VAnchor &anchor); private slots: void handleItemClicked(QTreeWidgetItem *item, int column); private: void updateTreeFromOutline(const VToc &toc); void updateTreeByLevel(const QVector &headers, int &index, QTreeWidgetItem *parent, QTreeWidgetItem *last, int level); void expandTree(); void selectAnchor(const QString &anchor); bool selectAnchorOne(QTreeWidgetItem *item, const QString &anchor); void selectLineNumber(int lineNumber); bool selectLineNumberOne(QTreeWidgetItem *item, int lineNumber); VToc outline; VAnchor curHeader; }; #endif // VOUTLINE_H