43
42
DBusGMainLoop(set_as_default=True)
45
44
class GwibberPreferences(object):
47
self.ui = gtk.Builder()
48
self.ui.set_translation_domain ("gwibber")
49
self.ui.add_from_file (resources.get_ui_asset("gwibber-preferences-dialog.ui"))
50
self.ui.connect_signals(self)
51
self.gc = gconf.client_get_default()
52
dialog = self.ui.get_object("prefs_dialog")
53
dialog.set_icon_from_file(resources.get_ui_asset("gwibber.svg"))
55
self.settings = util.SettingsMonitor()
56
self.populate_settings_data(self)
59
def populate_settings_data(self, widget, data=None):
60
self.ui.get_object("interval").set_value(self.settings["interval"])
62
self.ui.get_object("autostart").set_active(self.gc.get_bool("/apps/gwibber/autostart"))
63
self.ui.get_object("show_notifications").set_active(self.settings["show_notifications"])
64
self.ui.get_object("notify_mentions_only").set_active(self.settings["notify_mentions_only"])
65
self.ui.get_object("show_fullname").set_active(self.settings["show_fullname"])
66
self.ui.get_object("shorten_urls").set_active(self.settings["shorten_urls"])
67
self.ui.get_object("reply_append_colon").set_active(self.settings["reply_append_colon"])
68
self.ui.get_object("global_retweet").set_active(self.settings["global_retweet"])
70
self.theme_selector = gtk.combo_box_new_text()
71
for theme in sorted(resources.get_themes()): self.theme_selector.append_text(theme)
72
self.ui.get_object("theme_container").pack_start(self.theme_selector, True, True)
73
self.theme_selector.set_active_iter(dict([(x[0].strip(), x.iter) for x in self.theme_selector.get_model()]).get(self.settings["theme"], self.theme_selector.get_model().get_iter_root()))
74
self.theme_selector.show_all()
76
self.urlshorter_selector = gtk.combo_box_new_text()
77
for urlshorter in urlshorters.keys(): self.urlshorter_selector.append_text(urlshorter)
78
self.ui.get_object("urlshorter_container").pack_start(self.urlshorter_selector, True, True)
79
self.urlshorter_selector.set_active_iter(dict([(x[0].strip(), x.iter) for x in self.urlshorter_selector.get_model()]).get(self.settings["urlshorter"], self.urlshorter_selector.get_model().get_iter_root()))
80
self.urlshorter_selector.show_all()
82
self.retweet_style_selector = gtk.combo_box_new_text()
83
for format in RETWEET_FORMATS: self.retweet_style_selector.append_text(format)
84
self.ui.get_object("retweet_style_container").pack_start(self.retweet_style_selector, True, True)
85
self.retweet_style_selector.set_active_iter(dict([(x[0].strip(), x.iter) for x in self.retweet_style_selector.get_model()]).get(self.settings["retweet_style"], self.retweet_style_selector.get_model().get_iter_root()))
86
self.retweet_style_selector.show_all()
88
def on_save_button_clicked(self, widget, data=None):
89
self.settings["interval"] = int(self.ui.get_object("interval").get_value())
91
# Only change autostart if it was already set before or if the user enabled it
92
if self.gc.get("/apps/gwibber/autostart") is None:
93
if self.ui.get_object("autostart").get_property("active"):
94
self.gc.set_bool("/apps/gwibber/autostart", self.ui.get_object("autostart").get_property("active"))
96
self.gc.set_bool("/apps/gwibber/autostart", self.ui.get_object("autostart").get_property("active"))
97
self.settings["show_notifications"] = self.ui.get_object("show_notifications").get_property("active")
98
self.settings["notify_mentions_only"] = self.ui.get_object("notify_mentions_only").get_property("active")
99
self.settings["show_fullname"] = self.ui.get_object("show_fullname").get_property("active")
100
self.settings["shorten_urls"] = self.ui.get_object("shorten_urls").get_property("active")
101
self.settings["reply_append_colon"] = self.ui.get_object("reply_append_colon").get_property("active")
102
self.settings["global_retweet"] = self.ui.get_object("global_retweet").get_property("active")
103
self.settings["theme"] = self.theme_selector.get_active_text()
104
self.settings["urlshorter"] = self.urlshorter_selector.get_active_text()
105
self.settings["retweet_style"] = self.retweet_style_selector.get_active_text()
110
def on_cancel_button_clicked(self, widget, data=None):
113
def on_prefs_dialog_destroy_event(self, widget, data=None):
46
self.ui = gtk.Builder()
47
self.ui.set_translation_domain("gwibber")
48
self.ui.add_from_file(resources.get_ui_asset("gwibber-preferences-dialog.ui"))
49
self.ui.connect_signals(self)
50
self.gc = gconf.client_get_default()
51
dialog = self.ui.get_object("prefs_dialog")
52
dialog.set_icon_from_file(resources.get_ui_asset("gwibber.svg"))
54
self.settings = config.Preferences()
59
"notify_mentions_only",
67
for key in setting_keys:
68
self.settings.bind(self.ui.get_object(key), key)
70
self.populate_settings_widgets()
72
for key in ["theme", "urlshorter", "retweet_style"]:
73
self.settings.bind(getattr(self, key + "_selector"), key)
77
def populate_settings_widgets(self):
78
self.theme_selector = gtk.combo_box_new_text()
79
for theme in sorted(resources.get_themes()): self.theme_selector.append_text(theme)
80
self.ui.get_object("theme_container").pack_start(self.theme_selector, True, True)
81
self.theme_selector.set_active_iter(dict([(x[0].strip(), x.iter) for x in self.theme_selector.get_model()]).get(
82
self.settings["theme"], self.theme_selector.get_model().get_iter_root()))
83
self.theme_selector.show_all()
85
self.urlshorter_selector = gtk.combo_box_new_text()
86
for urlshorter in urlshorters.keys(): self.urlshorter_selector.append_text(urlshorter)
87
self.ui.get_object("urlshorter_container").pack_start(self.urlshorter_selector, True, True)
88
self.urlshorter_selector.set_active_iter(dict([(x[0].strip(), x.iter) for x in self.urlshorter_selector.get_model()]).get(
89
self.settings["urlshorter"], self.urlshorter_selector.get_model().get_iter_root()))
90
self.urlshorter_selector.show_all()
92
self.retweet_style_selector = gtk.combo_box_new_text()
93
for format in RETWEET_FORMATS: self.retweet_style_selector.append_text(format)
94
self.ui.get_object("retweet_style_container").pack_start(self.retweet_style_selector, True, True)
95
self.retweet_style_selector.set_active_iter(dict([(x[0].strip(), x.iter) for x in self.retweet_style_selector.get_model()]).get(
96
self.settings["retweet_style"], self.retweet_style_selector.get_model().get_iter_root()))
97
self.retweet_style_selector.show_all()
99
def on_close_button_clicked(self, widget, data=None):
102
def on_prefs_dialog_destroy_event(self, widget, data=None):