spinetoolbox.widgets.custom_qgraphicsviews

Classes for custom QGraphicsViews for the Design and Graph views.

authors:
  1. Savolainen (VTT), M. Marin (KTH)
date:

6.2.2018

Module Contents

class spinetoolbox.widgets.custom_qgraphicsviews.CustomQGraphicsView(parent)[source]

Bases: PySide2.QtWidgets.QGraphicsView

Super class for Design and Graph QGraphicsViews.

parent

Parent widget

Type:QWidget

Init CustomQGraphicsView.

keyPressEvent(self, event)[source]

Overridden method. Enable zooming with plus and minus keys (comma resets zoom). Send event downstream to QGraphicsItems if pressed key is not handled here.

Parameters:event (QKeyEvent) – Pressed key
enterEvent(self, event)[source]

Overridden method. Do not show the stupid open hand mouse cursor.

Parameters:event (QEvent) – event
mousePressEvent(self, event)[source]

Set rubber band selection mode if Control pressed. Enable resetting the zoom factor from the middle mouse button.

mouseReleaseEvent(self, event)[source]

Reestablish scroll hand drag mode.

wheelEvent(self, event)[source]

Zoom in/out.

Parameters:event (QWheelEvent) – Mouse wheel event
resizeEvent(self, event)[source]

Updates zoom if needed when the view is resized.

Parameters:event (QResizeEvent) – a resize event
setScene(self, scene)[source]

Sets a new scene to this view.

Parameters:scene (ShrinkingScene) – a new scene
_update_zoom_limits(self, rect)[source]

Updates the minimum zoom limit and the zoom level with which the entire scene fits the view.

Parameters:rect (QRectF) – the scene’s rect
scaling_time(self, pos)[source]

Called when animation value for smooth zoom changes. Perform zoom.

anim_finished(self)[source]

Called when animation for smooth zoom finishes. Clean up.

zoom_in(self)[source]

Perform a zoom in with a fixed scaling.

zoom_out(self)[source]

Perform a zoom out with a fixed scaling.

reset_zoom(self)[source]

Reset zoom to the default factor.

gentle_zoom(self, factor, zoom_focus)[source]

Perform a zoom by a given factor.

Parameters:
  • factor (float) – a scaling factor relative to the current scene scaling
  • zoom_focus (QPoint) – focus of the zoom, e.g. mouse pointer position
_ensure_item_visible(self, item)[source]

Resets zoom if item is not visible.

class spinetoolbox.widgets.custom_qgraphicsviews.DesignQGraphicsView(parent)[source]

Bases: spinetoolbox.widgets.custom_qgraphicsviews.CustomQGraphicsView

QGraphicsView for the Design View.

Parameters:parent (QWidget) – Graph View Form’s (QMainWindow) central widget (self.centralwidget)
mousePressEvent(self, event)[source]

Manage drawing of links. Handle the case where a link is being drawn and the user doesn’t hit a connector button.

Parameters:event (QGraphicsSceneMouseEvent) – Mouse event
mouseMoveEvent(self, event)[source]

Update line end position.

Parameters:event (QGraphicsSceneMouseEvent) – Mouse event
set_ui(self, toolbox)[source]

Set a new scene into the Design View when app is started.

init_scene(self, empty=False)[source]

Resize scene and add a link drawer on scene. The scene must be cleared before calling this.

Parameters:empty (boolean) – True when creating a new project
set_project_item_model(self, model)[source]

Set project item model.

remove_icon(self, icon)[source]

Removes icon and all connected links from scene.

Returns all Links in the scene. Used for saving the project.

Pushes an AddLinkCommand to the toolbox undo stack.

Returns a Link between given connectors.

Parameters:
Returns:

Link

Makes a Link between given source and destination connectors and adds it to the project.

Parameters:

Adds given Link to the project.

Parameters:link (Link) – the link to add

Checks if there’s a link with the same source and destination as the given one, wipes it out and returns it.

Parameters:link (Link) – a new link being added to the project.
Returns
Link, NoneType

Pushes a RemoveLinkCommand to the toolbox undo stack.

Removes link from the project.

Remove link, then start drawing another one from the same source connector.

Creates Links from the given connections list.

  • List of dicts is accepted, e.g.
Parameters:connections (list) – List of connections.

Draw links when slot button is clicked.

Parameters:connector (ConnectorButton) – Connector button that triggered the drawing
notify_destination_items(self)[source]

Notify destination items that they have been connected to a source item.

connect_engine_signals(self, engine)[source]

Connects signals needed for icon animations from given engine.

_start_animation(self, item_name, direction)[source]

Starts item icon animation when executing forward.

_stop_animation(self, item_name, direction)[source]

Stops item icon animation when executing forward.

class spinetoolbox.widgets.custom_qgraphicsviews.GraphQGraphicsView[source]

Bases: spinetoolbox.widgets.custom_qgraphicsviews.CustomQGraphicsView

QGraphicsView for the Graph View.

item_dropped[source]
context_menu_requested[source]
dragLeaveEvent(self, event)[source]

Accept event. Then call the super class method only if drag source is not DragListView.

dragEnterEvent(self, event)[source]

Accept event. Then call the super class method only if drag source is not DragListView.

dragMoveEvent(self, event)[source]

Accept event. Then call the super class method only if drag source is not DragListView.

dropEvent(self, event)[source]

Only accept drops when the source is an instance of DragListView. Capture text from event’s mimedata and emit signal.

contextMenuEvent(self, e)[source]

Show context menu.

Parameters:e (QContextMenuEvent) – Context menu event
gentle_zoom(self, factor, zoom_focus)[source]

Perform a zoom by a given factor.

Parameters:
  • factor (float) – a scaling factor relative to the current scene scaling
  • zoom_focus (QPoint) – focus of the zoom, e.g. mouse pointer position
reset_zoom(self)[source]

Reset zoom to the default factor.

init_zoom(self)[source]

Init zoom.

adjust_items_to_zoom(self)[source]

Update items geometry after performing a zoom.

Some items (e.g. ArcItem) need this to stay the same size after a zoom.