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

« back to all changes in this revision

Viewing changes to spectlib/notifier.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:
86
86
        self.builder = gtk.Builder()
87
87
        self.builder.set_translation_domain("specto")
88
88
        self.builder.add_from_file(uifile)
 
89
        self.builder.connect_signals(self)
89
90
        self.notifier = self.builder.get_object("notifier")
90
91
        if INDICATOR:
91
92
            self.indicator = Indicator(specto)
102
103
 
103
104
        #create tree
104
105
        self.iter = {}
105
 
        self.model = gtk.ListStore(gobject.TYPE_BOOLEAN, gtk.gdk.Pixbuf, gobject.TYPE_STRING, gobject.TYPE_INT, gobject.TYPE_STRING, pango.Weight)
106
 
 
107
 
        #catch some events
108
 
        dic = {
109
 
        "on_add_activate": self.show_add_watch_menu,
110
 
        "on_edit_activate": self.show_edit_watch,
111
 
        "on_clear_all_activate": self.mark_all_as_read,
112
 
        "on_preferences_activate": self.show_preferences,
113
 
        "on_refresh_activate": self.refresh_all_watches,
114
 
        "on_close_activate": self.close_event,
115
 
        "on_quit_activate": self.delete_event,
116
 
        "on_import_watches_activate": self.import_watches,
117
 
        "on_export_watches_activate": self.export_watches,
118
 
        "on_error_log_activate": self.show_error_log,
119
 
        "on_display_all_watches_activate": self.toggle_show_deactivated_watches,
120
 
        "on_display_toolbar_activate": self.toggle_display_toolbar,
121
 
        "on_help_activate": self.show_help,
122
 
        "on_about_activate": self.show_about,
123
 
        "on_treeview_row_activated": self.open_watch_callback,
124
 
        "on_btnOpen_clicked": self.open_watch_callback,
125
 
        "on_btnClear_clicked": self.mark_watch_as_read,
126
 
        "on_treeview_cursor_changed": self.show_watch_info,
127
 
        "on_btnEdit_clicked": self.show_edit_watch,
128
 
        "on_by_watch_type_activate": self.sort_type,
129
 
        "on_by_name_activate": self.sort_name,
130
 
        "on_by_watch_active_activate": self.sort_active,
131
 
        "on_remove_clicked": self.remove_watch,
132
 
        "on_clear_activate": self._mark_watch_as_read,
133
 
        "on_remove_activate": self.remove_watch}
134
 
        self.builder.connect_signals(dic)
 
106
        self.model = self.builder.get_object('liststore')
135
107
 
136
108
        icon = gtk.gdk.pixbuf_new_from_file(os.path.join(self.specto.PATH, "icons/specto_window_icon.svg"))
137
109
        self.notifier.set_icon(icon)
359
331
        id = int(self.model.get_value(iter, 3))
360
332
        self.model.remove(iter)
361
333
 
362
 
    def check_clicked(self, object, path, model):
 
334
    def check_clicked(self, obj, model):
363
335
        """ Call the main function to start/stop the selected watch. """
364
336
        sel = self.treeview.get_selection()
365
 
        sel.select_path(path)
 
337
        sel.select_path(model)
366
338
 
367
 
        model, iter = self.treeview.get_selection().get_selected()
368
 
        id = int(model.get_value(iter, 3))
 
339
        model, _iter = sel.get_selected()
 
340
        id = int(model.get_value(_iter, 3))
369
341
        watch = self.specto.watch_db[id]
370
342
 
371
 
        if model.get_value(iter, 0):
372
 
            model.set_value(iter, 0, 0)
 
343
        if model.get_value(_iter, 0):
 
344
            model.set_value(_iter, 0, 0)
373
345
            if watch.changed:
374
346
                self.mark_watch_as_read("", id)
375
347
            self.mark_watch_status("idle", id)
377
349
            if not self.builder.get_object("display_all_watches").active:
378
350
                self.remove_notifier_entry(id)
379
351
        else:
380
 
            model.set_value(iter, 0, 1)
 
352
            model.set_value(_iter, 0, 1)
381
353
            watch.start()
382
354
 
383
355
    def connected_message(self, connected):
696
668
 
697
669
        if self.specto.specto_gconf.get_entry("show_in_windowlist") == False:
698
670
            self.notifier.set_skip_taskbar_hint(True)
 
671
            
 
672
        self.columnTitle = self.builder.get_object('name_treeviewcolumn')
 
673
        self.columnType = self.builder.get_object('type_treeviewcolumn')
 
674
        self.columnCheck = self.builder.get_object('select_treeviewcolumn')
699
675
 
700
676
 
701
677
        ### Initiate the window
718
694
        if not self.specto.notifier_hide:
719
695
            self.notifier.show()
720
696
 
721
 
        ### Checkbox
722
 
        self.columnCheck_renderer = gtk.CellRendererToggle()
723
 
        self.columnCheck_renderer.set_property("activatable", True)
724
 
        self.columnCheck_renderer.connect("toggled", self.check_clicked, self.model)
725
 
        self.columnCheck = gtk.TreeViewColumn(_("Active"), self.columnCheck_renderer, active=0)
726
 
        self.columnCheck.connect("clicked", self.sort_active_from_treeview_headers)
727
 
        self.columnCheck.set_sort_column_id(0)
728
 
        self.treeview.append_column(self.columnCheck)
729
 
 
730
 
        ### Icon
731
 
        self.columnIcon_renderer = gtk.CellRendererPixbuf()
732
 
        self.columnIcon = gtk.TreeViewColumn(_("Type"), self.columnIcon_renderer, pixbuf=1)
733
 
        self.columnIcon.set_clickable(True)
734
 
        self.columnIcon.connect("clicked", self.sort_type_from_treeview_headers)
735
 
        self.treeview.append_column(self.columnIcon)
736
 
 
737
 
        ### Titre
738
 
        self.columnTitle_renderer = gtk.CellRendererText()
739
 
        #self.columnTitle_renderer.set_property("editable", True)
740
 
        #self.columnTitle_renderer.connect('edited', self.change_entry_name)
741
 
        self.columnTitle = gtk.TreeViewColumn(_("Name"), self.columnTitle_renderer, text=2, weight=5)
742
 
        self.columnTitle.connect("clicked", self.sort_name_from_treeview_headers)
743
 
        self.columnTitle.set_expand(True)
744
 
        self.columnTitle.set_resizable(True)
745
 
        self.columnTitle.set_sort_column_id(2)
746
 
        self.treeview.append_column(self.columnTitle)
747
 
 
748
 
        ### ID
749
 
        self.columnID_renderer = gtk.CellRendererText()
750
 
        self.columnID = gtk.TreeViewColumn(_("ID"), self.columnID_renderer, markup=3)
751
 
        self.columnID.set_visible(False)
752
 
        self.columnID.set_sort_column_id(3)
753
 
        self.treeview.append_column(self.columnID)
754
 
 
755
 
        ### type
756
 
        self.renderer = gtk.CellRendererText()
757
 
        self.columnType = gtk.TreeViewColumn(_("TYPE"), self.renderer, markup=4)
758
 
        self.columnType.set_visible(False)
759
 
        self.columnType.set_sort_column_id(4)
760
 
        self.treeview.append_column(self.columnType)
761
 
 
762
697
        self.get_startup_sort_order()
763
698
 
764
 
 
765
699
        ###Create info-panel
766
700
        vbox_info = self.builder.get_object("vbox_info")
767
701