diff --git a/soitool/modules/module_phonebook.py b/soitool/modules/module_phonebook.py index 4cd0db644b5816e837fc4d4170c9d6f930f4d732..52f50bafbde6055f34399462b911cd7691862f05 100644 --- a/soitool/modules/module_phonebook.py +++ b/soitool/modules/module_phonebook.py @@ -10,7 +10,7 @@ from PySide2.QtWidgets import ( QCheckBox, ) from PySide2.QtCore import Qt, QSize -from PySide2.QtGui import QKeySequence, QBrush, QColor, QIcon +from PySide2.QtGui import QBrush, QColor, QIcon from soitool.modules.module_base import ( ModuleBase, HEADLINE_FONT, @@ -19,7 +19,7 @@ from soitool.modules.module_base import ( ) -class ComponentsChoicePopup(QDialog): +class ColumnsChoicePopup(QDialog): def __init__(self, selected_columns): """A popup for selecting wich columns to hide/show in phonebook. @@ -102,6 +102,7 @@ class PhonebookModule(ModuleBase, QWidget, metaclass=Meta): # Table self.table = self.__create_table() + self.table.cellChanged.connect(lambda: self.resize()) # Buttons self.buttons = self.__creat_buttons() @@ -145,7 +146,7 @@ class PhonebookModule(ModuleBase, QWidget, metaclass=Meta): table.setItem(0, column_index, header_item) column_index += 1 - table.cellChanged.connect(lambda: self.resize()) + # table.cellChanged.connect(lambda: self.resize()) return table @@ -160,7 +161,6 @@ class PhonebookModule(ModuleBase, QWidget, metaclass=Meta): # Button for editing columns btn_components = QPushButton("Kolonner", self) btn_components.clicked.connect(lambda: self.open_popup()) - btn_components.setShortcut(QKeySequence(Qt.CTRL + Qt.Key_K)) btn_components.setFixedWidth(100) # Buttons for adding row @@ -214,7 +214,7 @@ class PhonebookModule(ModuleBase, QWidget, metaclass=Meta): self.resize() def keyPressEvent(self, event): - """Keyboard shortcuts for adding and removing rows. + """Keyboard shortcuts for adding/removing rows and selecting columns. Parameters ---------- @@ -227,6 +227,8 @@ class PhonebookModule(ModuleBase, QWidget, metaclass=Meta): self.add_row() elif ctrl and event.key() == Qt.Key_Minus: self.remove_row() + elif ctrl and event.key() == Qt.Key_R: + self.open_popup() else: super().keyPressEvent(event) @@ -287,15 +289,17 @@ class PhonebookModule(ModuleBase, QWidget, metaclass=Meta): if self.buttons.isVisible(): width = max(width, self.buttons.minimumWidth()) + self.setFixedWidth(width) + height = get_table_size(self.table)[1] + self.header.minimumHeight() if self.buttons.isVisible(): height += self.buttons.minimumHeight() - self.setFixedSize(QSize(width, height)) + self.setFixedHeight(height) def open_popup(self): """Open dialog for editing columns.""" - popup = ComponentsChoicePopup(self.selected_columns) + popup = ColumnsChoicePopup(self.selected_columns) popup.exec_() self.selected_columns = popup.get_selected_columns() self.set_columns() @@ -311,7 +315,7 @@ class PhonebookModule(ModuleBase, QWidget, metaclass=Meta): Size of the module (width, height) """ self.resize() - return self.minimumWidth(), self.minimumHeight() + return (self.minimumWidth(), self.minimumHeight()) def get_data(self): """Get module content as serialized data. @@ -361,16 +365,3 @@ class PhonebookModule(ModuleBase, QWidget, metaclass=Meta): Picture of module. """ return QIcon("soitool/media/phonetable.png") - - -if __name__ == "__main__": - - from PySide2.QtWidgets import QApplication - - app = QApplication() - - module = PhonebookModule() - - module.show() - - app.exec_()