diff --git a/sources/diagram.cpp b/sources/diagram.cpp index fd733cc52..0c907a507 100644 --- a/sources/diagram.cpp +++ b/sources/diagram.cpp @@ -84,6 +84,8 @@ Diagram::~Diagram() { delete undo_stack_; // suppression du QGIManager - tous les elements qu'il connait sont supprimes delete qgi_manager_; + // remove of conductor setter + delete conductor_setter_; // suppression des objets gerant les deplacements delete elements_mover_; diff --git a/sources/editor/elementscene.cpp b/sources/editor/elementscene.cpp index 08ba8f32e..e6f36061e 100644 --- a/sources/editor/elementscene.cpp +++ b/sources/editor/elementscene.cpp @@ -598,6 +598,11 @@ void ElementScene::paste() { } +void ElementScene::contextMenu(QContextMenuEvent *event) { + if (behavior == ElementScene::Normal) + element_editor -> contextMenu(event); +} + /** Selectionne une liste de parties @param content liste des parties a selectionner diff --git a/sources/editor/elementscene.h b/sources/editor/elementscene.h index 86e5fd4a9..912c33ec1 100644 --- a/sources/editor/elementscene.h +++ b/sources/editor/elementscene.h @@ -138,6 +138,7 @@ class ElementScene : public QGraphicsScene { void cut(); void copy(); void paste(); + void contextMenu (QContextMenuEvent *event); protected: virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *); diff --git a/sources/editor/elementview.cpp b/sources/editor/elementview.cpp index 30a1f5779..3b8dad980 100644 --- a/sources/editor/elementview.cpp +++ b/sources/editor/elementview.cpp @@ -65,6 +65,10 @@ QRectF ElementView::viewedSceneRect() const { return(QRectF(scene_left_top, scene_right_bottom)); } +void ElementView::contextMenuEvent(QContextMenuEvent *event) { + scene_ -> contextMenu(event); +} + /** Definit l'ElementScene visualisee par cette ElementView @param s l'ElementScene visualisee par cette ElementView diff --git a/sources/editor/elementview.h b/sources/editor/elementview.h index ac3d15662..a9b81e99e 100644 --- a/sources/editor/elementview.h +++ b/sources/editor/elementview.h @@ -40,6 +40,7 @@ class ElementView : public QGraphicsView { ElementScene *scene() const; void setScene(ElementScene *); QRectF viewedSceneRect() const; + void contextMenuEvent(QContextMenuEvent *event); protected: void mousePressEvent(QMouseEvent *); diff --git a/sources/editor/qetelementeditor.cpp b/sources/editor/qetelementeditor.cpp index 00e9520d7..e09e42248 100644 --- a/sources/editor/qetelementeditor.cpp +++ b/sources/editor/qetelementeditor.cpp @@ -415,28 +415,27 @@ void QETElementEditor::setupMenus() { * @brief QETElementEditor::contextMenuEvent * @param event */ -void QETElementEditor::contextMenuEvent(QContextMenuEvent *event) - { - QMenu menu(this); - menu.addAction(undo); - menu.addAction(redo); - menu.addAction(selectall); - menu.addAction(deselectall); - menu.addAction(inv_select); - menu.addSeparator(); - menu.addAction(edit_delete); - menu.addAction(cut); - menu.addAction(copy); - menu.addSeparator(); - menu.addAction(paste); - menu.addAction(paste_in_area); - menu.addMenu(paste_from_menu); - menu.addSeparator(); - menu.addAction(edit_forward); - menu.addAction(edit_raise); - menu.addAction(edit_lower); - menu.addAction(edit_backward); - menu.exec(event->globalPos()); +void QETElementEditor::contextMenu(QContextMenuEvent *event) { + QMenu menu(this); + menu.addAction(undo); + menu.addAction(redo); + menu.addAction(selectall); + menu.addAction(deselectall); + menu.addAction(inv_select); + menu.addSeparator(); + menu.addAction(edit_delete); + menu.addAction(cut); + menu.addAction(copy); + menu.addSeparator(); + menu.addAction(paste); + menu.addAction(paste_in_area); + menu.addMenu(paste_from_menu); + menu.addSeparator(); + menu.addAction(edit_forward); + menu.addAction(edit_raise); + menu.addAction(edit_lower); + menu.addAction(edit_backward); + menu.exec(event -> globalPos()); } diff --git a/sources/editor/qetelementeditor.h b/sources/editor/qetelementeditor.h index d2212330a..7ba676df9 100644 --- a/sources/editor/qetelementeditor.h +++ b/sources/editor/qetelementeditor.h @@ -113,11 +113,11 @@ class QETElementEditor : public QETMainWindow { static QPointF pasteOffset(); static QET::OrientedMovement pasteMovement(); static QString getOpenElementFileName(QWidget * = 0, const QString & = QString()); - + void contextMenu(QContextMenuEvent *event); + protected: void closeEvent(QCloseEvent *); virtual void firstActivation(QEvent *); - void contextMenuEvent(QContextMenuEvent *event); private: void setupActions();