Subversion Repositories basico

Rev

Rev 286 | Rev 288 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 286 Rev 287
Line 21... Line 21...
21
from gi.repository import Gio
21
from gi.repository import Gio
22
from gi.repository import Gtk
22
from gi.repository import Gtk
23
from gi.repository.GdkPixbuf import Pixbuf
23
from gi.repository.GdkPixbuf import Pixbuf
24
from gi.repository import Pango
24
from gi.repository import Pango
25
25
26
from basico.core.mod_env import LPATH
-
 
-
 
26
from basico.core.mod_env import LPATH, ATYPES
27
from basico.core.mod_srv import Service
27
from basico.core.mod_srv import Service
28
from basico.widgets.wdg_cols import CollectionsMgtView
28
from basico.widgets.wdg_cols import CollectionsMgtView
29
from basico.widgets.wdg_import import ImportWidget
29
from basico.widgets.wdg_import import ImportWidget
30
30
31
31
Line 43... Line 43...
43
        self.set_initial_panel_button_status()
43
        self.set_initial_panel_button_status()
44
        self.setup_visor()
44
        self.setup_visor()
45
        self.config = self.get_config()
45
        self.config = self.get_config()
46
        self.icons = {}
46
        self.icons = {}
47
        self.icons['type'] = {}
47
        self.icons['type'] = {}
48
        for atype in ['Email', 'FIXME', 'Meeting', 'Note', 'Procedure', 'Snippet', 'Template', 'TODO']:
-
 
-
 
48
        for atype in ATYPES:
49
            self.icons['type'][atype.lower()] = self.srvicm.get_pixbuf_icon('basico-annotation-type-%s' % atype.lower())
49
            self.icons['type'][atype.lower()] = self.srvicm.get_pixbuf_icon('basico-annotation-type-%s' % atype.lower())
50
50
51
51
52
    def get_services(self):
52
    def get_services(self):
53
        self.srvgui = self.app.get_service("GUI")
53
        self.srvgui = self.app.get_service("GUI")
Line 66... Line 66...
66
        self.srvgui.set_key_value('ANNOTATIONS_CATEGORY_INBOX_VISIBLE', True)
66
        self.srvgui.set_key_value('ANNOTATIONS_CATEGORY_INBOX_VISIBLE', True)
67
        self.srvgui.set_key_value('ANNOTATIONS_CATEGORY_DRAFTS_VISIBLE', False)
67
        self.srvgui.set_key_value('ANNOTATIONS_CATEGORY_DRAFTS_VISIBLE', False)
68
        self.srvgui.set_key_value('ANNOTATIONS_CATEGORY_ARCHIVED_VISIBLE', False)
68
        self.srvgui.set_key_value('ANNOTATIONS_CATEGORY_ARCHIVED_VISIBLE', False)
69
69
70
        # Types
70
        # Types
71
        self.srvgui.set_key_value('ANNOTATIONS_TYPE_FIXME_VISIBLE', True)
-
 
72
        self.srvgui.set_key_value('ANNOTATIONS_TYPE_NOTE_VISIBLE', True)
-
 
73
        self.srvgui.set_key_value('ANNOTATIONS_TYPE_PROCEDURE_VISIBLE', True)
-
 
74
        self.srvgui.set_key_value('ANNOTATIONS_TYPE_SNIPPET_VISIBLE', True)
-
 
75
        self.srvgui.set_key_value('ANNOTATIONS_TYPE_TEMPLATE_VISIBLE', True)
-
 
76
        self.srvgui.set_key_value('ANNOTATIONS_TYPE_TODO_VISIBLE', True)
-
 
77
        self.srvgui.set_key_value('ANNOTATIONS_TYPE_MEETING_VISIBLE', True)
-
 
-
 
71
        for atype in ATYPES:
-
 
72
            self.srvgui.set_key_value('ANNOTATIONS_TYPE_%s_VISIBLE' % atype.upper(), True)
78
73
79
74
80
    def get_treeview(self):
75
    def get_treeview(self):
81
        return self.treeview
76
        return self.treeview
82
77
Line 166... Line 161...
166
        self.column_key.set_visible(False)
161
        self.column_key.set_visible(False)
167
        self.column_key.set_expand(False)
162
        self.column_key.set_expand(False)
168
        self.column_key.set_clickable(False)
163
        self.column_key.set_clickable(False)
169
        self.column_key.set_sort_indicator(False)
164
        self.column_key.set_sort_indicator(False)
170
        self.treeview.append_column(self.column_key)
165
        self.treeview.append_column(self.column_key)
171
-
 
172
        # ~ # Text Icon
-
 
173
        # ~ self.renderer_icon = Gtk.CellRendererText()
-
 
174
        # ~ self.renderer_icon.set_property('font-desc', Pango.FontDescription('Monospace 18'))
