From 37bc51571289f084ccc355dbc3002bec12d24f42 Mon Sep 17 00:00:00 2001 From: Andreas Tsouchlos Date: Wed, 3 Jan 2024 16:09:57 +0100 Subject: [PATCH] Change the way categories are added --- banking_breakdown/ui/__init__.py | 12 +++++----- banking_breakdown/ui/generated_wrapper.py | 29 +++++++++++++++++------ 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/banking_breakdown/ui/__init__.py b/banking_breakdown/ui/__init__.py index 3b11f61..fc7454c 100644 --- a/banking_breakdown/ui/__init__.py +++ b/banking_breakdown/ui/__init__.py @@ -7,13 +7,13 @@ from PyQt6.QtWidgets import QApplication from banking_breakdown.ui.generated_wrapper import GeneratedWindowWrapper -def show_main_window(ui_file, categories: typing.Sequence[str] = None, +def show_main_window(categories: typing.Sequence[str] = None, df: pd.DataFrame = None): - if categories is None: - categories = [] - app = QApplication(sys.argv) - window = GeneratedWindowWrapper(ui_file, categories) + window = GeneratedWindowWrapper() + + if categories is not None: + window.add_categories(categories) if df is not None: window.set_statement_data(df) @@ -30,7 +30,7 @@ def main(): df = get_stripped_statement("../../res/banking_statement_2023.csv") - show_main_window("../../res/main_window.ui", categories, df) + show_main_window(categories, df) if __name__ == "__main__": diff --git a/banking_breakdown/ui/generated_wrapper.py b/banking_breakdown/ui/generated_wrapper.py index c19914a..c0b0dd7 100644 --- a/banking_breakdown/ui/generated_wrapper.py +++ b/banking_breakdown/ui/generated_wrapper.py @@ -1,4 +1,5 @@ import typing +from functools import partial import pandas as pd from PyQt6.QtWidgets import QMainWindow, QTableView @@ -61,27 +62,41 @@ class PandasModel(QtCore.QAbstractTableModel): class GeneratedWindowWrapper(QMainWindow): - def __init__(self, ui_file: str, categories: typing.Sequence): + def __init__(self): super(GeneratedWindowWrapper, self).__init__() self._window = Ui_MainWindow() self._window.setupUi(self) - # Set up window + # Set window behavior self._window.statementTableView.setSelectionBehavior( QTableView.SelectionBehavior.SelectRows) - self._set_categories(categories) + # Populate categories - def _set_categories(self, categories: typing.Sequence[str]): - model = QtGui.QStandardItemModel() - self._window.categoryListView.setModel(model) + self._category_model = QtGui.QStandardItemModel() + self._window.categoryListView.setModel(self._category_model) + # Onclick handlers + + self._window.createCategoryButton.clicked.connect( + self._handle_create_click) + + def add_categories(self, categories: typing.Sequence[str]): for category in categories: item = QtGui.QStandardItem(category) - model.appendRow(item) + self._category_model.appendRow(item) def set_statement_data(self, df: pd.DataFrame): model = PandasModel(df) self._window.statementTableView.setModel(model) + + def _handle_create_click(self): + self.add_categories(['asdf']) + + def _handle_delete_click(self): + pass + + def _handle_apply_click(self): + pass