diff options
Diffstat (limited to 'usercode.py')
-rw-r--r-- | usercode.py | 57 |
1 files changed, 23 insertions, 34 deletions
diff --git a/usercode.py b/usercode.py index 2bc43cc..43fd8c2 100644 --- a/usercode.py +++ b/usercode.py @@ -56,8 +56,8 @@ class Dialog(gtk.Window): self.show_all() gtk.Window.show(self) -class SourceDisplay(gtk.ScrolledWindow): - __gtype_name__ = 'SugarSourceDisplay' +class SourceEditor(gtk.ScrolledWindow): + __gtype_name__ = 'SugarSourceEditor' def __init__(self): gtk.ScrolledWindow.__init__(self) @@ -69,7 +69,7 @@ class SourceDisplay(gtk.ScrolledWindow): self._buffer.set_highlight_syntax(True) self._source_view = gtksourceview2.View(self._buffer) - self._source_view.set_editable(False) + self._source_view.set_editable(True) self._source_view.set_cursor_visible(True) self._source_view.set_show_line_numbers(True) self._source_view.set_show_right_margin(True) @@ -80,6 +80,19 @@ class SourceDisplay(gtk.ScrolledWindow): self._source_view.show() self._file_path = None + + def get_text(self): + start = self._buffer.get_start_iter() + end = self._buffer.get_end_iter() + return self._buffer.get_text(start, end) + + def set_text(self, text): + self._buffer.set_text(text) + + text = property(get_text, set_text) + + def write(self, path=None): + open(path or self.file_path, 'w').write(self.text) def _set_file_path(self, file_path): if file_path == self._file_path: @@ -112,29 +125,9 @@ class SourceDisplay(gtk.ScrolledWindow): return self._file_path file_path = property(_get_file_path, _set_file_path) - -class SourceEditor(SourceDisplay): - def __init__(self): - SourceDisplay.__init__(self) - - self._source_view.set_editable(True) - - def get_text(self): - start = self._buffer.get_start_iter() - end = self._buffer.get_end_iter() - return self._buffer.get_text(start, end) - - def set_text(self, text): - self._buffer.set_text(text) - - text = property(get_text, set_text) - - def write(self, path=None): - open(path or self.file_path, 'w').write(self.text) - logging.debug('@@@@@ %s %s %s' % (self.text, path, self.file_path)) -class FileViewer(gtk.ScrolledWindow): - __gtype_name__ = 'SugarFileViewer' +class ScriptFileViewer(gtk.ScrolledWindow): + __gtype_name__ = 'SugarScriptFileViewer' __gsignals__ = { 'file-selected': (gobject.SIGNAL_RUN_FIRST, @@ -142,7 +135,7 @@ class FileViewer(gtk.ScrolledWindow): ([str])), } - def __init__(self, path, initial_filename): + def __init__(self, path): gtk.ScrolledWindow.__init__(self) self.props.hscrollbar_policy = gtk.POLICY_AUTOMATIC @@ -150,7 +143,9 @@ class FileViewer(gtk.ScrolledWindow): self.set_size_request(style.GRID_CELL_SIZE * 3, -1) self._path = None - self._initial_filename = initial_filename + + ls = os.listdir(path) + self._initial_filename = ls[0] if len(ls) > 0 else None self._tree_view = gtk.TreeView() self.add(self._tree_view) @@ -198,13 +193,7 @@ class FileViewer(gtk.ScrolledWindow): else: file_path = model.get_value(tree_iter, 1) self.emit('file-selected', file_path) - -class ScriptFileViewer(FileViewer): - def __init__(self, path): - ls = os.listdir(path) - initial_filename = ls[0] if len(ls) > 0 else None - FileViewer.__init__(self, path, initial_filename) - + def get_selected_file(self): selection = self._tree_view.get_selection() model, tree_iter = selection.get_selected() |