add shortcut for label list to configure field types

This commit is contained in:
jopohl
2017-01-08 11:36:05 +01:00
parent 57bd2a0e23
commit 2ed468b867
3 changed files with 18 additions and 3 deletions

View File

@@ -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()
self.set_shown_protocols()

View File

@@ -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):

View File

@@ -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: