Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@tomeuvizoso.net>2008-11-08 12:12:53 (GMT)
committer Tomeu Vizoso <tomeu@tomeuvizoso.net>2008-11-08 12:12:53 (GMT)
commit2d3e6b3cb1df4c89d5f71b47b2416df60cd988ba (patch)
tree2eefb55803b633e9cc6c8fdbc1e5b105f11e5dfb
parent500dfaa886957f550bccc33775a83f2c3b257d65 (diff)
Put the file browser and source viewer inside a resizable pane
-rw-r--r--extensions/globalkey/viewsource.py80
1 files changed, 42 insertions, 38 deletions
diff --git a/extensions/globalkey/viewsource.py b/extensions/globalkey/viewsource.py
index a11ca8f..995cb8f 100644
--- a/extensions/globalkey/viewsource.py
+++ b/extensions/globalkey/viewsource.py
@@ -122,27 +122,18 @@ class ViewSource(gtk.Window):
toolbar.connect('source-selected', self.__source_selected_cb)
toolbar.show()
- hbox = gtk.HBox()
- vbox.pack_start(hbox)
- hbox.show()
-
- scrolled_window = gtk.ScrolledWindow()
- scrolled_window.set_size_request(style.GRID_CELL_SIZE * 3, -1)
- hbox.pack_start(scrolled_window, expand=False)
- scrolled_window.show()
+ pane = gtk.HPaned()
+ vbox.pack_start(pane)
+ pane.show()
self._file_viewer = FileViewer(bundle_path)
self._file_viewer.connect('file-selected', self.__file_selected_cb)
- scrolled_window.add(self._file_viewer)
+ pane.add1(self._file_viewer)
self._file_viewer.show()
- scrolled_window = gtk.ScrolledWindow()
- #scrolled_window.set_size_request(self._calculate_char_width(80), -1)
- hbox.pack_start(scrolled_window, expand=True)
- scrolled_window.show()
-
self._source_display = SourceDisplay()
- scrolled_window.add(self._source_display)
+ #self._source_display.set_size_request(self._calculate_char_width(80), -1)
+ pane.pack2(self._source_display)
self._source_display.show()
def _calculate_char_width(self, char_count):
@@ -252,7 +243,7 @@ class Toolbar(gtk.Toolbar):
if button.props.active:
self.emit('source-selected', path)
-class FileViewer(gtk.TreeView):
+class FileViewer(gtk.ScrolledWindow):
__gtype_name__ = 'SugarFileViewer'
__gsignals__ = {
@@ -262,19 +253,28 @@ class FileViewer(gtk.TreeView):
}
def __init__(self, path):
- gtk.TreeView.__init__(self)
+ gtk.ScrolledWindow.__init__(self)
+
+ self.props.hscrollbar_policy = gtk.POLICY_AUTOMATIC
+ self.props.vscrollbar_policy = gtk.POLICY_AUTOMATIC
+ self.set_size_request(style.GRID_CELL_SIZE * 3, -1)
self._path = None
- self.props.headers_visible = False
- self.get_selection().connect('changed', self.__selection_changed_cb)
-
+ self._tree_view = gtk.TreeView()
+ self.add(self._tree_view)
+ self._tree_view.show()
+
+ self._tree_view.props.headers_visible = False
+ selection = self._tree_view.get_selection()
+ selection.connect('changed', self.__selection_changed_cb)
+
cell = gtk.CellRendererText()
column = gtk.TreeViewColumn()
column.pack_start(cell, True)
column.add_attribute(cell, 'text', 0)
- self.append_column(column)
- self.set_search_column(0)
+ self._tree_view.append_column(column)
+ self._tree_view.set_search_column(0)
self.set_path(path)
@@ -283,11 +283,11 @@ class FileViewer(gtk.TreeView):
if self._path == path:
return
self._path = path
- self.set_model(gtk.TreeStore(str, str))
+ self._tree_view.set_model(gtk.TreeStore(str, str))
self._add_dir_to_model(path)
def _add_dir_to_model(self, dir_path, parent=None):
- model = self.get_model()
+ model = self._tree_view.get_model()
for f in os.listdir(dir_path):
full_path = os.path.join(dir_path, f)
if os.path.isdir(full_path):
@@ -304,32 +304,36 @@ class FileViewer(gtk.TreeView):
file_path = model.get_value(tree_iter, 1)
self.emit('file-selected', file_path)
-class SourceDisplay(gtksourceview2.View):
+class SourceDisplay(gtk.ScrolledWindow):
__gtype_name__ = 'SugarSourceDisplay'
def __init__(self):
- self._buffer = gtksourceview2.Buffer()
- gtksourceview2.View.__init__(self, self._buffer)
+ gtk.ScrolledWindow.__init__(self)
+
+ self.props.hscrollbar_policy = gtk.POLICY_AUTOMATIC
+ self.props.vscrollbar_policy = gtk.POLICY_AUTOMATIC
+ self._buffer = gtksourceview2.Buffer()
self._buffer.set_highlight_syntax(True)
- self._file_path = None
- self.set_editable(False)
- self.set_cursor_visible(True)
- self.set_show_line_numbers(True)
- self.set_show_right_margin(True)
- self.set_right_margin_position(80)
-
- # TODO: Activate again when we get a better style scheme
- #self.set_highlight_current_line(True)
+ self._source_view = gtksourceview2.View(self._buffer)
+ self._source_view.set_editable(False)
+ self._source_view.set_cursor_visible(True)
+ self._source_view.set_show_line_numbers(True)
+ self._source_view.set_show_right_margin(True)
+ self._source_view.set_right_margin_position(80)
+ #self._source_view.set_highlight_current_line(True) #FIXME: Ugly color
+ self._source_view.modify_font(_SOURCE_FONT)
+ self.add(self._source_view)
+ self._source_view.show()
- self.modify_font(_SOURCE_FONT)
+ self._file_path = None
def _set_file_path(self, file_path):
if file_path == self._file_path:
return
self._file_path = file_path
-
+
if self._file_path is None:
self._buffer.set_text('')
return