[meld/ui-next] Remove final traces of GtkUIManager



commit f9ef5df492657fd62fc7ef0bd15564f10fd748e2
Author: Kai Willadsen <kai willadsen gmail com>
Date:   Fri Mar 1 11:20:01 2019 +1000

    Remove final traces of GtkUIManager

 data/ui/meldapp-ui.xml |  8 --------
 meld/conf.py           |  4 ----
 meld/dirdiff.py        |  2 +-
 meld/melddoc.py        | 24 ++++++------------------
 meld/meldwindow.py     | 29 +++++------------------------
 meld/ui/util.py        | 20 --------------------
 meld/vcview.py         | 10 +++++-----
 7 files changed, 17 insertions(+), 80 deletions(-)
---
diff --git a/meld/conf.py b/meld/conf.py
index 5bf6cd4d..b2375c14 100644
--- a/meld/conf.py
+++ b/meld/conf.py
@@ -49,7 +49,3 @@ def uninstalled():
 
     resource_path = melddir / "meld" / "resources"
     os.environ['G_RESOURCE_OVERLAYS'] = f'{RESOURCE_BASE}={resource_path}'
-
-
-def ui_file(filename):
-    return os.path.join(DATADIR, "ui", filename)
diff --git a/meld/dirdiff.py b/meld/dirdiff.py
index be78f79d..df91c69b 100644
--- a/meld/dirdiff.py
+++ b/meld/dirdiff.py
@@ -35,7 +35,7 @@ from gi.repository import Gtk
 # TODO: Don't from-import whole modules
 from meld import misc
 from meld import tree
-from meld.conf import _, ui_file
+from meld.conf import _
 from meld.const import FILE_FILTER_ACTION_FORMAT
 from meld.iohelpers import trash_or_confirm
 from meld.melddoc import MeldDoc
diff --git a/meld/melddoc.py b/meld/melddoc.py
index 2cf197f4..bc428633 100644
--- a/meld/melddoc.py
+++ b/meld/melddoc.py
@@ -196,32 +196,20 @@ class MeldDoc(LabeledObjectMixin, GObject.GObject):
             return
         action.set_enabled(enabled)
 
-    def on_container_switch_in_event(self, uimanager, window):
-        """Called when the container app switches to this tab.
-        """
-        if hasattr(self, 'ui_file'):
-            self.ui_merge_id = uimanager.add_ui_from_file(self.ui_file)
-        if hasattr(self, 'actiongroup'):
-            uimanager.insert_action_group(self.actiongroup, -1)
-        self.popup_menu = uimanager.get_widget("/Popup")
-        uimanager.ensure_update()
+    def on_container_switch_in_event(self, window):
+        """Called when the container app switches to this tab"""
 
+        self.popup_menu = Gtk.Menu()
         window.insert_action_group(
             'view', getattr(self, 'view_action_group', None))
 
         if hasattr(self, "focus_pane") and self.focus_pane:
             self.scheduler.add_task(self.focus_pane.grab_focus)
 
-    def on_container_switch_out_event(self, uimanager, window):
-        """Called when the container app switches away from this tab.
-        """
-        if hasattr(self, 'actiongroup'):
-            uimanager.remove_action_group(self.actiongroup)
-        if hasattr(self, 'ui_file'):
-            uimanager.remove_ui(self.ui_merge_id)
-        self.popup_menu = None
-        self.ui_merge_id = None
+    def on_container_switch_out_event(self, window):
+        """Called when the container app switches away from this tab"""
 
+        self.popup_menu = None
         window.insert_action_group('view', None)
 
     def on_delete_event(self):
diff --git a/meld/meldwindow.py b/meld/meldwindow.py
index 2f3df191..b72f78c5 100644
--- a/meld/meldwindow.py
+++ b/meld/meldwindow.py
@@ -22,8 +22,10 @@ from gi.repository import Gio
 from gi.repository import GLib
 from gi.repository import Gtk
 
+# Import support module to get all builder-constructed widgets in the namespace
+import meld.ui.gladesupport  # noqa: F401
 import meld.ui.util
-from meld.conf import _, ui_file
+from meld.conf import _
 from meld.const import FILE_FILTER_ACTION_FORMAT
 from meld.dirdiff import DirDiff
 from meld.filediff import FileDiff
@@ -59,22 +61,6 @@ class MeldWindow(Gtk.ApplicationWindow):
 
         self.init_template()
 
