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 { |