From 4ea6a9813c65a378a51633ea1b58d82240df3329 Mon Sep 17 00:00:00 2001 From: Sai Vineet Date: Tue, 25 Mar 2014 15:07:01 +0000 Subject: Made the view settings permanent by using a config file --- diff --git a/develop-activity/PENDING b/develop-activity/PENDING index c76ddb7..dbfb426 100644 --- a/develop-activity/PENDING +++ b/develop-activity/PENDING @@ -4,8 +4,6 @@ PENDING * Icons to "show sources" and "show log" buttons. -* In the treeviews, sort first the directories and next the files. - * File operations (add file, add dir, delete file, delete dir) are using file choser. want implement these operations here? Now are commented. diff --git a/develop-activity/develop_app.py b/develop-activity/develop_app.py index dba7555..750ad46 100644 --- a/develop-activity/develop_app.py +++ b/develop-activity/develop_app.py @@ -100,6 +100,7 @@ class DevelopActivity(activity.Activity): view_toolbar.connect('font-size-changed', self.editor.font_changed_cb) toolbarbox.toolbar.insert(view_btn, -1) + self.view_toolbar = view_toolbar edit_btn = ToolbarButton() edit_btn.props.page = DevelopEditToolbar(self) @@ -272,6 +273,7 @@ class DevelopActivity(activity.Activity): # Show hidden stuff self._show_hidden_ui() + self._load_from_config() def __welcome_show_alert_cb(self, welcome_page, message): self._show_alert(message) @@ -456,6 +458,15 @@ class DevelopActivity(activity.Activity): self._set_dirty(False) self.save_unchanged = False + theme = self.editor.get_theme() + font_size = self.editor.get_font_size() + + config_file = os.path.join( + activity.get_bundle_path(), + "config.json") + with open(config_file, "w") as f: + f.write(json.dumps((theme, font_size))) + def read_file(self, file_path): self.activity_dir = self.metadata['source'] logging.error('read_file self.activity_dir %s', self.activity_dir) @@ -476,6 +487,17 @@ class DevelopActivity(activity.Activity): self._set_dirty(False) + self._load_from_config() + + def _load_from_config(self): + config_file = os.path.join( + activity.get_bundle_path(), + "config.json") + with open(config_file, "r") as f: + theme, font_size = json.loads(f.read()) + self.view_toolbar.set_theme(theme) + self.view_toolbar.set_font_size(font_size) + def _set_dirty(self, dirty): logging.debug("Setting dirty to %s; activity_dir is %s" % (str(dirty), str(self.activity_dir))) diff --git a/develop-activity/sourceview_editor.py b/develop-activity/sourceview_editor.py index 8173cfe..1358fa6 100644 --- a/develop-activity/sourceview_editor.py +++ b/develop-activity/sourceview_editor.py @@ -54,7 +54,7 @@ class GtkSourceview2Editor(Gtk.Notebook): self.theme_state = "light" self.font_size = DEFAULT_FONT_SIZE - def theme_changed_cb(self, widget, theme_name): + def set_theme(self, theme_name): self.theme_state = theme_name for i in range(0, self.get_n_pages()): page = self.get_nth_page(i) @@ -64,7 +64,7 @@ class GtkSourceview2Editor(Gtk.Notebook): else: children[0].get_children()[0].set_theme(theme_name) - def font_changed_cb(self, widget, size): + def set_font_size(self, size): self.font_size = size for i in range(0, self.get_n_pages()): page = self.get_nth_page(i) @@ -74,6 +74,18 @@ class GtkSourceview2Editor(Gtk.Notebook): else: children[0].get_children()[0].set_font_size(size) + def theme_changed_cb(self, widget, theme_name): + self.set_theme(theme_name) + + def font_changed_cb(self, widget, size): + self.set_font_size(size) + + def get_theme(self): + return self.theme_state + + def get_font_size(self): + return self.font_size + def _page_removed_cb(self, __notebook, page, n): try: page.page.remove() diff --git a/develop-activity/toolbars.py b/develop-activity/toolbars.py index b7c0ca6..e410bd1 100644 --- a/develop-activity/toolbars.py +++ b/develop-activity/toolbars.py @@ -76,6 +76,22 @@ class DevelopViewToolbar(Gtk.Toolbar): self.show() + def set_theme(self, theme_name): + self.theme_state = theme_name + + if self.theme_state == "light": + self.theme_toggler.set_icon_name('dark-theme') + self.theme_toggler.set_tooltip('Switch to Dark Theme') + elif self.theme_state == "dark": + self.theme_toggler.set_icon_name('light-theme') + self.theme_toggler.set_tooltip('Switch to Light Theme') + + self.emit('theme-changed', self.theme_state) + + def set_font_size(self, font_size): + self.font_size = font_size + self.emit('font-size-changed', self.font_size) + def _font_size_increase(self, button): self.font_size += FONT_CHANGE_STEP self.emit('font-size-changed', self.font_size) -- cgit v0.9.1