-        actions = (
-            ("ChangesMenu", None, _("_Changes")),
-        )
-        self.actiongroup = Gtk.ActionGroup(name='MainActions')
-        self.actiongroup.set_translation_domain("meld")
-        self.actiongroup.add_actions(actions)
-
-        self.ui = Gtk.UIManager()
-        self.ui.insert_action_group(self.actiongroup, 0)
-        self.ui.add_ui_from_file(ui_file("meldapp-ui.xml"))
-
-        self.add_accel_group(self.ui.get_accel_group())
-        self.menubar = self.ui.get_widget('/Menubar')
-
-        self.appvbox.pack_start(self.menubar, False, True, 0)
-
         # Manually handle GAction additions
         actions = (
             ("close", self.action_close),
@@ -121,8 +107,6 @@ class MeldWindow(Gtk.ApplicationWindow):
         self.scheduler = LifoScheduler()
         self.scheduler.connect("runnable", self.on_scheduler_runnable)
 
-        self.ui.ensure_update()
-
     def do_realize(self):
         Gtk.ApplicationWindow.do_realize(self)
 
@@ -207,7 +191,7 @@ class MeldWindow(Gtk.ApplicationWindow):
         return self.notebook.get_n_pages() > 0
 
     def handle_current_doc_switch(self, page):
-        page.on_container_switch_out_event(self.ui, self)
+        page.on_container_switch_out_event(self)
 
     @Template.Callback()
     def on_switch_page(self, notebook, page, which):
@@ -232,7 +216,7 @@ class MeldWindow(Gtk.ApplicationWindow):
     @Template.Callback()
     def after_switch_page(self, notebook, page, which):
         newdoc = notebook.get_nth_page(which)
-        newdoc.on_container_switch_in_event(self.ui, self)
+        newdoc.on_container_switch_in_event(self)
 
     @Template.Callback()
     def on_page_label_changed(self, notebook, label_text):
@@ -279,9 +263,6 @@ class MeldWindow(Gtk.ApplicationWindow):
         # last page from a notebook.
         if not self.has_pages():
             self.on_switch_page(self.notebook, page, -1)
-            # Synchronise UIManager state; this shouldn't be necessary,
-            # but upstream aren't touching UIManager bugs.
-            self.ui.ensure_update()
             if self.should_close:
                 cancelled = self.emit(
                     'delete-event', Gdk.Event.new(Gdk.EventType.DELETE))
diff --git a/meld/ui/util.py b/meld/ui/util.py
index 821200ba..a2f15f36 100644
--- a/meld/ui/util.py
+++ b/meld/ui/util.py
@@ -20,29 +20,9 @@ from gi.repository import Gio
 from gi.repository import GObject
 from gi.repository import Gtk
 
-import meld.conf
-# Import support module to get all builder-constructed widgets in the namespace
-from meld.ui import gladesupport  # noqa: F401
-
 log = logging.getLogger(__name__)
 
 
-def get_widget(filename, widget):
-    builder = Gtk.Builder()
-    builder.set_translation_domain(meld.conf.__package__)
-    path = meld.conf.ui_file(filename)
-    builder.add_objects_from_file(path, [widget])
-    return builder.get_object(widget)
-
-
-def get_builder(filename):
-    builder = Gtk.Builder()
-    builder.set_translation_domain(meld.conf.__package__)
-    path = meld.conf.ui_file(filename)
-    builder.add_from_file(path)
-    return builder
-
-
 def map_widgets_into_lists(widget, widgetnames):
     """Put sequentially numbered widgets into lists.
 
diff --git a/meld/vcview.py b/meld/vcview.py
index f50707d0..0628ca2e 100644
--- a/meld/vcview.py
+++ b/meld/vcview.py
@@ -31,7 +31,7 @@ from gi.repository import Gtk
 from gi.repository import Pango
 
 from meld import tree
-from meld.conf import _, ui_file
+from meld.conf import _
 from meld.iohelpers import trash_or_confirm
 from meld.melddoc import MeldDoc
 from meld.misc import error_dialog, read_pipe_iter
@@ -274,15 +274,15 @@ class VcView(Gtk.VBox, tree.TreeviewCommon, MeldDoc):
         settings.bind('vc-console-pane-position', self.vc_console_vpaned,
                       'position', Gio.SettingsBindFlags.DEFAULT)
 
-    def on_container_switch_in_event(self, ui, window):
-        super().on_container_switch_in_event(ui, window)
+    def on_container_switch_in_event(self, window):
+        super().on_container_switch_in_event(window)
         # FIXME: open-external should be tied to having a treeview selection
         self.set_action_enabled("open-external", True)
         self.scheduler.add_task(self.on_treeview_cursor_changed)
 
-    def on_container_switch_out_event(self, ui, window):
+    def on_container_switch_out_event(self, window):
         self.set_action_enabled("open-external", False)
-        super().on_container_switch_out_event(ui, window)
+        super().on_container_switch_out_event(window)
 
     def populate_vcs_for_location(self, location):
         """Display VC plugin(s) that can handle the location"""


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]