2
* Copyright (C) 2010 Canonical Ltd.
4
* This program is free software: you can redistribute it and/or modify it
5
* under the terms of the GNU General Public License version 3, as published
6
* by the Free Software Foundation.
8
* This program is distributed in the hope that it will be useful, but
9
* WITHOUT ANY WARRANTY; without even the implied warranties of
10
* MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11
* PURPOSE. See the GNU General Public License for more details.
13
* You should have received a copy of the GNU General Public License along
14
* with this program. If not, see <http://www.gnu.org/licenses/>.
16
* Authored by Ken VanDine <ken.vandine@canonical.com>
19
public class GwibberPreferences : GLib.Object
21
public Gtk.Builder builder;
23
public GwibberPreferences ()
31
builder = new Gtk.Builder ();
32
builder.add_from_file ("/usr/share/gwibber/ui/gwibber-preferences-dialog.ui");
33
builder.connect_signals (null);
34
var dialog = builder.get_object ("prefs_dialog") as Gtk.Dialog;
35
dialog.set_wmclass("gwibber", "Gwibber");
36
dialog.set_title(_("Broadcast Messaging Preferences"));
39
error ("Could not load UI: %s", e.message);
42
var image_uploader_container = builder.get_object("image_uploader") as Gtk.VBox;
43
var urlshortener_container = builder.get_object("urlshorter") as Gtk.VBox;
45
var settings = new GLib.Settings ("org.gwibber.preferences");
47
var BOOL_SETTINGS = new GLib.List<string> ();
48
var INT_SETTINGS = new GLib.List<string> ();
49
var STRING_SETTINGS = new GLib.List<string> ();
50
STRING_SETTINGS.append("image-uploader");
51
STRING_SETTINGS.append("urlshorter");
52
//foreach (string key in STRING_SETTINGS) {
53
// settings.bind(key, builder.get_object(key), "value", GLib.SettingsBindFlags.DEFAULT);
56
var image_uploader = new Gtk.ComboBoxText ();
57
image_uploader.append("yfrog", "yfrog");
58
image_uploader.append("imageshack", "ImageShack");
59
image_uploader_container.add(image_uploader);
60
settings.bind("image-uploader", image_uploader, "active_id", GLib.SettingsBindFlags.DEFAULT);
61
image_uploader_container.show_all ();
63
image_uploader.changed.connect(() => {
64
settings.set_string("image-uploader", image_uploader.active_id);
67
var urlshortener = new Gtk.ComboBoxText ();
68
urlshortener.append("is.gd", "is.gd");
69
urlshortener.append("tinyurl.com", "tinyurl.com");
70
urlshortener.append("ur1.ca", "ur1.ca");
71
urlshortener.append("cli.gs", "cli.gs");
72
urlshortener_container.add(urlshortener);
73
settings.bind("urlshorter", urlshortener, "active_id", GLib.SettingsBindFlags.DEFAULT);
74
urlshortener_container.show_all ();
76
urlshortener.changed.connect(() => {
77
settings.set_string("urlshorter", urlshortener.active_id);
80
INT_SETTINGS.append("interval");
81
foreach (string key in INT_SETTINGS) {
82
settings.bind(key, builder.get_object(key), "value", GLib.SettingsBindFlags.DEFAULT);
85
BOOL_SETTINGS.append("no-notifications");
86
BOOL_SETTINGS.append("notify-mentions-only");
87
BOOL_SETTINGS.append("show-notifications");
88
//BOOL_SETTINGS.append("presence-check");
89
BOOL_SETTINGS.append("show-fullname");
90
BOOL_SETTINGS.append("reply-append-colon");
91
BOOL_SETTINGS.append("shorten-urls");
92
BOOL_SETTINGS.append("autostart");
93
foreach (string key in BOOL_SETTINGS) {
94
settings.bind(key, builder.get_object(key), "active", GLib.SettingsBindFlags.DEFAULT);
98
public void on_close_button_clicked() {
102
public void on_prefs_dialog_destroy_event() {
107
int main (string[] args) {
110
var p = new GwibberPreferences ();