Global table edit lock. The 100% mark is now display only, editing goes into the popup editor.

Mon, 04 Apr 2022 17:19:28 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Mon, 04 Apr 2022 17:19:28 +0200
changeset 106
2924fb71dce9
parent 105
e79079bf013d
child 107
bb4607e23065

Global table edit lock. The 100% mark is now display only, editing goes into the popup editor.

src/EditRecipe.cpp file | annotate | diff | comparison | revisions
src/EditRecipe.h file | annotate | diff | comparison | revisions
--- a/src/EditRecipe.cpp	Mon Apr 04 16:21:38 2022 +0200
+++ b/src/EditRecipe.cpp	Mon Apr 04 17:19:28 2022 +0200
@@ -249,6 +249,7 @@
     connect(ui->ibu_methodEdit, &QComboBox::currentTextChanged, this, &EditRecipe::is_changed);
 
     // All signals from tab "Fermentables"
+    ui->fermentablesTable->setEditTriggers(QAbstractItemView::NoEditTriggers);
     connect(ui->est_og2Edit, &QDoubleSpinBox::textChanged, this, &EditRecipe::is_changed);
     connect(ui->perc_mashShow, &QProgressBar::valueChanged, this, &EditRecipe::on_perc_mash_valueChanged);
     connect(ui->perc_sugarsShow, &QProgressBar::valueChanged, this, &EditRecipe::on_perc_sugars_valueChanged);
@@ -303,39 +304,22 @@
     this->ignoreChanges = true;
 
     const QStringList labels({tr("Supplier"), tr("Fermentable"), tr("EBC"), tr("Type"), tr("Graintype"), tr("When"), tr("Yield"),
-		    	      tr("Amount"), tr("Procent"), tr("100%"), tr("Delete"), tr("Edit"), "13", "14", "15", "16", "17",
-			      "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30" });
+		    	      tr("Amount"), tr("Procent"), tr("100%"), tr("Delete"), tr("Edit") });
     ui->fermentablesTable->setColumnCount(30);
     ui->fermentablesTable->setColumnWidth(0, 150);     /* Supplier	*/
-    ui->fermentablesTable->setColumnWidth(1, 200);     /* Fermentable	*/
+    ui->fermentablesTable->setColumnWidth(1, 225);     /* Fermentable	*/
     ui->fermentablesTable->setColumnWidth(2,  50);     /* Color		*/
     ui->fermentablesTable->setColumnWidth(3,  75);     /* Type		*/
     ui->fermentablesTable->setColumnWidth(4,  75);     /* Graintype	*/
     ui->fermentablesTable->setColumnWidth(5,  75);     /* Added		*/
-    ui->fermentablesTable->setColumnWidth(6,  75);     /* Yield		*/
-    ui->fermentablesTable->setColumnWidth(7,  75);     /* Amount	*/
+    ui->fermentablesTable->setColumnWidth(6,  60);     /* Yield		*/
+    ui->fermentablesTable->setColumnWidth(7,  90);     /* Amount	*/
     ui->fermentablesTable->setColumnWidth(8,  60);     /* Procent	*/
     ui->fermentablesTable->setColumnWidth(9,  50);     /* 100%		*/
     ui->fermentablesTable->setColumnWidth(10, 80);     /* Delete	*/
     ui->fermentablesTable->setColumnWidth(11, 80);     /* Edit		*/
-    ui->fermentablesTable->setColumnHidden(12, true);
-    ui->fermentablesTable->setColumnHidden(13, true);
-    ui->fermentablesTable->setColumnHidden(14, true);
-    ui->fermentablesTable->setColumnHidden(15, true);
-    ui->fermentablesTable->setColumnHidden(16, true);
-    ui->fermentablesTable->setColumnHidden(17, true);
-    ui->fermentablesTable->setColumnHidden(18, true);
-    ui->fermentablesTable->setColumnHidden(19, true);
-    ui->fermentablesTable->setColumnHidden(20, true);
-    ui->fermentablesTable->setColumnHidden(21, true);
-    ui->fermentablesTable->setColumnHidden(22, true);
-    ui->fermentablesTable->setColumnHidden(23, true);
-    ui->fermentablesTable->setColumnHidden(24, true);
-    ui->fermentablesTable->setColumnHidden(25, true);
-    ui->fermentablesTable->setColumnHidden(26, true);
-    ui->fermentablesTable->setColumnHidden(27, true);
-    ui->fermentablesTable->setColumnHidden(28, true);
-    ui->fermentablesTable->setColumnHidden(29, true);
+    for (int i = 12; i < 30; i++)
+    	ui->fermentablesTable->setColumnHidden(i, true);
     ui->fermentablesTable->setHorizontalHeaderLabels(labels);
     ui->fermentablesTable->verticalHeader()->hide();
     ui->fermentablesTable->setRowCount(this->fermentables.array().size());
