mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-17 19:55:32 +00:00
Add GUI utility function to add a popup menu to a widget
This commit is contained in:
parent
a073b11f63
commit
a6f268ab4b
3 changed files with 22 additions and 30 deletions
|
@ -30,6 +30,18 @@ import gtk
|
|||
|
||||
from GstDebugViewer.Common import utils
|
||||
|
||||
def widget_add_popup_menu (widget, menu, button = 3):
|
||||
|
||||
def popup_callback (widget, event):
|
||||
|
||||
if event.button == button:
|
||||
menu.popup (None, None, None, event.button, event.get_time ())
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
widget.connect ("button-press-event", popup_callback)
|
||||
|
||||
class Actions (dict):
|
||||
|
||||
def __init__ (self):
|
||||
|
|
|
@ -1212,13 +1212,12 @@ class LineView (object):
|
|||
handler = self.handle_clear_line_view_action_activate
|
||||
self.clear_action.connect ("activate", handler)
|
||||
|
||||
ui = window.ui_manager
|
||||
self.popup = ui.get_widget ("/ui/context/LineViewContextMenu").get_submenu ()
|
||||
|
||||
self.line_view = window.widgets.line_view
|
||||
self.line_view.connect ("row-activated", self.handle_line_view_row_activated)
|
||||
self.line_view.connect ("button-press-event",
|
||||
self.handle_line_view_button_press_event)
|
||||
|
||||
ui = window.ui_manager
|
||||
self.popup = ui.get_widget ("/ui/context/LineViewContextMenu").get_submenu ()
|
||||
Common.GUI.widget_add_popup_menu (self.line_view, self.popup)
|
||||
|
||||
self.log_view = log_view = window.log_view
|
||||
log_view.connect ("row-activated", self.handle_log_view_row_activated)
|
||||
|
@ -1304,14 +1303,6 @@ class LineView (object):
|
|||
|
||||
self.clear ()
|
||||
|
||||
def handle_line_view_button_press_event (self, line_view, event):
|
||||
|
||||
if event.button != 3:
|
||||
return False
|
||||
|
||||
self.popup.popup (None, None, None, event.button, event.get_time ())
|
||||
return True
|
||||
|
||||
class Window (object):
|
||||
|
||||
def __init__ (self, app):
|
||||
|
@ -1379,7 +1370,6 @@ class Window (object):
|
|||
self.ui_manager = ui = self.ui_factory.make ()
|
||||
menubar = ui.get_widget ("/ui/menubar")
|
||||
self.widgets.vbox_main.pack_start (menubar, False, False, 0)
|
||||
self.view_popup = ui.get_widget ("/ui/menubar/ViewMenu").get_submenu ()
|
||||
|
||||
self.gtk_window = self.widgets.main_window
|
||||
self.gtk_window.add_accel_group (ui.get_accel_group ())
|
||||
|
@ -1387,7 +1377,8 @@ class Window (object):
|
|||
self.log_view.drag_dest_unset ()
|
||||
self.log_view.set_search_column (-1)
|
||||
|
||||
self.log_view.connect ("button-press-event", self.handle_log_view_button_press_event)
|
||||
self.view_popup = ui.get_widget ("/ui/menubar/ViewMenu").get_submenu ()
|
||||
Common.GUI.widget_add_popup_menu (self.log_view, self.view_popup)
|
||||
|
||||
self.line_view = LineView ()
|
||||
|
||||
|
@ -1721,14 +1712,6 @@ class Window (object):
|
|||
dialog.run ()
|
||||
dialog.destroy ()
|
||||
|
||||
def handle_log_view_button_press_event (self, view, event):
|
||||
|
||||
if event.button != 3:
|
||||
return False
|
||||
|
||||
self.view_popup.popup (None, None, None, event.button, event.get_time ())
|
||||
return True
|
||||
|
||||
def handle_load_started (self):
|
||||
|
||||
self.logger.debug ("load has started")
|
||||
|
|
|
@ -660,8 +660,6 @@ class TimelineFeature (FeatureBase):
|
|||
"hide-after-line", gtk.UI_MANAGER_MENUITEM, False)
|
||||
ui.add_ui (self.merge_id, "/TimelineContextMenu", "TimelineShowHiddenLines",
|
||||
"show-hidden-lines", gtk.UI_MANAGER_MENUITEM, False)
|
||||
|
||||
self.popup = ui.get_widget ("/TimelineContextMenu")
|
||||
|
||||
box = window.get_top_attach_point ()
|
||||
|
||||
|
@ -672,6 +670,9 @@ class TimelineFeature (FeatureBase):
|
|||
box.pack_start (self.timeline, False, False, 0)
|
||||
self.timeline.hide ()
|
||||
|
||||
self.popup = ui.get_widget ("/TimelineContextMenu")
|
||||
Common.GUI.widget_add_popup_menu (self.timeline, self.popup)
|
||||
|
||||
box = window.get_side_attach_point ()
|
||||
|
||||
self.vtimeline = VerticalTimelineWidget ()
|
||||
|
@ -805,12 +806,8 @@ class TimelineFeature (FeatureBase):
|
|||
|
||||
def handle_timeline_button_press_event (self, widget, event):
|
||||
|
||||
if event.button == 3:
|
||||
self.popup.popup (None, None, None, event.button, event.get_time ())
|
||||
return True
|
||||
|
||||
if event.button != 1:
|
||||
return True
|
||||
return False
|
||||
|
||||
# TODO: Check if clicked inside a warning/error indicator triangle and
|
||||
# navigate there.
|
||||
|
|
Loading…
Reference in a new issue