~indicator-multiload/indicator-multiload/trunk

« back to all changes in this revision

Viewing changes to src/itempreferences.vala

  • Committer: Michael Hofmann
  • Date: 2013-03-02 23:25:21 UTC
  • Revision ID: mh21@mh21.de-20130302232521-3oxqquoek4lna3yg
Build, life time and gui fixes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
 ******************************************************************************/
18
18
 
19
19
public class ItemPreferences : Object {
 
20
    // always allocated
 
21
    private Settings itemsettings;
 
22
 
 
23
    // only when dialog is visible
20
24
    private Gtk.Dialog items;
21
 
    private Gtk.ListStore itemstore;
22
 
    private Gtk.TreeView itemview;
23
 
    private Gtk.TreeSelection itemselection;
24
 
    private Gtk.Button itemadd;
25
 
    private Gtk.Button itemremove;
26
 
    private Gtk.Button itemedit;
27
 
    private Gtk.Button itemup;
28
 
    private Gtk.Button itemdown;
29
 
    private Settings itemsettings;
 
25
 
 
26
    // helper
 
27
    private unowned Gtk.ListStore itemstore;
 
28
    private unowned Gtk.TreeView itemview;
 
29
    private unowned Gtk.TreeSelection itemselection;
 
30
    private unowned Gtk.Button itemadd;
 
31
    private unowned Gtk.Button itemremove;
 
32
    private unowned Gtk.Button itemedit;
 
33
    private unowned Gtk.Button itemup;
 
34
    private unowned Gtk.Button itemdown;
30
35
    private bool itemsignoresignals;
31
36
 
32
37
    public string settingskey { get; construct; }
37
42
        Object(settingskey: settingskey);
38
43
    }
39
44
 
 
45
    construct {
 
46
        this.itemsettings = new SettingsCache().generalsettings();
 
47
        this.itemsettings.changed[this.settingskey].connect(reset_itemstore);
 
48
    }
 
49
 
40
50
    public void show() {
41
51
        if (this.items != null) {
42
52
            this.items.present();
49
59
 
50
60
        this.itemstore = builder.get_object("itemstore") as Gtk.ListStore;
51
61
        this.itemview = builder.get_object("itemview") as Gtk.TreeView;
52
 
        this.itemsettings = new SettingsCache().generalsettings();
53
 
        this.itemsettings.changed["menu-expressions"].connect(on_itemsettings_changed);
54
62
 
55
63
        this.itemadd = builder.get_object("itemadd") as Gtk.Button;
56
64
        this.itemremove = builder.get_object("itemremove") as Gtk.Button;
68
76
        // TODO: F2 does not work
69
77
    }
70
78
 
 
79
    public void reset_itemstore() {
 
80
        if (this.items != null && !this.itemsignoresignals)
 
81
            this.itemsgsettingstostore();
 
82
    }
 
83
 
 
84
 
71
85
    [CCode (instance_pos = -1)]
72
86
    public void on_itemdialog_destroy(Gtk.Widget source) {
73
87
        this.items = null;
74
 
        this.itemstore = null;
75
 
        this.itemview = null;
76
 
        this.itemsettings = null;
77
 
        this.itemadd = null;
78
 
        this.itemremove = null;
79
 
        this.itemedit = null;
80
 
        this.itemup = null;
81
 
        this.itemdown = null;
82
 
        this.itemselection = null;
83
88
    }
84
89
 
85
90
    [CCode (instance_pos = -1)]
91
96
        case 1: // revert
92
97
            this.itemsettings.reset(this.settingskey);
93
98
            this.itemselection.select_path(new Gtk.TreePath.from_indices(0));
94
 
            break;
 
99
            return;
95
100
        case 2: // help
96
101
            this.itemhelp_show();
97
 
            break;
 
102
            return;
98
103
        }
99
104
    }
100
105
 
112
117
    }
113
118
 
114
119
    [CCode (instance_pos = -1)]
115
 
    public void on_itemsettings_changed() {
116
 
        if (!this.itemsignoresignals)
117
 
            this.itemsgsettingstostore();
118
 
    }
119
 
 
120
 
    [CCode (instance_pos = -1)]
121
120
    public void on_itemstore_row_inserted(Gtk.TreeModel model,
122
121
            string path, Gtk.TreeIter iter) {
123
122
        if (!this.itemsignoresignals)
190
189
        if (!this.itemstore.get_iter(out previter, prevpath))
191
190
            return;
192
191
 
193
 
        GLib.Value value, prevvalue;
 
192
        Value value, prevvalue;
194
193
        this.itemstore.get_value(iter, 0, out value);
195
194
        this.itemstore.get_value(previter, 0, out prevvalue);
196
195
        this.itemstore.set_value(iter, 0, prevvalue);
211
210
        if (!this.itemstore.get_iter(out nextiter, nextpath))
212
211
            return;
213
212
 
214
 
        GLib.Value value, nextvalue;
 
213
        Value value, nextvalue;
215
214
        this.itemstore.get_value(iter, 0, out value);
216
215
        this.itemstore.get_value(nextiter, 0, out nextvalue);
217
216
        this.itemstore.set_value(iter, 0, nextvalue);
254
253
        Gtk.TreeIter iter;
255
254
        for (uint i = 0, isize = result.length; i < isize; ++i) {
256
255
            this.itemstore.iter_nth_child(out iter, null, (int)i);
257
 
            GLib.Value value;
 
256
            Value value;
258
257
            this.itemstore.get_value(iter, 0, out value);
259
258
            result[i] = value as string;
260
259
        }