diff --git a/src/urh/controller/CompareFrameController.py b/src/urh/controller/CompareFrameController.py index 019bdebe..e37a0a70 100644 --- a/src/urh/controller/CompareFrameController.py +++ b/src/urh/controller/CompareFrameController.py @@ -38,6 +38,7 @@ class CompareFrameController(QFrame): show_decoding_clicked = pyqtSignal() files_dropped = pyqtSignal(list) participant_changed = pyqtSignal() + show_config_field_types_triggered = pyqtSignal() def __init__(self, plugin_manager: PluginManager, project_manager: ProjectManager, parent): @@ -336,7 +337,7 @@ class CompareFrameController(QFrame): self.ui.tblViewProtocol.new_messagetype_clicked.connect(self.on_new_message_type_clicked) self.ui.btnAddMessagetype.clicked.connect(self.on_new_message_type_clicked) self.ui.btnRemoveMessagetype.clicked.connect(self.on_remove_message_type_clicked) - + self.ui.listViewLabelNames.configureActionTriggered.connect(self.show_config_field_types_triggered.emit) self.ui.lineEditSearch.returnPressed.connect(self.ui.btnSearchSelectFilter.click) self.ui.cbMessagetypes.currentIndexChanged.connect(self.on_cbmessagetype_index_changed) @@ -1446,4 +1447,4 @@ class CompareFrameController(QFrame): hide = not msg.participant.show if msg.participant is not None else not self.participant_list_model.show_unassigned self.ui.tblViewProtocol.setRowHidden(i, hide) - self.set_shown_protocols() \ No newline at end of file + self.set_shown_protocols() diff --git a/src/urh/controller/MainController.py b/src/urh/controller/MainController.py index 337d927a..688ea55d 100644 --- a/src/urh/controller/MainController.py +++ b/src/urh/controller/MainController.py @@ -187,6 +187,7 @@ class MainController(QMainWindow): self.compare_frame_controller.participant_changed.connect(self.signal_tab_controller.refresh_participant_information) self.compare_frame_controller.ui.treeViewProtocols.close_wanted.connect(self.on_cfc_close_wanted) + self.compare_frame_controller.show_config_field_types_triggered.connect(self.show_field_types_config) self.ui.listViewParticipants.doubleClicked.connect(self.on_project_settings_clicked) self.ui.menuFile.addSeparator() @@ -630,9 +631,15 @@ class MainController(QMainWindow): @pyqtSlot() def show_options_dialog(self): + self.show_options_dialog_specific_tab(tab_index=0) + def show_field_types_config(self): + self.show_options_dialog_specific_tab(tab_index=3) + + def show_options_dialog_specific_tab(self, tab_index: int): op = OptionsController(self.plugin_manager.installed_plugins, parent=self) op.values_changed.connect(self.on_options_changed) + op.ui.tabWidget.setCurrentIndex(tab_index) op.exec_() def on_options_changed(self, changed_options: dict): diff --git a/src/urh/ui/views/ProtocolLabelListView.py b/src/urh/ui/views/ProtocolLabelListView.py index 4f8658a7..14ff7984 100644 --- a/src/urh/ui/views/ProtocolLabelListView.py +++ b/src/urh/ui/views/ProtocolLabelListView.py @@ -3,12 +3,14 @@ from PyQt5.QtGui import QContextMenuEvent, QKeySequence from PyQt5.QtWidgets import QListView, QAbstractItemView, QMenu, QAction import numpy +from urh.controller.OptionsController import OptionsController from urh.models.ProtocolLabelListModel import ProtocolLabelListModel class ProtocolLabelListView(QListView): editActionTriggered = pyqtSignal(int) selection_changed = pyqtSignal() + configureActionTriggered = pyqtSignal() def __init__(self, parent): super().__init__(parent) @@ -77,6 +79,10 @@ class ProtocolLabelListView(QListView): showAllAction = menu.addAction("Show all") hideAllAction = menu.addAction("Hide all") + + menu.addSeparator() + configureAction = menu.addAction("Configure field types...") + action = menu.exec_(self.mapToGlobal(pos)) if action == editAction: @@ -85,11 +91,12 @@ class ProtocolLabelListView(QListView): self.model().showAll() elif action == hideAllAction: self.model().hideAll() + elif action == configureAction: + self.configureActionTriggered.emit() elif action in assign_actions: message_type_id = message_type_names.index(action.text()) self.model().add_labels_to_message_type(min_row, max_row, message_type_id) - def delete_rows(self): min_row, max_row = self.selection_range() if min_row > -1: