diff --git a/diagramview.cpp b/diagramview.cpp index ecfb66a51..ceb568b73 100644 --- a/diagramview.cpp +++ b/diagramview.cpp @@ -9,6 +9,8 @@ */ void DiagramView::initialise() { setInteractive(true); + setCacheMode(QGraphicsView::CacheBackground); + setOptimizationFlags(QGraphicsView::DontClipPainter|QGraphicsView::DontSavePainterState|QGraphicsView::DontAdjustForAntialiasing); // active l'antialiasing setRenderHint(QPainter::Antialiasing, true); @@ -205,6 +207,7 @@ void DiagramView::dropEvent(QDropEvent *e) { */ void DiagramView::setVisualisationMode() { setDragMode(ScrollHandDrag); + setInteractive(false); emit(modeChanged()); } @@ -213,7 +216,7 @@ void DiagramView::setVisualisationMode() { */ void DiagramView::setSelectionMode() { setDragMode(RubberBandDrag); - viewport() -> setCursor(Qt::ArrowCursor); + setInteractive(true); emit(modeChanged()); } diff --git a/qetapp.cpp b/qetapp.cpp index 4f8a94603..25def4ef5 100644 --- a/qetapp.cpp +++ b/qetapp.cpp @@ -614,7 +614,10 @@ bool QETApp::fermer() { DiagramView *sv = diagramEnCours(); if (!sv) return(false); bool fermeture_diagram = sv -> close(); - if (fermeture_diagram) delete sv; + if (fermeture_diagram) { + delete sv; + slot_updateMenuFenetres(); + } return(fermeture_diagram); } @@ -815,7 +818,7 @@ void QETApp::addDiagramView(DiagramView *sv) { */ void QETApp::slot_updateMenuFenetres() { // nettoyage du menu - menu_fenetres -> clear(); + foreach(QAction *a, menu_fenetres -> actions()) menu_fenetres -> removeAction(a); // actions de fermeture menu_fenetres -> addAction(fermer_fichier);