Subversion Repositories basico

Rev

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

Rev 369 Rev 383
Line 63... Line 63...
63
        self.srvdtb = self.get_service('DB')
63
        self.srvdtb = self.get_service('DB')
64
        self.srvuif = self.get_service("UIF")
64
        self.srvuif = self.get_service("UIF")
65
        self.srvutl = self.get_service("Utils")
65
        self.srvutl = self.get_service("Utils")
66
        self.srvatc = self.get_service('Attachment')
66
        self.srvatc = self.get_service('Attachment')
67
        self.srvant = self.get_service('Annotation')
67
        self.srvant = self.get_service('Annotation')
68
       
-
 
-
 
68
69
69
70
    def get_treeview(self):
70
    def get_treeview(self):
71
        return self.treeview
71
        return self.treeview
72
72
73
73
Line 92... Line 92...
92
        pgb.set_fraction(fraction)
92
        pgb.set_fraction(fraction)
93
        pgb.set_text(text)
93
        pgb.set_text(text)
94
        pgb.set_show_text(True)
94
        pgb.set_show_text(True)
95
        hbox.pack_start(pgb, True, True, 0)
95
        hbox.pack_start(pgb, True, True, 0)
96
        self.pack_start(hbox, False, False, 0)
96
        self.pack_start(hbox, False, False, 0)
97
       
-
 
-
 
97
98
        # Setup model
98
        # Setup model
99
        self.model = Gtk.TreeStore(
99
        self.model = Gtk.TreeStore(
100
            str,        # TID (Attachment ID)
100
            str,        # TID (Attachment ID)
101
            Pixbuf,     # Icon
101
            Pixbuf,     # Icon
102
            str,        # SAP Note
102
            str,        # SAP Note
Line 105... Line 105...
105
            str,        # Description
105
            str,        # Description
106
            str,        # Added
106
            str,        # Added
107
            str,        # Added (timestamp)
107
            str,        # Added (timestamp)
108
            str,        # Size
108
            str,        # Size
109
            int,        # Size (int)
109
            int,        # Size (int)
110
            str,        # Mimetype            
-
 
-
 
110
            str,        # Mimetype
111
        )
111
        )
112
112
113
        # Setup columns
113
        # Setup columns
114
        def get_column_header_widget(title, icon_name=None, width=24, height=24):
114
        def get_column_header_widget(title, icon_name=None, width=24, height=24):
115
            hbox = Gtk.HBox()
115
            hbox = Gtk.HBox()
Line 169... Line 169...
169
        self.column_description.set_expand(False)
169
        self.column_description.set_expand(False)
170
        self.column_description.set_clickable(True)
170
        self.column_description.set_clickable(True)
171
        self.column_description.set_sort_indicator(True)
171
        self.column_description.set_sort_indicator(True)
172
        self.column_description.set_sort_column_id(3)
172
        self.column_description.set_sort_column_id(3)
173
        self.treeview.append_column(self.column_description)
173
        self.treeview.append_column(self.column_description)
174
       
-
 
-
 
174
175
        # Attachment Title
175
        # Attachment Title
176
        self.renderer_title = Gtk.CellRendererText()
176
        self.renderer_title = Gtk.CellRendererText()
177
        self.renderer_title.set_property('background', '#FFFEEA')
177
        self.renderer_title.set_property('background', '#FFFEEA')
178
        self.renderer_title.set_property('ellipsize', Pango.EllipsizeMode.MIDDLE)
178
        self.renderer_title.set_property('ellipsize', Pango.EllipsizeMode.MIDDLE)
179
        self.column_title = Gtk.TreeViewColumn('Title', self.renderer_title, markup=4)
179
        self.column_title = Gtk.TreeViewColumn('Title', self.renderer_title, markup=4)
Line 200... Line 200...
200
        self.column_sid.set_expand(False)
200
        self.column_sid.set_expand(False)
201
        self.column_sid.set_clickable(True)
201
        self.column_sid.set_clickable(True)
