annotate src/sqlmodels.cpp @ 213:131463be208b

Split the custom SQL models code into sqlmodels.cpp
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 18 Dec 2017 11:28:00 +0200
parents
children 58af72da7f60
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
213
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
1 //
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
2 // Syntilista - debt list/management database program
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
3 // Programmed and designed by Matti Hämäläinen <ccr@tnsp.org>
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
4 // (C) Copyright 2017 Tecnic Software productions (TNSP)
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
5 //
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
6 // Distributed under 3-clause BSD style license, refer to
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
7 // included file "COPYING" for exact terms.
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
8 //
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
9 #include "main.h"
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
10
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
11
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
12 SLPersonSQLModel::SLPersonSQLModel(QObject *parent) : QSqlQueryModel(parent)
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
13 {
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
14 }
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
15
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
16
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
17 QVariant SLPersonSQLModel::data(const QModelIndex &index, int role) const
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
18 {
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
19 QVariant value = QSqlQueryModel::data(index, role);
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
20
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
21 if (value.isValid() && role == Qt::DisplayRole)
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
22 {
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
23 // Format some of the displayed values
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
24 switch (index.column())
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
25 {
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
26 case 3:
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
27 return slMoneyValueToStr(value.toDouble());
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
28
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
29 case 4:
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
30 return slDateTimeToStr(value.toDateTime());
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
31 }
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
32 }
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
33
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
34 if (index.column() == 3 && role == Qt::ForegroundRole)
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
35 {
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
36 // Use fancy coloring for debt
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
37 double val = QSqlQueryModel::data(index, Qt::DisplayRole).toDouble();
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
38 if (val < 0)
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
39 return QVariant::fromValue(QColor(Qt::red));
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
40 else
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
41 return QVariant::fromValue(QColor(Qt::green));
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
42 }
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
43
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
44 return value;
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
45 }
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
46
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
47
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
48 int SLPersonSQLModel::updatePerson(const SLPersonInfo &info)
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
49 {
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
50 QSqlQuery np;
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
51
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
52 np.prepare(QStringLiteral("UPDATE people SET first_name=?,last_name=?,extra_info=?,updated=? WHERE id=?"));
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
53 np.addBindValue(info.firstName);
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
54 np.addBindValue(info.lastName);
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
55 np.addBindValue(info.extraInfo);
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
56 np.addBindValue(QDateTime::currentDateTimeUtc());
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
57 np.addBindValue(info.id);
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
58 np.exec();
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
59
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
60 if (!slCheckAndReportSQLError("SLPersonSQLModel::updatePerson()", np.lastError()))
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
61 return -1;
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
62
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
63 QSqlDatabase::database().commit();
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
64 updateModel();
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
65 return 0;
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
66 }
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
67
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
68
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
69 qint64 SLPersonSQLModel::addPerson(const SLPersonInfo &info)
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
70 {
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
71 QSqlQuery np;
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
72 np.prepare(QStringLiteral("INSERT INTO people (first_name,last_name,extra_info,added,updated) VALUES (?,?,?,?,?)"));
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
73 np.addBindValue(info.firstName);
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
74 np.addBindValue(info.lastName);
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
75 np.addBindValue(info.extraInfo);
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
76 np.addBindValue(QDateTime::currentDateTimeUtc());
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
77 np.addBindValue(QDateTime::currentDateTimeUtc());
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
78 np.exec();
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
79
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
80 if (!slCheckAndReportSQLError("SLPersonSQLModel::addPerson()", np.lastError()))
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
81 return -1;
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
82
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
83 QSqlDatabase::database().commit();
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
84
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
85 QVariant idp = np.lastInsertId();
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
86
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
87 updateModel();
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
88 return idp.isValid() ? idp.toInt() : -2;
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
89 }
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
90
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
91
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
92 int SLPersonSQLModel::deletePerson(qint64 id)
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
93 {
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
94 QSqlDatabase::database().transaction();
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
95 QSqlQuery del;
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
96
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
97 del.prepare(QStringLiteral("DELETE FROM people WHERE id=?"));
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
98 del.addBindValue(id);
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
99 del.exec();
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
100
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
101 if (!slCheckAndReportSQLError("delete user", del.lastError()))
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
102 {
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
103 QSqlDatabase::database().rollback();
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
104 return -1;
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
105 }
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
106
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
107 del.prepare(QStringLiteral("DELETE FROM transactions WHERE person=?"));
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
108 del.addBindValue(id);
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
109 del.exec();
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
110
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
111 if (!slCheckAndReportSQLError("delete user transactions", del.lastError()))
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
112 {
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
113 QSqlDatabase::database().rollback();
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
114 return -2;
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
115 }
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
116
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
117 QSqlDatabase::database().commit();
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
118 updateModel();
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
119 return 0;
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
120 }
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
121
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
122
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
123 void SLPersonSQLModel::updateModel()
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
124 {
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
125 query().exec();
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
126 emit dataChanged(index(0, 0), index(rowCount(), columnCount()));
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
127 }
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
128
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
129
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
130 SLTransactionSQLModel::SLTransactionSQLModel(QObject *parent) : QSqlQueryModel(parent)
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
131 {
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
132 }
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
133
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
134
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
135 QVariant SLTransactionSQLModel::data(const QModelIndex &index, int role) const
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
136 {
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
137 QVariant value = QSqlQueryModel::data(index, role);
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
138
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
139 if (value.isValid() && role == Qt::DisplayRole)
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
140 {
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
141 // Format some of the displayed values
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
142 switch (index.column())
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
143 {
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
144 case 1:
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
145 return slMoneyValueToStrSign(value.toDouble());
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
146
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
147 case 2:
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
148 return slDateTimeToStr(value.toDateTime());
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
149 }
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
150 }
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
151
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
152 if (index.column() == 1 && role == Qt::ForegroundRole)
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
153 {
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
154 // Use fancy coloring for debt
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
155 double val = QSqlQueryModel::data(index, Qt::DisplayRole).toDouble();
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
156 if (val < 0)
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
157 return QVariant::fromValue(QColor(Qt::red));
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
158 else
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
159 return QVariant::fromValue(QColor(Qt::green));
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
160 }
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
161
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
162 return value;
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
163 }
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
164
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
165
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
166 void SLTransactionSQLModel::updateModel()
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
167 {
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
168 query().exec();
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
169 emit dataChanged(QModelIndex(), QModelIndex());
131463be208b Split the custom SQL models code into sqlmodels.cpp
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
170 }