From 3fe46a9f3bdb8ff945a1b31ee010ec08164a83c7 Mon Sep 17 00:00:00 2001 From: xavierqet Date: Mon, 7 Jan 2008 19:40:08 +0000 Subject: [PATCH] Ajout du zoom dans l'editeur d'element git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@266 bfdf4180-ca20-0410-9c96-a3a8aa849046 --- editor/elementview.cpp | 68 ++++++++++++++- editor/elementview.h | 9 ++ editor/partarc.cpp | 10 +++ editor/partarc.h | 1 + editor/partellipse.cpp | 10 +++ editor/partellipse.h | 1 + editor/partpolygon.cpp | 10 +++ editor/partpolygon.h | 1 + editor/qetelementeditor.cpp | 21 +++++ editor/qetelementeditor.h | 3 +- lang/qet_en.qm | Bin 53305 -> 53858 bytes lang/qet_en.ts | 162 ++++++++++++++++++++++-------------- 12 files changed, 231 insertions(+), 65 deletions(-) diff --git a/editor/elementview.cpp b/editor/elementview.cpp index 6a87ae083..4fe3fcf37 100644 --- a/editor/elementview.cpp +++ b/editor/elementview.cpp @@ -27,10 +27,8 @@ ElementView::ElementView(ElementScene *scene, QWidget *parent) : { setInteractive(true); setAlignment(Qt::AlignHCenter | Qt::AlignVCenter); - //setTransformationAnchor(QGraphicsView::AnchorUnderMouse); setResizeAnchor(QGraphicsView::AnchorUnderMouse); - //setSceneRect(QRectF(0.0, 0.0, 50.0, 200.0)); - scale(4.0, 4.0); + zoomReset(); } /// Destructeur @@ -64,3 +62,67 @@ bool ElementView::event(QEvent *e) { } return(QGraphicsView::event(e)); } + + +/** + Agrandit le schema (+33% = inverse des -25 % de zoomMoins()) +*/ +void ElementView::zoomIn() { + scale(4.0/3.0, 4.0/3.0); +} + +/** + Retrecit le schema (-25% = inverse des +33 % de zoomPlus()) +*/ +void ElementView::zoomOut() { + scale(0.75, 0.75); +} + +/** + Agrandit ou rectrecit le schema de facon a ce que tous les elements du + schema soient visibles a l'ecran. S'il n'y a aucun element sur le schema, + le zoom est reinitialise +*/ +void ElementView::zoomFit() { + adjustSceneRect(); + fitInView(sceneRect(), Qt::KeepAspectRatio); +} + +/** + Reinitialise le zoom +*/ +void ElementView::zoomReset() { + resetMatrix(); + scale(4.0, 4.0); +} + +/** + Ajuste le sceneRect (zone du schema visualisee par l'ElementView) afin que + celui inclut a la fois les parties dans et en dehors du cadre et le cadre + lui-meme. +*/ +void ElementView::adjustSceneRect() { + QRectF old_scene_rect = scene_ -> sceneRect(); + QRectF new_scene_rect = scene_ -> sceneContent(); + setSceneRect(new_scene_rect); + + // met a jour la scene + scene_ -> update(old_scene_rect.united(new_scene_rect)); +} + +/** + Gere les actions liees a la rollette de la souris + @param e QWheelEvent decrivant l'evenement rollette +*/ +void ElementView::wheelEvent(QWheelEvent *e) { + // si la touche Ctrl est enfoncee, on zoome / dezoome + if (e -> modifiers() & Qt::ControlModifier) { + if (e -> delta() > 0) { + zoomIn(); + } else { + zoomOut(); + } + } else { + QAbstractScrollArea::wheelEvent(e); + } +} diff --git a/editor/elementview.h b/editor/elementview.h index 7149ec249..62264c8e9 100644 --- a/editor/elementview.h +++ b/editor/elementview.h @@ -39,6 +39,15 @@ class ElementView : public QGraphicsView { void setScene(ElementScene *); protected: bool event(QEvent *); + void wheelEvent(QWheelEvent *); + + // slots + public slots: + void zoomIn(); + void zoomOut(); + void zoomFit(); + void zoomReset(); + void adjustSceneRect(); //attributs private: diff --git a/editor/partarc.cpp b/editor/partarc.cpp index a49b682e8..c22b3438c 100644 --- a/editor/partarc.cpp +++ b/editor/partarc.cpp @@ -251,3 +251,13 @@ int PartArc::startAngle() const { bool PartArc::isUseless() const { return(rect().isNull() || !angle()); } + +/** + @return le rectangle delimitant cette partie. +*/ +QRectF PartArc::boundingRect() const { + qreal adjust = 1.5; + QRectF r(QGraphicsEllipseItem::boundingRect().normalized()); + r.adjust(-adjust, -adjust, adjust, adjust); + return(r); +} diff --git a/editor/partarc.h b/editor/partarc.h index 168e882de..e754e37d2 100644 --- a/editor/partarc.h +++ b/editor/partarc.h @@ -52,6 +52,7 @@ class PartArc : public QGraphicsEllipseItem, public CustomElementGraphicPart { virtual const QDomElement toXml(QDomDocument &) const; virtual void fromXml(const QDomElement &); virtual QPointF sceneTopLeft() const; + virtual QRectF boundingRect() const; virtual void setAngle(int); virtual void setStartAngle(int); virtual int angle() const; diff --git a/editor/partellipse.cpp b/editor/partellipse.cpp index 1130db886..43ee4fab8 100644 --- a/editor/partellipse.cpp +++ b/editor/partellipse.cpp @@ -187,3 +187,13 @@ QPointF PartEllipse::sceneTopLeft() const { bool PartEllipse::isUseless() const { return(rect().isNull()); } + +/** + @return le rectangle delimitant cette partie. +*/ +QRectF PartEllipse::boundingRect() const { + qreal adjust = 1.5; + QRectF r(QGraphicsEllipseItem::boundingRect().normalized()); + r.adjust(-adjust, -adjust, adjust, adjust); + return(r); +} diff --git a/editor/partellipse.h b/editor/partellipse.h index 35e660112..b16af8bd0 100644 --- a/editor/partellipse.h +++ b/editor/partellipse.h @@ -50,6 +50,7 @@ class PartEllipse : public QGraphicsEllipseItem, public CustomElementGraphicPart virtual const QDomElement toXml(QDomDocument &) const; virtual void fromXml(const QDomElement &); virtual QPointF sceneTopLeft() const; + virtual QRectF boundingRect() const; virtual void setProperty(const QString &, const QVariant &); virtual QVariant property(const QString &); virtual bool isUseless() const; diff --git a/editor/partpolygon.cpp b/editor/partpolygon.cpp index b797f2756..ba791f66c 100644 --- a/editor/partpolygon.cpp +++ b/editor/partpolygon.cpp @@ -163,3 +163,13 @@ bool PartPolygon::isUseless() const { return(true); } + +/** + @return le rectangle delimitant cette partie. +*/ +QRectF PartPolygon::boundingRect() const { + qreal adjust = 1.5; + QRectF r(QGraphicsPolygonItem::boundingRect()); + r.adjust(-adjust, -adjust, adjust, adjust); + return(r); +} diff --git a/editor/partpolygon.h b/editor/partpolygon.h index 02dc1aef7..69a74e8fb 100644 --- a/editor/partpolygon.h +++ b/editor/partpolygon.h @@ -61,6 +61,7 @@ class PartPolygon : public QGraphicsPolygonItem, public CustomElementGraphicPart virtual QString name() const { return(QObject::tr("polygone")); } void fromXml(const QDomElement &); const QDomElement toXml(QDomDocument &) const; + virtual QRectF boundingRect() const; void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); void setClosed(bool c); bool isClosed() const; diff --git a/editor/qetelementeditor.cpp b/editor/qetelementeditor.cpp index b305cbcef..21537691a 100644 --- a/editor/qetelementeditor.cpp +++ b/editor/qetelementeditor.cpp @@ -69,6 +69,10 @@ void QETElementEditor::setupActions() { deselectall = new QAction( tr("D\351s\351lectionner tout"), this); inv_select = new QAction( tr("Inverser la s\351lection"), this); edit_delete = new QAction(QIcon(":/ico/delete.png"), tr("&Supprimer"), this); + zoom_in = new QAction(QIcon(":/ico/viewmag+.png"), tr("Zoom avant"), this); + zoom_out = new QAction(QIcon(":/ico/viewmag-.png"), tr("Zoom arri\350re"), this); + zoom_fit = new QAction(QIcon(":/ico/viewmagfit.png"), tr("Zoom adapt\351"), this); + zoom_reset = new QAction(QIcon(":/ico/viewmag.png"), tr("Pas de zoom"), this); edit_size_hs = new QAction(QIcon(":/ico/hotspot.png"), tr("\311diter la taille et le point de saisie"), this); edit_names = new QAction(QIcon(":/ico/names.png"), tr("\311diter les noms"), this); edit_ori = new QAction(QIcon(":/ico/orientations.png"), tr("\311diter les orientations"), this); @@ -102,6 +106,12 @@ void QETElementEditor::setupActions() { deselectall -> setShortcut(QKeySequence(tr("Ctrl+Shift+A"))); inv_select -> setShortcut(QKeySequence(tr("Ctrl+I"))); edit_delete -> setShortcut(QKeySequence(tr("Suppr"))); + + zoom_in -> setShortcut(QKeySequence::ZoomIn); + zoom_out -> setShortcut(QKeySequence::ZoomOut); + zoom_fit -> setShortcut(QKeySequence(tr("Ctrl+9"))); + zoom_reset -> setShortcut(QKeySequence(tr("Ctrl+0"))); + edit_names -> setShortcut(QKeySequence(tr("Ctrl+E"))); edit_size_hs -> setShortcut(QKeySequence(tr("Ctrl+R"))); edit_ori -> setShortcut(QKeySequence(tr("Ctrl+T"))); @@ -120,6 +130,10 @@ void QETElementEditor::setupActions() { connect(selectall, SIGNAL(triggered()), ce_scene, SLOT(slot_selectAll())); connect(deselectall, SIGNAL(triggered()), ce_scene, SLOT(slot_deselectAll())); connect(inv_select, SIGNAL(triggered()), ce_scene, SLOT(slot_invertSelection())); + connect(zoom_in, SIGNAL(triggered()), ce_view, SLOT(zoomIn())); + connect(zoom_out, SIGNAL(triggered()), ce_view, SLOT(zoomOut())); + connect(zoom_fit, SIGNAL(triggered()), ce_view, SLOT(zoomFit())); + connect(zoom_reset, SIGNAL(triggered()), ce_view, SLOT(zoomReset())); connect(edit_delete, SIGNAL(triggered()), ce_scene, SLOT(slot_delete())); connect(edit_size_hs, SIGNAL(triggered()), ce_scene, SLOT(slot_editSizeHotSpot())); connect(edit_names, SIGNAL(triggered()), ce_scene, SLOT(slot_editNames())); @@ -186,6 +200,8 @@ void QETElementEditor::setupActions() { main_toolbar = new QToolBar(tr("Outils"), this); main_toolbar -> setObjectName("main_toolbar"); + view_toolbar = new QToolBar(tr("Affichage"), this); + view_toolbar -> setObjectName("display"); element_toolbar = new QToolBar(tr("\311l\351ment"), this); element_toolbar -> setObjectName("element_toolbar"); depth_toolbar = new QToolBar(tr("Profondeur"), this); @@ -201,6 +217,10 @@ void QETElementEditor::setupActions() { main_toolbar -> addAction(redo); main_toolbar -> addSeparator(); main_toolbar -> addAction(edit_delete); + view_toolbar -> addAction(zoom_in); + view_toolbar -> addAction(zoom_out); + view_toolbar -> addAction(zoom_fit); + view_toolbar -> addAction(zoom_reset); element_toolbar -> addAction(edit_size_hs); element_toolbar -> addAction(edit_names); element_toolbar -> addAction(edit_ori); @@ -210,6 +230,7 @@ void QETElementEditor::setupActions() { depth_toolbar -> addAction(edit_backward); addToolBar(Qt::TopToolBarArea, main_toolbar); + addToolBar(Qt::TopToolBarArea, view_toolbar); addToolBar(Qt::TopToolBarArea, element_toolbar); addToolBar(Qt::TopToolBarArea, depth_toolbar); addToolBar(Qt::LeftToolBarArea, parts_toolbar); diff --git a/editor/qetelementeditor.h b/editor/qetelementeditor.h index 6f10c45ae..a41a139dc 100644 --- a/editor/qetelementeditor.h +++ b/editor/qetelementeditor.h @@ -59,10 +59,11 @@ class QETElementEditor : public QMainWindow { /// actions du menu edition QAction *selectall, *deselectall, *inv_select; QAction *undo, *redo; + QAction *zoom_in, *zoom_out, *zoom_fit, *zoom_reset; QAction *edit_delete, *edit_size_hs, *edit_names, *edit_ori; QAction *edit_raise, *edit_lower, *edit_backward, *edit_forward; /// barres d'outils - QToolBar *parts_toolbar, *main_toolbar, *depth_toolbar, *element_toolbar; + QToolBar *parts_toolbar, *main_toolbar, *view_toolbar, *depth_toolbar, *element_toolbar; /// actions de la barre d'outils QActionGroup *parts; QAction *move, *add_line, *add_circle, *add_ellipse, *add_polygon, *add_text; diff --git a/lang/qet_en.qm b/lang/qet_en.qm index 77c0eb79f541beb2d64ab52f6ed48d9696184b81..cc11db4f573a0f4cf42c772b207de31cf8df025e 100644 GIT binary patch delta 4006 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 delta 3793 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 GkM#dFc&oht diff --git a/lang/qet_en.ts b/lang/qet_en.ts index c9e6e1e50..627f79e66 100644 --- a/lang/qet_en.ts +++ b/lang/qet_en.ts @@ -1960,7 +1960,7 @@ Available options: &Save - + Enregistrer sous Save as @@ -1990,292 +1990,292 @@ Available options: &Delete - + Éditer la taille et le point de saisie Edit size and hotspot - + Éditer les noms Edit names - + Éditer les orientations Edit orientations - + Déplacer un objet Move an object - + Ajouter une ligne Add a line - + Ajouter une ellipse Add an ellipse - + Ajouter un cercle Add a circle - + Ajouter un polygone Add a polygon - + Ajouter du texte Add text - + Ajouter un arc de cercle Add an arc - + Ajouter une borne Add a terminal - + Ajouter un champ de texte Add a textfield - + Annuler Undo - + Refaire Redo - + Ctrl+Q Ctrl+Q - + Ctrl+Shift+A Ctrl+Shift+A - + Ctrl+I Ctrl+I - + Parties Parts - + Fichier File - + Édition Edit - + Affichage Display - + Outils Tools - + Aide Help - + [Modifié] [Changed] - + [lecture seule] [Read only] - + Informations Informations - + Annulations Undo - + Éditeur d'éléments Elements Editor - + parties sélectionnées. selected parts. - + Aucune partie sélectionnée. No part selected. - + Le fichier The file - + n'existe pas. does not exist. - + Impossible d'ouvrir le fichier Unable to open file - + Ce fichier n'est pas un document XML valide This file is not a valid XML document - + Erreur Error - + Édition en lecture seule Read only edition - + Vous n'avez pas les privilèges nécessaires pour modifier cet élement. Il sera donc ouvert en lecture seule. You are not allowed to modify this element. Thus it will be edited read-only. - + Impossible d'ecrire dans ce fichier Can't write to the file - + Ouvrir un fichier Open a file - + Éléments QElectroTech (*.elmt);;Fichiers XML (*.xml);;Tous les fichiers (*) QElectroTech elements (*.elmt);;XML files (*.xml);;All files (*) - + Éléments QElectroTech (*.elmt) QElectroTech elements (*.elmt) - + Enregistrer l'élément en cours ? Save current element ? - + Voulez-vous enregistrer l'élément Do you wish to save the element - + ? ? - + Afficher Display - + Suppr Del - + Ctrl+E Ctrl+E - + Ctrl+R Ctrl+R - + Ctrl+T Ctrl+T - + Rapprocher Raise - + Éloigner Lower - + Envoyer au fond Send backward - + Amener au premier plan Bring forward - + Ctrl+Shift+Up Ctrl+Shift+Up - + Ctrl+Shift+Down Ctrl+Shift+Down - + Ctrl+Shift+End Ctrl+Shift+End - + Ctrl+Shift+Home Ctrl+Shift+Home - + Aucune modification No modification @@ -2285,15 +2285,55 @@ Available options: Reload - + Recharger l'élément Reload element - + Vous avez efffectué des modifications sur cet élément. Si vous le rechargez, ces modifications seront perdues. Voulez-vous vraiment recharger l'élément ? This element has been modified since last save. If you reload it, these changes will be lost. Do you really want to reload this element ? + + + Zoom avant + Zoom In + + + + Zoom arrière + Zoom Out + + + + Zoom adapté + Fit in view + + + + Pas de zoom + Reset zoom + + + + Ctrl+9 + Ctrl+9 + + + + Ctrl+0 + Ctrl+0 + + + + Élément + Element + + + + Profondeur + Depth + QObject