202
        self.column_sid.set_sort_indicator(True)
202
        self.column_sid.set_sort_indicator(True)
203
        self.column_sid.set_sort_column_id(5)
203
        self.column_sid.set_sort_column_id(5)
204
        self.treeview.append_column(self.column_sid)
204
        self.treeview.append_column(self.column_sid)
205
       
-
 
-
 
205
206
        # Added
206
        # Added
207
        self.renderer_added = Gtk.CellRendererText()
207
        self.renderer_added = Gtk.CellRendererText()
208
        self.renderer_added.set_property('background', '#E3F1E3')
208
        self.renderer_added.set_property('background', '#E3F1E3')
209
        self.column_added = Gtk.TreeViewColumn('Added', self.renderer_added, markup=6)
209
        self.column_added = Gtk.TreeViewColumn('Added', self.renderer_added, markup=6)
210
        # ~ widget = get_column_header_widget('Added', 'basico-category')
210
        # ~ widget = get_column_header_widget('Added', 'basico-category')
Line 247... Line 247...
247
        # Mimetype
247
        # Mimetype
248
        self.renderer_annotation = Gtk.CellRendererText()
248
        self.renderer_annotation = Gtk.CellRendererText()
249
        self.column_annotation = Gtk.TreeViewColumn('Mimetype', self.renderer_annotation, markup=10)
249
        self.column_annotation = Gtk.TreeViewColumn('Mimetype', self.renderer_annotation, markup=10)
250
        self.column_annotation.set_visible(False)
250
        self.column_annotation.set_visible(False)
251
        self.treeview.append_column(self.column_annotation)
251
        self.treeview.append_column(self.column_annotation)
252
       
-
 
-
 
252
253
        # Treeview properties
253
        # Treeview properties
254
        self.treeview.set_can_focus(False)
254
        self.treeview.set_can_focus(False)
255
        self.treeview.set_enable_tree_lines(True)
255
        self.treeview.set_enable_tree_lines(True)
256
        self.treeview.set_headers_visible(True)
256
        self.treeview.set_headers_visible(True)
257
        self.treeview.set_enable_search(True)
257
        self.treeview.set_enable_search(True)
258
        self.treeview.set_hover_selection(False)
258
        self.treeview.set_hover_selection(False)
259
        self.treeview.set_grid_lines(Gtk.TreeViewGridLines.NONE)
259
        self.treeview.set_grid_lines(Gtk.TreeViewGridLines.NONE)
260
        self.treeview.set_enable_tree_lines(True)
260
        self.treeview.set_enable_tree_lines(True)
261
        self.treeview.set_level_indentation(10)
261
        self.treeview.set_level_indentation(10)
262
        self.treeview.connect('button_press_event', self.row_right_click)
262
        self.treeview.connect('button_press_event', self.row_right_click)
263
       
-
 
-
 
263
264
        # DOC: In order to have a Gtk.Widged with sorting and filtering
264
        # DOC: In order to have a Gtk.Widged with sorting and filtering
265
        # capabilities, you have to filter the model first, and use this
265
        # capabilities, you have to filter the model first, and use this
266
        # new model to create the sorted model. Then, attach the sorted
266
        # new model to create the sorted model. Then, attach the sorted
267
        # model to the treeview...
267
        # model to the treeview...
268
268
Line 415... Line 415...
415
                        metadata = json.load(fa)
415
                        metadata = json.load(fa)
416
                        sid = self.srvatc.get_sid(metadata['TID'])
416
                        sid = self.srvatc.get_sid(metadata['TID'])
417
                        sid = str(int(sid))
417
                        sid = str(int(sid))
418
                        if sid == '0':
418
                        if sid == '0':
419
                            sid = ''
419
                            sid = ''
