src/MonCO2meters.cpp

changeset 313
966b5de3182e
parent 310
bdaac24b86ed
child 326
6728b4c29cb4
equal deleted inserted replaced
312:251b9aaae916 313:966b5de3182e
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 {
140 int recno = pb->objectName().toInt(); 164 int recno = pb->objectName().toInt();
141 edit(recno); 165 edit(recno);
142 } 166 }
143 167
144 168
145 void MonCO2meters::on_insertButton_clicked()
146 {
147 edit(-1);
148 }
149

mercurial