-
 
175
        # ~ self.column_icon = Gtk.TreeViewColumn('', self.renderer_icon, markup=1)
-
 
176
        # ~ widget = get_column_header_widget('', 'basico-empty')
-
 
177
        # ~ self.column_icon.set_widget(widget)
-
 
178
        # ~ self.column_icon.set_visible(True)
-
 
179
        # ~ self.column_icon.set_expand(False)
-
 
180
        # ~ self.column_icon.set_clickable(False)
-
 
181
        # ~ self.column_icon.set_sort_indicator(False)
-
 
182
        # ~ self.treeview.append_column(self.column_icon)
-
 
183
166
184
        # Icon
167
        # Icon
185
        self.renderer_icon = Gtk.CellRendererPixbuf()
168
        self.renderer_icon = Gtk.CellRendererPixbuf()
186
        self.renderer_icon.set_alignment(0.0, 0.5)
169
        self.renderer_icon.set_alignment(0.0, 0.5)
187
        self.column_icon = Gtk.TreeViewColumn('', self.renderer_icon, pixbuf=1)
170
        self.column_icon = Gtk.TreeViewColumn('', self.renderer_icon, pixbuf=1)
Line 195... Line 178...
195
178
196
        # SAP Note Checkbox
179
        # SAP Note Checkbox
197
        self.renderer_checkbox = Gtk.CellRendererToggle()
180
        self.renderer_checkbox = Gtk.CellRendererToggle()
198
        self.renderer_checkbox.connect("toggled", self.toggle_checkbox)
181
        self.renderer_checkbox.connect("toggled", self.toggle_checkbox)
199
        self.column_checkbox = Gtk.TreeViewColumn('', self.renderer_checkbox, active=2)
182
        self.column_checkbox = Gtk.TreeViewColumn('', self.renderer_checkbox, active=2)
200
        # ~ self.column_checkbox.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE)
-
 
-
 
183
        self.column_checkbox.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE)
201
        self.column_checkbox.set_visible(False)
184
        self.column_checkbox.set_visible(False)
202
        self.column_checkbox.set_expand(False)
185
        self.column_checkbox.set_expand(False)
203
        self.column_checkbox.set_clickable(True)
186
        self.column_checkbox.set_clickable(True)
204
        self.column_checkbox.set_sort_indicator(False)
187
        self.column_checkbox.set_sort_indicator(False)
205
        self.column_checkbox.set_property('spacing', 50)
188
        self.column_checkbox.set_property('spacing', 50)
Line 212... Line 195...
212
        self.renderer_sid.set_property('background', '#F0E3E3')
195
        self.renderer_sid.set_property('background', '#F0E3E3')
213
        self.column_sid = Gtk.TreeViewColumn('SAP Note Id', self.renderer_sid, markup=3)
196
        self.column_sid = Gtk.TreeViewColumn('SAP Note Id', self.renderer_sid, markup=3)
214
        widget = get_column_header_widget('SAP Note Id', 'basico-sid')
197
        widget = get_column_header_widget('SAP Note Id', 'basico-sid')
215
        self.column_sid.set_widget(widget)
198
        self.column_sid.set_widget(widget)
216
        self.column_sid.set_visible(True)
199
        self.column_sid.set_visible(True)
217
        # ~ self.column_sid.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE)
-
 
-
 
200
        self.column_sid.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE)
218
        self.column_sid.set_expand(False)
201
        self.column_sid.set_expand(False)
219
        self.column_sid.set_clickable(True)
202
        self.column_sid.set_clickable(True)
220
        self.column_sid.set_sort_indicator(True)
203
        self.column_sid.set_sort_indicator(True)
221
        self.column_sid.set_sort_column_id(0)
204
        self.column_sid.set_sort_column_id(0)
222
        self.column_sid.set_sort_order(Gtk.SortType.ASCENDING)
205
        self.column_sid.set_sort_order(Gtk.SortType.ASCENDING)
Line 257... Line 240...
257
        self.renderer_category.set_property('background', '#E3F1E3')
240
        self.renderer_category.set_property('background', '#E3F1E3')
258
        self.column_category = Gtk.TreeViewColumn('Category', self.renderer_category, markup=6)
241
        self.column_category = Gtk.TreeViewColumn('Category', self.renderer_category, markup=6)
259
        widget = get_column_header_widget('Category', 'basico-category')
242
        widget = get_column_header_widget('Category', 'basico-category')
260
        self.column_category.set_widget(widget)
243
        self.column_category.set_widget(widget)
261
        self.column_category.set_visible(False)
244
        self.column_category.set_visible(False)
262
        # ~ self.column_category.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE)
-
 
-
 
245
        self.column_category.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE)
263
        self.column_category.set_expand(False)
