Mercurial > hg > syntilista
view main.h @ 4:f2404a9987dc
Cleaning up the code.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Thu, 30 Mar 2017 12:32:05 +0300 |
parents | edc1e8cf6e2c |
children | a5a3baee3043 |
line wrap: on
line source
// // Syntilista - velkalistasovellus Kampus-kahvilaan // Programmed and designed by Matti Hämäläinen <ccr@tnsp.org> // (C) Copyright 2017 Tecnic Software productions (TNSP) // #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QDialog> #include <QtSql> #include <QSqlQueryModel> // // // #define APP_VENDOR "TNSP" #define APP_NAME "Syntilista" #define APP_VERSION "0.1" // // Custom SQL models // class PersonInfo : public QObject { Q_OBJECT public: explicit PersonInfo() { } ~PersonInfo() { } qint64 id; QString firstName, lastName, extraInfo; QDateTime added, updated; }; class PersonSQLModel : public QSqlQueryModel { Q_OBJECT private: public: PersonSQLModel(QObject *parent = 0); QVariant data(const QModelIndex &item, int role) const Q_DECL_OVERRIDE; void updatePerson(const QModelIndex &item, const PersonInfo &person); void addPerson(const PersonInfo &person); void updateModel(); }; class TransactionSQLModel : public QSqlQueryModel { Q_OBJECT private: public: TransactionSQLModel(QObject *parent = 0); QVariant data(const QModelIndex &item, int role) const Q_DECL_OVERRIDE; void updateModel(); }; // // Main window // namespace Ui { class SyntilistaMainWindow; class EditPerson; } class SyntilistaMainWindow : public QMainWindow { Q_OBJECT public: explicit SyntilistaMainWindow(QWidget *parent = 0); ~SyntilistaMainWindow(); void statusMsg(const QString &msg); void readSettings(); void saveSettings(); void setActivePerson(qint64 id); bool getPersonInfo(qint64 id, PersonInfo &info); int addTransaction(qint64 id, double value, PersonInfo &info); int addTransactionGUI(qint64 id, bool debt, double value); void updatePersonList(); PersonSQLModel *model_People; private slots: void on_button_AddPerson_clicked(); void on_button_EditPerson_clicked(); void on_button_ClearFilter_clicked(); void on_button_Quit_clicked(); void on_button_XXX_clicked(); void on_button_AddDebt_clicked(); void on_button_PayDebt_clicked(); void on_button_PayFullDebt_clicked(); void on_edit_PersonFilter_textChanged(const QString &arg1); void on_tableview_People_doubleClicked(const QModelIndex &index); void selectedPersonChanged(const QModelIndex &, const QModelIndex &); void updatePersonData(qint64 id); void updateSortOrder(int index, Qt::SortOrder order); private: Ui::SyntilistaMainWindow *ui; TransactionSQLModel *model_Latest; qint64 personID; double personBalance; int peopleSortIndex; Qt::SortOrder peopleSortOrder; QString peopleFilter; }; class EditPerson : public QDialog { Q_OBJECT public: explicit EditPerson(QWidget *parent = 0); ~EditPerson(); void statusMsg(const QString &msg); void clearForm(); bool validateForm(PersonInfo &info); bool validateForm(); void setPerson(qint64 id); private slots: void on_button_OK_clicked(); void on_button_Cancel_clicked(); void on_edit_FirstName_textChanged(const QString &arg1); void on_edit_LastName_textChanged(const QString &arg1); private: Ui::EditPerson *ui; qint64 personID; TransactionSQLModel *model_Transactions; }; #endif // MAINWINDOW_H