#ifndef CSV_RENDER_PATHGRIDMODE_H #define CSV_RENDER_PATHGRIDMODE_H #include #include "editmode.hpp" namespace CSVRender { class PathgridMode : public EditMode { Q_OBJECT public: PathgridMode(WorldspaceWidget* worldspace, QWidget* parent=0); virtual void activate(CSVWidget::SceneToolbar* toolbar); virtual bool createContextMenu(QMenu* menu); virtual void primaryEditPressed(const WorldspaceHitResult& hit); virtual void secondaryEditPressed(const WorldspaceHitResult& hit); virtual void primarySelectPressed(const WorldspaceHitResult& hit); virtual void secondarySelectPressed(const WorldspaceHitResult& hit); virtual bool primaryEditStartDrag (const WorldspaceHitResult& hit); virtual bool secondaryEditStartDrag (const WorldspaceHitResult& hit); virtual void drag (int diffX, int diffY, double speedFactor); virtual void dragCompleted(); /// \note dragAborted will not be called, if the drag is aborted via changing /// editing mode virtual void dragAborted(); private: enum DragMode { DragMode_None, DragMode_Move, DragMode_Edge }; std::string mLastId; DragMode mDragMode; unsigned short mFromNode; QAction* mSelectAll; QAction* mInvertSelection; QAction* mClearSelection; QAction* mRemoveSelected; QAction* mRemoveSelectedEdges; QString getTooltip(); private slots: void selectAll(); void invertSelection(); void clearSelection(); void removeSelected(); void removeSelectedEdges(); }; } #endif