1 #pragma once 2 3 #ifndef SCENE_VIEWER_CONTEXT_MENU 4 #define SCENE_VIEWER_CONTEXT_MENU 5 6 #include <QMenu> 7 #include "tgeometry.h" 8 9 class TStageObjectId; 10 class SceneViewer; 11 class TXshColumn; 12 13 class SceneViewerContextMenu final : public QMenu { 14 Q_OBJECT 15 SceneViewer *m_viewer; 16 int m_groupIndexToBeEntered; 17 18 void addShowHideCommand(QMenu *menu, TXshColumn *column); 19 void addSelectCommand(QMenu *menu, const TStageObjectId &id); 20 21 public: 22 SceneViewerContextMenu(SceneViewer *parent); 23 ~SceneViewerContextMenu(); 24 25 void addEnterGroupCommands(const TPointD &pos); 26 void addLevelCommands(std::vector<int> &indices); 27 28 public slots: 29 30 void savePreviewedFrames(); 31 32 void enterVectorImageGroup(); 33 void exitVectorImageGroup(); 34 void setGuidedDrawingType(QAction *); 35 void setGuidedAutoInbetween(); 36 void setGuidedInterpolationState(QAction *); 37 38 void onShowHide(); 39 void onSetCurrent(); 40 }; 41 42 namespace ZeroThickToggleGui { 43 void addZeroThickCommand(QMenu *menu); 44 45 class ZeroThickToggleHandler : public QObject { 46 Q_OBJECT 47 48 public slots: 49 void activate(); 50 void deactivate(); 51 }; 52 53 } // Namespace ZeroThickToggleGui 54 55 namespace CursorOutlineToggleGui { 56 void addCursorOutlineCommand(QMenu *menu); 57 58 class CursorOutlineToggleHandler : public QObject { 59 Q_OBJECT 60 61 public slots: 62 void activate(); 63 void deactivate(); 64 }; 65 66 } // Namespace CursorOutlineToggleGui 67 68 #endif 69