29 { |
29 { |
30 qDebug() << "MonCO2meters start"; |
30 qDebug() << "MonCO2meters start"; |
31 |
31 |
32 gridLayout = new QGridLayout(this); |
32 gridLayout = new QGridLayout(this); |
33 gridLayout->setObjectName(QString::fromUtf8("gridLayout")); |
33 gridLayout->setObjectName(QString::fromUtf8("gridLayout")); |
34 tableSuppliers = new QTableWidget(this); |
34 tableCO2meters = new QTableWidget(this); |
35 tableSuppliers->setObjectName(QString::fromUtf8("tableSuppliers")); |
35 tableCO2meters->setObjectName(QString::fromUtf8("tableCO2meters")); |
36 tableSuppliers->setEnabled(true); |
36 tableCO2meters->setEnabled(true); |
37 QSizePolicy sizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding); |
37 QSizePolicy sizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding); |
38 sizePolicy.setHorizontalStretch(0); |
38 sizePolicy.setHorizontalStretch(0); |
39 sizePolicy.setVerticalStretch(0); |
39 sizePolicy.setVerticalStretch(0); |
40 sizePolicy.setHeightForWidth(tableSuppliers->sizePolicy().hasHeightForWidth()); |
40 sizePolicy.setHeightForWidth(tableCO2meters->sizePolicy().hasHeightForWidth()); |
41 tableSuppliers->setSizePolicy(sizePolicy); |
41 tableCO2meters->setSizePolicy(sizePolicy); |
42 tableSuppliers->setMinimumSize(QSize(1054, 0)); |
42 tableCO2meters->setMinimumSize(QSize(1054, 0)); |
43 gridLayout->addWidget(tableSuppliers, 0, 0, 1, 1); |
43 gridLayout->addWidget(tableCO2meters, 0, 0, 1, 1); |
44 |
44 |
45 groupBox = new QGroupBox(this); |
45 groupBox = new QGroupBox(this); |
46 groupBox->setObjectName(QString::fromUtf8("groupBox")); |
46 groupBox->setObjectName(QString::fromUtf8("groupBox")); |
47 groupBox->setEnabled(true); |
47 groupBox->setEnabled(true); |
48 groupBox->setFlat(false); |
48 groupBox->setFlat(false); |
55 quitButton->setMinimumSize(QSize(80, 24)); |
55 quitButton->setMinimumSize(QSize(80, 24)); |
56 quitButton->setText(tr("Quit")); |
56 quitButton->setText(tr("Quit")); |
57 QIcon icon; |
57 QIcon icon; |
58 icon.addFile(QString::fromUtf8(":icons/silk/door_out.png"), QSize(), QIcon::Normal, QIcon::Off); |
58 icon.addFile(QString::fromUtf8(":icons/silk/door_out.png"), QSize(), QIcon::Normal, QIcon::Off); |
59 quitButton->setIcon(icon); |
59 quitButton->setIcon(icon); |
60 horizontalLayout->addWidget(quitButton, 0, Qt::AlignLeft); |
60 horizontalLayout->addWidget(quitButton, 0, Qt::AlignCenter); |
61 |
|
62 insertButton = new QPushButton(groupBox); |
|
63 insertButton->setObjectName(QString::fromUtf8("insertButton")); |
|
64 insertButton->setMinimumSize(QSize(80, 24)); |
|
65 insertButton->setText(tr("New")); |
|
66 QIcon icon1; |
|
67 icon1.addFile(QString::fromUtf8(":icons/silk/table_row_insert.png"), QSize(), QIcon::Normal, QIcon::Off); |
|
68 insertButton->setIcon(icon1); |
|
69 horizontalLayout->addWidget(insertButton, 0, Qt::AlignRight); |
|
70 gridLayout->addWidget(groupBox, 1, 0, 1, 1); |
61 gridLayout->addWidget(groupBox, 1, 0, 1, 1); |
71 |
62 |
72 connect(quitButton, SIGNAL(clicked()), parent, SLOT(fromMonCO2meters())); |
63 connect(quitButton, SIGNAL(clicked()), parent, SLOT(fromMonCO2meters())); |
73 connect(insertButton, SIGNAL(clicked()), this, SLOT(on_insertButton_clicked())); |
|
74 connect(this, SIGNAL(setStatus(QString)), parent, SLOT(statusMsg(QString))); |
64 connect(this, SIGNAL(setStatus(QString)), parent, SLOT(statusMsg(QString))); |
|
65 connect(parent, SIGNAL(updateCO2meters(QString)), this, SLOT(refreshCO2meters(QString))); |
75 emit refreshTable(); |
66 emit refreshTable(); |
76 } |
67 } |
77 |
68 |
78 |
69 |
79 void MonCO2meters::refreshTable() |
70 void MonCO2meters::refreshTable() |
80 { |
71 { |
|
72 QTableWidgetItem *item; |
|
73 |
81 qDebug() << "MonCO2meters reload"; |
74 qDebug() << "MonCO2meters reload"; |
|
75 QSqlQuery query("SELECT record,node,alias,online,mode,beercode,beername,temperature,pressure_bar FROM mon_co2meters ORDER BY node,alias"); |
|
76 const QStringList labels({tr("Node"), tr("Unit"), tr("Status"), tr("Beer"), tr("Temperature"), tr("Pressure"), tr("Details")}); |
82 |
77 |
83 // query.exec("SELECT record,node,alias,online FROM mon_co2meters ORDER BY node,alias"); |
78 this->tableCO2meters->setColumnCount(7); |
84 QSqlQuery query("SELECT * FROM inventory_suppliers ORDER BY name"); |
79 this->tableCO2meters->setColumnWidth(0, 150); /* Node */ |
85 const QStringList labels({tr("Name"), tr("Address"), tr("City"), tr("Country"), tr("Phone"), tr("Edit")}); |
80 this->tableCO2meters->setColumnWidth(1, 100); /* Unit */ |
86 |
81 this->tableCO2meters->setColumnWidth(2, 100); /* Status */ |
87 this->tableSuppliers->setColumnCount(6); |
82 this->tableCO2meters->setColumnWidth(3, 390); /* Beer */ |
88 this->tableSuppliers->setColumnWidth(0, 250); /* Name */ |
83 this->tableCO2meters->setColumnWidth(4, 100); /* Temperature */ |
89 this->tableSuppliers->setColumnWidth(1, 250); /* Address */ |
84 this->tableCO2meters->setColumnWidth(5, 100); /* Pressure */ |
90 this->tableSuppliers->setColumnWidth(2, 200); /* City */ |
85 this->tableCO2meters->setColumnWidth(6, 90); /* Edit button */ |
91 this->tableSuppliers->setColumnWidth(3, 120); /* Country */ |
86 this->tableCO2meters->setRowCount(query.size()); |
92 this->tableSuppliers->setColumnWidth(4, 120); /* Phone */ |
87 this->tableCO2meters->setHorizontalHeaderLabels(labels); |
93 this->tableSuppliers->setColumnWidth(5, 90); /* Edit button */ |
88 this->tableCO2meters->verticalHeader()->hide(); |
94 this->tableSuppliers->setRowCount(query.size()); |
|
95 this->tableSuppliers->setHorizontalHeaderLabels(labels); |
|
96 this->tableSuppliers->verticalHeader()->hide(); |
|
97 /* Set the widget size to 1054 x 575 in the ui. */ |
89 /* Set the widget size to 1054 x 575 in the ui. */ |
98 |
90 |
99 query.first(); |
91 query.first(); |
100 for (int ridx = 0 ; ridx < query.size() ; ridx++ ) { |
92 for (int i = 0 ; i < query.size() ; i++ ) { |
101 this->tableSuppliers->setItem(ridx, 0, new QTableWidgetItem(query.value(1).toString())); |
93 this->tableCO2meters->setItem(i, 0, new QTableWidgetItem(query.value("node").toString())); |
102 this->tableSuppliers->setItem(ridx, 1, new QTableWidgetItem(query.value(2).toString())); |
94 this->tableCO2meters->setItem(i, 1, new QTableWidgetItem(query.value("alias").toString())); |
103 this->tableSuppliers->setItem(ridx, 2, new QTableWidgetItem(query.value(3).toString())); |
95 |
104 this->tableSuppliers->setItem(ridx, 3, new QTableWidgetItem(query.value(5).toString())); |
96 if (query.value("online").toInt()) { |
105 this->tableSuppliers->setItem(ridx, 4, new QTableWidgetItem(query.value(8).toString())); |
97 item = new QTableWidgetItem(QString("Ok")); |
|
98 } else { |
|
99 item = new QTableWidgetItem(QString("Offline")); |
|
100 item->setForeground(QBrush(QColor(Qt::red))); |
|
101 } |
|
102 item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); |
|
103 this->tableCO2meters->setItem(i, 2, item); |
|
104 |
|
105 if (query.value("mode").toString() == "ON") { |
|
106 item = new QTableWidgetItem(query.value("beercode").toString()+" - "+query.value("beername").toString()); |
|
107 this->tableCO2meters->setItem(i, 3, item); |
|
108 } else { |
|
109 this->tableCO2meters->setItem(i, 3, new QTableWidgetItem(QString(""))); |
|
110 } |
|
111 |
|
112 if (query.value("online").toInt()) { |
|
113 item = new QTableWidgetItem(QString("%1°C").arg(query.value("temperature").toDouble(), 4, 'f', 3, '0')); |
|
114 item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); |
|
115 this->tableCO2meters->setItem(i, 4, item); |
|
116 item = new QTableWidgetItem(QString("%1 bar").arg(query.value("pressure_bar").toDouble(), 2, 'f', 1, '0')); |
|
117 item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); |
|
118 this->tableCO2meters->setItem(i, 5, item); |
|
119 } else { |
|
120 this->tableCO2meters->setItem(i, 4, new QTableWidgetItem(QString(""))); |
|
121 this->tableCO2meters->setItem(i, 5, new QTableWidgetItem(QString(""))); |
|
122 } |
106 |
123 |
107 /* Add the Edit button */ |
124 /* Add the Edit button */ |
108 QWidget* pWidget = new QWidget(); |
125 QWidget* pWidget = new QWidget(); |
109 QPushButton* btn_edit = new QPushButton(); |
126 QPushButton* btn_edit = new QPushButton(); |
110 btn_edit->setObjectName(QString("%1").arg(query.value(0).toString())); /* Send record with the button */ |
127 btn_edit->setObjectName(QString("%1").arg(query.value(0).toString())); /* Send record with the button */ |
111 btn_edit->setText(tr("Edit")); |
128 btn_edit->setText(tr("Details")); |
112 connect(btn_edit, SIGNAL(clicked()), this, SLOT(on_editButton_clicked())); |
129 connect(btn_edit, SIGNAL(clicked()), this, SLOT(on_editButton_clicked())); |
113 QHBoxLayout* pLayout = new QHBoxLayout(pWidget); |
130 QHBoxLayout* pLayout = new QHBoxLayout(pWidget); |
114 pLayout->addWidget(btn_edit); |
131 pLayout->addWidget(btn_edit); |
115 pLayout->setContentsMargins(5, 0, 5, 0); |
132 pLayout->setContentsMargins(5, 0, 5, 0); |
116 pWidget->setLayout(pLayout); |
133 pWidget->setLayout(pLayout); |
117 this->tableSuppliers->setCellWidget(ridx, 5, pWidget); |
134 this->tableCO2meters->setCellWidget(i, 6, pWidget); |
118 query.next(); |
135 query.next(); |
119 } |
136 } |
120 emit setStatus(QString(tr("Total items: %1")).arg(query.size())); |
137 emit setStatus(QString(tr("Total items: %1")).arg(query.size())); |
121 } |
138 } |
122 |
139 |
123 |
140 |
124 MonCO2meters::~MonCO2meters() {} |
141 MonCO2meters::~MonCO2meters() {} |
125 |
142 |
126 |
143 |
|
144 void MonCO2meters::refreshCO2meters(QString data) |
|
145 { |
|
146 qDebug() << "refreshCO2meters" << data; |
|
147 emit refreshTable(); |
|
148 } |
|
149 |
|
150 |
127 void MonCO2meters::edit(int recno) |
151 void MonCO2meters::edit(int recno) |
128 { |
152 { |
129 EditSupplier dialog(recno, this); |
153 // EditSupplier dialog(recno, this); |
130 /* Signal from editor if a refresh is needed */ |
154 /* Signal from editor if a refresh is needed */ |
131 connect(&dialog, SIGNAL(entry_changed()), this, SLOT(refreshTable())); |
155 // connect(&dialog, SIGNAL(entry_changed()), this, SLOT(refreshTable())); |
132 dialog.setModal(true); |
156 // dialog.setModal(true); |
133 dialog.exec(); |
157 // dialog.exec(); |
134 } |
158 } |
135 |
159 |
136 |
160 |
137 void MonCO2meters::on_editButton_clicked() |
161 void MonCO2meters::on_editButton_clicked() |
138 { |
162 { |