vnote/src/voutline.h
Le Tan fe4fb25105 VOutline: change current anchor when current item changed
Signed-off-by: Le Tan <tamlokveer@gmail.com>
2016-12-03 20:26:05 +08:00

41 lines
1.0 KiB
C++

#ifndef VOUTLINE_H
#define VOUTLINE_H
#include <QTreeWidget>
#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);
protected:
void keyPressEvent(QKeyEvent *event) Q_DECL_OVERRIDE;
private slots:
void handleCurItemChanged(QTreeWidgetItem *p_curItem, QTreeWidgetItem *p_preItem);
private:
void updateTreeFromOutline(const VToc &toc);
void updateTreeByLevel(const QVector<VHeader> &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