[gedit] Port externaltools to libpeas/gsettings/pygi



commit 8b6d353e0ab94ad52ce6119759db5e14b281fbba
Author: Ignacio Casal Quinteiro <icq gnome org>
Date:   Tue Jan 18 12:54:18 2011 +0100

    Port externaltools to libpeas/gsettings/pygi

 configure.ac                                       |    1 +
 plugins/externaltools/Makefile.am                  |    7 +-
 ...e.gedit.plugins.externaltools.gschema.xml.in.in |   20 +++
 plugins/externaltools/tools/__init__.py            |  150 +++++++++-----------
 plugins/externaltools/tools/capture.py             |   35 +++---
 plugins/externaltools/tools/filelookup.py          |    7 +-
 plugins/externaltools/tools/functions.py           |   20 +--
 plugins/externaltools/tools/library.py             |    6 +-
 plugins/externaltools/tools/manager.py             |  150 ++++++++++----------
 plugins/externaltools/tools/outputpanel.py         |  121 +++++-----------
 plugins/externaltools/tools/tools.ui               |    1 -
 11 files changed, 234 insertions(+), 284 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 6833e13..57200cc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -423,6 +423,7 @@ plugins/checkupdate/org.gnome.gedit.plugins.checkupdate.gschema.xml.in
 plugins/checkupdate/Makefile
 plugins/externaltools/data/Makefile
 plugins/externaltools/Makefile
+plugins/externaltools/org.gnome.gedit.plugins.externaltools.gschema.xml.in
 plugins/externaltools/scripts/Makefile
 plugins/externaltools/tools/Makefile
 plugins/docinfo/Makefile
diff --git a/plugins/externaltools/Makefile.am b/plugins/externaltools/Makefile.am
index 7ee009e..cf13620 100644
--- a/plugins/externaltools/Makefile.am
+++ b/plugins/externaltools/Makefile.am
@@ -7,7 +7,12 @@ plugin_in_files = externaltools.plugin.desktop.in
 
 plugin_DATA = $(plugin_in_files:.plugin.desktop.in=.plugin)
 
-EXTRA_DIST = $(plugin_in_files)
+gsettings_SCHEMAS = org.gnome.gedit.plugins.externaltools.gschema.xml
+
+ INTLTOOL_XML_NOMERGE_RULE@
+ GSETTINGS_RULES@
+
+EXTRA_DIST = $(plugin_in_files) org.gnome.gedit.plugins.externaltools.gschema.xml.in.in
 
 CLEANFILES = $(plugin_DATA)
 DISTCLEANFILES = $(plugin_DATA)
diff --git a/plugins/externaltools/org.gnome.gedit.plugins.externaltools.gschema.xml.in.in b/plugins/externaltools/org.gnome.gedit.plugins.externaltools.gschema.xml.in.in
new file mode 100644
index 0000000..2033b2b
--- /dev/null
+++ b/plugins/externaltools/org.gnome.gedit.plugins.externaltools.gschema.xml.in.in
@@ -0,0 +1,20 @@
+<schemalist>
+  <schema gettext-domain="@GETTEXT_PACKAGE@" id="org.gnome.gedit.plugins.externaltools" path="/org/gnome/gedit/plugins/externaltools/">
+    <key name="use-system-font" type="b">
+      <default>true</default>
+      <_summary>Whether to use the system font</_summary>
+      <_description>
+        If true, the external tools will use the desktop-global standard
+        font if it's monospace (and the most similar font it can
+        come up with otherwise).
+      </_description>
+    </key>
+    <key name="font" type="s">
+      <default>'Monospace 10'</default>
+      <_summary>Font</_summary>
+      <_description>
+        A Pango font name. Examples are "Sans 12" or "Monospace Bold 14".
+      </_description>
+    </key>
+  </schema>
+</schemalist>
diff --git a/plugins/externaltools/tools/__init__.py b/plugins/externaltools/tools/__init__.py
index efea1e9..d75f84f 100644
--- a/plugins/externaltools/tools/__init__.py
+++ b/plugins/externaltools/tools/__init__.py
@@ -16,11 +16,9 @@
 #    along with this program; if not, write to the Free Software
 #    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
-__all__ = ('ExternalToolsPlugin', 'ExternalToolsWindowHelper',
-           'Manager', 'OutputPanel', 'Capture', 'UniqueById')
+__all__ = ('ExternalToolsPlugin', 'Manager', 'OutputPanel', 'Capture', 'UniqueById')
 
-import gedit
-import gtk
+from gi.repository import GObject, Gtk, Gedit, PeasGtk
 from manager import Manager
 from library import ToolLibrary
 from outputpanel import OutputPanel
@@ -38,7 +36,7 @@ class ToolMenu(object):
         self._menupath = menupath
 
         self._merge_id = 0
-        self._action_group = gtk.ActionGroup("ExternalToolsPluginToolActions")
+        self._action_group = Gtk.ActionGroup("ExternalToolsPluginToolActions")
         self._signals = []
 
         self.update()
@@ -62,31 +60,31 @@ class ToolMenu(object):
             action.set_data(self.ACTION_HANDLER_DATA_KEY, None)
 
             self._action_group.remove_action(action)
-        
-        accelmap = gtk.accel_map_get()
+
+        accelmap = Gtk.AccelMap.get()
 
         for s in self._signals:
             accelmap.disconnect(s)
-        
+
         self._signals = []
 
     def _insert_directory(self, directory, path):
-        manager = self._window.get_ui_manager()
+        ui_manager = self._window.get_ui_manager()
 
         for item in directory.subdirs:
             action_name = 'ExternalToolDirectory%X' % id(item)
-            action = gtk.Action(action_name, item.name.replace('_', '__'), None, None)
+            action = Gtk.Action(action_name, item.name.replace('_', '__'), None, None)
             self._action_group.add_action(action)
 
-            manager.add_ui(self._merge_id, path,
-                           action_name, action_name,
-                           gtk.UI_MANAGER_MENU, False)
+            ui_manager.add_ui(self._merge_id, path,
+                              action_name, action_name,
+                              Gtk.UIManagerItemType.MENU, False)
                            
             self._insert_directory(item, path + '/' + action_name)
 
         for item in directory.tools:
             action_name = 'ExternalToolTool%X' % id(item)
-            action = gtk.Action(action_name, item.name.replace('_', '__'), item.comment, None)
+            action = Gtk.Action(action_name, item.name.replace('_', '__'), item.comment, None)
             handler = action.connect("activate", capture_menu_action, self._window, item)
 
             action.set_data(self.ACTION_ITEM_DATA_KEY, item)
@@ -96,19 +94,19 @@ class ToolMenu(object):
             accelpath = '<Actions>/ExternalToolsPluginToolActions/%s' % (action_name, )
             
             if item.shortcut:
-                key, mod = gtk.accelerator_parse(item.shortcut)
-                gtk.accel_map_change_entry(accelpath, key, mod, True)
-                
-                self._signals.append(gtk.accel_map_get().connect('changed::%s' % (accelpath,), self.on_accelmap_changed, item))
+                key, mod = Gtk.accelerator_parse(item.shortcut)
+                Gtk.AccelMap.change_entry(accelpath, key, mod, True)
                 
+                self._signals.append(Gtk.AccelMap.get().connect('changed::%s' % (accelpath,), self.on_accelmap_changed, item))
+
             self._action_group.add_action_with_accel(action, item.shortcut)
 
-            manager.add_ui(self._merge_id, path,
-                           action_name, action_name,
-                           gtk.UI_MANAGER_MENUITEM, False)
+            ui_manager.add_ui(self._merge_id, path,
+                              action_name, action_name,
+                              Gtk.UIManagerItemType.MENUITEM, False)
 
     def on_accelmap_changed(self, accelmap, path, key, mod, tool):
-        tool.shortcut = gtk.accelerator_name(key, mod)
+        tool.shortcut = Gtk.accelerator_name(key, mod)
         tool.save()
         
         self._window.get_data("ExternalToolsPluginWindowData").update_manager(tool)
@@ -155,31 +153,32 @@ class ToolMenu(object):
             if item is not None:
                 action.set_visible(states[item.applicability] and self.filter_language(language, item))
 
-class ExternalToolsWindowHelper(object):
-    def __init__(self, plugin, window):
-        super(ExternalToolsWindowHelper, self).__init__()
+class ExternalToolsPlugin(GObject.Object, Gedit.WindowActivatable, PeasGtk.Configurable):
+    __gtype_name__ = "ExternalToolsPlugin"
 
-        self._window = window
-        self._plugin = plugin
+    window = GObject.property(type=Gedit.Window)
+
+    def __init__(self):
+        GObject.Object.__init__(self)
+        self._manager = None
+        self._manager_default_size = None
+
+    def do_activate(self):
         self._library = ToolLibrary()
+        self._library.set_locations(os.path.join(self.plugin_info.get_data_dir(), 'tools'))
 
-        manager = window.get_ui_manager()
+        ui_manager = self.window.get_ui_manager()
 
-        self._action_group = gtk.ActionGroup('ExternalToolsPluginActions')
+        self._action_group = Gtk.ActionGroup(name='ExternalToolsPluginActions')
         self._action_group.set_translation_domain('gedit')
-        self._action_group.add_actions([('ExternalToolManager',
-                                         None,
-                                         _('Manage _External Tools...'),
-                                         None,
+        self._action_group.add_actions([('ExternalToolManager', None,
+                                         _('Manage _External Tools...'), None,
                                          _("Opens the External Tools Manager"),
-                                         lambda action: plugin.open_dialog()),
-                                        ('ExternalTools',
-                                        None,
-                                        _('External _Tools'),
-                                        None,
-                                        _("External tools"),
-                                        None)])
-        manager.insert_action_group(self._action_group, -1)
+                                         lambda action, data: self.open_dialog()),
+                                        ('ExternalTools', None,
+                                         _('External _Tools'), None,
+                                         _("External tools"), None)])
+        ui_manager.insert_action_group(self._action_group, -1)
 
         ui_string = """
             <ui>
@@ -199,72 +198,54 @@ class ExternalToolsWindowHelper(object):
               </menubar>
             </ui>"""
 
-        self._merge_id = manager.add_ui_from_string(ui_string)
+        self._merge_id = ui_manager.add_ui_from_string(ui_string)
 
-        self.menu = ToolMenu(self._library, self._window,
+        self.menu = ToolMenu(self._library, self.window,
                              "/MenuBar/ToolsMenu/ToolsOps_4/ExternalToolsMenu/ExternalToolPlaceholder")
-        manager.ensure_update()
+        ui_manager.ensure_update()
 
         # Create output console
-        self._output_buffer = OutputPanel(self._plugin.get_data_dir(), window)
-        bottom = window.get_bottom_panel()
+        self._output_buffer = OutputPanel(self.plugin_info.get_data_dir(), self.window)
+        bottom = self.window.get_bottom_panel()
+        image = Gtk.Image(stock=Gtk.STOCK_EXECUTE, icon_size=Gtk.IconSize.MENU)
         bottom.add_item(self._output_buffer.panel,
                         "GeditExternalToolsShellOutput",
                         _("Shell Output"),
-                        gtk.STOCK_EXECUTE)
+                        image)
 
-    def update_ui(self):
-        self.menu.filter(self._window.get_active_document())
-        self._window.get_ui_manager().ensure_update()
+    def do_update_state(self):
+        return
+        self.menu.filter(self.window.get_active_document())
+        self.window.get_ui_manager().ensure_update()
 
-    def deactivate(self):
-        manager = self._window.get_ui_manager()
+    def do_deactivate(self):
+        ui_manager = self.window.get_ui_manager()
         self.menu.deactivate()
-        manager.remove_ui(self._merge_id)
-        manager.remove_action_group(self._action_group)
-        manager.ensure_update()
+        ui_manager.remove_ui(self._merge_id)
+        ui_manager.remove_action_group(self._action_group)
+        ui_manager.ensure_update()
 
-        bottom = self._window.get_bottom_panel()
+        bottom = self.window.get_bottom_panel()
         bottom.remove_item(self._output_buffer.panel)
 
     def update_manager(self, tool):
-        self._plugin.update_manager(tool)
-
-class ExternalToolsPlugin(gedit.Plugin):
-    WINDOW_DATA_KEY = "ExternalToolsPluginWindowData"
-
-    def __init__(self):
-        super(ExternalToolsPlugin, self).__init__()
-        
-        self._manager = None
-        self._manager_default_size = None
-
-        ToolLibrary().set_locations(os.path.join(self.get_data_dir(), 'tools'))
-
-    def activate(self, window):
-        helper = ExternalToolsWindowHelper(self, window)
-        window.set_data(self.WINDOW_DATA_KEY, helper)
-
-    def deactivate(self, window):
-        window.get_data(self.WINDOW_DATA_KEY).deactivate()
-        window.set_data(self.WINDOW_DATA_KEY, None)
-
-    def update_ui(self, window):
-        window.get_data(self.WINDOW_DATA_KEY).update_ui()
+        self.update_manager(tool)
 
-    def create_configure_dialog(self):
-        return self.open_dialog()
+    def do_create_configure_widget(self):
+        #FIXME
+        #return self.open_dialog()
+        pass
 
     def open_dialog(self):
         if not self._manager:
-            self._manager = Manager(self.get_data_dir())
+            self._manager = Manager(self.plugin_info.get_data_dir())
 
             if self._manager_default_size:
                 self._manager.dialog.set_default_size(*self._manager_default_size)
 
             self._manager.dialog.connect('destroy', self.on_manager_destroy)
 
-        window = gedit.app_get_default().get_active_window()
+        window = Gedit.App.get_default().get_active_window()
         self._manager.run(window)
 
         return self._manager.dialog
@@ -276,7 +257,8 @@ class ExternalToolsPlugin(gedit.Plugin):
         self._manager.tool_changed(tool, True)
 
     def on_manager_destroy(self, dialog):
-        self._manager_default_size = [dialog.allocation.width, dialog.allocation.height]
+        alloc = dialog.get_allocation()
+        self._manager_default_size = [alloc.width, alloc.height]
         self._manager = None
 
 # ex:ts=4:et:
diff --git a/plugins/externaltools/tools/capture.py b/plugins/externaltools/tools/capture.py
index e47862c..520b22a 100644
--- a/plugins/externaltools/tools/capture.py
+++ b/plugins/externaltools/tools/capture.py
@@ -21,11 +21,10 @@ __all__ = ('Capture', )
 import os, sys, signal
 import locale
 import subprocess
-import gobject
 import fcntl
-import glib
+from gi.repository import GObject, GLib
 
-class Capture(gobject.GObject):
+class Capture(GObject.Object):
     CAPTURE_STDOUT = 0x01
     CAPTURE_STDERR = 0x02
     CAPTURE_BOTH   = 0x03
@@ -34,14 +33,14 @@ class Capture(gobject.GObject):
     WRITE_BUFFER_SIZE = 0x4000
 
     __gsignals__ = {
-        'stdout-line'  : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_STRING,)),
-        'stderr-line'  : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_STRING,)),
-        'begin-execute': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, tuple()),
-        'end-execute'  : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_INT,))
+        'stdout-line'  : (GObject.SIGNAL_RUN_LAST, GObject.TYPE_NONE, (GObject.TYPE_STRING,)),
+        'stderr-line'  : (GObject.SIGNAL_RUN_LAST, GObject.TYPE_NONE, (GObject.TYPE_STRING,)),
+        'begin-execute': (GObject.SIGNAL_RUN_LAST, GObject.TYPE_NONE, tuple()),
+        'end-execute'  : (GObject.SIGNAL_RUN_LAST, GObject.TYPE_NONE, (GObject.TYPE_INT,))
     }
 
     def __init__(self, command, cwd = None, env = {}):
-        gobject.GObject.__init__(self)
+        GObject.GObject.__init__(self)
         self.pipe = None
         self.env = env
         self.cwd = cwd
@@ -101,8 +100,8 @@ class Capture(gobject.GObject):
             flags = fcntl.fcntl(self.pipe.stdout.fileno(), fcntl.F_GETFL) | os.O_NONBLOCK
             fcntl.fcntl(self.pipe.stdout.fileno(), fcntl.F_SETFL, flags)
 
-            gobject.io_add_watch(self.pipe.stdout,
-                                 gobject.IO_IN | gobject.IO_HUP,
+            GObject.io_add_watch(self.pipe.stdout,
+                                 GObject.IO_IN | GObject.IO_HUP,
                                  self.on_output)
 
         if self.flags & self.CAPTURE_STDERR:
@@ -110,8 +109,8 @@ class Capture(gobject.GObject):
             flags = fcntl.fcntl(self.pipe.stderr.fileno(), fcntl.F_GETFL) | os.O_NONBLOCK
             fcntl.fcntl(self.pipe.stderr.fileno(), fcntl.F_SETFL, flags)
 
-            gobject.io_add_watch(self.pipe.stderr,
-                                 gobject.IO_IN | gobject.IO_HUP,
+            GObject.io_add_watch(self.pipe.stderr,
+                                 GObject.IO_IN | GObject.IO_HUP,
                                  self.on_output)
 
         # IO
@@ -120,10 +119,10 @@ class Capture(gobject.GObject):
             self.write_buffer = str(self.input_text)
 
             if self.idle_write_chunk():
-                self.idle_write_id = gobject.idle_add(self.idle_write_chunk)
+                self.idle_write_id = GObject.idle_add(self.idle_write_chunk)
 
         # Wait for the process to complete
-        gobject.child_watch_add(self.pipe.pid, self.on_child_end)
+        GObject.child_watch_add(self.pipe.pid, self.on_child_end)
 
     def idle_write_chunk(self):
         if not self.pipe:
@@ -153,7 +152,7 @@ class Capture(gobject.GObject):
             return False
 
     def on_output(self, source, condition):
-        if condition & (glib.IO_IN | glib.IO_PRI):
+        if condition & (GLib.IO_IN | GLib.IO_PRI):
             line = source.read()
 
             if len(line) > 0:
@@ -179,7 +178,7 @@ class Capture(gobject.GObject):
                     else:
                         self.emit('stderr-line', line)
 
-        if condition & ~(glib.IO_IN | glib.IO_PRI):
+        if condition & ~(GLib.IO_IN | GLib.IO_PRI):
             if self.read_buffer:
                 if source == self.pipe.stdout:
                     self.emit('stdout-line', self.read_buffer)
@@ -197,7 +196,7 @@ class Capture(gobject.GObject):
     def stop(self, error_code = -1):
         if self.pipe is not None:
             if self.idle_write_id:
-                gobject.source_remove(self.idle_write_id)
+                GObject.source_remove(self.idle_write_id)
                 self.idle_write_id = 0
 
             if not self.tried_killing:
@@ -209,6 +208,6 @@ class Capture(gobject.GObject):
     def on_child_end(self, pid, error_code):
         # In an idle, so it is emitted after all the std*-line signals
         # have been intercepted
-        gobject.idle_add(self.emit, 'end-execute', error_code)
+        GObject.idle_add(self.emit, 'end-execute', error_code)
 
 # ex:ts=4:et:
diff --git a/plugins/externaltools/tools/filelookup.py b/plugins/externaltools/tools/filelookup.py
index 229823b..499776e 100644
--- a/plugins/externaltools/tools/filelookup.py
+++ b/plugins/externaltools/tools/filelookup.py
@@ -17,8 +17,7 @@
 #    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
 import os
-import gio
-import gedit
+from gi.repository import Gio, Gedit
 
 class FileLookup:
     """
@@ -110,7 +109,7 @@ class OpenDocumentRelPathFileLookupProvider(FileLookupProvider):
         if path.startswith('/'):
             return None
 
-        for doc in gedit.app_get_default().get_documents():
+        for doc in Gedit.app_get_default().get_documents():
             if doc.is_local():
                 location = doc.get_location()
                 if location:
@@ -135,7 +134,7 @@ class OpenDocumentFileLookupProvider(FileLookupProvider):
         if path.startswith('/'):
             return None
 
-        for doc in gedit.app_get_default().get_documents():
+        for doc in Gedit.app_get_default().get_documents():
             if doc.is_local():
                 location = doc.get_location()
                 if location and location.get_uri().endswith(path):
diff --git a/plugins/externaltools/tools/functions.py b/plugins/externaltools/tools/functions.py
index 2e2f048..a05ce54 100644
--- a/plugins/externaltools/tools/functions.py
+++ b/plugins/externaltools/tools/functions.py
@@ -17,11 +17,7 @@
 #    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
 import os
-import gtk
-from gtk import gdk
-import gio
-import gedit
-#import gtksourceview
+from gi.repository import Gio, Gtk, Gdk, Gedit
 from outputpanel import OutputPanel
 from capture import *
 
@@ -92,7 +88,7 @@ def run_external_tool(window, node):
             capture.set_env(GEDIT_CURRENT_DOCUMENT_URI    = location.get_uri(),
                             GEDIT_CURRENT_DOCUMENT_NAME   = name,
                             GEDIT_CURRENT_DOCUMENT_SCHEME = scheme)
-            if gedit.utils.location_has_file_scheme(location):
+            if Gedit.utils.location_has_file_scheme(location):
                 path = location.get_path()
                 cwd = os.path.dirname(path)
                 capture.set_cwd(cwd)
@@ -107,7 +103,7 @@ def run_external_tool(window, node):
                          if location.get_uri() is not None]
         documents_path = [location.get_path()
                           for location in documents_location
-                          if gedit.utils.location_has_file_scheme(location)]
+                          if Gedit.utils.location_has_file_scheme(location)]
         capture.set_env(GEDIT_DOCUMENTS_URI  = ' '.join(documents_uri),
                         GEDIT_DOCUMENTS_PATH = ' '.join(documents_path))
 
@@ -226,7 +222,7 @@ class MultipleDocumentsSaver:
 
         for doc in docs:
             signals[doc] = doc.connect('saving', self.on_document_saving)
-            gedit.commands.save_document(window, doc)
+            Gedit.commands.save_document(window, doc)
             doc.disconnect(signals[doc])
     
     def on_document_saving(self, doc, size, total_size):
@@ -262,7 +258,7 @@ def capture_stderr_line_panel(capture, line, panel):
     panel.write(line, panel.error_tag)
 
 def capture_begin_execute_panel(capture, panel, view, label):
-    view.get_window(gtk.TEXT_WINDOW_TEXT).set_cursor(gdk.Cursor(gdk.WATCH))
+    view.get_window(Gtk.TextWindowType.TEXT).set_cursor(Gdk.Cursor(Gdk.CursorType.WATCH))
 
     panel['stop'].set_sensitive(True)
     panel.clear()
@@ -279,8 +275,8 @@ def capture_end_execute_panel(capture, exit_code, panel, view, output_type):
         end.forward_chars(300)
         uri = ''
 
-        mtype = gio.content_type_guess(data=doc.get_text(start, end))
-        lmanager = gedit.get_language_manager()
+        mtype = Gio.content_type_guess(data=doc.get_text(start, end))
+        lmanager = Gedit.get_language_manager()
         
         location = doc.get_location()
         if location:
@@ -290,7 +286,7 @@ def capture_end_execute_panel(capture, exit_code, panel, view, output_type):
         if language is not None:
             doc.set_language(language)
 
-    view.get_window(gtk.TEXT_WINDOW_TEXT).set_cursor(gdk.Cursor(gdk.XTERM))
+    view.get_window(Gtk.TEXT_WINDOW_TEXT).set_cursor(Gdk.Cursor(Gdk.CursorType.XTERM))
     view.set_cursor_visible(True)
     view.set_editable(True)
 
diff --git a/plugins/externaltools/tools/library.py b/plugins/externaltools/tools/library.py
index 56a1c84..c296b63 100644
--- a/plugins/externaltools/tools/library.py
+++ b/plugins/externaltools/tools/library.py
@@ -41,7 +41,7 @@ class ToolLibrary(Singleton):
 
         if platform.platform() != 'Windows':
             for d in self.get_xdg_data_dirs():
-                self.locations.append(os.path.join(d, 'gedit-2', 'plugins', 'externaltools', 'tools'))
+                self.locations.append(os.path.join(d, 'gedit', 'plugins', 'externaltools', 'tools'))
 
         self.locations.append(datadir)
 
@@ -53,7 +53,7 @@ class ToolLibrary(Singleton):
             if userdir:
                 toolsdir = os.path.join(userdir, 'gedit/tools')
             else:
-                toolsdir = os.path.expanduser('~/.gnome2/gedit/tools')
+                toolsdir = os.path.expanduser('~/.config/gedit/tools')
 
         self.locations.insert(0, toolsdir);
 
@@ -82,7 +82,7 @@ class ToolLibrary(Singleton):
         if userdir:
             filename = os.path.join(userdir, 'gedit/gedit-tools.xml')
         else:
-            filename = os.path.expanduser('~/.gnome2/gedit/gedit-tools.xml')
+            filename = os.path.expanduser('~/.config/gedit/gedit-tools.xml')
 
         if not os.path.isfile(filename):
             return
diff --git a/plugins/externaltools/tools/manager.py b/plugins/externaltools/tools/manager.py
index 014f231..a8b5e7b 100644
--- a/plugins/externaltools/tools/manager.py
+++ b/plugins/externaltools/tools/manager.py
@@ -18,24 +18,23 @@
 
 __all__ = ('Manager', )
 
-import gedit
-import gtk
-import gtksourceview2 as gsv
 import os.path
 from library import *
 from functions import *
 import hashlib
 from xml.sax import saxutils
-import gobject
+from gi.repository import GObject, Gtk, GtkSource, Gedit
+
+class LanguagesPopup(Gtk.Window):
+    __gtype_name__ = "LanguagePopup"
 
-class LanguagesPopup(gtk.Window):
     COLUMN_NAME = 0
     COLUMN_ID = 1
     COLUMN_ENABLED = 2
 
     def __init__(self, languages):
-        gtk.Window.__init__(self, gtk.WINDOW_POPUP)
-        
+        Gtk.Window.__init__(self, type=Gtk.WindowType.POPUP)
+
         self.set_default_size(200, 200)
         self.props.can_focus = True
 
@@ -47,40 +46,40 @@ class LanguagesPopup(gtk.Window):
         
         self.grab_add()
         
-        gtk.gdk.keyboard_grab(self.window, False, 0L)
-        gtk.gdk.pointer_grab(self.window, False, gtk.gdk.BUTTON_PRESS_MASK |
-                                                 gtk.gdk.BUTTON_RELEASE_MASK |
-                                                 gtk.gdk.POINTER_MOTION_MASK |
-                                                 gtk.gdk.ENTER_NOTIFY_MASK |
-                                                 gtk.gdk.LEAVE_NOTIFY_MASK |
-                                                 gtk.gdk.PROXIMITY_IN_MASK |
-                                                 gtk.gdk.PROXIMITY_OUT_MASK, None, None, 0L)
+        Gdk.keyboard_grab(self.window, False, 0L)
+        Gdk.pointer_grab(self.window, False, Gdk.BUTTON_PRESS_MASK |
+                                             Gdk.BUTTON_RELEASE_MASK |
+                                             Gdk.POINTER_MOTION_MASK |
+                                             Gdk.ENTER_NOTIFY_MASK |
+                                             Gdk.LEAVE_NOTIFY_MASK |
+                                             Gdk.PROXIMITY_IN_MASK |
+                                             Gdk.PROXIMITY_OUT_MASK, None, None, 0L)
 
         self.view.get_selection().select_path((0,))
 
     def build(self):
-        self.model = gtk.ListStore(str, str, bool)
+        self.model = Gtk.ListStore(str, str, bool)
         
-        self.sw = gtk.ScrolledWindow()
+        self.sw = Gtk.ScrolledWindow()
         self.sw.show()
         
-        self.sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
-        self.sw.set_shadow_type(gtk.SHADOW_ETCHED_IN)
+        self.sw.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
+        self.sw.set_shadow_type(Gtk.ShadowType.ETCHED_IN)
         
-        self.view = gtk.TreeView(self.model)
+        self.view = Gtk.TreeView(self.model)
         self.view.show()
         
         self.view.set_headers_visible(False)
         
-        column = gtk.TreeViewColumn()
+        column = Gtk.TreeViewColumn()
         
-        renderer = gtk.CellRendererToggle()
+        renderer = Gtk.CellRendererToggle()
         column.pack_start(renderer, False)
         column.set_attributes(renderer, active=self.COLUMN_ENABLED)
         
         renderer.connect('toggled', self.on_language_toggled)
         
-        renderer = gtk.CellRendererText()
+        renderer = Gtk.CellRendererText()
         column.pack_start(renderer, True)
         column.set_attributes(renderer, text=self.COLUMN_NAME)
         
@@ -113,7 +112,7 @@ class LanguagesPopup(gtk.Window):
         return val == '-'
     
     def init_languages(self, languages):
-        manager = gsv.LanguageManager()
+        manager = GtkSource.LanguageManager()
         langs = gedit.language_manager_list_languages_sorted(manager, True)
         
         self.model.append([_('All languages'), None, not languages])
@@ -142,7 +141,7 @@ class LanguagesPopup(gtk.Window):
             self.model.set_value(self.model.get_iter_first(), self.COLUMN_ENABLED, False)
 
     def do_key_press_event(self, event):
-        if event.keyval == gtk.keysyms.Escape:
+        if event.keyval == Gtk.keysyms.Escape:
             self.destroy()
             return True
         else:
@@ -166,10 +165,10 @@ class LanguagesPopup(gtk.Window):
                event.y_root <= origin[1] + geometry[3]
     
     def do_destroy(self):
-        gtk.gdk.keyboard_ungrab(0L)
-        gtk.gdk.pointer_ungrab(0L)
+        Gdk.keyboard_ungrab(0L)
+        Gdk.pointer_ungrab(0L)
         
-        return gtk.Window.do_destroy(self)
+        return Gtk.Window.do_destroy(self)
     
     def setup_event(self, event, window):
         fr = event.window.get_origin()
@@ -182,7 +181,7 @@ class LanguagesPopup(gtk.Window):
     def resolve_widgets(self, root):
         res = [root]
         
-        if isinstance(root, gtk.Container):
+        if isinstance(root, Gtk.Container):
             root.forall(lambda x, y: res.extend(self.resolve_widgets(x)), None)
         
         return res
@@ -210,7 +209,7 @@ class LanguagesPopup(gtk.Window):
                 if not (window.get_events() & event.type):
                     continue
 
-                if self.in_window(event, window):                    
+                if self.in_window(event, window):
                     self.setup_event(event, window)
 
                     if widget.event(event):
@@ -248,8 +247,6 @@ class LanguagesPopup(gtk.Window):
     def do_proximity_out_event(self, event):
         return self.propagate_mouse_event(event)
 
-gobject.type_register(LanguagesPopup)
-
 class Manager:
     TOOL_COLUMN = 0 # For Tree
     NAME_COLUMN = 1 # For Combo
@@ -275,7 +272,7 @@ class Manager:
         }
 
         # Load the "main-window" widget from the ui file.
-        self.ui = gtk.Builder()
+        self.ui = Gtk.Builder()
         self.ui.add_from_file(os.path.join(self.datadir, 'ui', 'tools.ui'))
         self.ui.connect_signals(callbacks)
         self.dialog = self.ui.get_object('tool-manager-dialog')
@@ -345,7 +342,7 @@ class Manager:
             del self.accelerators[shortcut]
 
     def add_tool_to_language(self, tool, language):
-        if isinstance(language, gsv.Language):
+        if isinstance(language, GtkSource.Language):
             lid = language.get_id()
         else:
             lid = language
@@ -353,7 +350,7 @@ class Manager:
         if not lid in self._languages:
             piter = self.model.append(None, [language])
             
-            parent = gtk.TreeRowReference(self.model, self.model.get_path(piter))
+            parent = Gtk.TreeRowReference.new(self.model, self.model.get_path(piter))
             self._languages[lid] = parent
         else:
             parent = self._languages[lid]
@@ -364,11 +361,11 @@ class Manager:
         if not tool in self._tool_rows:
             self._tool_rows[tool] = []
         
-        self._tool_rows[tool].append(gtk.TreeRowReference(self.model, self.model.get_path(child)))
+        self._tool_rows[tool].append(Gtk.TreeRowReference.new(self.model, self.model.get_path(child)))
         return child
 
     def add_tool(self, tool):
-        manager = gsv.LanguageManager()
+        manager = GtkSource.LanguageManager()
         ret = None
         
         for lang in tool.languages:
@@ -391,16 +388,16 @@ class Manager:
         self.script_hash = None
         self.accelerators = dict()
 
-        self.model = gtk.TreeStore(object)
+        self.model = Gtk.TreeStore(object)
         self.view.set_model(self.model)
 
         for tool in self.tools.tree.tools:
             self.add_tool(tool)
 
         self.model.set_default_sort_func(self.sort_tools)
-        self.model.set_sort_column_id(-1, gtk.SORT_ASCENDING)
+        self.model.set_sort_column_id(-1, Gtk.SortType.ASCENDING)
 
-    def sort_tools(self, model, iter1, iter2):
+    def sort_tools(self, model, iter1, iter2, user_data=None):
         # For languages, sort All before everything else, otherwise alphabetical
         t1 = model.get_value(iter1, self.TOOL_COLUMN)
         t2 = model.get_value(iter2, self.TOOL_COLUMN)
@@ -413,7 +410,7 @@ class Manager:
                 return 1
             
             def lang_name(lang):
-                if isinstance(lang, gsv.Language):
+                if isinstance(lang, GtkSource.Language):
                     return lang.get_name()
                 else:
                     return _('Plain Text')
@@ -428,13 +425,13 @@ class Manager:
 
     def __init_tools_view(self):
         # Tools column
-        column = gtk.TreeViewColumn('Tools')
-        renderer = gtk.CellRendererText()
+        column = Gtk.TreeViewColumn('Tools')
+        renderer = Gtk.CellRendererText()
         column.pack_start(renderer, False)
         renderer.set_property('editable', True)
         self.view.append_column(column)
         
-        column.set_cell_data_func(renderer, self.get_cell_data_cb)
+        column.set_cell_data_func(renderer, self.get_cell_data_cb, None)
 
         renderer.connect('edited', self.on_view_label_cell_edited)
         renderer.connect('editing-started', self.on_view_label_cell_editing_started)
@@ -493,7 +490,8 @@ class Manager:
         self.current_node.save_files = combo_value(self, 'save-files')
 
         buf = self['commands'].get_buffer()
-        script  = buf.get_text(*buf.get_bounds())
+        (start, end) = buf.get_bounds()
+        script  = buf.get_text(start, end, False)
         h = self.compute_hash(script)
         if h != self.script_hash:
             # script has changed -> save it
@@ -521,7 +519,7 @@ class Manager:
         if not self.current_node or not self.current_node.languages:
             self['languages_label'].set_text(_('All Languages'))
         else:
-            manager = gsv.LanguageManager()
+            manager = GtkSource.LanguageManager()
             langs = []
             
             for lang in self.current_node.languages:
@@ -542,14 +540,15 @@ class Manager:
         buf = self['commands'].get_buffer()
         script = default(''.join(node.get_script()), '')
 
-	buf.begin_not_undoable_action()
-	buf.set_text(script)
-	buf.end_not_undoable_action()
+        buf.begin_not_undoable_action()
+        buf.set_text(script)
+        buf.end_not_undoable_action()
 
         self.script_hash = self.compute_hash(script)
-        contenttype = gio.content_type_guess(data=script)
-        lmanager = gedit.get_language_manager()
-        language = lmanager.guess_language(content_type=contenttype)
+
+        contenttype, uncertain = Gio.content_type_guess(None, script)
+        lmanager = GtkSource.LanguageManager.get_default()
+        language = lmanager.guess_language(None, contenttype)
 
         if language is not None:
             buf.set_language(language)
@@ -593,7 +592,7 @@ class Manager:
             self['tool-table'].set_sensitive(True)
         else:
             self.clear_fields()
-            self['tool-table'].set_sensitive(False)       
+            self['tool-table'].set_sensitive(False)
 
     def language_id_from_iter(self, piter):
         if not piter:
@@ -605,7 +604,7 @@ class Manager:
             piter = self.model.iter_parent(piter)
             tool = self.model.get_value(piter, self.TOOL_COLUMN)
         
-        if isinstance(tool, gsv.Language):
+        if isinstance(tool, GtkSource.Language):
             return tool.get_id()
         elif tool:
             return 'plain'
@@ -712,7 +711,7 @@ class Manager:
             piter = self.model.get_iter(path)
             tool = self.model.get_value(piter, self.TOOL_COLUMN)
 
-            if isinstance(editable, gtk.Entry):
+            if isinstance(editable, Gtk.Entry):
                 editable.set_text(tool.name)
                 editable.grab_focus()
     
@@ -742,7 +741,7 @@ class Manager:
         # Check whether accelerator already exists
         self.remove_accelerator(self.current_node)
 
-        name = gtk.accelerator_name(keyval, mod)
+        name = Gtk.accelerator_name(keyval, mod)
 
         if name == '':
             self.current_node.shorcut = None
@@ -752,15 +751,15 @@ class Manager:
         col = self.accelerator_collision(name, self.current_node)
         
         if col:
-            dialog = gtk.MessageDialog(self.dialog,
-                                       gtk.DIALOG_MODAL,
-                                       gtk.MESSAGE_ERROR,
-                                       gtk.BUTTONS_OK,
+            dialog = Gtk.MessageDialog(self.dialog,
+                                       Gtk.DIALOG_MODAL,
+                                       Gtk.MESSAGE_ERROR,
+                                       Gtk.BUTTONS_OK,
                                        _('This accelerator is already bound to %s') % (', '.join(map(lambda x: x.name, col)),))
 
             dialog.run()
             dialog.destroy()
-            
+
             self.add_accelerator(self.current_node)
             return False
 
@@ -771,20 +770,20 @@ class Manager:
         return True
 
     def on_accelerator_key_press(self, entry, event):
-        mask = event.state & gtk.accelerator_get_default_mod_mask()
+        mask = event.state & Gtk.accelerator_get_default_mod_mask()
 
-        if event.keyval == gtk.keysyms.Escape:
+        if event.keyval == Gdk.KEY_Escape:
             entry.set_text(default(self.current_node.shortcut, ''))
             self['commands'].grab_focus()
             return True
-        elif event.keyval == gtk.keysyms.Delete \
-          or event.keyval == gtk.keysyms.BackSpace:
+        elif event.keyval == Gdk.KEY_Delete \
+          or event.keyval == Gdk.KEY_BackSpace:
             entry.set_text('')
             self.remove_accelerator(self.current_node)
             self.current_node.shortcut = None
             self['commands'].grab_focus()
             return True
-        elif event.keyval in range(gtk.keysyms.F1, gtk.keysyms.F12 + 1):
+        elif event.keyval in range(Gdk.KEY_F1, Gdk.KEY_F12 + 1):
             # New accelerator
             if self.set_accelerator(event.keyval, mask):
                 entry.set_text(default(self.current_node.shortcut, ''))
@@ -792,7 +791,7 @@ class Manager:
     
             # Capture all `normal characters`
             return True
-        elif gtk.gdk.keyval_to_unicode(event.keyval):
+        elif Gdk.keyval_to_unicode(event.keyval):
             if mask:
                 # New accelerator
                 if self.set_accelerator(event.keyval, mask):
@@ -817,8 +816,8 @@ class Manager:
             self.tool_changed(self.current_node)
 
     def on_tool_manager_dialog_response(self, dialog, response):
-        if response == gtk.RESPONSE_HELP:
-            gedit.app_get_default().show_help(self.dialog, 'gedit', 'gedit-external-tools-plugin')
+        if response == Gtk.ResponseType.HELP:
+            Gedit.app_get_default().show_help(self.dialog, 'gedit', 'gedit-external-tools-plugin')
             return
 
         self.on_tool_manager_dialog_focus_out(dialog, None)
@@ -830,17 +829,20 @@ class Manager:
     def on_tool_manager_dialog_focus_out(self, dialog, event):
         self.save_current_tool()
 
+        #FIXME: this is wrong, we must emit a signal and let the plugin update the menu
+        """
         for window in gedit.app_get_default().get_windows():
             helper = window.get_data("ExternalToolsPluginWindowData")
             helper.menu.update()
-   
-    def get_cell_data_cb(self, column, cell, model, piter):
+        """
+
+    def get_cell_data_cb(self, column, cell, model, piter, user_data=None):
         tool = model.get_value(piter, self.TOOL_COLUMN)
 
         if tool == None or not isinstance(tool, Tool):
             if tool == None:
                 label = _('All Languages')
-            elif not isinstance(tool, gsv.Language):
+            elif not isinstance(tool, GtkSource.Language):
                 label = _('Plain Text')
             else:
                 label = tool.get_name()
@@ -882,7 +884,7 @@ class Manager:
         ret = None
         
         if node:
-            ref = gtk.TreeRowReference(self.model, self.model.get_path(piter))
+            ref = Gtk.TreeRowReference(self.model, self.model.get_path(piter))
         
         # Update languages, make sure to inhibit selection change stuff
         self.view.get_selection().handler_block(self.selection_changed_id)
@@ -908,7 +910,7 @@ class Manager:
                 del self._languages[language]
         
         # Now, add for any that are new
-        manager = gsv.LanguageManager()
+        manager = GtkSource.LanguageManager()
         
         for lang in self.current_node.languages:
             if not self.tool_in_language(self.current_node, lang):
diff --git a/plugins/externaltools/tools/outputpanel.py b/plugins/externaltools/tools/outputpanel.py
index dc9321f..55defb6 100644
--- a/plugins/externaltools/tools/outputpanel.py
+++ b/plugins/externaltools/tools/outputpanel.py
@@ -19,18 +19,13 @@
 
 __all__ = ('OutputPanel', 'UniqueById')
 
-import gtk, gedit
-import pango
-import gconf
-import gobject
 import os
 from weakref import WeakKeyDictionary
 from capture import *
-from gtk import gdk
 import re
-import gio
 import linkparsing
 import filelookup
+from gi.repository import GObject, Gio, Gdk, Gtk, Pango, Gedit
 
 class UniqueById:
     __shared_state = WeakKeyDictionary()
@@ -47,12 +42,6 @@ class UniqueById:
         return self.__class__.__shared_state
 
 class OutputPanel(UniqueById):
-
-    DEFAULT_FONT = "Monospace 10"
-
-    GCONF_INTERFACE_DIR = "/desktop/gnome/interface"
-    GCONF_PROFILE_DIR = "/apps/gnome-terminal/profiles/Default"
-
     def __init__(self, datadir, window):
         if UniqueById.__init__(self, window):
             return
@@ -64,23 +53,18 @@ class OutputPanel(UniqueById):
             'on_view_button_press_event': self.on_view_button_press_event
         }
 
-        gconf_client.add_dir(self.GCONF_INTERFACE_DIR,
-                             gconf.CLIENT_PRELOAD_NONE)
-        gconf_client.add_dir(self.GCONF_PROFILE_DIR,
-                             gconf.CLIENT_PRELOAD_NONE)
-
-        gconf_client.notify_add(self.GCONF_INTERFACE_DIR,
-                                self.on_gconf_notification)
-        gconf_client.notify_add(self.GCONF_PROFILE_DIR,
-                                self.on_gconf_notification)
+        self.profile_settings = self.get_profile_settings()
+        self.profile_settings.connect("changed", self.font_changed)
+        self.system_settings = Gio.Settings.new("org.gnome.desktop.interface")
+        self.system_settings.connect("changed::monospace-font-name", self.font_changed)
 
         self.window = window
-        self.ui = gtk.Builder()
+        self.ui = Gtk.Builder()
         self.ui.add_from_file(os.path.join(datadir, 'ui', 'outputpanel.ui'))
         self.ui.connect_signals(callbacks)
 
         self.panel = self["output-panel"]
-        self.reconfigure()
+        self.font_changed()
 
         buffer = self['view'].get_buffer()
 
@@ -90,18 +74,18 @@ class OutputPanel(UniqueById):
         self.error_tag.set_property('foreground', 'red')
 
         self.italic_tag = buffer.create_tag('italic')
-        self.italic_tag.set_property('style', pango.STYLE_OBLIQUE)
+        self.italic_tag.set_property('style', Pango.Style.OBLIQUE)
 
         self.bold_tag = buffer.create_tag('bold')
-        self.bold_tag.set_property('weight', pango.WEIGHT_BOLD)
+        self.bold_tag.set_property('weight', Pango.Weight.BOLD)
 
         self.invalid_link_tag = buffer.create_tag('invalid_link')
 
         self.link_tag = buffer.create_tag('link')
-        self.link_tag.set_property('underline', pango.UNDERLINE_SINGLE)
+        self.link_tag.set_property('underline', Pango.Underline.SINGLE)
 
-        self.link_cursor = gdk.Cursor(gdk.HAND2)
-        self.normal_cursor = gdk.Cursor(gdk.XTERM)
+        self.link_cursor = Gdk.Cursor.new(Gdk.CursorType.HAND2)
+        self.normal_cursor = Gdk.Cursor.new(Gdk.CursorType.XTERM)
 
         self.process = None
 
@@ -110,39 +94,19 @@ class OutputPanel(UniqueById):
         self.link_parser = linkparsing.LinkParser()
         self.file_lookup = filelookup.FileLookup()
 
-    def reconfigure(self):
-        # WORKING ON BUG: 611161
-        # Font
-        font_desc = None
-        system_font = gconf_get_str(self.GCONF_INTERFACE_DIR + "/monospace_font_name",
-                                    self.DEFAULT_FONT)
+    def get_profile_settings(self):
+        #FIXME return either the gnome-terminal settings or the gedit one
+        return Gio.Settings.new("org.gnome.gedit.plugins.externaltools")
 
-        if gconf_get_bool(self.GCONF_PROFILE_DIR + "/use_system_font"):
-            font_name = system_font
+    def font_changed(self, settings=None, key=None):
+        if self.profile_settings.get_boolean("use-system-font"):
+            font = self.system_settings.get_string("monospace-font-name")
         else:
-            font_name = gconf_get_str(self.GCONF_PROFILE_DIR + "/font", system_font)
-
-        try:
-            font_desc = pango.FontDescription(font_name)
-        except:
-            if font_name != self.DEFAULT_FONT:
-                if font_name != system_font:
-                    try:
-                        font_desc = pango.FontDescription(system_font)
-                    except:
-                        pass
-
-                if font_desc == None:
-                    try:
-                        font_desc = pango.FontDescription(self.DEFAULT_FONT)
-                    except:
-                        pass
-
-        if font_desc != None:
-            self["view"].modify_font(font_desc)
-
-    def on_gconf_notification(self, client, cnxn_id, entry, what):
-        self.reconfigure()
+            font = self.profile_settings.get_string("font")
+
+        font_desc = Pango.font_description_from_string(font)
+
+        self["view"].override_font(font_desc)
 
     def set_process(self, process):
         self.process = process
@@ -204,7 +168,7 @@ class OutputPanel(UniqueById):
             buffer.apply_tag(tag, start_iter, end_iter)
 
         buffer.delete_mark(insert)
-        gobject.idle_add(self.scroll_to_end)
+        GObject.idle_add(self.scroll_to_end)
 
     def show(self):
         panel = self.window.get_bottom_panel()
@@ -217,17 +181,17 @@ class OutputPanel(UniqueById):
         else:
             cursor = self.normal_cursor
 
-        view.get_window(gtk.TEXT_WINDOW_TEXT).set_cursor(cursor)
+        view.get_window(Gtk.TextWindowType.TEXT).set_cursor(cursor)
 
     def on_view_motion_notify_event(self, view, event):
-        if event.window == view.get_window(gtk.TEXT_WINDOW_TEXT):
+        if event.window == view.get_window(Gtk.TextWindowType.TEXT):
             self.update_cursor_style(view, int(event.x), int(event.y))
 
         return False
 
     def on_view_visibility_notify_event(self, view, event):
-        if event.window == view.get_window(gtk.TEXT_WINDOW_TEXT):
-            x, y, m = event.window.get_pointer()
+        if event.window == view.get_window(Gtk.TextWindowType.TEXT):
+            win, x, y, flags = event.window.get_pointer()
             self.update_cursor_style(view, x, y)
 
         return False
@@ -243,8 +207,8 @@ class OutputPanel(UniqueById):
         """
 
         # get the offset within the buffer from the x,y coordinates
-        buff_x, buff_y = view.window_to_buffer_coords(gtk.TEXT_WINDOW_TEXT, 
-                                                        x, y)
+        buff_x, buff_y = view.window_to_buffer_coords(Gtk.TextWindowType.TEXT, 
+                                                      x, y)
         iter_at_xy = view.get_iter_at_location(buff_x, buff_y)
         offset = iter_at_xy.get_offset()
 
@@ -257,8 +221,8 @@ class OutputPanel(UniqueById):
         return None
 
     def on_view_button_press_event(self, view, event):
-        if event.button != 1 or event.type != gdk.BUTTON_PRESS or \
-           event.window != view.get_window(gtk.TEXT_WINDOW_TEXT):
+        if event.button != 1 or event.type != Gdk.BUTTON_PRESS or \
+           event.window != view.get_window(Gtk.TextWindowType.TEXT):
             return False
 
         link = self.get_link_at_location(view, int(event.x), int(event.y))
@@ -268,24 +232,7 @@ class OutputPanel(UniqueById):
         gfile = self.file_lookup.lookup(link.path)
 
         if gfile:
-            gedit.commands.load_location(self.window, gfile, None, link.line_nr, -1)
-            gobject.idle_add(self.idle_grab_focus)
-
-gconf_client = gconf.client_get_default()
-def gconf_get_bool(key, default = False):
-    val = gconf_client.get(key)
-
-    if val is not None and val.type == gconf.VALUE_BOOL:
-        return val.get_bool()
-    else:
-        return default
-
-def gconf_get_str(key, default = ""):
-    val = gconf_client.get(key)
-
-    if val is not None and val.type == gconf.VALUE_STRING:
-        return val.get_string()
-    else:
-        return default
+            Gedit.commands_load_location(self.window, gfile, None, link.line_nr, -1)
+            GObject.idle_add(self.idle_grab_focus)
 
 # ex:ts=4:et:
diff --git a/plugins/externaltools/tools/tools.ui b/plugins/externaltools/tools/tools.ui
index dff7d19..f65a641 100644
--- a/plugins/externaltools/tools/tools.ui
+++ b/plugins/externaltools/tools/tools.ui
@@ -131,7 +131,6 @@
     <property name="default_height">500</property>
     <property name="type_hint">dialog</property>
     <property name="skip_taskbar_hint">True</property>
-    <property name="has_separator">False</property>
     <signal name="focus_out_event" handler="on_tool_manager_dialog_focus_out"/>
     <signal name="response" handler="on_tool_manager_dialog_response"/>
     <child internal-child="vbox">



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