首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有简单的方法将gedit插件从gnome2版本转换到gnome3版本?

有没有简单的方法将gedit插件从gnome2版本转换到gnome3版本?
EN

Stack Overflow用户
提问于 2012-04-04 10:28:06
回答 1查看 492关注 0票数 0

我想将我的插件转移到Gnome 3中的新gedit (来自Gnome 2 Gedit),但它们并不都能工作。

我已经将它们的位置从~/,gnome2/gedit更改为~/.local/share/ Gedit,并将所有文件从*.gedit-plugin重命名为*.plugin,并将这些文件中的头文件从Gedit Plugin更改为Plugin。我现在可以在首选项的插件选项卡中看到它们,但启用它们会导致错误。

有什么简单的解决方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-04 14:05:12

如果你使用python,其实并不难。您已经转换了.plugin文件。在python文件中,这是一个典型的差异:

代码语言:javascript
复制
-import gtk
-import gedit
-import gobject
-import pango
+from gi.repository import Gtk, GObject, Gedit

.......

-class PluginName(gedit.Plugin):
+class PluginName(GObject.Object, Gedit.WindowActivatable):
+    window = GObject.property(type=Gedit.Window)
+
     def __init__(self):
-        gedit.Plugin.__init__(self)
+        GObject.Object.__init__(self)
         self._instances = {}

-    def activate(self, window):
-        self._instances[window] = PluginNameWindowHelper(self, window)
+    def do_activate(self):
+        self._instances[self.window] = PluginNameWindowHelper(self, self.window)
+
+    def do_deactivate(self):
+        self._instances[self.window].deactivate()
+        del self._instances[self.window]

-    def deactivate(self, window):
-        self._instances[window].deactivate()
-        del self._instances[window]
+    def do_update_state(self):
+        self._instances[self.window].update_ui()

-    def update_ui(self, window):
-        self._instances[window].update_ui()

.......

-        self._action_group = gtk.ActionGroup("PluginNameActions")
+        self._action_group = Gtk.ActionGroup("PluginNameActions")

.......

-             line = document.get_text(line_start, line_end)
+             line = document.get_text(line_start, line_end, False)

一段时间前,我转换了6个插件,这些是我需要的唯一更改。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10004184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档