246
        self.column_category.set_expand(False)
264
        self.column_category.set_clickable(True)
247
        self.column_category.set_clickable(True)
265
        self.column_category.set_sort_indicator(True)
248
        self.column_category.set_sort_indicator(True)
266
        self.column_category.set_sort_column_id(6)
249
        self.column_category.set_sort_column_id(6)
267
        self.treeview.append_column(self.column_category)
250
        self.treeview.append_column(self.column_category)
Line 270... Line 253...
270
        self.renderer_type = Gtk.CellRendererText()
253
        self.renderer_type = Gtk.CellRendererText()
271
        self.renderer_type.set_property('background', '#e4f1f1')
254
        self.renderer_type.set_property('background', '#e4f1f1')
272
        self.column_type = Gtk.TreeViewColumn('Type', self.renderer_type, markup=7)
255
        self.column_type = Gtk.TreeViewColumn('Type', self.renderer_type, markup=7)
273
        self.column_type.set_visible(True)
256
        self.column_type.set_visible(True)
274
        self.column_type.set_expand(False)
257
        self.column_type.set_expand(False)
275
        # ~ self.column_type.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE)
-
 
-
 
258
        self.column_type.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE)
276
        self.column_type.set_clickable(True)
259
        self.column_type.set_clickable(True)
277
        self.column_type.set_sort_indicator(True)
260
        self.column_type.set_sort_indicator(True)
278
        self.column_type.set_sort_column_id(7)
261
        self.column_type.set_sort_column_id(7)
279
        self.treeview.append_column(self.column_type)
262
        self.treeview.append_column(self.column_type)
280
263
Line 292... Line 275...
292
        self.renderer_updated = Gtk.CellRendererText()
275
        self.renderer_updated = Gtk.CellRendererText()
293
        self.renderer_updated.set_property('background', '#FFE6D1')
276
        self.renderer_updated.set_property('background', '#FFE6D1')
294
        self.column_updated = Gtk.TreeViewColumn('Updated On', self.renderer_updated, markup=9)
277
        self.column_updated = Gtk.TreeViewColumn('Updated On', self.renderer_updated, markup=9)
295
        self.column_updated.set_visible(True)
278
        self.column_updated.set_visible(True)
296
        self.column_updated.set_expand(False)
279
        self.column_updated.set_expand(False)
297
        # ~ self.column_updated.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE)
-
 
-
 
280
        self.column_updated.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE)
298
        self.column_updated.set_clickable(True)
281
        self.column_updated.set_clickable(True)
299
        self.column_updated.set_sort_indicator(True)
282
        self.column_updated.set_sort_indicator(True)
300
        self.column_updated.set_sort_column_id(11)
283
        self.column_updated.set_sort_column_id(11)
301
        self.treeview.append_column(self.column_updated)
284
        self.treeview.append_column(self.column_updated)
302
285
Line 365... Line 348...
365
            return -1
348
            return -1
366
        elif value1 == value2:
349
        elif value1 == value2:
367
            return 0
350
            return 0
368
        else:
351
        else:
369
            return 1
352
            return 1
-
 
353
370
354
371
    def always_visible(self, model, itr, data):
355
    def always_visible(self, model, itr, data):
372
        return False
356
        return False
373
357
374
358
Line 463... Line 447...
463
        bag = self.get_bag()
447
        bag = self.get_bag()
464
        self.populate_annotations(bag)
448
        self.populate_annotations(bag)
465
449
466
450
467
    def populate_annotations(self, annotations=None):
451
    def populate_annotations(self, annotations=None):
468
        # ~ icon_annotation = self.srvicm.get_pixbuf_icon('basico-annotation', 32, 32)
-
 
469
        # ~ icon_content = self.srvicm.get_pixbuf_icon('basico-logviewer', 32, 32)
-
 
470
        # ~ icon_link = self.srvicm.get_pixbuf_icon('basico-browser', 32, 32)
-
 
471
        # ~ icon_empty = self.srvicm.get_pixbuf_icon('basico-empty', 32, 32)
-
 
472
        # ~ icon_bookmark = self.srvicm.get_pixbuf_icon('basico-bookmarks', 32, 32)
-
 
473
        # ~ icon_sapnote = self.srvicm.get_pixbuf_icon('basico-sapnote', 32, 32)
-
 
474
        # ~ icon_archived = self.srvicm.get_pixbuf_icon('basico-archived', 48, 48)
-
 
475
        # ~ icon_drafts = self.srvicm.get_pixbuf_icon('basico-drafts', 48, 48)
-
 
476
        # ~ icon_inbox = self.srvicm.get_pixbuf_icon('basico-inbox', 48, 48)
-
 
477
        self.treeview.freeze_child_notify()
452
        self.treeview.freeze_child_notify()
478
        self.column_sid.set_visible(False)
453
        self.column_sid.set_visible(False)
479
        self.column_checkbox.set_visible(False)
454
        self.column_checkbox.set_visible(False)
480
        self.column_category.set_visible(True)
455
        self.column_category.set_visible(True)
481
        self.column_component.set_visible(False)
456
        self.column_component.set_visible(False)
Line 503... Line 478...
503
                    cat_key = 'ANNOTATIONS_CATEGORY_%s_VISIBLE' % category.upper()
478
                    cat_key = 'ANNOTATIONS_CATEGORY_%s_VISIBLE' % category.upper()
504
                    type_key = 'ANNOTATIONS_TYPE_%s_VISIBLE' % atype.upper()
479
                    type_key = 'ANNOTATIONS_TYPE_%s_VISIBLE' % atype.upper()
505
                    category_active = self.srvgui.get_key_value(cat_key)
480
                    category_active = self.srvgui.get_key_value(cat_key)
506
                    try:
481
                    try:
507
                        type_active = self.srvgui.get_key_value(type_key)
482
                        type_active = self.srvgui.get_key_value(type_key)
508
                    except:
-
 
-
 
483
                        # ~ self.log.debug("%s -> %s", type_key, type_active)
-
 
484
                    except Exception as error:
-
 
485
                        self.log.error(error)
509
                        type_active = True
486
                        type_active = True
510
                    if category_active:
487
                    if category_active:
511
                        if type_active:
488
                        if type_active:
512
                            ppid = None
489
                            ppid = None
513
                            sid = self.srvant.get_sid(annotation['aid'])
490
                            sid = self.srvant.get_sid(annotation['aid'])
Line 561... Line 538...
561
                path,col,cellx,celly = pthinfo
538
                path,col,cellx,celly = pthinfo
562
                model = treeview.get_model()
539
                model = treeview.get_model()
563
                treeiter = model.get_iter(path)
540
                treeiter = model.get_iter(path)
564
                component = model[treeiter][5]
541
                component = model[treeiter][5]
565
                aid = model[treeiter][10]
542
                aid = model[treeiter][10]
566
                # ~ sid = model[treeiter][0]
-
 
567
                # ~ sid = "0"*(10 - len(str(sid))) + str(sid)
-
 
568
                toolbar = self.srvgui.get_widget('visortoolbar')
543
                toolbar = self.srvgui.get_widget('visortoolbar')
569
                popover = self.srvgui.add_widget('gtk_popover_visor_row', Gtk.Popover.new(treeview))
544
                popover = self.srvgui.add_widget('gtk_popover_visor_row', Gtk.Popover.new(treeview))
570
                popover.set_position(Gtk.PositionType.TOP)
545
                popover.set_position(Gtk.PositionType.TOP)
571
                popover.set_pointing_to(rect)
546
                popover.set_pointing_to(rect)
572
                box = self.build_popover(aid, popover, component)
547
                box = self.build_popover(aid, popover, component)
Line 612... Line 587...
612
                button.show_all()
587
                button.show_all()
613
                button.connect('clicked', self.srvclb.gui_jump_to_sapnote, sid)
588
                button.connect('clicked', self.srvclb.gui_jump_to_sapnote, sid)
614
                box.pack_start(button, False, False, 0)
589
                box.pack_start(button, False, False, 0)
615
590
616
            return box
591
            return box
-
 
592
617
593
618
    def connect_menuview_signals(self):
594
    def connect_menuview_signals(self):
619
        button = self.srvgui.get_widget('gtk_togglebutton_categories')
595
        button = self.srvgui.get_widget('gtk_togglebutton_categories')
620
        button.connect('toggled', self.set_visible_categories)
596
        button.connect('toggled', self.set_visible_categories)
621
597
Line 624... Line 600...
624
            button.connect('toggled', self.set_visible_category, name)
600
            button.connect('toggled', self.set_visible_category, name)
625
601
626
        button = self.srvgui.get_widget('gtk_togglebutton_types')
602
        button = self.srvgui.get_widget('gtk_togglebutton_types')
627
        button.connect('toggled', self.set_visible_types)
603
        button.connect('toggled', self.set_visible_types)
628
604
629
        for name in ['FIXME', 'TODO', 'Meeting', 'note', 'procedure', 'snippet', 'template', 'email']:
-
 
-
 
605
        for name in ATYPES:
630
            button = self.srvgui.get_widget('gtk_button_type_%s' % name.lower())
606
            button = self.srvgui.get_widget('gtk_button_type_%s' % name.lower())
631
            button.connect('toggled', self.set_visible_annotation_type, name)
607
            button.connect('toggled', self.set_visible_annotation_type, name)
632
608
633
609
634
    def set_active_categories(self):
610
    def set_active_categories(self):