diff --git a/soitool/codebook_row_adder.py b/soitool/codebook_row_adder.py index 2372001b36cba575590b9c77fb94c61771d51479..091bf6f7e31901764ae8bbfb52738fdd65ba0014 100644 --- a/soitool/codebook_row_adder.py +++ b/soitool/codebook_row_adder.py @@ -10,7 +10,6 @@ from PySide2.QtWidgets import ( QWidget, ) from PySide2.QtCore import Qt -from soitool.database import Database from soitool.codebook_model_view import CodeBookTableModel, CodeBookTableView @@ -29,6 +28,8 @@ class CodebookRowAdder(QWidget): database. Therefore, this reference is needed to be able to insert new rows, but it is also used to refresh the view when the row is inserted. + database : soitool.database.Database + Database to use. Raises ------ @@ -37,7 +38,7 @@ class CodebookRowAdder(QWidget): None (default) or CodeBookTableView. """ - def __init__(self, codebook_view=None): + def __init__(self, database, codebook_view=None): super().__init__() # Raise error if argument is invalid @@ -49,6 +50,7 @@ class CodebookRowAdder(QWidget): + "'{}'".format(codebook_view) ) + self.database = database self.codebook_view = codebook_view self.create_widgets() @@ -169,8 +171,6 @@ class CodebookRowAdder(QWidget): if len(category_input) > 0: category_input = category_input[0].upper() + category_input[1:] - db = Database() - try: # If a view is used, remove its model temporarily if self.codebook_view is not None: @@ -181,13 +181,13 @@ class CodebookRowAdder(QWidget): "INSERT INTO CodeBook(Word, Category, Type)" + "VALUES(?, ?, ?)" ) - db.conn.execute( + self.database.conn.execute( stmt, (word_input, category_input, type_input,) ) # Add unique code to row and commit changes - db.add_code_to(word_input) - db.conn.commit() + self.database.add_code_to(word_input) + self.database.conn.commit() # Give feedback and reset input self.label_feedback.setText("Ord/Uttrykk lagt til.") diff --git a/soitool/codebook_widget.py b/soitool/codebook_widget.py index 9f418daad940e50385f76b342dd6f3f021c13647..53c45acc884ee1237e87ddafcad31fbfb6864e72 100644 --- a/soitool/codebook_widget.py +++ b/soitool/codebook_widget.py @@ -7,12 +7,12 @@ from soitool.codebook_row_adder import CodebookRowAdder class CodebookWidget(QWidget): """Widget for viewing and editing codebook.""" - def __init__(self): + def __init__(self, database): super().__init__() # Create widgets - self.view = CodeBookTableView() - self.row_adder = CodebookRowAdder() + self.view = CodeBookTableView(database) + self.row_adder = CodebookRowAdder(database, self.view) self.create_and_set_layouts() diff --git a/soitool/main_window.py b/soitool/main_window.py index ad0c15311f257f49e65c40b9179bbe05ff02132d..4cd761f9badc0f5a0e76a6449a85dbfc044cc163 100644 --- a/soitool/main_window.py +++ b/soitool/main_window.py @@ -197,7 +197,7 @@ class MainWindow(QMainWindow): break # Codebook-tab does not exist, create, add and select tab else: - tab = CodebookWidget() + tab = CodebookWidget(self.database) self.tabs.addTab(tab, "Kodebok") self.tabs.setCurrentWidget(tab)