Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSai Vineet <saivineet89@gmail.com>2014-03-25 15:07:01 (GMT)
committer Gonzalo Odiard <godiard@gmail.com>2014-03-28 20:56:59 (GMT)
commitf2bc567b83243f5101d9f684566bab5458e30d83 (patch)
treee5bb0bfc8ad59cb077e1fa650129d071bab77a80
parent9d1c70a0f449786ff04f42e147379556c5b08b41 (diff)
Made the view settings permanent by using a config file
-rw-r--r--develop-activity/PENDING2
-rw-r--r--develop-activity/develop_app.py21
-rw-r--r--develop-activity/sourceview_editor.py16
-rw-r--r--develop-activity/toolbars.py16
4 files changed, 51 insertions, 4 deletions
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..e3cacce 100644
--- a/develop-activity/develop_app.py
+++ b/develop-activity/develop_app.py
@@ -63,6 +63,9 @@ SEARCH_ICONS = {False: {S_WHERE.selection: "search-in-selection",
#CAP_ICONS = {False: "use-caps", True: "ignore-caps"}
#REPLACE_ICONS = {False: "replace-and-find", True: "multi-replace"}
+_config_file_path = os.path.join(activity.get_activity_root(), 'data',
+ 'config.json')
+
class DevelopActivity(activity.Activity):
"""Develop Activity as specified in activity.info"""
@@ -100,6 +103,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 +276,7 @@ class DevelopActivity(activity.Activity):
# Show hidden stuff
self._show_hidden_ui()
+ self._load_config()
def __welcome_show_alert_cb(self, welcome_page, message):
self._show_alert(message)
@@ -455,6 +460,7 @@ class DevelopActivity(activity.Activity):
self.metadata['source'] = self.activity_dir
self._set_dirty(False)
self.save_unchanged = False
+ self._store_config()
def read_file(self, file_path):
self.activity_dir = self.metadata['source']
@@ -476,6 +482,21 @@ class DevelopActivity(activity.Activity):
self._set_dirty(False)
+ self._load_config()
+
+ def _store_config(self):
+ theme = self.editor.get_theme()
+ font_size = self.editor.get_font_size()
+
+ with open(_config_file_path, "w") as f:
+ f.write(json.dumps((theme, font_size)))
+
+ def _load_config(self):
+ with open(_config_file_path, "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)