Finance manager
Лабораторна робота №2 - Документація коду
Loading...
Searching...
No Matches
Public Member Functions | Private Slots | Private Member Functions | Private Attributes | List of all members
TransactionsWindow Class Reference

Вікно для додавання нових транзакцій та перегляду списку існуючих. More...

#include <TransactionsWindow.h>

Inheritance diagram for TransactionsWindow:
Inheritance graph
[legend]
Collaboration diagram for TransactionsWindow:
Collaboration graph
[legend]

Public Member Functions

 TransactionsWindow (User &user, Database &db, QWidget *parent=nullptr)
 Конструктор класу TransactionsWindow.
 

Private Slots

void onAddTransaction ()
 Слот, що спрацьовує при натисканні кнопки "Додати".
 
void onRefreshTable ()
 Слот для оновлення вмісту таблиці.
 
void onClose ()
 Слот для закриття поточного діалогового вікна.
 

Private Member Functions

void fillTable ()
 Допоміжна функція для заповнення таблиці даними з бази даних.
 

Private Attributes

Useruser
 Посилання на активного користувача.
 
Databasedb
 Посилання на базу даних.
 
QTableWidget * table
 Таблиця для відображення транзакцій.
 
QLineEdit * idInput
 Поле введення для ID транзакції.
 
QLineEdit * amountInput
 Поле введення для суми.
 
QLineEdit * categoryInput
 Поле введення для категорії.
 
QLineEdit * descInput
 Поле введення для опису.
 

Detailed Description

Вікно для додавання нових транзакцій та перегляду списку існуючих.

Це вікно містить форму для введення даних про нову транзакцію (ID, сума, категорія, опис) та таблицю для відображення всіх транзакцій.

Constructor & Destructor Documentation

◆ TransactionsWindow()

TransactionsWindow::TransactionsWindow ( User u,
Database d,
QWidget *  parent = nullptr 
)

Конструктор класу TransactionsWindow.

Конструктор TransactionsWindow.

Parameters
userПосилання на об'єкт поточного користувача.
dbПосилання на об'єкт бази даних для додавання та читання транзакцій.
parentВказівник на батьківський віджет (зазвичай 0 або nullptr).

Ініціалізує вікно, яке містить дві основні частини:

  1. Форму (QFormLayout) для введення даних нової транзакції.
  2. Таблицю (QTableWidget) для відображення всіх існуючих транзакцій.

Також налаштовує кнопки, компонування та з'єднання сигналів/слотів. В кінці викликає fillTable() для початкового заповнення таблиці.

Member Function Documentation

◆ fillTable()

void TransactionsWindow::fillTable ( )
private

Допоміжна функція для заповнення таблиці даними з бази даних.

Приватний метод для заповнення таблиці актуальними даними.

Очищує таблицю та завантажує в неї актуальний список транзакцій.

Очищує таблицю (встановлюючи rowCount) та заповнює її даними з вектора user.transactions.

◆ onAddTransaction

void TransactionsWindow::onAddTransaction ( )
privateslot

Слот, що спрацьовує при натисканні кнопки "Додати".

Слот: Додає нову транзакцію.

Зчитує дані з полів введення (idInput, amountInput тощо), створює нову транзакцію та додає її до бази даних.

  1. Перевіряє валідність вводу (ID та Сума не порожні).
  2. Створює новий об'єкт Transaction з даних у полях вводу.
  3. Встановлює поточний час (time(nullptr)) та валюту за замовчуванням.
  4. Додає транзакцію до вектора user.transactions.
  5. Зберігає транзакцію в базу даних (db.persistTransaction).
  6. Оновлює таблицю, викликаючи fillTable().
  7. Очищує поля вводу.
  8. Показує повідомлення про успіх.

◆ onClose

void TransactionsWindow::onClose ( )
privateslot

Слот для закриття поточного діалогового вікна.

Слот: Закриває діалогове вікно.

◆ onRefreshTable

void TransactionsWindow::onRefreshTable ( )
privateslot

Слот для оновлення вмісту таблиці.

Слот: Оновлює таблицю транзакцій.

Зазвичай викликається після додавання нової транзакції.

Просто викликає приватний метод fillTable().

Member Data Documentation

◆ amountInput

QLineEdit* TransactionsWindow::amountInput
private

Поле введення для суми.

◆ categoryInput

QLineEdit* TransactionsWindow::categoryInput
private

Поле введення для категорії.

◆ db

Database& TransactionsWindow::db
private

Посилання на базу даних.

◆ descInput

QLineEdit* TransactionsWindow::descInput
private

Поле введення для опису.

◆ idInput

QLineEdit* TransactionsWindow::idInput
private

Поле введення для ID транзакції.

◆ table

QTableWidget* TransactionsWindow::table
private

Таблиця для відображення транзакцій.

◆ user

User& TransactionsWindow::user
private

Посилання на активного користувача.


The documentation for this class was generated from the following files: