Skip to content
Snippets Groups Projects
Commit 72fa445a authored by Allen, Bruce (CIV)'s avatar Allen, Bruce (CIV)
Browse files

add scene menu

parent 5e8d2202
No related branches found
No related tags found
No related merge requests found
......@@ -209,7 +209,7 @@ class Box(QGraphicsItem):
# box menu
def show_box_menu(self):
menu = QMenu()
# box border
# action box border
action_set_boxed = QAction("Show border")
action_set_boxed.setCheckable(True)
action_set_boxed.setChecked(self.is_boxed)
......@@ -220,7 +220,7 @@ class Box(QGraphicsItem):
action_set_boxed.triggered.connect(_set_boxed)
menu.addAction(action_set_boxed)
# content visibility
# action content visibility
action_set_visible = QAction("Show component")
action_set_visible.setCheckable(True)
action_set_visible.setChecked(self.is_visible)
......
......@@ -7,8 +7,11 @@ from PyQt5.QtCore import pyqtSlot
from PyQt5.QtCore import QObject
from PyQt5.QtGui import QBrush, QColor, QLinearGradient, QPainter
from PyQt5.QtGui import QTransform
from PyQt5.QtGui import QCursor
from PyQt5.QtWidgets import QGraphicsView
from PyQt5.QtWidgets import QGraphicsScene
from PyQt5.QtWidgets import QGraphicsSceneContextMenuEvent
from PyQt5.QtWidgets import QMenu
from settings_manager import settings
from edge_grip_manager import EdgeGripManager
from reset_scene_singleton import set_reset_scene_function
......@@ -239,6 +242,22 @@ class GraphMainScene(QGraphicsScene):
super(GraphMainScene, self).mouseMoveEvent(_event)
self._in_set_scene_rect = False
def _show_scene_menu(self):
menu = QMenu()
menu.addAction(self.graphs_manager.action_show_hidden_components)
menu.addAction(
self.graphs_manager.action_show_hidden_components_all_graphs)
_action = menu.exec(QCursor.pos())
def contextMenuEvent(self, event):
item_under_cursor = self.itemAt(event.scenePos().toPoint(),
QTransform())
if item_under_cursor:
# forward event to item
item_under_cursor.contextMenuEvent(event)
else:
self._show_scene_menu()
# GraphMainWidget
class GraphMainWidget(QObject):
"""GraphMainWidget provides the main QGraphicsView. It manages signals
......
from PyQt5.QtCore import QObject # for signal/slot support
from PyQt5.QtCore import pyqtSignal # for signal/slot support
from PyQt5.QtCore import pyqtSlot # for signal/slot support
from PyQt5.QtWidgets import QAction
from graph_item import GraphItem
from settings_manager import settings
from settings_manager import settings, emit_signal_settings_changed
class GraphsManager(QObject):
"""Provides graph data and signals when the graph list is loaded or cleared.
......@@ -37,6 +38,34 @@ class GraphsManager(QObject):
# connect
settings_manager.signal_settings_changed.connect(self._settings_changed)
# action show any hidden components
self.action_show_hidden_components = QAction(
"Show any hidden components")
self.action_show_hidden_components.setStatusTip("Show any components"
" that have been hidden")
self.action_show_hidden_components.triggered.connect(
self._show_hidden_components)
# action show any hidden components all graphs
self.action_show_hidden_components_all_graphs = QAction(
"Show any hidden components in all graphs")
self.action_show_hidden_components_all_graphs.setStatusTip(
"In all graphs show any components that have been hidden")
self.action_show_hidden_components_all_graphs.triggered.connect(
self._show_hidden_components_all_graphs)
@pyqtSlot()
def _show_hidden_components(self):
if self.selected_graph_index != -1:
self.graphs[self.selected_graph_index].ensure_visibility()
emit_signal_settings_changed()
@pyqtSlot()
def _show_hidden_components_all_graphs(self):
for graph in self.graphs:
graph.ensure_visibility()
emit_signal_settings_changed()
def _remember_spacing(self):
self.trace_node_h_spacing = settings["trace_node_h_spacing"]
self.trace_node_v_spacing = settings["trace_node_v_spacing"]
......
......@@ -2,7 +2,7 @@ from PyQt5.QtCore import QObject, pyqtSlot # for signal/slot support
from PyQt5.QtWidgets import QAction
from PyQt5.QtWidgets import QMenu
from settings_manager import default_themes, DEFAULT_SETTINGS, \
settings, save_settings, emit_signal_settings_changed
settings, save_settings
from paths_gryphon import DEFAULT_SETTINGS_FILENAME
from settings_dialog_wrapper import SettingsDialogWrapper
from message_popup import message_popup
......@@ -38,12 +38,6 @@ class SettingsGraphPaneMenu(QObject):
message_popup(None,
"Error saving graph settings file as default: %s" % str(e))
@pyqtSlot()
def _show_hidden_components(self):
for graph in self.graphs_manager.graphs:
graph.ensure_visibility()
emit_signal_settings_changed()
def __init__(self, parent_w, settings_manager, graphs_manager):
super().__init__()
self.parent_w = parent_w
......@@ -88,14 +82,6 @@ class SettingsGraphPaneMenu(QObject):
self._action_reset_settings.triggered.connect(
self._reset_settings)
# action show any hidden components
self._action_show_hidden_components = QAction(
"Show any hidden components")
self._action_show_hidden_components.setStatusTip("Show any components"
" that have been hidden")
self._action_show_hidden_components.triggered.connect(
self._show_hidden_components)
# the graph pane menu
self.graph_pane_menu = QMenu("&Graph pane")
self.graph_pane_menu.addMenu(self._preset_themes_menu)
......@@ -105,7 +91,10 @@ class SettingsGraphPaneMenu(QObject):
self.graph_pane_menu.addAction(self._action_default_on_startup)
self.graph_pane_menu.addAction(self._action_reset_settings)
self.graph_pane_menu.addSeparator()
self.graph_pane_menu.addAction(self._action_show_hidden_components)
self.graph_pane_menu.addAction(
self.graphs_manager.action_show_hidden_components)
self.graph_pane_menu.addAction(
self.graphs_manager.action_show_hidden_components_all_graphs)
def _open_settings_editor(self):
if not self._settings_dialog_wrapper:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment