[gedit] Fix indentation code style in quickopen
- From: Jesse van den Kieboom <jessevdk src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit] Fix indentation code style in quickopen
- Date: Tue, 22 Mar 2011 15:43:47 +0000 (UTC)
commit b43ad938db966f83b36baf336789f6028552ec7f
Author: Jesse van den Kieboom <jesse vandenkieboom epfl ch>
Date: Tue Mar 22 16:43:13 2011 +0100
Fix indentation code style in quickopen
plugins/quickopen/quickopen/__init__.py | 226 ++++----
plugins/quickopen/quickopen/popup.py | 804 ++++++++++++++--------------
plugins/quickopen/quickopen/virtualdirs.py | 89 ++--
plugins/snippets/snippets/manager.py | 26 +-
4 files changed, 574 insertions(+), 571 deletions(-)
---
diff --git a/plugins/quickopen/quickopen/__init__.py b/plugins/quickopen/quickopen/__init__.py
index 782cafc..7ff36c2 100644
--- a/plugins/quickopen/quickopen/__init__.py
+++ b/plugins/quickopen/quickopen/__init__.py
@@ -35,163 +35,163 @@ ui_str = """<ui>
"""
class QuickOpenPlugin(GObject.Object, Gedit.WindowActivatable):
- __gtype_name__ = "QuickOpenPlugin"
+ __gtype_name__ = "QuickOpenPlugin"
- window = GObject.property(type=Gedit.Window)
+ window = GObject.property(type=Gedit.Window)
- def __init__(self):
- GObject.Object.__init__(self)
+ def __init__(self):
+ GObject.Object.__init__(self)
- def do_activate(self):
- self._popup_size = (450, 300)
- self._popup = None
- self._install_menu()
+ def do_activate(self):
+ self._popup_size = (450, 300)
+ self._popup = None
+ self._install_menu()
- def do_deactivate(self):
- self._uninstall_menu()
+ def do_deactivate(self):
+ self._uninstall_menu()
- def get_popup_size(self):
- return self._popup_size
+ def get_popup_size(self):
+ return self._popup_size
- def set_popup_size(self, size):
- self._popup_size = size
+ def set_popup_size(self, size):
+ self._popup_size = size
- def _uninstall_menu(self):
- manager = self.window.get_ui_manager()
+ def _uninstall_menu(self):
+ manager = self.window.get_ui_manager()
- manager.remove_ui(self._ui_id)
- manager.remove_action_group(self._action_group)
+ manager.remove_ui(self._ui_id)
+ manager.remove_action_group(self._action_group)
- manager.ensure_update()
+ manager.ensure_update()
- def _install_menu(self):
- manager = self.window.get_ui_manager()
- self._action_group = Gtk.ActionGroup(name="GeditQuickOpenPluginActions")
- self._action_group.add_actions([
- ("QuickOpen", Gtk.STOCK_OPEN, _("Quick open"),
- '<Ctrl><Alt>O', _("Quickly open documents"),
- self.on_quick_open_activate)
- ])
+ def _install_menu(self):
+ manager = self.window.get_ui_manager()
+ self._action_group = Gtk.ActionGroup(name="GeditQuickOpenPluginActions")
+ self._action_group.add_actions([
+ ("QuickOpen", Gtk.STOCK_OPEN, _("Quick open"),
+ '<Ctrl><Alt>O', _("Quickly open documents"),
+ self.on_quick_open_activate)
+ ])
- manager.insert_action_group(self._action_group)
- self._ui_id = manager.add_ui_from_string(ui_str)
+ manager.insert_action_group(self._action_group)
+ self._ui_id = manager.add_ui_from_string(ui_str)
- def _create_popup(self):
- paths = []
+ def _create_popup(self):
+ paths = []
- # Open documents
- paths.append(CurrentDocumentsDirectory(self.window))
+ # Open documents
+ paths.append(CurrentDocumentsDirectory(self.window))
- doc = self.window.get_active_document()
+ doc = self.window.get_active_document()
- # Current document directory
- if doc and doc.is_local():
- gfile = doc.get_location()
- paths.append(gfile.get_parent())
+ # Current document directory
+ if doc and doc.is_local():
+ gfile = doc.get_location()
+ paths.append(gfile.get_parent())
- # File browser root directory
- bus = self.window.get_message_bus()
+ # File browser root directory
+ bus = self.window.get_message_bus()
- try:
- #FIXME
- #msg = bus.send_sync('/plugins/filebrowser', 'get_root')
+ #try:
+ #FIXME
+ #msg = bus.send_sync('/plugins/filebrowser', 'get_root')
- if msg:
- gfile = msg.get_value('location')
+ #if msg:
+ # gfile = msg.get_value('location')
- if gfile and gfile.is_native():
- paths.append(gfile)
+ # if gfile and gfile.is_native():
+ # paths.append(gfile)
- except StandardError:
- pass
+ #except StandardError:
+ # pass
- # Recent documents
- paths.append(RecentDocumentsDirectory())
+ # Recent documents
+ paths.append(RecentDocumentsDirectory())
- # Local bookmarks
- for path in self._local_bookmarks():
- paths.append(path)
+ # Local bookmarks
+ for path in self._local_bookmarks():
+ paths.append(path)
- # Desktop directory
- desktopdir = self._desktop_dir()
+ # Desktop directory
+ desktopdir = self._desktop_dir()
- if desktopdir:
- paths.append(Gio.file_new_for_path(desktopdir))
+ if desktopdir:
+ paths.append(Gio.file_new_for_path(desktopdir))
- # Home directory
- paths.append(Gio.file_new_for_path(os.path.expanduser('~')))
+ # Home directory
+ paths.append(Gio.file_new_for_path(os.path.expanduser('~')))
- self._popup = Popup(self.window, paths, self.on_activated)
- self.window.get_group().add_window(self._popup)
+ self._popup = Popup(self.window, paths, self.on_activated)
+ self.window.get_group().add_window(self._popup)
- self._popup.set_default_size(*self.get_popup_size())
- self._popup.set_transient_for(self.window)
- self._popup.set_position(Gtk.WindowPosition.CENTER_ON_PARENT)
- self._popup.connect('destroy', self.on_popup_destroy)
+ self._popup.set_default_size(*self.get_popup_size())
+ self._popup.set_transient_for(self.window)
+ self._popup.set_position(Gtk.WindowPosition.CENTER_ON_PARENT)
+ self._popup.connect('destroy', self.on_popup_destroy)
- def _local_bookmarks(self):
- filename = os.path.expanduser('~/.gtk-bookmarks')
+ def _local_bookmarks(self):
+ filename = os.path.expanduser('~/.gtk-bookmarks')
- if not os.path.isfile(filename):
- return []
+ if not os.path.isfile(filename):
+ return []
- paths = []
+ paths = []
- for line in file(filename, 'r').xreadlines():
- uri = line.strip().split(" ")[0]
- f = Gio.file_new_for_uri(uri)
+ for line in file(filename, 'r').xreadlines():
+ uri = line.strip().split(" ")[0]
+ f = Gio.file_new_for_uri(uri)
- if f.is_native():
- try:
- info = f.query_info(Gio.FILE_ATTRIBUTE_STANDARD_TYPE,
- Gio.FileQueryInfoFlags.NONE,
- None)
+ if f.is_native():
+ try:
+ info = f.query_info(Gio.FILE_ATTRIBUTE_STANDARD_TYPE,
+ Gio.FileQueryInfoFlags.NONE,
+ None)
- if info and info.get_file_type() == Gio.FileType.DIRECTORY:
- paths.append(f)
- except:
- pass
+ if info and info.get_file_type() == Gio.FileType.DIRECTORY:
+ paths.append(f)
+ except:
+ pass
- return paths
+ return paths
- def _desktop_dir(self):
- config = os.getenv('XDG_CONFIG_HOME')
+ def _desktop_dir(self):
+ config = os.getenv('XDG_CONFIG_HOME')
- if not config:
- config = os.path.expanduser('~/.config')
+ if not config:
+ config = os.path.expanduser('~/.config')
- config = os.path.join(config, 'user-dirs.dirs')
- desktopdir = None
+ config = os.path.join(config, 'user-dirs.dirs')
+ desktopdir = None
- if os.path.isfile(config):
- for line in file(config, 'r').xreadlines():
- line = line.strip()
+ if os.path.isfile(config):
+ for line in file(config, 'r').xreadlines():
+ line = line.strip()
- if line.startswith('XDG_DESKTOP_DIR'):
- parts = line.split('=', 1)
- desktopdir = os.path.expandvars(parts[1].strip('"').strip("'"))
- break
+ if line.startswith('XDG_DESKTOP_DIR'):
+ parts = line.split('=', 1)
+ desktopdir = os.path.expandvars(parts[1].strip('"').strip("'"))
+ break
- if not desktopdir:
- desktopdir = os.path.expanduser('~/Desktop')
+ if not desktopdir:
+ desktopdir = os.path.expanduser('~/Desktop')
- return desktopdir
+ return desktopdir
- # Callbacks
- def on_quick_open_activate(self, action, user_data=None):
- if not self._popup:
- self._create_popup()
+ # Callbacks
+ def on_quick_open_activate(self, action, user_data=None):
+ if not self._popup:
+ self._create_popup()
- self._popup.show()
+ self._popup.show()
- def on_popup_destroy(self, popup, user_data=None):
- alloc = popup.get_allocation()
- self.set_popup_size((alloc.width, alloc.height))
+ def on_popup_destroy(self, popup, user_data=None):
+ alloc = popup.get_allocation()
+ self.set_popup_size((alloc.width, alloc.height))
- self._popup = None
+ self._popup = None
- def on_activated(self, gfile, user_data=None):
- Gedit.commands_load_location(self.window, gfile, None, -1, -1)
- return True
+ def on_activated(self, gfile, user_data=None):
+ Gedit.commands_load_location(self.window, gfile, None, -1, -1)
+ return True
-# ex:ts=8:et:
+# ex:ts=4:et:
diff --git a/plugins/quickopen/quickopen/popup.py b/plugins/quickopen/quickopen/popup.py
index 09e29b2..f0adf86 100644
--- a/plugins/quickopen/quickopen/popup.py
+++ b/plugins/quickopen/quickopen/popup.py
@@ -24,515 +24,515 @@ import xml.sax.saxutils
from virtualdirs import VirtualDirectory
class Popup(Gtk.Dialog):
- __gtype_name__ = "QuickOpenPopup"
+ __gtype_name__ = "QuickOpenPopup"
- def __init__(self, window, paths, handler):
- Gtk.Dialog.__init__(self,
- title=_('Quick Open'),
- parent=window,
- flags=Gtk.DialogFlags.DESTROY_WITH_PARENT | Gtk.DialogFlags.MODAL,
- buttons=(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL))
+ def __init__(self, window, paths, handler):
+ Gtk.Dialog.__init__(self,
+ title=_('Quick Open'),
+ parent=window,
+ flags=Gtk.DialogFlags.DESTROY_WITH_PARENT | Gtk.DialogFlags.MODAL,
+ buttons=(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL))
- self._open_button = self.add_button(Gtk.STOCK_OPEN, Gtk.ResponseType.ACCEPT)
+ self._open_button = self.add_button(Gtk.STOCK_OPEN, Gtk.ResponseType.ACCEPT)
- self._handler = handler
- self._build_ui()
+ self._handler = handler
+ self._build_ui()
- self._dirs = []
- self._cache = {}
- self._theme = None
- self._cursor = None
- self._shift_start = None
+ self._dirs = []
+ self._cache = {}
+ self._theme = None
+ self._cursor = None
+ self._shift_start = None
- self._busy_cursor = Gdk.Cursor(Gdk.CursorType.WATCH)
+ self._busy_cursor = Gdk.Cursor(Gdk.CursorType.WATCH)
- accel_group = Gtk.AccelGroup()
- accel_group.connect(Gdk.KEY_l, Gdk.ModifierType.CONTROL_MASK, 0, self.on_focus_entry)
+ accel_group = Gtk.AccelGroup()
+ accel_group.connect(Gdk.KEY_l, Gdk.ModifierType.CONTROL_MASK, 0, self.on_focus_entry)
- self.add_accel_group(accel_group)
+ self.add_accel_group(accel_group)
- unique = []
+ unique = []
- for path in paths:
- if not path.get_uri() in unique:
- self._dirs.append(path)
- unique.append(path.get_uri())
+ for path in paths:
+ if not path.get_uri() in unique:
+ self._dirs.append(path)
+ unique.append(path.get_uri())
- self.connect('show', self.on_show)
+ self.connect('show', self.on_show)
- def _build_ui(self):
- vbox = self.get_content_area()
- vbox.set_spacing(3)
+ def _build_ui(self):
+ vbox = self.get_content_area()
+ vbox.set_spacing(3)
- self._entry = Gtk.Entry()
+ self._entry = Gtk.Entry()
- self._entry.connect('changed', self.on_changed)
- self._entry.connect('key-press-event', self.on_key_press_event)
+ self._entry.connect('changed', self.on_changed)
+ self._entry.connect('key-press-event', self.on_key_press_event)
- sw = Gtk.ScrolledWindow()
- sw.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
- sw.set_shadow_type(Gtk.ShadowType.OUT)
+ sw = Gtk.ScrolledWindow()
+ sw.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
+ sw.set_shadow_type(Gtk.ShadowType.OUT)
- tv = Gtk.TreeView()
- tv.set_headers_visible(False)
+ tv = Gtk.TreeView()
+ tv.set_headers_visible(False)
- self._store = Gtk.ListStore(Gio.Icon, str, GObject.Object, Gio.FileType)
- tv.set_model(self._store)
+ self._store = Gtk.ListStore(Gio.Icon, str, GObject.Object, Gio.FileType)
+ tv.set_model(self._store)
- self._treeview = tv
- tv.connect('row-activated', self.on_row_activated)
+ self._treeview = tv
+ tv.connect('row-activated', self.on_row_activated)
- column = Gtk.TreeViewColumn()
+ column = Gtk.TreeViewColumn()
- renderer = Gtk.CellRendererPixbuf()
- column.pack_start(renderer, False)
- column.add_attribute(renderer, "gicon", 0)
+ renderer = Gtk.CellRendererPixbuf()
+ column.pack_start(renderer, False)
+ column.add_attribute(renderer, "gicon", 0)
- renderer = Gtk.CellRendererText()
- column.pack_start(renderer, True)
- column.add_attribute(renderer, "markup", 1)
+ renderer = Gtk.CellRendererText()
+ column.pack_start(renderer, True)
+ column.add_attribute(renderer, "markup", 1)
- column.set_cell_data_func(renderer, self.on_cell_data_cb, None)
+ column.set_cell_data_func(renderer, self.on_cell_data_cb, None)
- tv.append_column(column)
- sw.add(tv)
+ tv.append_column(column)
+ sw.add(tv)
- selection = tv.get_selection()
- selection.connect('changed', self.on_selection_changed)
- selection.set_mode(Gtk.SelectionMode.MULTIPLE)
+ selection = tv.get_selection()
+ selection.connect('changed', self.on_selection_changed)
+ selection.set_mode(Gtk.SelectionMode.MULTIPLE)
- vbox.pack_start(self._entry, False, False, 0)
- vbox.pack_start(sw, True, True, 0)
+ vbox.pack_start(self._entry, False, False, 0)
+ vbox.pack_start(sw, True, True, 0)
- lbl = Gtk.Label()
- lbl.set_alignment(0, 0.5)
- lbl.set_ellipsize(Pango.EllipsizeMode.MIDDLE)
- self._info_label = lbl
+ lbl = Gtk.Label()
+ lbl.set_alignment(0, 0.5)
+ lbl.set_ellipsize(Pango.EllipsizeMode.MIDDLE)
+ self._info_label = lbl
- vbox.pack_start(lbl, False, False, 0)
+ vbox.pack_start(lbl, False, False, 0)
- # Initial selection
- self.on_selection_changed(tv.get_selection())
- vbox.show_all()
+ # Initial selection
+ self.on_selection_changed(tv.get_selection())
+ vbox.show_all()
- def on_cell_data_cb(self, column, cell, model, piter, user_data):
- path = model.get_path(piter)
+ def on_cell_data_cb(self, column, cell, model, piter, user_data):
+ path = model.get_path(piter)
- if self._cursor and path == self._cursor.get_path():
- style = self._treeview.get_style()
- bg = style.bg[Gtk.StateType.PRELIGHT]
+ if self._cursor and path == self._cursor.get_path():
+ style = self._treeview.get_style()
+ bg = style.bg[Gtk.StateType.PRELIGHT]
- cell.set_property('cell-background-gdk', bg)
- cell.set_property('style', Pango.Style.ITALIC)
- else:
- cell.set_property('cell-background-set', False)
- cell.set_property('style-set', False)
+ cell.set_property('cell-background-gdk', bg)
+ cell.set_property('style', Pango.Style.ITALIC)
+ else:
+ cell.set_property('cell-background-set', False)
+ cell.set_property('style-set', False)
- def _icon_from_stock(self, stock):
- theme = Gtk.icon_theme_get_default()
- size = Gtk.icon_size_lookup(Gtk.IconSize.MENU)
- pixbuf = theme.load_icon(stock, size[0], Gtk.IconLookupFlags.USE_BUILTIN)
+ def _icon_from_stock(self, stock):
+ theme = Gtk.icon_theme_get_default()
+ size = Gtk.icon_size_lookup(Gtk.IconSize.MENU)
+ pixbuf = theme.load_icon(stock, size[0], Gtk.IconLookupFlags.USE_BUILTIN)
- return pixbuf
+ return pixbuf
- def _list_dir(self, gfile):
- entries = []
+ def _list_dir(self, gfile):
+ entries = []
- try:
- entries = gfile.enumerate_children("standard::*", Gio.FileQueryInfoFlags.NONE, None)
- except GObject.Error:
- pass
+ try:
+ entries = gfile.enumerate_children("standard::*", Gio.FileQueryInfoFlags.NONE, None)
+ except GObject.Error:
+ pass
- children = []
+ children = []
- for entry in entries:
- if isinstance(gfile, VirtualDirectory):
- child = entry
- else:
- child = gfile.get_child(entry.get_name())
+ for entry in entries:
+ if isinstance(gfile, VirtualDirectory):
+ child = entry
+ else:
+ child = gfile.get_child(entry.get_name())
- children.append((child, entry.get_name(), entry.get_file_type(), entry.get_icon()))
+ children.append((child, entry.get_name(), entry.get_file_type(), entry.get_icon()))
- return children
+ return children
- def _compare_entries(self, a, b, lpart):
- if lpart in a:
- if lpart in b:
- return cmp(a.index(lpart), b.index(lpart))
- else:
- return -1
- elif lpart in b:
- return 1
- else:
- return 0
+ def _compare_entries(self, a, b, lpart):
+ if lpart in a:
+ if lpart in b:
+ return cmp(a.index(lpart), b.index(lpart))
+ else:
+ return -1
+ elif lpart in b:
+ return 1
+ else:
+ return 0
- def _match_glob(self, s, glob):
- if glob:
- glob += '*'
+ def _match_glob(self, s, glob):
+ if glob:
+ glob += '*'
- return fnmatch.fnmatch(s, glob)
+ return fnmatch.fnmatch(s, glob)
- def do_search_dir(self, parts, d):
- if not parts or not d:
- return []
+ def do_search_dir(self, parts, d):
+ if not parts or not d:
+ return []
- if d in self._cache:
- entries = self._cache[d]
- else:
- entries = self._list_dir(d)
- entries.sort(lambda x, y: cmp(x[1].lower(), y[1].lower()))
- self._cache[d] = entries
+ if d in self._cache:
+ entries = self._cache[d]
+ else:
+ entries = self._list_dir(d)
+ entries.sort(lambda x, y: cmp(x[1].lower(), y[1].lower()))
+ self._cache[d] = entries
- found = []
- newdirs = []
+ found = []
+ newdirs = []
- lpart = parts[0].lower()
+ lpart = parts[0].lower()
- for entry in entries:
- if not entry:
- continue
+ for entry in entries:
+ if not entry:
+ continue
- lentry = entry[1].lower()
+ lentry = entry[1].lower()
- if not lpart or lpart in lentry or self._match_glob(lentry, lpart):
- if entry[2] == Gio.FileType.DIRECTORY:
- if len(parts) > 1:
- newdirs.append(entry[0])
- else:
- found.append(entry)
- elif entry[2] == Gio.FileType.REGULAR and \
- (not lpart or len(parts) == 1):
- found.append(entry)
+ if not lpart or lpart in lentry or self._match_glob(lentry, lpart):
+ if entry[2] == Gio.FileType.DIRECTORY:
+ if len(parts) > 1:
+ newdirs.append(entry[0])
+ else:
+ found.append(entry)
+ elif entry[2] == Gio.FileType.REGULAR and \
+ (not lpart or len(parts) == 1):
+ found.append(entry)
- found.sort(lambda a, b: self._compare_entries(a[1].lower(), b[1].lower(), lpart))
+ found.sort(lambda a, b: self._compare_entries(a[1].lower(), b[1].lower(), lpart))
- if lpart == '..':
- newdirs.append(d.get_parent())
+ if lpart == '..':
+ newdirs.append(d.get_parent())
- for dd in newdirs:
- found.extend(self.do_search_dir(parts[1:], dd))
+ for dd in newdirs:
+ found.extend(self.do_search_dir(parts[1:], dd))
- return found
+ return found
- def _replace_insensitive(self, s, find, rep):
- out = ''
- l = s.lower()
- find = find.lower()
- last = 0
+ def _replace_insensitive(self, s, find, rep):
+ out = ''
+ l = s.lower()
+ find = find.lower()
+ last = 0
- if len(find) == 0:
- return xml.sax.saxutils.escape(s)
+ if len(find) == 0:
+ return xml.sax.saxutils.escape(s)
- while True:
- m = l.find(find, last)
+ while True:
+ m = l.find(find, last)
- if m == -1:
- break
- else:
- out += xml.sax.saxutils.escape(s[last:m]) + rep % (xml.sax.saxutils.escape(s[m:m + len(find)]),)
- last = m + len(find)
+ if m == -1:
+ break
+ else:
+ out += xml.sax.saxutils.escape(s[last:m]) + rep % (xml.sax.saxutils.escape(s[m:m + len(find)]),)
+ last = m + len(find)
- return out + xml.sax.saxutils.escape(s[last:])
+ return out + xml.sax.saxutils.escape(s[last:])
- def make_markup(self, parts, path):
- out = []
+ def make_markup(self, parts, path):
+ out = []
- for i in range(0, len(parts)):
- out.append(self._replace_insensitive(path[i], parts[i], "<b>%s</b>"))
+ for i in range(0, len(parts)):
+ out.append(self._replace_insensitive(path[i], parts[i], "<b>%s</b>"))
- return os.sep.join(out)
+ return os.sep.join(out)
- def _get_icon(self, f):
- query = f.query_info(Gio.FILE_ATTRIBUTE_STANDARD_ICON,
- Gio.FileQueryInfoFlags.NONE,
- None)
+ def _get_icon(self, f):
+ query = f.query_info(Gio.FILE_ATTRIBUTE_STANDARD_ICON,
+ Gio.FileQueryInfoFlags.NONE,
+ None)
- if not query:
- return None
- else:
- return query.get_icon()
+ if not query:
+ return None
+ else:
+ return query.get_icon()
- def _make_parts(self, parent, child, pp):
- parts = []
+ def _make_parts(self, parent, child, pp):
+ parts = []
- # We went from parent, to child, using pp
- idx = len(pp) - 1
+ # We went from parent, to child, using pp
+ idx = len(pp) - 1
- while idx >= 0:
- if pp[idx] == '..':
- parts.insert(0, '..')
- else:
- parts.insert(0, child.get_basename())
- child = child.get_parent()
+ while idx >= 0:
+ if pp[idx] == '..':
+ parts.insert(0, '..')
+ else:
+ parts.insert(0, child.get_basename())
+ child = child.get_parent()
- idx -= 1
+ idx -= 1
- return parts
+ return parts
- def normalize_relative(self, parts):
- if not parts:
- return []
+ def normalize_relative(self, parts):
+ if not parts:
+ return []
- out = self.normalize_relative(parts[:-1])
+ out = self.normalize_relative(parts[:-1])
- if parts[-1] == '..':
- if not out or (out[-1] == '..') or len(out) == 1:
- out.append('..')
- else:
- del out[-1]
- else:
- out.append(parts[-1])
+ if parts[-1] == '..':
+ if not out or (out[-1] == '..') or len(out) == 1:
+ out.append('..')
+ else:
+ del out[-1]
+ else:
+ out.append(parts[-1])
- return out
+ return out
- def _append_to_store(self, item):
- if item not in self._stored_items:
- self._store.append(item)
- self._stored_items[item] = True
+ def _append_to_store(self, item):
+ if item not in self._stored_items:
+ self._store.append(item)
+ self._stored_items[item] = True
- def _clear_store(self):
- self._store.clear()
- self._stored_items = {}
+ def _clear_store(self):
+ self._store.clear()
+ self._stored_items = {}
- def _show_virtuals(self):
- for d in self._dirs:
- if isinstance(d, VirtualDirectory):
- for entry in d.enumerate_children("standard::*", 0, None):
- self._append_to_store((entry[1].get_icon(), xml.sax.saxutils.escape(entry[1].get_name()), entry[0], entry[1].get_file_type()))
+ def _show_virtuals(self):
+ for d in self._dirs:
+ if isinstance(d, VirtualDirectory):
+ for entry in d.enumerate_children("standard::*", 0, None):
+ self._append_to_store((entry[1].get_icon(), xml.sax.saxutils.escape(entry[1].get_name()), entry[0], entry[1].get_file_type()))
- def _set_busy(self, busy):
- if busy:
- self.get_window().set_cursor(self._busy_cursor)
- else:
- self.get_window().set_cursor(None)
- Gdk.flush()
+ def _set_busy(self, busy):
+ if busy:
+ self.get_window().set_cursor(self._busy_cursor)
+ else:
+ self.get_window().set_cursor(None)
+ Gdk.flush()
- def _remove_cursor(self):
- if self._cursor:
- path = self._cursor.get_path()
- self._cursor = None
+ def _remove_cursor(self):
+ if self._cursor:
+ path = self._cursor.get_path()
+ self._cursor = None
- self._store.row_changed(path, self._store.get_iter(path))
+ self._store.row_changed(path, self._store.get_iter(path))
- def do_search(self):
- self._set_busy(True)
- self._remove_cursor()
+ def do_search(self):
+ self._set_busy(True)
+ self._remove_cursor()
- text = self._entry.get_text().strip()
- self._clear_store()
+ text = self._entry.get_text().strip()
+ self._clear_store()
- if text == '':
- self._show_virtuals()
- else:
- parts = self.normalize_relative(text.split(os.sep))
- files = []
+ if text == '':
+ self._show_virtuals()
+ else:
+ parts = self.normalize_relative(text.split(os.sep))
+ files = []
- for d in self._dirs:
- for entry in self.do_search_dir(parts, d):
- pathparts = self._make_parts(d, entry[0], parts)
- self._append_to_store((entry[3], self.make_markup(parts, pathparts), entry[0], entry[2]))
+ for d in self._dirs:
+ for entry in self.do_search_dir(parts, d):
+ pathparts = self._make_parts(d, entry[0], parts)
+ self._append_to_store((entry[3], self.make_markup(parts, pathparts), entry[0], entry[2]))
- piter = self._store.get_iter_first()
- if piter:
- self._treeview.get_selection().select_path(self._store.get_path(piter))
+ piter = self._store.get_iter_first()
+ if piter:
+ self._treeview.get_selection().select_path(self._store.get_path(piter))
- self._set_busy(False)
+ self._set_busy(False)
- #FIXME: override doesn't work anymore for some reason, if we override
- # the widget is not realized
- def on_show(self, data=None):
- #Gtk.Window.do_show(self)
+ #FIXME: override doesn't work anymore for some reason, if we override
+ # the widget is not realized
+ def on_show(self, data=None):
+ #Gtk.Window.do_show(self)
- self._entry.grab_focus()
- self._entry.set_text("")
+ self._entry.grab_focus()
+ self._entry.set_text("")
- self.do_search()
+ self.do_search()
- def on_changed(self, editable):
- self.do_search()
- self.on_selection_changed(self._treeview.get_selection())
+ def on_changed(self, editable):
+ self.do_search()
+ self.on_selection_changed(self._treeview.get_selection())
- def _shift_extend(self, towhere):
- selection = self._treeview.get_selection()
+ def _shift_extend(self, towhere):
+ selection = self._treeview.get_selection()
- if not self._shift_start:
- model, rows = selection.get_selected_rows()
- start = rows[0]
+ if not self._shift_start:
+ model, rows = selection.get_selected_rows()
+ start = rows[0]
- self._shift_start = Gtk.TreeRowReference(self._store, start)
- else:
- start = self._shift_start.get_path()
+ self._shift_start = Gtk.TreeRowReference(self._store, start)
+ else:
+ start = self._shift_start.get_path()
- selection.unselect_all()
- selection.select_range(start, towhere)
+ selection.unselect_all()
+ selection.select_range(start, towhere)
- def _select_index(self, idx, hasctrl, hasshift):
- path = (idx,)
+ def _select_index(self, idx, hasctrl, hasshift):
+ path = (idx,)
- if not (hasctrl or hasshift):
- self._treeview.get_selection().unselect_all()
+ if not (hasctrl or hasshift):
+ self._treeview.get_selection().unselect_all()
- if hasshift:
- self._shift_extend(path)
- else:
- self._shift_start = None
+ if hasshift:
+ self._shift_extend(path)
+ else:
+ self._shift_start = None
+
+ if not hasctrl:
+ self._treeview.get_selection().select_path(path)
- if not hasctrl:
- self._treeview.get_selection().select_path(path)
+ self._treeview.scroll_to_cell(path, None, True, 0.5, 0)
+ self._remove_cursor()
- self._treeview.scroll_to_cell(path, None, True, 0.5, 0)
- self._remove_cursor()
+ if hasctrl or hasshift:
+ self._cursor = Gtk.TreeRowReference(self._store, path)
- if hasctrl or hasshift:
- self._cursor = Gtk.TreeRowReference(self._store, path)
+ piter = self._store.get_iter(path)
+ self._store.row_changed(path, piter)
- piter = self._store.get_iter(path)
- self._store.row_changed(path, piter)
+ def _move_selection(self, howmany, hasctrl, hasshift):
+ num = self._store.iter_n_children(None)
- def _move_selection(self, howmany, hasctrl, hasshift):
- num = self._store.iter_n_children(None)
+ if num == 0:
+ return True
- if num == 0:
- return True
+ # Test for cursor
+ path = None
- # Test for cursor
- path = None
+ if self._cursor:
+ path = self._cursor.get_path()
+ else:
+ model, rows = self._treeview.get_selection().get_selected_rows()
- if self._cursor:
- path = self._cursor.get_path()
- else:
- model, rows = self._treeview.get_selection().get_selected_rows()
+ if len(rows) == 1:
+ path = rows[0]
- if len(rows) == 1:
- path = rows[0]
+ if not path:
+ if howmany > 0:
+ self._select_index(0, hasctrl, hasshift)
+ else:
+ self._select_index(num - 1, hasctrl, hasshift)
+ else:
+ idx = path.get_indices()[0]
- if not path:
- if howmany > 0:
- self._select_index(0, hasctrl, hasshift)
- else:
- self._select_index(num - 1, hasctrl, hasshift)
- else:
- idx = path.get_indices()[0]
+ if idx + howmany < 0:
+ self._select_index(0, hasctrl, hasshift)
+ elif idx + howmany >= num:
+ self._select_index(num - 1, hasctrl, hasshift)
+ else:
+ self._select_index(idx + howmany, hasctrl, hasshift)
- if idx + howmany < 0:
- self._select_index(0, hasctrl, hasshift)
- elif idx + howmany >= num:
- self._select_index(num - 1, hasctrl, hasshift)
- else:
- self._select_index(idx + howmany, hasctrl, hasshift)
+ return True
- return True
+ def _direct_file(self):
+ uri = self._entry.get_text()
+ gfile = Gio.file_new_for_uri(uri)
+
+ if Gedit.utils_is_valid_location(gfile) or \
+ (os.path.isabs(uri) and gfile.query_exists()):
+ return gfile
+ else:
+ return None
+
+ def _activate(self):
+ model, rows = self._treeview.get_selection().get_selected_rows()
+ ret = True
- def _direct_file(self):
- uri = self._entry.get_text()
- gfile = Gio.file_new_for_uri(uri)
-
- if Gedit.utils_is_valid_location(gfile) or \
- (os.path.isabs(uri) and gfile.query_exists()):
- return gfile
- else:
- return None
-
- def _activate(self):
- model, rows = self._treeview.get_selection().get_selected_rows()
- ret = True
-
- for row in rows:
- s = model.get_iter(row)
- info = model.get(s, 2, 3)
-
- if info[1] != Gio.FileType.DIRECTORY:
- ret = ret and self._handler(info[0])
- else:
- text = self._entry.get_text()
-
- for i in range(len(text) - 1, -1, -1):
- if text[i] == os.sep:
- break
-
- self._entry.set_text(os.path.join(text[:i], os.path.basename(info[0].get_uri())) + os.sep)
- self._entry.set_position(-1)
- self._entry.grab_focus()
- return True
-
- if rows and ret:
- self.destroy()
-
- if not rows:
- gfile = self._direct_file()
-
- if gfile and self._handler(gfile):
- self.destroy()
- else:
- ret = False
- else:
- ret = False
-
- return ret
-
- def toggle_cursor(self):
- if not self._cursor:
- return
-
- path = self._cursor.get_path()
- selection = self._treeview.get_selection()
-
- if selection.path_is_selected(path):
- selection.unselect_path(path)
- else:
- selection.select_path(path)
-
- def on_key_press_event(self, widget, event):
- move_mapping = {
- Gdk.KEY_Down: 1,
- Gdk.KEY_Up: -1,
- Gdk.KEY_Page_Down: 5,
- Gdk.KEY_Page_Up: -5
- }
-
- if event.keyval == Gdk.KEY_Escape:
- self.destroy()
- return True
- elif event.keyval in move_mapping:
- return self._move_selection(move_mapping[event.keyval], event.state & Gdk.ModifierType.CONTROL_MASK, event.state & Gdk.ModifierType.SHIFT_MASK)
- elif event.keyval in [Gdk.KEY_Return, Gdk.KEY_KP_Enter, Gdk.KEY_Tab, Gdk.KEY_ISO_Left_Tab]:
- return self._activate()
- elif event.keyval == Gdk.KEY_space and event.state & Gdk.ModifierType.CONTROL_MASK:
- self.toggle_cursor()
-
- return False
-
- def on_row_activated(self, view, path, column):
- self._activate()
-
- def do_response(self, response):
- if response != Gtk.ResponseType.ACCEPT or not self._activate():
- self.destroy()
-
- def on_selection_changed(self, selection):
- model, rows = selection.get_selected_rows()
-
- gfile = None
- fname = None
-
- if not rows:
- gfile = self._direct_file()
- elif len(rows) == 1:
- gfile = model.get(model.get_iter(rows[0]), 2)[0]
- else:
- fname = ''
-
- if gfile:
- if gfile.is_native():
- fname = xml.sax.saxutils.escape(gfile.get_path())
- else:
- fname = xml.sax.saxutils.escape(gfile.get_uri())
-
- self._open_button.set_sensitive(fname != None)
- self._info_label.set_markup(fname or '')
-
- def on_focus_entry(self, group, accel, keyval, modifier):
+ for row in rows:
+ s = model.get_iter(row)
+ info = model.get(s, 2, 3)
+
+ if info[1] != Gio.FileType.DIRECTORY:
+ ret = ret and self._handler(info[0])
+ else:
+ text = self._entry.get_text()
+
+ for i in range(len(text) - 1, -1, -1):
+ if text[i] == os.sep:
+ break
+
+ self._entry.set_text(os.path.join(text[:i], os.path.basename(info[0].get_uri())) + os.sep)
+ self._entry.set_position(-1)
self._entry.grab_focus()
+ return True
-# ex:ts=8:et:
+ if rows and ret:
+ self.destroy()
+
+ if not rows:
+ gfile = self._direct_file()
+
+ if gfile and self._handler(gfile):
+ self.destroy()
+ else:
+ ret = False
+ else:
+ ret = False
+
+ return ret
+
+ def toggle_cursor(self):
+ if not self._cursor:
+ return
+
+ path = self._cursor.get_path()
+ selection = self._treeview.get_selection()
+
+ if selection.path_is_selected(path):
+ selection.unselect_path(path)
+ else:
+ selection.select_path(path)
+
+ def on_key_press_event(self, widget, event):
+ move_mapping = {
+ Gdk.KEY_Down: 1,
+ Gdk.KEY_Up: -1,
+ Gdk.KEY_Page_Down: 5,
+ Gdk.KEY_Page_Up: -5
+ }
+
+ if event.keyval == Gdk.KEY_Escape:
+ self.destroy()
+ return True
+ elif event.keyval in move_mapping:
+ return self._move_selection(move_mapping[event.keyval], event.state & Gdk.ModifierType.CONTROL_MASK, event.state & Gdk.ModifierType.SHIFT_MASK)
+ elif event.keyval in [Gdk.KEY_Return, Gdk.KEY_KP_Enter, Gdk.KEY_Tab, Gdk.KEY_ISO_Left_Tab]:
+ return self._activate()
+ elif event.keyval == Gdk.KEY_space and event.state & Gdk.ModifierType.CONTROL_MASK:
+ self.toggle_cursor()
+
+ return False
+
+ def on_row_activated(self, view, path, column):
+ self._activate()
+
+ def do_response(self, response):
+ if response != Gtk.ResponseType.ACCEPT or not self._activate():
+ self.destroy()
+
+ def on_selection_changed(self, selection):
+ model, rows = selection.get_selected_rows()
+
+ gfile = None
+ fname = None
+
+ if not rows:
+ gfile = self._direct_file()
+ elif len(rows) == 1:
+ gfile = model.get(model.get_iter(rows[0]), 2)[0]
+ else:
+ fname = ''
+
+ if gfile:
+ if gfile.is_native():
+ fname = xml.sax.saxutils.escape(gfile.get_path())
+ else:
+ fname = xml.sax.saxutils.escape(gfile.get_uri())
+
+ self._open_button.set_sensitive(fname != None)
+ self._info_label.set_markup(fname or '')
+
+ def on_focus_entry(self, group, accel, keyval, modifier):
+ self._entry.grab_focus()
+
+# ex:ts=4:et:
diff --git a/plugins/quickopen/quickopen/virtualdirs.py b/plugins/quickopen/quickopen/virtualdirs.py
index 1ee5a1d..b777bf2 100644
--- a/plugins/quickopen/quickopen/virtualdirs.py
+++ b/plugins/quickopen/quickopen/virtualdirs.py
@@ -20,66 +20,67 @@
from gi.repository import Gio, Gtk
class VirtualDirectory(object):
- def __init__(self, name):
- self._name = name
- self._children = []
+ def __init__(self, name):
+ self._name = name
+ self._children = []
- def get_uri(self):
- return 'virtual://' + self._name
+ def get_uri(self):
+ return 'virtual://' + self._name
- def get_parent(self):
- return None
+ def get_parent(self):
+ return None
- def enumerate_children(self, attr, flags, callback):
- return self._children
+ def enumerate_children(self, attr, flags, callback):
+ return self._children
- def append(self, child):
- if not child.is_native():
- return
+ def append(self, child):
+ if not child.is_native():
+ return
- try:
- info = child.query_info("standard::*",
- Gio.FileQueryInfoFlags.NONE,
- None)
+ try:
+ info = child.query_info("standard::*",
+ Gio.FileQueryInfoFlags.NONE,
+ None)
- if info:
- self._children.append((child, info))
- except StandardError as e:
- print e
+ if info:
+ self._children.append((child, info))
+ except StandardError as e:
+ print e
class RecentDocumentsDirectory(VirtualDirectory):
- def __init__(self, maxitems=10):
- VirtualDirectory.__init__(self, 'recent')
+ def __init__(self, maxitems=10):
+ VirtualDirectory.__init__(self, 'recent')
- self._maxitems = maxitems
- self.fill()
+ self._maxitems = maxitems
+ self.fill()
- def fill(self):
- manager = Gtk.RecentManager.get_default()
+ def fill(self):
+ manager = Gtk.RecentManager.get_default()
- items = manager.get_items()
- items.sort(lambda a, b: cmp(b.get_visited(), a.get_visited()))
+ items = manager.get_items()
+ items.sort(lambda a, b: cmp(b.get_visited(), a.get_visited()))
- added = 0
+ added = 0
- for item in items:
- if item.has_group('gedit'):
- self.append(Gio.file_new_for_uri(item.get_uri()))
- added += 1
+ for item in items:
+ if item.has_group('gedit'):
+ self.append(Gio.file_new_for_uri(item.get_uri()))
+ added += 1
- if added >= self._maxitems:
- break
+ if added >= self._maxitems:
+ break
class CurrentDocumentsDirectory(VirtualDirectory):
- def __init__(self, window):
- VirtualDirectory.__init__(self, 'documents')
+ def __init__(self, window):
+ VirtualDirectory.__init__(self, 'documents')
- self.fill(window)
+ self.fill(window)
- def fill(self, window):
- for doc in window.get_documents():
- location = doc.get_location()
- if location:
- self.append(location)
+ def fill(self, window):
+ for doc in window.get_documents():
+ location = doc.get_location()
-# ex:ts=8:et:
+ if location:
+ self.append(location)
+
+# ex:ts=4:et:
diff --git a/plugins/snippets/snippets/manager.py b/plugins/snippets/snippets/manager.py
index f24f6d8..4fe2033 100644
--- a/plugins/snippets/snippets/manager.py
+++ b/plugins/snippets/snippets/manager.py
@@ -231,18 +231,20 @@ class Manager(Gtk.VBox, Gtk.Buildable):
def build_dnd(self):
tv = self.tree_view
- # Set it as a drag source for exporting snippets
- Gtk.drag_source_set(tv, Gdk.ModifierType.BUTTON1_MASK, self.dnd_target_list, Gdk.DragAction.DEFAULT | Gdk.DragAction.COPY)
-
- # Set it as a drag destination for importing snippets
- Gtk.drag_dest_set(tv, Gtk.DestDefaults.HIGHLIGHT | Gtk.DestDefaults.DROP,
- self.dnd_target_list, Gdk.DragAction.DEFAULT | Gdk.DragAction.COPY)
-
- tv.connect('drag_data_get', self.on_tree_view_drag_data_get)
- tv.connect('drag_begin', self.on_tree_view_drag_begin)
- tv.connect('drag_end', self.on_tree_view_drag_end)
- tv.connect('drag_data_received', self.on_tree_view_drag_data_received)
- tv.connect('drag_motion', self.on_tree_view_drag_motion)
+# # Set it as a drag source for exporting snippets
+# # TODO: fix this
+# Gtk.drag_source_set(tv, Gdk.ModifierType.BUTTON1_MASK, self.dnd_target_list, Gdk.DragAction.DEFAULT | Gdk.DragAction.COPY)
+
+# # Set it as a drag destination for importing snippets
+# # TODO: fix this
+# Gtk.drag_dest_set(tv, Gtk.DestDefaults.HIGHLIGHT | Gtk.DestDefaults.DROP,
+# self.dnd_target_list, Gdk.DragAction.DEFAULT | Gdk.DragAction.COPY)
+
+# tv.connect('drag_data_get', self.on_tree_view_drag_data_get)
+# tv.connect('drag_begin', self.on_tree_view_drag_begin)
+# tv.connect('drag_end', self.on_tree_view_drag_end)
+# tv.connect('drag_data_received', self.on_tree_view_drag_data_received)
+# tv.connect('drag_motion', self.on_tree_view_drag_motion)
theme = Gtk.IconTheme.get_for_screen(tv.get_screen())
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]