From a3b99bace5a3a23a72492e58d8275cd10f005398 Mon Sep 17 00:00:00 2001 From: morkolai <nikolai-mork@live.no> Date: Sat, 25 Apr 2020 16:03:32 +0200 Subject: [PATCH] #96 WIP Laget module base funksjoner --- soitool/media/phonetable.png | Bin 0 -> 10068 bytes soitool/modules/module_phonebook.py | 63 ++++++++++++++++++++++------ 2 files changed, 50 insertions(+), 13 deletions(-) create mode 100644 soitool/media/phonetable.png diff --git a/soitool/media/phonetable.png b/soitool/media/phonetable.png new file mode 100644 index 0000000000000000000000000000000000000000..2e699d71b68a4b6f7ccb259efbbebd341dcdbdde GIT binary patch literal 10068 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 literal 0 HcmV?d00001 diff --git a/soitool/modules/module_phonebook.py b/soitool/modules/module_phonebook.py index 5ca1a39..4625f58 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 +from PySide2.QtGui import QKeySequence, QBrush, QColor, QIcon from soitool.modules.module_base import ( ModuleBase, HEADLINE_FONT, @@ -303,24 +303,61 @@ class PhonebookModule(ModuleBase, QWidget, metaclass=Meta): # !!!!! MODULE BASE OPERATIONS !!!!! def get_size(self): - return super().get_size() + """Getter for module size. + + Returns + ------- + tupple + Size of the module (width, height) + """ + self.resize() + return (self.minimumWidth, self.minimumHeight) def get_data(self): - return super().get_data() + """Get module content as serialized data. + + Returns + ------- + dict + Serialized module content. + """ + + data = {} + + for column_index in range(self.table.columnCount()): + self.table.setCurrentCell(0, column_index) + header = self.table.currentItem().text() + if self.selected_columns[header]: + row_data = [] + for row_index in range(1, self.table.rowCount()): + self.table.setCurrentCell(row_index, column_index) + row_item = self.table.currentItem() + if row_item: + row_data.append(row_item.text()) + else: + row_data.append("") + data[header] = row_data + + return data @staticmethod def get_user_friendly_name(): - pass + """Get user friendly name. + + Returns + ------- + string + User friendly name. + """ + return "Telefonliste" @staticmethod def get_icon(): - pass + """Get icon. - -if __name__ == "__main__": - from PySide2.QtWidgets import QApplication - - app = QApplication() - module = PhonebookModule() - module.show() - app.exec_() + Returns + ------- + QIcon + Picture of module. + """ + return QIcon("soitool/media/phonetable.png") -- GitLab