File indexing completed on 2024-05-19 05:40:16
0001 #ifndef ITEMEDITOR_H 0002 #define ITEMEDITOR_H 0003 0004 #include <QGraphicsView> 0005 #include <QList> 0006 #include <QPointer> 0007 #include <memory> 0008 0009 class EditorController; 0010 class FieldController; 0011 class ItemEditor : public QGraphicsView 0012 { 0013 Q_OBJECT 0014 public: 0015 ItemEditor(QWidget* parent= nullptr); 0016 void setController(EditorController* editCtrl); 0017 bool handle() const; 0018 void setHandle(bool handle); 0019 0020 protected: 0021 void contextMenuEvent(QContextMenuEvent* event); 0022 void mousePressEvent(QMouseEvent* event); 0023 void mouseReleaseEvent(QMouseEvent* event); 0024 0025 signals: 0026 void openContextMenu(QPoint); 0027 0028 private: 0029 bool m_handle; 0030 QPointer<EditorController> m_ctrl; 0031 std::unique_ptr<QAction> m_lockItem; 0032 std::unique_ptr<QAction> m_fitInView; 0033 std::unique_ptr<QAction> m_alignOnY; 0034 std::unique_ptr<QAction> m_alignOnX; 0035 std::unique_ptr<QAction> m_sameWidth; 0036 std::unique_ptr<QAction> m_sameHeight; 0037 std::unique_ptr<QAction> m_dupplicate; 0038 std::unique_ptr<QAction> m_verticalEquaDistance; 0039 std::unique_ptr<QAction> m_horizontalEquaDistance; 0040 0041 QList<FieldController*> m_selection; 0042 QPointer<FieldController> m_underCursorItem; 0043 }; 0044 0045 #endif // ITEMEDITOR_H