From eb2acce3b669c2bd392013176ec57ef588e8fe23 Mon Sep 17 00:00:00 2001 From: xavier Date: Sun, 12 Aug 2012 11:46:42 +0000 Subject: [PATCH] Diagram editor: added the "zoom content" action. git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@1932 bfdf4180-ca20-0410-9c96-a3a8aa849046 --- ico/16x16/zoom-fit-best.png | Bin 0 -> 539 bytes ico/22x22/zoom-fit-best.png | Bin 0 -> 689 bytes qelectrotech.qrc | 2 ++ sources/diagramview.cpp | 8 ++++++++ sources/diagramview.h | 1 + sources/qetdiagrameditor.cpp | 14 ++++++++++++++ sources/qetdiagrameditor.h | 4 +++- sources/qeticons.cpp | 7 +++++-- sources/qeticons.h | 1 + 9 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 ico/16x16/zoom-fit-best.png create mode 100644 ico/22x22/zoom-fit-best.png diff --git a/ico/16x16/zoom-fit-best.png b/ico/16x16/zoom-fit-best.png new file mode 100644 index 0000000000000000000000000000000000000000..07cfc9847cb6821043d1da127b99273a637b07a8 GIT binary patch literal 539 zcmV+$0_6RPP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L00!&;00!&<9(6c100007bV*G`2iOG+ z3Mv{e5wxxV00EmxL_t(|+Le(#OT$nUhToeAqSPt~7F=}E#m&jxk6AiZaa0lNq(4P} zfH)N?Iu^vKpin^+#eYycXiYUqwMmnEJh|qgUb6VW!%Z%{Cnx6!d^5(*;eR}`Z%A3D zf0AUt3?L=Bt5&OcX}2K&OcV-OT3iH#fJjXcY%Z76kFfBIHit{464ut&@$&o(%d%kG zHf%mwez&n(k>~~l%>WEIr1U}yH&26j?*UCmqS;}c7-zQH5XsWG;o0^C8zPoE9-x+R<0fk-=e?aDu)R;z_Zqk()ruN)c~ z1ruc!Na%Fw_nitCi$x^xkg>PFe*xgi+=80=&ap@Na)&mLe2Qbq##F1-NJ>eb=TUjL zd=Fp}8nb}og|vF$(W@6FA+@%8y-u#{>hKISMuAMiD5mSX2in@+I?wvD-pM#SuimqX d*h@Bm!56}ZCMId;HE{p{002ovPDHLkV1lrt=VJf> literal 0 HcmV?d00001 diff --git a/ico/22x22/zoom-fit-best.png b/ico/22x22/zoom-fit-best.png new file mode 100644 index 0000000000000000000000000000000000000000..890133da80fde8aa0319f60e609115fd59eb38e9 GIT binary patch literal 689 zcmV;i0#5yjP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L011Qu011Qvs^VjL00007bV*G`2iOG+ z3KbBS8h4BU00J>dL_t(|+O?FwZ_`i^$In(ESc#BW8bu0I0I`sTMuY+qVk^qPf)M`# z18eyM5dQ-m=|+nbr5#W+q%277!hjfBsY6;vazVm&MH2r=e4J0|)p3(o5aOiE_k4Cf z@A>QZ9{jJ+67?MA&41+WQXa)cCef@qjIJoSU`i~8VThjR;pW!?)?T~V{Nmwo zIK2 XZ>2}w8M*MU00000NkvXXu0mjfWa>Bv literal 0 HcmV?d00001 diff --git a/qelectrotech.qrc b/qelectrotech.qrc index 83d150efd..b85b5076c 100644 --- a/qelectrotech.qrc +++ b/qelectrotech.qrc @@ -79,6 +79,7 @@ ico/16x16/west.png ico/16x16/window-new.png ico/16x16/zoom-draw.png + ico/16x16/zoom-fit-best.png ico/16x16/zoom-in.png ico/16x16/zoom-original.png ico/16x16/zoom-out.png @@ -174,6 +175,7 @@ ico/22x22/view-restore.png ico/22x22/window-new.png ico/22x22/zoom-draw.png + ico/22x22/zoom-fit-best.png ico/22x22/zoom-in.png ico/22x22/zoom-original.png ico/22x22/zoom-out.png diff --git a/sources/diagramview.cpp b/sources/diagramview.cpp index 65c81a36c..96c7013d6 100644 --- a/sources/diagramview.cpp +++ b/sources/diagramview.cpp @@ -337,6 +337,14 @@ void DiagramView::zoomFit() { adjustGridToZoom(); } +/** + Adjust zoom to fit all elements in the view, regardless of diagram borders. +*/ +void DiagramView::zoomContent() { + fitInView(scene -> itemsBoundingRect(), Qt::KeepAspectRatio); + adjustGridToZoom(); +} + /** Reinitialise le zoom */ diff --git a/sources/diagramview.h b/sources/diagramview.h index 0e49f42b4..bab532281 100644 --- a/sources/diagramview.h +++ b/sources/diagramview.h @@ -127,6 +127,7 @@ class DiagramView : public QGraphicsView { void zoomIn(); void zoomOut(); void zoomFit(); + void zoomContent(); void zoomReset(); void cut(); void copy(); diff --git a/sources/qetdiagrameditor.cpp b/sources/qetdiagrameditor.cpp index 1a1b8b327..6473b14f8 100644 --- a/sources/qetdiagrameditor.cpp +++ b/sources/qetdiagrameditor.cpp @@ -216,6 +216,7 @@ void QETDiagramEditor::actions() { zoom_in = new QAction(QET::Icons::ZoomIn, tr("Zoom avant"), this); zoom_out = new QAction(QET::Icons::ZoomOut, tr("Zoom arri\350re"), this); + zoom_content = new QAction(QET::Icons::ZoomDraw, tr("Zoom sur le contenu"), this); zoom_fit = new QAction(QET::Icons::ZoomFitBest, tr("Zoom adapt\351"), this); zoom_reset = new QAction(QET::Icons::ZoomOriginal, tr("Pas de zoom"), this); @@ -264,6 +265,7 @@ void QETDiagramEditor::actions() { zoom_in -> setShortcut(QKeySequence::ZoomIn); zoom_out -> setShortcut(QKeySequence::ZoomOut); + zoom_content -> setShortcut(QKeySequence(tr("Ctrl+8"))); zoom_fit -> setShortcut(QKeySequence(tr("Ctrl+9"))); zoom_reset -> setShortcut(QKeySequence(tr("Ctrl+0"))); @@ -303,6 +305,7 @@ void QETDiagramEditor::actions() { zoom_in -> setStatusTip(tr("Agrandit le sch\351ma", "status bar tip")); zoom_out -> setStatusTip(tr("R\351tr\351cit le sch\351ma", "status bar tip")); + zoom_content -> setStatusTip(tr("Adapte le zoom de fa\347on \340 afficher tout le contenu ind\351pendamment du cadre")); zoom_fit -> setStatusTip(tr("Adapte la taille du sch\351ma afin qu'il soit enti\350rement visible", "status bar tip")); zoom_reset -> setStatusTip(tr("Restaure le zoom par d\351faut", "status bar tip")); @@ -353,6 +356,7 @@ void QETDiagramEditor::actions() { connect(prj_clean, SIGNAL(triggered()), this, SLOT(cleanCurrentProject()) ); connect(zoom_in, SIGNAL(triggered()), this, SLOT(slot_zoomIn()) ); connect(zoom_out, SIGNAL(triggered()), this, SLOT(slot_zoomOut()) ); + connect(zoom_content, SIGNAL(triggered()), this, SLOT(slot_zoomContent()) ); connect(zoom_fit, SIGNAL(triggered()), this, SLOT(slot_zoomFit()) ); connect(zoom_reset, SIGNAL(triggered()), this, SLOT(slot_zoomReset()) ); connect(print, SIGNAL(triggered()), this, SLOT(printDialog()) ); @@ -482,6 +486,7 @@ void QETDiagramEditor::menus() { menu_affichage -> addSeparator(); menu_affichage -> addAction(zoom_in); menu_affichage -> addAction(zoom_out); + menu_affichage -> addAction(zoom_content); menu_affichage -> addAction(zoom_fit); menu_affichage -> addAction(zoom_reset); @@ -527,6 +532,7 @@ void QETDiagramEditor::toolbar() { view_bar -> addSeparator(); view_bar -> addAction(zoom_in); view_bar -> addAction(zoom_out); + view_bar -> addAction(zoom_content); view_bar -> addAction(zoom_fit); view_bar -> addAction(zoom_reset); @@ -968,6 +974,13 @@ void QETDiagramEditor::slot_zoomFit() { if(currentDiagram()) currentDiagram() -> zoomFit(); } +/** + Call the "zoom content" action for the current diagram. +*/ +void QETDiagramEditor::slot_zoomContent() { + if(currentDiagram()) currentDiagram() -> zoomContent(); +} + /** Effectue l'action "zoom par defaut" sur le schema en cours */ @@ -1059,6 +1072,7 @@ void QETDiagramEditor::slot_updateActions() { select_invert -> setEnabled(opened_diagram); zoom_in -> setEnabled(opened_diagram); zoom_out -> setEnabled(opened_diagram); + zoom_content -> setEnabled(opened_diagram); zoom_fit -> setEnabled(opened_diagram); zoom_reset -> setEnabled(opened_diagram); infos_diagram -> setEnabled(opened_diagram); diff --git a/sources/qetdiagrameditor.h b/sources/qetdiagrameditor.h index b686ea5f2..74819b84e 100644 --- a/sources/qetdiagrameditor.h +++ b/sources/qetdiagrameditor.h @@ -99,6 +99,7 @@ class QETDiagramEditor : public QETMainWindow { void slot_zoomIn(); void slot_zoomOut(); void slot_zoomFit(); + void slot_zoomContent(); void slot_zoomReset(); void slot_selectAll(); void slot_selectNothing(); @@ -196,7 +197,8 @@ class QETDiagramEditor : public QETMainWindow { QAction *prj_clean; ///< Nettoie un projet QAction *zoom_in; ///< Zoome avant QAction *zoom_out; ///< Zoome arriere - QAction *zoom_fit; ///< Ajuste le zoom de facon a voir l'integralite des elements + QAction *zoom_fit; ///< Adjust zoom to fit the whole diagram, including potential elements outside its borders, in the view + QAction *zoom_content; ///< Adjust zoom to fit all elements in the view, regardless of diagram borders QAction *zoom_reset; ///< Remet le zoom 1:1 QAction *tile_window; ///< Affiche les fenetre MDI en mosaique QAction *cascade_window; ///< Affiche les fenetres MDI en cascade diff --git a/sources/qeticons.cpp b/sources/qeticons.cpp index 1b89ff396..fec131503 100644 --- a/sources/qeticons.cpp +++ b/sources/qeticons.cpp @@ -146,6 +146,7 @@ namespace QET { QIcon West; QIcon WindowNew; QIcon XmlTextFile; + QIcon ZoomDraw; QIcon ZoomFitBest; QIcon ZoomIn; QIcon ZoomOriginal; @@ -372,8 +373,10 @@ void QET::Icons::initIcons() { XmlTextFile .addFile(":/ico/16x16/text-xml.png"); XmlTextFile .addFile(":/ico/22x22/text-xml.png"); XmlTextFile .addFile(":/ico/32x32/text-xml.png"); - ZoomFitBest .addFile(":/ico/16x16/zoom-draw.png"); - ZoomFitBest .addFile(":/ico/22x22/zoom-draw.png"); + ZoomDraw .addFile(":/ico/16x16/zoom-draw.png"); + ZoomDraw .addFile(":/ico/22x22/zoom-draw.png"); + ZoomFitBest .addFile(":/ico/16x16/zoom-fit-best.png"); + ZoomFitBest .addFile(":/ico/22x22/zoom-fit-best.png"); ZoomIn .addFile(":/ico/16x16/zoom-in.png"); ZoomIn .addFile(":/ico/22x22/zoom-in.png"); ZoomOriginal .addFile(":/ico/16x16/zoom-original.png"); diff --git a/sources/qeticons.h b/sources/qeticons.h index acb88d219..495ce1440 100644 --- a/sources/qeticons.h +++ b/sources/qeticons.h @@ -155,6 +155,7 @@ namespace QET { extern QIcon West; extern QIcon WindowNew; extern QIcon XmlTextFile; + extern QIcon ZoomDraw; extern QIcon ZoomFitBest; extern QIcon ZoomIn; extern QIcon ZoomOriginal;