@@ -350,43 +334,45 @@
             w = QString("%1").arg(obj["f_color"].toDouble(), 1, 'f', 0, '0');
             item = new QTableWidgetItem(w);
             item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
-	    item->setFlags(item->flags() & ~Qt::ItemIsEditable);
             ui->fermentablesTable->setItem(i, 2, item);
 
 	    item = new QTableWidgetItem(f_types[obj["f_type"].toInt()]);
 	    item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter);
-	    item->setFlags(item->flags() & ~Qt::ItemIsEditable);
 	    ui->fermentablesTable->setItem(i, 3, item);
 
             item = new QTableWidgetItem(f_graintypes[obj["f_graintype"].toInt()]);
             item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter);
-	    item->setFlags(item->flags() & ~Qt::ItemIsEditable);
             ui->fermentablesTable->setItem(i, 4, item);
 
             item = new QTableWidgetItem(f_added[obj["f_added"].toInt()]);
             item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter);
             ui->fermentablesTable->setItem(i, 5, item);
 
-            w = QString("%1%").arg(obj["f_yield"].toDouble(), 2, 'f', 1, '0');
-            item = new QTableWidgetItem(w);
+            item = new QTableWidgetItem(QString("%1%").arg(obj["f_yield"].toDouble(), 2, 'f', 1, '0'));
             item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
-	    item->setFlags(item->flags() & ~Qt::ItemIsEditable);
             ui->fermentablesTable->setItem(i, 6, item);
 
-            w = QString("%1 Kg").arg(obj["f_amount"].toDouble(), 4, 'f', 3, '0');
-            item = new QTableWidgetItem(w);
+            item = new QTableWidgetItem(QString("%1 Kg").arg(obj["f_amount"].toDouble(), 4, 'f', 3, '0'));
             item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
             ui->fermentablesTable->setItem(i, 7, item);
 
-            w = QString("%1%").arg(obj["f_percentage"].toDouble(), 2, 'f', 1, '0');
-            item = new QTableWidgetItem(w);
+            item = new QTableWidgetItem(QString("%1%").arg(obj["f_percentage"].toDouble(), 2, 'f', 1, '0'));
             item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
             ui->fermentablesTable->setItem(i, 8, item);
 
-	    QTableWidgetItem *checkBoxItem = new QTableWidgetItem();
-	    checkBoxItem->setCheckState((obj["f_adjust_to_total_100"].toInt()) ? Qt::Checked : Qt::Unchecked);
-	    checkBoxItem->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter);
-            ui->fermentablesTable->setItem(i, 9, checkBoxItem);
+	    if (obj["f_adjust_to_total_100"].toInt()) {
+		pWidget = new QWidget();
+            	label = new QLabel;
+            	label->setPixmap(QPixmap(":icons/silk/tick.png"));
+            	pLayout = new QHBoxLayout(pWidget);
+            	pLayout->addWidget(label);
+            	pLayout->setAlignment(Qt::AlignCenter);
+            	pLayout->setContentsMargins(0, 0, 0, 0);
+            	pWidget->setLayout(pLayout);
+            	ui->fermentablesTable->setCellWidget(i, 9, pWidget);
+	    } else {
+		ui->fermentablesTable->removeCellWidget(i, 9);
+	    }
 
 	    /* Add the Delete row button */
             pWidget = new QWidget();
@@ -821,12 +807,6 @@
 }
 
 
-void EditRecipe::time_changed()
-{
-    is_changed();
-}
-
-
 void EditRecipe::fermentable_Json()
 {
     QTableWidgetItem *item;
--- a/src/EditRecipe.h	Mon Apr 04 16:21:38 2022 +0200
+++ b/src/EditRecipe.h	Mon Apr 04 17:19:28 2022 +0200
@@ -40,7 +40,6 @@
     void is_changed();
     void style_changed();
     void colormethod_changed();
-    void time_changed();
     void refreshFermentables();
     void refreshHops();
     void refreshMiscs();

mercurial