src/MonFermenters.cpp

changeset 312
251b9aaae916
parent 310
bdaac24b86ed
child 315
cf4e83cecdb5
equal deleted inserted replaced
311:449116c083bd 312:251b9aaae916
29 { 29 {
30 qDebug() << "MonFermenters start"; 30 qDebug() << "MonFermenters 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 tableFermenters = new QTableWidget(this);
35 tableSuppliers->setObjectName(QString::fromUtf8("tableSuppliers")); 35 tableFermenters->setObjectName(QString::fromUtf8("tableFermenters"));
36 tableSuppliers->setEnabled(true); 36 tableFermenters->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(tableFermenters->sizePolicy().hasHeightForWidth());
41 tableSuppliers->setSizePolicy(sizePolicy); 41 tableFermenters->setSizePolicy(sizePolicy);
42 tableSuppliers->setMinimumSize(QSize(1054, 0)); 42 tableFermenters->setMinimumSize(QSize(1054, 0));
43 gridLayout->addWidget(tableSuppliers, 0, 0, 1, 1); 43 gridLayout->addWidget(tableFermenters, 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(fromMonFermenters())); 63 connect(quitButton, SIGNAL(clicked()), parent, SLOT(fromMonFermenters()));
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(updateFermenters(QString)), this, SLOT(refreshFermenters(QString)));
75 emit refreshTable(); 66 emit refreshTable();
76 } 67 }
77 68
78 69
79 void MonFermenters::refreshTable() 70 void MonFermenters::refreshTable()
80 { 71 {
72 QTableWidgetItem *item;
73
81 qDebug() << "MonFermenters reload"; 74 qDebug() << "MonFermenters reload";
75 QSqlQuery query("SELECT record,node,alias,online,beercode,beername,mode,air_temperature,beer_temperature FROM mon_fermenters ORDER BY node,alias");
76 const QStringList labels({tr("Node"), tr("Unit"), tr("Status"), tr("Mode"), tr("Beer"), tr("Air"), tr("Beer"), tr("Details")});
82 77
83 // query.exec("SELECT record,node,alias,online FROM mon_fermenters ORDER BY node,alias"); 78 this->tableFermenters->setColumnCount(8);
84 // 79 this->tableFermenters->setColumnWidth(0, 100); /* Node */
85 QSqlQuery query("SELECT * FROM inventory_suppliers ORDER BY name"); 80 this->tableFermenters->setColumnWidth(1, 100); /* Alias */
86 const QStringList labels({tr("Name"), tr("Address"), tr("City"), tr("Country"), tr("Phone"), tr("Edit")}); 81 this->tableFermenters->setColumnWidth(2, 100); /* Status */
87 82 this->tableFermenters->setColumnWidth(3, 100); /* Mode */
88 this->tableSuppliers->setColumnCount(6); 83 this->tableFermenters->setColumnWidth(4, 360); /* Beer */
89 this->tableSuppliers->setColumnWidth(0, 250); /* Name */ 84 this->tableFermenters->setColumnWidth(5, 90); /* Air temp */
90 this->tableSuppliers->setColumnWidth(1, 250); /* Address */ 85 this->tableFermenters->setColumnWidth(6, 90); /* Beer temp */
91 this->tableSuppliers->setColumnWidth(2, 200); /* City */ 86 this->tableFermenters->setColumnWidth(7, 90); /* Edit button */
92 this->tableSuppliers->setColumnWidth(3, 120); /* Country */ 87 this->tableFermenters->setRowCount(query.size());
93 this->tableSuppliers->setColumnWidth(4, 120); /* Phone */ 88 this->tableFermenters->setHorizontalHeaderLabels(labels);
94 this->tableSuppliers->setColumnWidth(5, 90); /* Edit button */ 89 this->tableFermenters->verticalHeader()->hide();
95 this->tableSuppliers->setRowCount(query.size());
96 this->tableSuppliers->setHorizontalHeaderLabels(labels);
97 this->tableSuppliers->verticalHeader()->hide();
98 /* Set the widget size to 1054 x 575 in the ui. */ 90 /* Set the widget size to 1054 x 575 in the ui. */
99 91
100 query.first(); 92 query.first();
101 for (int ridx = 0 ; ridx < query.size() ; ridx++ ) { 93 for (int i = 0 ; i < query.size() ; i++ ) {
102 this->tableSuppliers->setItem(ridx, 0, new QTableWidgetItem(query.value(1).toString())); 94 this->tableFermenters->setItem(i, 0, new QTableWidgetItem(query.value("node").toString()));
103 this->tableSuppliers->setItem(ridx, 1, new QTableWidgetItem(query.value(2).toString())); 95 this->tableFermenters->setItem(i, 1, new QTableWidgetItem(query.value("alias").toString()));
104 this->tableSuppliers->setItem(ridx, 2, new QTableWidgetItem(query.value(3).toString())); 96
105 this->tableSuppliers->setItem(ridx, 3, new QTableWidgetItem(query.value(5).toString())); 97 if (query.value("online").toInt()) {
106 this->tableSuppliers->setItem(ridx, 4, new QTableWidgetItem(query.value(8).toString())); 98 item = new QTableWidgetItem(QString("Ok"));
99 } else {
100 item = new QTableWidgetItem(QString("Offline"));
101 item->setForeground(QBrush(QColor(Qt::red)));
102 }
103 item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter);
104 this->tableFermenters->setItem(i, 2, item);
105
106 item = new QTableWidgetItem(query.value("beercode").toString()+" - "+query.value("beername").toString());
107 this->tableFermenters->setItem(i, 4, item);
108
109 if (query.value("online").toInt()) {
110 item = new QTableWidgetItem(query.value("mode").toString());
111 item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter);
112 this->tableFermenters->setItem(i, 3, item);
113 item = new QTableWidgetItem(QString("%1°C").arg(query.value("air_temperature").toDouble(), 4, 'f', 3, '0'));
114 item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter);
115 this->tableFermenters->setItem(i, 5, item);
116 item = new QTableWidgetItem(QString("%1°C").arg(query.value("beer_temperature").toDouble(), 4, 'f', 3, '0'));
117 item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter);
118 this->tableFermenters->setItem(i, 6, item);
119 } else {
120 this->tableFermenters->setItem(i, 3, new QTableWidgetItem(QString("")));
121 this->tableFermenters->setItem(i, 5, new QTableWidgetItem(QString("")));
122 this->tableFermenters->setItem(i, 6, new QTableWidgetItem(QString("")));
123 }
107 124
108 /* Add the Edit button */ 125 /* Add the Edit button */
109 QWidget* pWidget = new QWidget(); 126 QWidget* pWidget = new QWidget();
110 QPushButton* btn_edit = new QPushButton(); 127 QPushButton* btn_edit = new QPushButton();
111 btn_edit->setObjectName(QString("%1").arg(query.value(0).toString())); /* Send record with the button */ 128 btn_edit->setObjectName(QString("%1").arg(query.value("record").toString())); /* Send record with the button */
112 btn_edit->setText(tr("Edit")); 129 btn_edit->setText(tr("Details"));
113 connect(btn_edit, SIGNAL(clicked()), this, SLOT(on_editButton_clicked())); 130 connect(btn_edit, SIGNAL(clicked()), this, SLOT(on_editButton_clicked()));
114 QHBoxLayout* pLayout = new QHBoxLayout(pWidget); 131 QHBoxLayout* pLayout = new QHBoxLayout(pWidget);
115 pLayout->addWidget(btn_edit); 132 pLayout->addWidget(btn_edit);
116 pLayout->setContentsMargins(5, 0, 5, 0); 133 pLayout->setContentsMargins(5, 0, 5, 0);
117 pWidget->setLayout(pLayout); 134 pWidget->setLayout(pLayout);
118 this->tableSuppliers->setCellWidget(ridx, 5, pWidget); 135 this->tableFermenters->setCellWidget(i, 7, pWidget);
119 query.next(); 136 query.next();
120 } 137 }
121 emit setStatus(QString(tr("Total items: %1")).arg(query.size())); 138 emit setStatus(QString(tr("Total items: %1")).arg(query.size()));
122 } 139 }
123 140
124 141
125 MonFermenters::~MonFermenters() {} 142 MonFermenters::~MonFermenters() {}
126 143
127 144
145 void MonFermenters::refreshFermenters(QString data)
146 {
147 qDebug() << "refreshFermenters" << data;
148 emit refreshTable();
149 }
150
151
128 void MonFermenters::edit(int recno) 152 void MonFermenters::edit(int recno)
129 { 153 {
130 EditSupplier dialog(recno, this); 154 // EditSupplier dialog(recno, this);
131 /* Signal from editor if a refresh is needed */ 155 /* Signal from editor if a refresh is needed */
132 connect(&dialog, SIGNAL(entry_changed()), this, SLOT(refreshTable())); 156 // connect(&dialog, SIGNAL(entry_changed()), this, SLOT(refreshTable()));
133 dialog.setModal(true); 157 // dialog.setModal(true);
134 dialog.exec(); 158 // dialog.exec();
135 } 159 }
136 160
137 161
138 void MonFermenters::on_editButton_clicked() 162 void MonFermenters::on_editButton_clicked()
139 { 163 {
141 int recno = pb->objectName().toInt(); 165 int recno = pb->objectName().toInt();
142 edit(recno); 166 edit(recno);
143 } 167 }
144 168
145 169
146 void MonFermenters::on_insertButton_clicked()
147 {
148 edit(-1);
149 }
150

mercurial