insilmaril@0: #ifndef MAPEDITOR_H insilmaril@0: #define MAPEDITOR_H insilmaril@0: insilmaril@408: #include insilmaril@726: #include insilmaril@0: insilmaril@616: #include "attribute.h" insilmaril@473: #include "ornamentedobj.h" insilmaril@366: #include "settings.h" insilmaril@645: #include "vymmodel.h" insilmaril@0: insilmaril@119: insilmaril@486: /*! \brief Main widget in vym to display and edit a map */ insilmaril@473: insilmaril@720: class MapEditor : public QGraphicsView { insilmaril@0: Q_OBJECT insilmaril@0: insilmaril@0: public: insilmaril@720: MapEditor(VymModel *vm); insilmaril@0: ~MapEditor(); insilmaril@645: VymModel* getModel(); insilmaril@408: QGraphicsScene * getScene(); insilmaril@119: insilmaril@0: public: insilmaril@491: void print(); //!< Print the map insilmaril@491: void setAntiAlias (bool); //!< Set or unset antialiasing insilmaril@491: void setSmoothPixmap(bool); //!< Set or unset smoothing of pixmaps insilmaril@0: public: insilmaril@720: void toggleStandardFlag(QString); insilmaril@520: insilmaril@723: void updateSelection(); // update geometry of selection insilmaril@514: insilmaril@628: AttributeTable* attributeTable(); insilmaril@723: void testFunction1(); // just testing new stuff insilmaril@723: void testFunction2(); // just testing new stuff insilmaril@0: insilmaril@720: public slots: insilmaril@720: void editHeading(); insilmaril@720: void editHeadingFinished(); insilmaril@720: private: insilmaril@720: bool editingHeading; insilmaril@720: QLineEdit *lineEdit; insilmaril@720: insilmaril@0: protected: insilmaril@408: virtual void contextMenuEvent ( QContextMenuEvent *e ); insilmaril@398: virtual void keyPressEvent(QKeyEvent*); insilmaril@398: virtual void keyReleaseEvent(QKeyEvent*); insilmaril@408: virtual void mousePressEvent(QMouseEvent*); insilmaril@473: virtual void mouseMoveEvent(QMouseEvent*); insilmaril@408: virtual void mouseReleaseEvent(QMouseEvent*); insilmaril@408: virtual void mouseDoubleClickEvent(QMouseEvent*); insilmaril@473: virtual void resizeEvent( QResizeEvent * ); insilmaril@0: insilmaril@417: void dragEnterEvent (QDragEnterEvent *); insilmaril@417: void dragMoveEvent (QDragMoveEvent *); insilmaril@417: void dragLeaveEvent (QDragLeaveEvent *); insilmaril@417: void dropEvent (QDropEvent *); insilmaril@412: insilmaril@473: insilmaril@0: private: insilmaril@408: QGraphicsScene *mapScene; insilmaril@723: VymModel *model; //!< Vym Map, includding several mapCenters insilmaril@0: insilmaril@0: bool adjustCanvasRequested; // collect requests until end of user event insilmaril@0: BranchObj *editingBO; // entering Text into BO insilmaril@0: insilmaril@398: QCursor HandOpenCursor; // cursor while moving canvas view insilmaril@398: QCursor PickColorCursor; // cursor while picking color insilmaril@398: QCursor CopyCursor; // cursor while picking color insilmaril@398: QCursor XLinkCursor; // cursor while picking color insilmaril@83: bool pickingColor; insilmaril@83: bool drawingLink; // true while creating a link insilmaril@93: bool copyingObj; // true while creating a link insilmaril@95: XLinkObj* tmpXLink; insilmaril@366: insilmaril@720: MapObj* movingObj; // moving a MapObj insilmaril@83: MapObj* linkingObj_src; // part of a link insilmaril@408: QPointF movingObj_orgPos; // org. pos of mouse before move insilmaril@408: QPointF movingObj_orgRelPos; // org. relative pos of mouse before move insilmaril@408: QPointF movingObj_start; // rel. pos of mouse to absPos insilmaril@408: QPointF movingCont_start; // inital pos of moving Content or insilmaril@408: QPointF movingVec; // how far has Content moved insilmaril@684: insilmaril@720: QPointF contextMenuPos; // position where context event was triggered insilmaril@684: insilmaril@0: QPrinter* printer; // Printing insilmaril@0: insilmaril@628: AttributeTable *attrTable; insilmaril@628: insilmaril@0: bool printFrame; // Print frame around map insilmaril@0: bool printFooter; // Print footer below map insilmaril@0: insilmaril@720: QPoint exportOffset; // set before export, used in save insilmaril@0: insilmaril@726: public: insilmaril@726: void setSelectionModel (QItemSelectionModel*); insilmaril@726: QItemSelectionModel* selectionModel(); insilmaril@726: private: insilmaril@726: QItemSelectionModel* selModel; // we treat MapEditor as View here... insilmaril@726: insilmaril@0: }; insilmaril@0: #endif insilmaril@0: