[gnome-builder/wip/chergert/perspective] html-preview: use menu merging
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder/wip/chergert/perspective] html-preview: use menu merging
- Date: Sat, 5 Dec 2015 08:38:21 +0000 (UTC)
commit 87c657ba141710f6c2049deb5bbb7aca0c600842
Author: Christian Hergert <chergert redhat com>
Date: Sat Dec 5 00:34:31 2015 -0800
html-preview: use menu merging
Now that we can merge menus, just use that instead of manually extending
the menu. Use action:enabled instead of hiding the menu item. I'd rather
we hide the menu item, maybe there is an attribute/hint for that...
plugins/html-preview/Makefile.am | 10 +++---
.../html-preview/html_preview_plugin/__init__.py | 28 +++++---------------
.../html-preview/html_preview_plugin/gtk/menus.ui | 11 ++++++++
3 files changed, 23 insertions(+), 26 deletions(-)
---
diff --git a/plugins/html-preview/Makefile.am b/plugins/html-preview/Makefile.am
index e0e41bd..cecfeb0 100644
--- a/plugins/html-preview/Makefile.am
+++ b/plugins/html-preview/Makefile.am
@@ -6,16 +6,16 @@ plugindir = $(libdir)/gnome-builder/plugins
dist_plugin_DATA = html-preview.plugin
moduledir = $(libdir)/gnome-builder/plugins/html_preview_plugin
-dist_module_DATA = \
- html_preview_plugin/__init__.py \
- $(NULL)
+dist_module_DATA = html_preview_plugin/__init__.py
resourcedir = $(datadir)/gnome-builder/plugins/html_preview_plugin
dist_resource_DATA = \
html_preview_plugin/markdown.css \
html_preview_plugin/markdown-view.js \
- html_preview_plugin/marked.js \
- $(NULL)
+ html_preview_plugin/marked.js
+
+resourcegtkdir = $(datadir)/gnome-builder/plugins/html_preview_plugin/gtk
+dist_resourcegtk_DATA = html_preview_plugin/gtk/menus.ui
endif
diff --git a/plugins/html-preview/html_preview_plugin/__init__.py
b/plugins/html-preview/html_preview_plugin/__init__.py
index a5b9d8f..e0ffa48 100644
--- a/plugins/html-preview/html_preview_plugin/__init__.py
+++ b/plugins/html-preview/html_preview_plugin/__init__.py
@@ -55,20 +55,19 @@ class HtmlPreviewData(GObject.Object, Ide.ApplicationAddin):
class HtmlPreviewAddin(GObject.Object, Ide.EditorViewAddin):
def do_load(self, editor):
- self.menu = HtmlPreviewMenu(editor.get_menu())
+ self.action = Gio.SimpleAction(name='preview-as-html', enabled=True)
+ self.action.connect('activate', lambda *_: self.preview_activated(editor))
actions = editor.get_action_group('view')
- action = Gio.SimpleAction(name='preview-as-html', enabled=True)
- action.connect('activate', lambda *_: self.preview_activated(editor))
- actions.add_action(action)
+ actions.add_action(self.action)
def do_unload(self, editor):
- self.menu.hide()
+ actions = editor.get_action_group('view')
+ actions.remove_action('preview-as-html')
def do_language_changed(self, language_id):
- self.menu.hide()
- if language_id in ('html', 'markdown'):
- self.menu.show()
+ enabled = (language_id in ('html', 'markdown'))
+ self.action.set_enabled(enabled)
def preview_activated(self, editor):
document = editor.get_document()
@@ -77,19 +76,6 @@ class HtmlPreviewAddin(GObject.Object, Ide.EditorViewAddin):
print (stack)
stack.add(view)
-class HtmlPreviewMenu:
- exten = None
-
- def __init__(self, menu):
- self.exten = Ide.MenuExtension.new_for_section(menu, 'preview-section')
-
- def show(self):
- item = Gio.MenuItem.new(_("Preview as HTML"), 'view.preview-as-html')
- self.exten.append_menu_item(item)
-
- def hide(self):
- self.exten.remove_items()
-
class HtmlPreviewView(Ide.LayoutView):
markdown = False
diff --git a/plugins/html-preview/html_preview_plugin/gtk/menus.ui
b/plugins/html-preview/html_preview_plugin/gtk/menus.ui
new file mode 100644
index 0000000..ce5d852
--- /dev/null
+++ b/plugins/html-preview/html_preview_plugin/gtk/menus.ui
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<interface>
+ <menu id="ide-layout-stack-menu">
+ <section id="ide-layout-stack-menu-preview-section">
+ <item>
+ <attribute name="label" translatable="yes">Preview as HTML</attribute>
+ <attribute name="action">view.preview-as-html</attribute>
+ </item>
+ </section>
+ </menu>
+</interface>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]