22
33#include " BasicGraphicsScene.hpp"
44#include " ConnectionGraphicsObject.hpp"
5+ #include " DataFlowGraphModel.hpp"
56#include " NodeGraphicsObject.hpp"
67#include " StyleCollection.hpp"
78#include " UndoCommands.hpp"
2324#include < cmath>
2425
2526using QtNodes::BasicGraphicsScene;
27+ using QtNodes::DataFlowGraphModel;
2628using QtNodes::GraphicsView;
29+ using QtNodes::NodeGraphicsObject;
2730
2831GraphicsView::GraphicsView (QWidget *parent)
2932 : QGraphicsView(parent)
@@ -75,8 +78,7 @@ QAction *GraphicsView::deleteSelectionAction() const
7578void GraphicsView::setScene (BasicGraphicsScene *scene)
7679{
7780 QGraphicsView::setScene (scene);
78- if (!scene)
79- {
81+ if (!scene) {
8082 // Clear actions.
8183 delete _clearSelectionAction;
8284 delete _deleteSelectionAction;
@@ -186,7 +188,8 @@ void GraphicsView::contextMenuEvent(QContextMenuEvent *event)
186188 return ;
187189 }
188190
189- if (!nodeScene ()) return ;
191+ if (!nodeScene ())
192+ return ;
190193
191194 auto const scenePos = mapToScene (event->pos ());
192195
@@ -291,14 +294,16 @@ void GraphicsView::setupScale(double scale)
291294
292295void GraphicsView::onDeleteSelectedObjects ()
293296{
294- if (!nodeScene ()) return ;
297+ if (!nodeScene ())
298+ return ;
295299
296300 nodeScene ()->undoStack ().push (new DeleteCommand (nodeScene ()));
297301}
298302
299303void GraphicsView::onDuplicateSelectedObjects ()
300304{
301- if (!nodeScene ()) return ;
305+ if (!nodeScene ())
306+ return ;
302307
303308 QPointF const pastePosition = scenePastePosition ();
304309
@@ -308,14 +313,16 @@ void GraphicsView::onDuplicateSelectedObjects()
308313
309314void GraphicsView::onCopySelectedObjects ()
310315{
311- if (!nodeScene ()) return ;
316+ if (!nodeScene ())
317+ return ;
312318
313319 nodeScene ()->undoStack ().push (new CopyCommand (nodeScene ()));
314320}
315321
316322void GraphicsView::onPasteObjects ()
317323{
318- if (!nodeScene ()) return ;
324+ if (!nodeScene ())
325+ return ;
319326
320327 QPointF const pastePosition = scenePastePosition ();
321328 nodeScene ()->undoStack ().push (new PasteCommand (nodeScene (), pastePosition));
@@ -360,7 +367,8 @@ void GraphicsView::mouseMoveEvent(QMouseEvent *event)
360367{
361368 QGraphicsView::mouseMoveEvent (event);
362369
363- if (!scene ()) return ;
370+ if (!scene ())
371+ return ;
364372
365373 if (scene ()->mouseGrabberItem () == nullptr && event->buttons () == Qt::LeftButton) {
366374 // Make sure shift is not being pressed
@@ -434,3 +442,22 @@ QPointF GraphicsView::scenePastePosition()
434442
435443 return mapToScene (origin);
436444}
445+
446+ void GraphicsView::zoomFitAll ()
447+ {
448+ fitInView (scene ()->itemsBoundingRect (), Qt::KeepAspectRatio);
449+ }
450+
451+ void GraphicsView::zoomFitSelected ()
452+ {
453+ if (scene ()->selectedItems ().count () > 0 ) {
454+ QRectF unitedBoundingRect{};
455+
456+ for (QGraphicsItem *item : scene ()->selectedItems ()) {
457+ unitedBoundingRect = unitedBoundingRect.united (
458+ item->mapRectToScene (item->boundingRect ()));
459+ }
460+
461+ fitInView (unitedBoundingRect, Qt::KeepAspectRatio);
462+ }
463+ }
0 commit comments