From 06715caeee209d856932a72c690a6829e7715e16 Mon Sep 17 00:00:00 2001 From: Marko Mecina <marko.mecina@univie.ac.at> Date: Sat, 24 Sep 2022 12:20:16 +0200 Subject: [PATCH] drag&drop parameters from poolviewer --- Ccs/poolview_sql.py | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/Ccs/poolview_sql.py b/Ccs/poolview_sql.py index c08344c..8a757bb 100644 --- a/Ccs/poolview_sql.py +++ b/Ccs/poolview_sql.py @@ -2281,6 +2281,14 @@ class TMPoolView(Gtk.Window): if create: listview = Gtk.TreeView() listview.set_model(tm_data_model) + + # Set up Drag and Drop + listview.drag_source_set(Gdk.ModifierType.BUTTON1_MASK, [], Gdk.DragAction.COPY) + listview.drag_source_set_target_list(None) + listview.drag_source_add_text_targets() + + listview.connect("drag-data-get", self.on_drag_tmdata_get) + else: listview = self.tm_data_view for c in listview.get_columns(): @@ -2306,7 +2314,7 @@ class TMPoolView(Gtk.Window): listview.set_tooltip_column(3) else: - for i, column_title in enumerate(['bytepos', 'hex', 'decimal', 'ascii']): + for i, column_title in enumerate(['BYTEPOS', 'HEX', 'DEC', 'ASCII']): render = Gtk.CellRendererText() column = Gtk.TreeViewColumn(column_title, render, text=i) # column.set_cell_data_func(render, self.text_colour2) @@ -2316,6 +2324,11 @@ class TMPoolView(Gtk.Window): if create: return listview + def on_drag_tmdata_get(self, treeview, drag_context, selection_data, info, time, *args): + treeselection = treeview.get_selection() + model, my_iter = treeselection.get_selected() + selection_data.set_text('{} = {}'.format(*model[my_iter][:2]), -1) + def create_decoder_bar(self): box = Gtk.VBox() @@ -2487,7 +2500,8 @@ class TMPoolView(Gtk.Window): hexa.set_label(byts.hex().upper()) uint.set_label(str(int.from_bytes(byts, 'big'))) bina.set_label(bin(int.from_bytes(byts, 'big'))[2:]) - except: + except Exception as err: + self.logger.info(err) hexa.set_label('###') uint.set_label('###') bina.set_label('###') @@ -2497,15 +2511,12 @@ class TMPoolView(Gtk.Window): model, treepath = widget.get_selected_rows() if treepath: value = model[treepath[0]][3] - #print(list(model[treepath[0]])) - #print(value) - #print(type(value)) self.hexview.set_text(value) @delayed(10) def set_tm_data_view(self, selection=None, event=None, change_columns=False): if not self.active_pool_info or not self.decoding_type == 'PUS': - self.logger.info('Can not decode parameters for RMAP or FEE data packets') + self.logger.warning('Cannot decode parameters for RMAP or FEE data packets') buf = Gtk.TextBuffer(text='Parameter view not available for non-PUS packets') self.tm_header_view.set_buffer(buf) return -- GitLab