#ifndef ELANAVIGATIONVIEW_H #define ELANAVIGATIONVIEW_H #include "ElaDef.h" #include "ElaNavigationBarPrivate.h" #include #include class ElaScrollBar; class ElaNavigationStyle; class ElaToolTip; class ElaNavigationView : public QTreeView { Q_OBJECT Q_PRIVATE_CREATE(const ElaNavigationBarPrivate *, NavigationBarPrivate) public: explicit ElaNavigationView(QWidget *parent = nullptr); ~ElaNavigationView() override; void navigationNodeStateChange(QVariantMap data); Q_SLOT void onCustomContextMenuRequested(const QPoint &pos); Q_SIGNALS: Q_SIGNAL void navigationClicked(const QModelIndex &index); Q_SIGNAL void navigationOpenNewWindow(QString nodeKey); protected: virtual void mouseMoveEvent(QMouseEvent *event) override; virtual void mouseDoubleClickEvent(QMouseEvent *event) override; virtual void mouseReleaseEvent(QMouseEvent *event) override; virtual bool eventFilter(QObject *watched, QEvent *event) override; private: ElaNavigationStyle *_navigationStyle{nullptr}; ElaToolTip *_compactToolTip{nullptr}; }; #endif // ELANAVIGATIONVIEW_H