X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=psa_harmattan%2Ffeedingit%2Fdeb_dist%2Ffeedingit-0.1.0%2Fpysrc%2Fconfig.py;fp=psa_harmattan%2Ffeedingit%2Fdeb_dist%2Ffeedingit-0.1.0%2Fpysrc%2Fconfig.py;h=791129937fb884f25220f39c9f2bd03c6c74d75f;hb=8388477b37843739ee23d4f83b8fb831f3ab89f9;hp=3d37d37d16f4bfe3bbaac12666c68ca97a1cb3a9;hpb=47a801727a2c1379cfbef49e486bed11de6e3e70;p=feedingit diff --git a/psa_harmattan/feedingit/deb_dist/feedingit-0.1.0/pysrc/config.py b/psa_harmattan/feedingit/deb_dist/feedingit-0.1.0/pysrc/config.py index 3d37d37..7911299 100644 --- a/psa_harmattan/feedingit/deb_dist/feedingit-0.1.0/pysrc/config.py +++ b/psa_harmattan/feedingit/deb_dist/feedingit-0.1.0/pysrc/config.py @@ -2,6 +2,7 @@ # # Copyright (c) 2007-2008 INdT. +# Copyright (c) 2011 Neal H. Walfield. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or @@ -36,10 +37,10 @@ from mainthread import mainthread import logging logger = logging.getLogger(__name__) -VERSION = "52" +VERSION = "120" section = "FeedingIt" -ranges = { "updateInterval":[0.5, 1, 2, 4, 12, 24], "expiry":[24, 48, 72, 144, 288], "fontSize":range(12,24), "orientation":["Automatic", "Landscape", "Portrait"], "artFontSize":[10, 12, 14, 16, 18, 20], "feedsort":["Manual", "Most unread", "Least unread", "Most recent", "Least recent"] } +ranges = { "updateInterval":[0.5, 1, 2, 4, 8, 12, 24], "expiry":[24, 48, 72, 144, 288], "fontSize":range(12,24), "orientation":["Automatic", "Landscape", "Portrait"], "artFontSize":[10, 12, 14, 16, 18, 20], "feedsort":["Manual", "Most unread", "Least unread", "Most recent", "Least recent"] } titles = {"updateInterval":"Auto-update interval", "expiry":"Delete articles", "fontSize":"List font size", "orientation":"Display orientation", "artFontSize":"Article font size","feedsort":"Feed sort order"} subtitles = {"updateInterval":"Every %s hours", "expiry":"After %s hours", "fontSize":"%s pixels", "orientation":"%s", "artFontSize":"%s pixels", "feedsort":"%s"} @@ -115,13 +116,35 @@ class Config(): heading('Updating') - button = hildon.CheckButton(gtk.HILDON_SIZE_FINGER_HEIGHT) - button.set_label("Automatically update feeds") - button.set_active(self.config["autoupdate"]) - button.connect("toggled", self.button_toggled, "autoupdate") - vbox.pack_start(button, expand=False) - add_setting('updateInterval') - add_setting('expiry') + label = gtk.Label(gtk.HILDON_SIZE_FINGER_HEIGHT) + label.set_label("Use Woodchuck network daemon, or the home-screen widget for automatic updates.") + label.set_line_wrap(True) + vbox.pack_start(label, expand=False) + + try: + import woodchuck + woodchuck_installed = True + except ImportError: + woodchuck_installed = False + + if not woodchuck_installed: + def install_woodchuck_clicked(button): + from FeedingIt import open_in_browser + open_in_browser("http://maemo.org/downloads/product/raw/Maemo5/murmeltier?get_installfile") + + button = hildon.Button(gtk.HILDON_SIZE_FINGER_HEIGHT, hildon.BUTTON_ARRANGEMENT_VERTICAL) + button.set_label("Install Woodchuck") + button.connect("clicked", install_woodchuck_clicked) + button.set_alignment(0,0,1,1) + vbox.pack_start(button, expand=False) + else: + button = hildon.CheckButton(gtk.HILDON_SIZE_FINGER_HEIGHT) + button.set_label("Woodchuck-Based Automatic Update") + button.set_active(self.config["woodchuck"]) + button.connect("toggled", self.button_toggled, "woodchuck") + vbox.pack_start(button, expand=False) + add_setting('updateInterval') + add_setting('expiry') heading('Network') button = hildon.CheckButton(gtk.HILDON_SIZE_FINGER_HEIGHT) @@ -175,6 +198,14 @@ class Config(): else: self.config[configName] = False #print "autoup", self.autoupdate + + if configName == 'woodchuck': + try: + from wc import wc_disable_set + wc_disable_set(not self.config['woodchuck']) + except Exception: + logger.exception("Disabling Woodchuck") + self.saveConfig() def selection_changed(self, selector, button, setting): @@ -190,47 +221,39 @@ class Config(): def loadConfig(self): self.config = {} + + configParser = RawConfigParser() try: - configParser = RawConfigParser() configParser.read(self.configFilename) - self.config["fontSize"] = configParser.getint(section, "fontSize") - self.config["artFontSize"] = configParser.getint(section, "artFontSize") - self.config["expiry"] = configParser.getint(section, "expiry") - self.config["autoupdate"] = configParser.getboolean(section, "autoupdate") - self.config["updateInterval"] = configParser.getfloat(section, "updateInterval") - self.config["orientation"] = configParser.get(section, "orientation") - self.config["imageCache"] = configParser.getboolean(section, "imageCache") - except: - self.config["fontSize"] = 17 - self.config["artFontSize"] = 14 - self.config["expiry"] = 24 - self.config["autoupdate"] = False - self.config["updateInterval"] = 4 - self.config["orientation"] = "Automatic" - self.config["imageCache"] = False - try: - self.config["proxy"] = configParser.getboolean(section, "proxy") - except: - self.config["proxy"] = True - try: - self.config["hidereadfeeds"] = configParser.getboolean(section, "hidereadfeeds") - self.config["hidereadarticles"] = configParser.getboolean(section, "hidereadarticles") - except: - self.config["hidereadfeeds"] = False - self.config["hidereadarticles"] = False - try: - self.config["extBrowser"] = configParser.getboolean(section, "extBrowser") - except: - self.config["extBrowser"] = False - try: - self.config["feedsort"] = configParser.get(section, "feedsort") - except: - self.config["feedsort"] = "Manual" - try: - self.config["theme"] = configParser.get(section, "theme") - except: - self.config["theme"] = True - + except Exception: + logger.exception("Reading %s", self.configFilename) + + # The function to use to fetch the parameter, the parameter's + # name and the default value. + values = ((configParser.getint, "fontSize", 17), + (configParser.getint, "artFontSize", 14), + (configParser.getint, "expiry", 24), + (configParser.getboolean, "autoupdate", False), + (configParser.getboolean, "woodchuck", True), + (configParser.getboolean, "askedAboutWoodchuck", False), + (configParser.getfloat, "updateInterval", 4), + (configParser.get, "orientation", "Automatic"), + (configParser.getboolean, "imageCache", False), + (configParser.getboolean, "proxy", True), + (configParser.getboolean, "hidereadfeeds", False), + (configParser.getboolean, "hidereadarticles", False), + (configParser.getboolean, "extBrowser", False), + (configParser.getboolean, "theme", True), + (configParser.get, "feedsort", "Manual")) + + for fetcher, name, default in values: + try: + v = fetcher(section, name) + except Exception: + logger.exception("Reading config variable %s", name) + v = default + self.config[name] = v + def saveConfig(self): configParser = RawConfigParser() configParser.add_section(section) @@ -239,6 +262,8 @@ class Config(): configParser.set(section, 'expiry', str(self.config["expiry"])) configParser.set(section, 'autoupdate', str(self.config["autoupdate"])) configParser.set(section, 'updateInterval', str(self.config["updateInterval"])) + configParser.set(section, 'woodchuck', str(self.config["woodchuck"])) + configParser.set(section, 'askedAboutWoodchuck', str(self.config["askedAboutWoodchuck"])) configParser.set(section, 'orientation', str(self.config["orientation"])) configParser.set(section, 'imageCache', str(self.config["imageCache"])) configParser.set(section, 'proxy', str(self.config["proxy"])) @@ -282,13 +307,20 @@ class Config(): return self.config["autoupdate"] def setAutoUpdateEnabled(self, value): self.config["autoupdate"] = value + def getWoodchuckEnabled(self): + return self.config["woodchuck"] + def getAskedAboutWoodchuck(self): + return self.config["askedAboutWoodchuck"] + def setAskedAboutWoodchuck(self, value): + self.config["askedAboutWoodchuck"] = value + self.saveConfig() def getUpdateInterval(self): return float(self.config["updateInterval"]) def getReadFont(self): return "sans italic %s" % self.config["fontSize"] def getUnreadFont(self): return "sans %s" % self.config["fontSize"] - def getOrientation(self, index): + def getOrientation(self): return ranges["orientation"].index(self.config["orientation"]) def getOrientationChoices(self): return ranges["orientation"]