Implement category creation and deletion

This commit is contained in:
Andreas Tsouchlos 2024-01-04 04:50:54 +01:00
parent d8f571bf31
commit 7c72e59a99

View File

@ -8,7 +8,7 @@ from PyQt6.QtCore import Qt, QSortFilterProxyModel
from PyQt6.QtGui import QPixmap, QAction
from PyQt6.QtWidgets import QMainWindow, QPushButton, QHBoxLayout, QLabel, \
QVBoxLayout, QMenu, QApplication, QTableView, QListView, QInputDialog, \
QMessageBox, QFileDialog
QMessageBox, QFileDialog, QListWidget
#
@ -91,7 +91,7 @@ class MainWindow(QMainWindow):
self._apply_button \
= self.findChild(QPushButton, "applyCategoryButton")
self._list_widget \
= self.findChild(QListView, "categoryListWidget")
= self.findChild(QListWidget, "categoryListWidget")
self._table_view \
= self.findChild(QTableView, "transactionTableView")
self._action_save \
@ -257,16 +257,40 @@ class MainWindow(QMainWindow):
self.set_statement_data(df)
def _handle_create_click(self):
self.add_categories(['asdf'])
new_name, flag = QInputDialog.getText(self, "Create category",
"New category:",
text="Category")
if not flag:
return
current_items = [self._list_widget.item(x).text() for x
in range(self._list_widget.count())]
if new_name not in current_items:
self.add_categories([new_name])
else:
QMessageBox.warning(self, "No action performed",
f"Category '{new_name}' already exists.")
def _handle_delete_click(self):
print(self._list_widget.selectedItems()[0].text())
selected_item = self._list_widget.selectedItems()[0]
button = QMessageBox.question(self, "Delete category",
f"Are you sure you want to delete"
f" category '{selected_item.text()}'?")
if button == QMessageBox.StandardButton.Yes:
self._list_widget.takeItem(self._list_widget.row(selected_item))
def _assign_category(self, category: str):
print(category)
def _handle_apply_click(self):
print(self._list_widget.selectedItems()[0].text())
category = self._list_widget.selectedItems()[0].text()
self._assign_category(category)
def _handle_item_double_click(self, item):
print(item.text())
self._assign_category(item.text())
def _handle_save(self):
filename, _ = QFileDialog.getSaveFileName(self, 'Save File')