~francesco-marella/specto/code-to-glade

« back to all changes in this revision

Viewing changes to spectlib/export_watch.py

  • Committer: Francesco Marella
  • Date: 2011-05-13 09:56:54 UTC
  • Revision ID: fmarl@paranoici.org-20110513095654-xz0b4z4wqpmd7520
Move GUI code to Glade files (treeview related code mostly)

Glade (v. 3.8) it's a great tool for GUI creation and improved so much (read as no frequent crashes).
The process of migrate Specto to PyGI and GTK+ 3.0 will be easier and painless (hopefully).

GTK+ >= 2.18 is required.

Show diffs side-by-side

added added

removed removed

Lines of Context:
57
57
        self.export_watch.set_title(_("Export watches"))
58
58
        self.builder.get_object("button_action").set_label(_("Export watches"))
59
59
 
60
 
        self.model = gtk.ListStore(gobject.TYPE_BOOLEAN, gtk.gdk.Pixbuf, \
61
 
                    gobject.TYPE_STRING, gobject.TYPE_INT, gobject.TYPE_STRING)
 
60
        self.model = self.builder.get_object("liststore1")
62
61
        self.new_watch_db = {}
63
 
 
64
 
        #catch some events
65
 
        dic = {"on_button_select_all_clicked": self.select_all,
66
 
              "on_button_deselect_all_clicked": self.deselect_all,
67
 
              "on_button_action_clicked": self.do_action,
68
 
              "on_button_close_clicked": self.delete_event}
69
 
 
 
62
        
70
63
        #attach the events
71
 
        self.builder.connect_signals(dic)
 
64
        self.builder.connect_signals(self)
72
65
 
73
66
        icon = gtk.gdk.pixbuf_new_from_file(os.path.join(self.specto.PATH, "icons/specto_window_icon.png"))
74
67
        self.export_watch.set_icon(icon)
75
68
 
76
69
        self.treeview = self.builder.get_object("treeview")
77
 
        self.treeview.set_model(self.model)
78
70
        self.treeview.set_flags(gtk.TREE_MODEL_ITERS_PERSIST)
79
71
        self.iter = {}
80
72
 
81
 
        ### Checkbox
82
 
        self.renderer = gtk.CellRendererToggle()
83
 
        self.renderer.set_property("activatable", True)
84
 
        self.renderer.connect("toggled", self.check_clicked, self.model)
85
 
        self.columnCheck = gtk.TreeViewColumn(_("Select"), \
86
 
                            self.renderer, active=0)
87
 
        self.treeview.append_column(self.columnCheck)
88
 
 
89
 
        ### Icon
90
 
        self.renderer = gtk.CellRendererPixbuf()
91
 
        self.columnIcon = gtk.TreeViewColumn(_("Type"), \
92
 
                            self.renderer, pixbuf=1)
93
 
        self.treeview.append_column(self.columnIcon)
94
 
 
95
 
        ### Titre
96
 
        self.renderer = gtk.CellRendererText()
97
 
        self.columnTitel = gtk.TreeViewColumn(_("Name"), \
98
 
                            self.renderer, markup=2)
99
 
        self.columnTitel.set_expand(True)
100
 
        self.columnTitel.set_resizable(True)
101
 
        self.treeview.append_column(self.columnTitel)
102
 
 
103
 
        ### ID
104
 
        self.renderer = gtk.CellRendererText()
105
 
        self.column = gtk.TreeViewColumn(_("ID"), self.renderer, markup=3)
106
 
        self.column.set_visible(False)
107
 
        #self.column.set_sort_column_id(3)
108
 
        self.treeview.append_column(self.column)
109
 
 
110
 
        ### type
111
 
        self.renderer = gtk.CellRendererText()
112
 
        self.columnType = gtk.TreeViewColumn(_("TYPE"), \
113
 
                            self.renderer, markup=4)
114
 
        self.columnType.set_visible(False)
115
 
        #self.columnType.set_sort_column_id(4)
116
 
        self.treeview.append_column(self.columnType)
117
 
 
118
73
        for watch in self.specto.watch_db:
119
 
            if watch.deleted == False:
 
74
            if not watch.deleted:
120
75
                self.add_watch_entry(watch.id)
121
76
 
122
77
    def select_all(self, widget):
123
78
        db = self.specto.watch_db
124
79
 
125
80
        for watch in db:
126
 
            if watch.deleted == False:
 
81
            if not watch.deleted:
127
82
                self.model.set_value(self.iter[watch.id], 0, 1)
128
83
 
129
84
    def deselect_all(self, widget):
130
85
        db = self.specto.watch_db
131
86
 
132
87
        for watch in db:
133
 
            if watch.deleted == False:
 
88
            if not watch.deleted:
134
89
                self.model.set_value(self.iter[watch.id], 0, 0)
135
90
 
136
91
    def do_action(self, widget):
154
109
        watch_db = self.specto.watch_db
155
110
 
156
111
        for watch in watch_db:
157
 
            if watch.deleted == False:
 
112
            if not watch.deleted:
158
113
                if self.model.get_value(self.iter[watch.id], 0) == True:
159
114
                    selected_watches_db[i] = watch
160
115
                    i += 1
175
130
    def set_new_watch_db(self, watch_db):
176
131
        self.new_watch_db = watch_db
177
132
 
178
 
    def check_clicked(self, object, path, model):
 
133
    def check_clicked(self, obj, model):
179
134
        """ Call the main function to start/stop the selected watch. """
180
135
        sel = self.treeview.get_selection()
181
 
        sel.select_path(path)
182
 
        model, iter = self.treeview.get_selection().get_selected()
183
 
 
184
 
        if model.get_value(iter, 0):
185
 
            model.set_value(iter, 0, 0)
 
136
        sel.select_path(model)
 
137
        model, _iter = sel.get_selected()
 
138
        if not _iter:
 
139
            return
 
140
        if model.get_value(_iter, 0):
 
141
            model.set_value(_iter, 0, 0)
186
142
        else:
187
 
            model.set_value(iter, 0, 1)
 
143
            model.set_value(_iter, 0, 1)
188
144
 
189
145
 
190
146
class ExportSaveDialog(SaveDialog):