#ifndef VOPENEDLISTMENU_H #define VOPENEDLISTMENU_H #include #include class VEditWindow; class VFile; class QAction; class QKeyEvent; class QTimer; class VOpenedListMenu : public QMenu { Q_OBJECT public: struct ItemInfo { VFile *file; int index; }; explicit VOpenedListMenu(VEditWindow *p_editWin); protected: void keyPressEvent(QKeyEvent *p_event) Q_DECL_OVERRIDE; signals: void fileTriggered(VFile *p_file); private slots: void updateOpenedList(); void handleItemTriggered(QAction *p_action); void cmdTimerTimeout(); private: QString generateDescription(const VFile *p_file) const; void addDigit(int p_digit); int getNumOfDigit(int p_num); void triggerItem(int p_seq); VEditWindow *m_editWin; // The number user pressed. int m_cmdNum; QTimer *m_cmdTimer; QMap m_seqActionMap; }; #endif // VOPENEDLISTMENU_H