src/ProfileWaters.cpp

changeset 74
4ac38457a709
parent 48
ddd1171ecda5
child 79
e726db72da3c
equal deleted inserted replaced
73:ebd2fc719b1a 74:4ac38457a709
14 * You should have received a copy of the GNU General Public License 14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>. 15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */ 16 */
17 #include "ProfileWaters.h" 17 #include "ProfileWaters.h"
18 #include "EditProfileWater.h" 18 #include "EditProfileWater.h"
19 #include "../ui/ui_ProfileWaters.h" 19 #include "MainWindow.h"
20 #include "config.h" 20 #include "config.h"
21 #include "bmsapp.h" 21 #include "bmsapp.h"
22 22
23 23
24 ProfileWaters::ProfileWaters(QWidget *parent) : QDialog(parent), ui(new Ui::ProfileWaters) 24 ProfileWaters::ProfileWaters(QWidget *parent) : QDialog(parent)
25 { 25 {
26 qDebug() << "ProfileWaters start"; 26 qDebug() << "ProfileWaters start";
27 27
28 ui->setupUi(this); 28 gridLayout = new QGridLayout(this);
29 gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
30 tableWaters = new QTableWidget(this);
31 tableWaters->setObjectName(QString::fromUtf8("tableWaters"));
32 tableWaters->setEnabled(true);
33 QSizePolicy sizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
34 sizePolicy.setHorizontalStretch(0);
35 sizePolicy.setVerticalStretch(0);
36 tableWaters->setSizePolicy(sizePolicy);
37 tableWaters->setMinimumSize(QSize(1154, 0));
38 gridLayout->addWidget(tableWaters, 0, 0, 1, 1);
39
40 groupBox = new QGroupBox(this);
41 groupBox->setObjectName(QString::fromUtf8("groupBox"));
42 groupBox->setEnabled(true);
43 groupBox->setFlat(false);
44 horizontalLayout = new QHBoxLayout(groupBox);
45 horizontalLayout->setSpacing(6);
46 horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));
47 horizontalLayout->setContentsMargins(0, 0, 0, 0);
48
49 quitButton = new QPushButton(groupBox);
50 quitButton->setObjectName(QString::fromUtf8("quitButton"));
51 quitButton->setMinimumSize(QSize(80, 24));
52 quitButton->setText(tr("Quit"));
53 QIcon icon;
54 icon.addFile(QString::fromUtf8(":icons/silk/door_out.png"), QSize(), QIcon::Normal, QIcon::Off);
55 quitButton->setIcon(icon);
56 horizontalLayout->addWidget(quitButton, 0, Qt::AlignLeft);
57
58 insertButton = new QPushButton(groupBox);
59 insertButton->setObjectName(QString::fromUtf8("insertButton"));
60 insertButton->setMinimumSize(QSize(80, 24));
61 insertButton->setText(tr("New"));
62 QIcon icon3;
63 icon3.addFile(QString::fromUtf8(":icons/silk/table_row_insert.png"), QSize(), QIcon::Normal, QIcon::Off);
64 insertButton->setIcon(icon3);
65 horizontalLayout->addWidget(insertButton, 0, Qt::AlignRight);
66 gridLayout->addWidget(groupBox, 1, 0, 1, 1);
67
68 connect(quitButton, SIGNAL(clicked()), parent, SLOT(fromProfileWaters()));
69 connect(insertButton, SIGNAL(clicked()), this, SLOT(on_insertButton_clicked()));
29 emit refreshTable(); 70 emit refreshTable();
30
31 setWindowTitle( QString("BMSapp - %1 - Profile Waters").arg(VERSIONSTRING) );
32 } 71 }
33 72
34 73
35 void ProfileWaters::refreshTable() 74 void ProfileWaters::refreshTable()
36 { 75 {
42 qDebug() << "ProfileWaters reload"; 81 qDebug() << "ProfileWaters reload";
43 82
44 QSqlQuery query("SELECT * FROM profile_water ORDER BY name"); 83 QSqlQuery query("SELECT * FROM profile_water ORDER BY name");
45 const QStringList labels({tr("Name"), tr("Notes"), tr("Ca"), tr("Mg"), tr("Na"), tr("CaCO3"), tr("Cl"), tr("SO4"), tr("pH"), tr("Edit")}); 84 const QStringList labels({tr("Name"), tr("Notes"), tr("Ca"), tr("Mg"), tr("Na"), tr("CaCO3"), tr("Cl"), tr("SO4"), tr("pH"), tr("Edit")});
46 85
47 ui->tableWaters->setColumnCount(10); 86 this->tableWaters->setColumnCount(10);
48 ui->tableWaters->setColumnWidth(0, 150); /* Name */ 87 this->tableWaters->setColumnWidth(0, 150); /* Name */
49 ui->tableWaters->setColumnWidth(1, 375); /* Notes */ 88 this->tableWaters->setColumnWidth(1, 375); /* Notes */
50 ui->tableWaters->setColumnWidth(2, 75); /* Ca */ 89 this->tableWaters->setColumnWidth(2, 75); /* Ca */
51 ui->tableWaters->setColumnWidth(3, 75); /* Mg */ 90 this->tableWaters->setColumnWidth(3, 75); /* Mg */
52 ui->tableWaters->setColumnWidth(4, 75); /* Na */ 91 this->tableWaters->setColumnWidth(4, 75); /* Na */
53 ui->tableWaters->setColumnWidth(5, 75); /* CaCO3 */ 92 this->tableWaters->setColumnWidth(5, 75); /* CaCO3 */
54 ui->tableWaters->setColumnWidth(6, 75); /* Cl */ 93 this->tableWaters->setColumnWidth(6, 75); /* Cl */
55 ui->tableWaters->setColumnWidth(7, 75); /* SO4 */ 94 this->tableWaters->setColumnWidth(7, 75); /* SO4 */
56 ui->tableWaters->setColumnWidth(8, 75); /* pH */ 95 this->tableWaters->setColumnWidth(8, 75); /* pH */
57 ui->tableWaters->setColumnWidth(9, 80); /* Edit button */ 96 this->tableWaters->setColumnWidth(9, 80); /* Edit button */
58 ui->tableWaters->setRowCount(query.size()); 97 this->tableWaters->setRowCount(query.size());
59 ui->tableWaters->setHorizontalHeaderLabels(labels); 98 this->tableWaters->setHorizontalHeaderLabels(labels);
60 ui->tableWaters->verticalHeader()->hide(); 99 this->tableWaters->verticalHeader()->hide();
61 ui->tableWaters->setFixedSize(1130 + 24, 640); /* Even if this is too large, it works */
62 100
63 QTableWidgetItem *rightitem = new QTableWidgetItem(); 101 QTableWidgetItem *rightitem = new QTableWidgetItem();
64 rightitem->setTextAlignment(Qt::AlignRight); 102 rightitem->setTextAlignment(Qt::AlignRight);
65 103
66 query.first(); 104 query.first();
67 for (int ridx = 0 ; ridx < query.size() ; ridx++ ) { 105 for (int ridx = 0 ; ridx < query.size() ; ridx++ ) {
68 ui->tableWaters->setItem(ridx, 0, new QTableWidgetItem(query.value(1).toString())); /* Name */ 106 this->tableWaters->setItem(ridx, 0, new QTableWidgetItem(query.value(1).toString())); /* Name */
69 ui->tableWaters->setItem(ridx, 1, new QTableWidgetItem(query.value(9).toString())); /* Notes */ 107 this->tableWaters->setItem(ridx, 1, new QTableWidgetItem(query.value(9).toString())); /* Notes */
70 108
71 w = QString("%1").arg(query.value(2).toDouble(), 2, 'f', 1, '0' ); /* Ca */ 109 w = QString("%1").arg(query.value(2).toDouble(), 2, 'f', 1, '0' ); /* Ca */
72 QTableWidgetItem *item = new QTableWidgetItem(w); 110 QTableWidgetItem *item = new QTableWidgetItem(w);
73 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); 111 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
74 ui->tableWaters->setItem(ridx, 2, item); 112 this->tableWaters->setItem(ridx, 2, item);
75 113
76 w = QString("%1").arg(query.value(7).toDouble(), 2, 'f', 1, '0' ); /* Mg */ 114 w = QString("%1").arg(query.value(7).toDouble(), 2, 'f', 1, '0' ); /* Mg */
77 item = new QTableWidgetItem(w); 115 item = new QTableWidgetItem(w);
78 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); 116 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
79 ui->tableWaters->setItem(ridx, 3, item); 117 this->tableWaters->setItem(ridx, 3, item);
80 118
81 w = QString("%1").arg(query.value(6).toDouble(), 2, 'f', 1, '0' ); /* Na */ 119 w = QString("%1").arg(query.value(6).toDouble(), 2, 'f', 1, '0' ); /* Na */
82 item = new QTableWidgetItem(w); 120 item = new QTableWidgetItem(w);
83 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); 121 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
84 ui->tableWaters->setItem(ridx, 4, item); 122 this->tableWaters->setItem(ridx, 4, item);
85 123
86 w = QString("%1").arg(query.value(10).toDouble(), 2, 'f', 1, '0' ); /* CaCO3 */ 124 w = QString("%1").arg(query.value(10).toDouble(), 2, 'f', 1, '0' ); /* CaCO3 */
87 item = new QTableWidgetItem(w); 125 item = new QTableWidgetItem(w);
88 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); 126 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
89 ui->tableWaters->setItem(ridx, 5, item); 127 this->tableWaters->setItem(ridx, 5, item);
90 128
91 w = QString("%1").arg(query.value(5).toDouble(), 2, 'f', 1, '0' ); /* Cl */ 129 w = QString("%1").arg(query.value(5).toDouble(), 2, 'f', 1, '0' ); /* Cl */
92 item = new QTableWidgetItem(w); 130 item = new QTableWidgetItem(w);
93 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); 131 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
94 ui->tableWaters->setItem(ridx, 6, item); 132 this->tableWaters->setItem(ridx, 6, item);
95 133
96 w = QString("%1").arg(query.value(4).toDouble(), 2, 'f', 1, '0' ); /* SO4 */ 134 w = QString("%1").arg(query.value(4).toDouble(), 2, 'f', 1, '0' ); /* SO4 */
97 item = new QTableWidgetItem(w); 135 item = new QTableWidgetItem(w);
98 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); 136 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
99 ui->tableWaters->setItem(ridx, 7, item); 137 this->tableWaters->setItem(ridx, 7, item);
100 138
101 w = QString("%1").arg(query.value(8).toDouble(), 2, 'f', 1, '0' ); /* pH */ 139 w = QString("%1").arg(query.value(8).toDouble(), 2, 'f', 1, '0' ); /* pH */
102 item = new QTableWidgetItem(w); 140 item = new QTableWidgetItem(w);
103 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); 141 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
104 ui->tableWaters->setItem(ridx, 8, item); 142 this->tableWaters->setItem(ridx, 8, item);
105 143
106 /* Add the Edit button */ 144 /* Add the Edit button */
107 pWidget = new QWidget(); 145 pWidget = new QWidget();
108 QPushButton* btn_edit = new QPushButton(); 146 QPushButton* btn_edit = new QPushButton();
109 btn_edit->setObjectName(QString("%1").arg(query.value(0).toString())); /* Send record with the button */ 147 btn_edit->setObjectName(QString("%1").arg(query.value(0).toString())); /* Send record with the button */
111 connect(btn_edit, SIGNAL(clicked()), this, SLOT(on_editButton_clicked())); 149 connect(btn_edit, SIGNAL(clicked()), this, SLOT(on_editButton_clicked()));
112 pLayout = new QHBoxLayout(pWidget); 150 pLayout = new QHBoxLayout(pWidget);
113 pLayout->addWidget(btn_edit); 151 pLayout->addWidget(btn_edit);
114 pLayout->setContentsMargins(5, 0, 5, 0); 152 pLayout->setContentsMargins(5, 0, 5, 0);
115 pWidget->setLayout(pLayout); 153 pWidget->setLayout(pLayout);
116 ui->tableWaters->setCellWidget(ridx, 9, pWidget); 154 this->tableWaters->setCellWidget(ridx, 9, pWidget);
117 query.next(); 155 query.next();
118 } 156 }
119
120 setWindowTitle( QString("BMSapp - %1 - Profile Waters").arg(VERSIONSTRING) );
121 } 157 }
122 158
123 159
124 ProfileWaters::~ProfileWaters() 160 ProfileWaters::~ProfileWaters() {}
125 {
126 qDebug() << "ProfileWaters done";
127 delete ui;
128 }
129 161
130 162
131 void ProfileWaters::edit(int recno) 163 void ProfileWaters::edit(int recno)
132 { 164 {
133 qDebug() << "ProfileWaters edit:" << recno;
134
135 EditProfileWater dialog(recno, this); 165 EditProfileWater dialog(recno, this);
136 /* Signal from editor if a refresh is needed */ 166 /* Signal from editor if a refresh is needed */
137 connect(&dialog, SIGNAL(entry_changed()), this, SLOT(refreshTable())); 167 connect(&dialog, SIGNAL(entry_changed()), this, SLOT(refreshTable()));
138 dialog.setModal(true); 168 dialog.setModal(true);
139 dialog.exec(); 169 dialog.exec();
142 172
143 void ProfileWaters::on_editButton_clicked() 173 void ProfileWaters::on_editButton_clicked()
144 { 174 {
145 QPushButton *pb = qobject_cast<QPushButton *>(QObject::sender()); 175 QPushButton *pb = qobject_cast<QPushButton *>(QObject::sender());
146 int recno = pb->objectName().toInt(); 176 int recno = pb->objectName().toInt();
147 qDebug() << Q_FUNC_INFO << recno;
148 edit(recno); 177 edit(recno);
149 } 178 }
150 179
151 180
152 void ProfileWaters::on_insertButton_clicked() 181 void ProfileWaters::on_insertButton_clicked()
153 { 182 {
154 qDebug() << Q_FUNC_INFO;
155 edit(-1); 183 edit(-1);
156 } 184 }
157 185
158 186
159 void ProfileWaters::on_quitButton_clicked()
160 {
161 emit firstWindow();
162 }
163

mercurial