420
                        node = self.get_node(   metadata['TID'],
-
 
-
 
420
                        node = self.get_node(   metadata['TID'],
421
                                                self.srvicm.find_mime_type_pixbuf(metadata['Mimetype'], 36, 36),
421
                                                self.srvicm.find_mime_type_pixbuf(metadata['Mimetype'], 36, 36),
422
                                                metadata['Doctype'],
422
                                                metadata['Doctype'],
423
                                                metadata['Description'],
423
                                                metadata['Description'],
424
                                                metadata['Title'],
424
                                                metadata['Title'],
425
                                                sid,
425
                                                sid,
426
                                                self.srvutl.fuzzy_date_from_timestamp(metadata['Created']),
426
                                                self.srvutl.fuzzy_date_from_timestamp(metadata['Created']),
427
                                                metadata['Created'],
427
                                                metadata['Created'],
428
                                                str(self.srvutl.get_human_sizes(int(metadata['Size']))),
428
                                                str(self.srvutl.get_human_sizes(int(metadata['Size']))),
429
                                                int(metadata['Size']),
-
 
430
                                                metadata['Mimetype'],                                                
-
 
-
 
429
                                                int(metadata['Size']),
-
 
430
                                                metadata['Mimetype'],
431
                                            )
431
                                            )
432
                        nodes.append(node)
432
                        nodes.append(node)
433
                    except Exception as error:
433
                    except Exception as error:
434
                        self.log.error(error)
434
                        self.log.error(error)
435
                        self.log.error(self.get_traceback())
435
                        self.log.error(self.get_traceback())
Line 443... Line 443...
443
            self.model.append(None, node)
443
            self.model.append(None, node)
444
444
445
        self.treeview.set_model(self.sorted_model)
445
        self.treeview.set_model(self.sorted_model)
446
        self.sort_by_timestamp()
446
        self.sort_by_timestamp()
447
        self.update_total_attachments_count()
447
        self.update_total_attachments_count()
448
        self.log.debug("Visor updated")
-
 
-
 
448
        # ~ self.log.debug("Visor updated")
449
449
450
    def show_widgets(self):
450
    def show_widgets(self):
451
        self.srvuif.set_widget_visibility('gtk_label_total_notes', True)
451
        self.srvuif.set_widget_visibility('gtk_label_total_notes', True)
452
452
453
453
Line 516... Line 516...
516
            aid_file = LPATH['ANNOTATIONS'] + aid + '.json'
516
            aid_file = LPATH['ANNOTATIONS'] + aid + '.json'
517
            button = get_popover_button("Jump to <b>Annotation</b>", 'basico-jump-sapnote')
517
            button = get_popover_button("Jump to <b>Annotation</b>", 'basico-jump-sapnote')
518
            button.show_all()
518
            button.show_all()
519
            button.connect('clicked', self.srvclb.gui_jump_to_annotation, aid_file)
519
            button.connect('clicked', self.srvclb.gui_jump_to_annotation, aid_file)
520
            box.pack_start(button, False, False, 0)
520
            box.pack_start(button, False, False, 0)
521
           
-
 
-
 
521
522
        # Separator
522
        # Separator
523
        separator = Gtk.Separator(orientation = Gtk.Orientation.HORIZONTAL)
523
        separator = Gtk.Separator(orientation = Gtk.Orientation.HORIZONTAL)
524
        box.pack_start(separator, True, True, 0)
524
        box.pack_start(separator, True, True, 0)
525
525
526
        # Download to PC
526
        # Download to PC
527
        button = get_popover_button("<b>Download attachment</b> to PC", 'basico-backup')
527
        button = get_popover_button("<b>Download attachment</b> to PC", 'basico-backup')
528
        button.show_all()
528
        button.show_all()
529
        button.connect('clicked', self.download, tid)
529
        button.connect('clicked', self.download, tid)
530
        box.pack_start(button, False, False, 0)
530
        box.pack_start(button, False, False, 0)
531
       
-
 
-
 
531
532
        return box
532
        return box
533
533
534
534
535
    def connect_menuview_signals(self):
535
    def connect_menuview_signals(self):
536
        # Categories
536
        # Categories