From 730ed3006d01b612ab0b58f074bc73241fc70675 Mon Sep 17 00:00:00 2001 From: dismine Date: Wed, 1 Oct 2014 12:58:38 +0300 Subject: [PATCH] Base value in standard table cannot be modified. --HG-- branch : develop --- src/app/dialogs/app/dialogincrements.cpp | 46 +++++++++++------------- src/app/dialogs/app/dialogincrements.h | 1 + 2 files changed, 21 insertions(+), 26 deletions(-) diff --git a/src/app/dialogs/app/dialogincrements.cpp b/src/app/dialogs/app/dialogincrements.cpp index dd62bf0f2..54c2d40ac 100644 --- a/src/app/dialogs/app/dialogincrements.cpp +++ b/src/app/dialogs/app/dialogincrements.cpp @@ -165,10 +165,7 @@ void DialogIncrements::FillMeasurements() item->setTextAlignment(Qt::AlignHCenter); item->setFont(QFont("Times", 12, QFont::Bold)); item->setToolTip(m->GetGuiText()); - // set the item non-editable (view only), and non-selectable - Qt::ItemFlags flags = item->flags(); - flags &= ~(Qt::ItemIsSelectable | Qt::ItemIsEditable); // reset/clear the flag - item->setFlags(flags); + SetItemViewOnly(item); item->setTextAlignment(Qt::AlignLeft); ui->tableWidgetMeasurements->setItem(currentRow, 0, item); @@ -177,50 +174,41 @@ void DialogIncrements::FillMeasurements() QTableWidgetItem *item = new QTableWidgetItem(QString() .setNum(data->GetTableValue(qApp->VarFromUser(iMap.key())))); item->setTextAlignment(Qt::AlignHCenter); - // set the item non-editable (view only), and non-selectable - Qt::ItemFlags flags = item->flags(); - flags &= ~(Qt::ItemIsSelectable | Qt::ItemIsEditable); // reset/clear the flag - item->setFlags(flags); + SetItemViewOnly(item); ui->tableWidgetMeasurements->setItem(currentRow, 1, item);// calculated value } item = new QTableWidgetItem(QString().setNum(m->GetBase())); item->setTextAlignment(Qt::AlignHCenter); + if (qApp->patternType() == MeasurementsType::Standard) + { + SetItemViewOnly(item); + } ui->tableWidgetMeasurements->setItem(currentRow, 2, item); if (qApp->patternType() == MeasurementsType::Standard) { QTableWidgetItem *item = new QTableWidgetItem(QString().setNum(m->GetKsize())); item->setTextAlignment(Qt::AlignHCenter); - // set the item non-editable (view only), and non-selectable - Qt::ItemFlags flags = item->flags(); - flags &= ~(Qt::ItemIsSelectable | Qt::ItemIsEditable); // reset/clear the flag - item->setFlags(flags); + SetItemViewOnly(item); ui->tableWidgetMeasurements->setItem(currentRow, 3, item);// in sizes item = new QTableWidgetItem(QString().setNum(m->GetKheight())); item->setTextAlignment(Qt::AlignHCenter); - // set the item non-editable (view only), and non-selectable - flags = item->flags(); - flags &= ~(Qt::ItemIsSelectable | Qt::ItemIsEditable); // reset/clear the flag - item->setFlags(flags); + SetItemViewOnly(item); ui->tableWidgetMeasurements->setItem(currentRow, 4, item);// in heights } item = new QTableWidgetItem(m->GetDescription()); item->setToolTip(m->GetDescription()); - item->setTextAlignment(Qt::AlignHCenter); - // set the item non-editable (view only), and non-selectable - flags = item->flags(); - flags &= ~(Qt::ItemIsSelectable | Qt::ItemIsEditable); // reset/clear the flag - item->setFlags(flags); + SetItemViewOnly(item); item->setTextAlignment(Qt::AlignLeft); ui->tableWidgetMeasurements->setItem(currentRow, 5, item); } + ui->tableWidgetMeasurements->setRowCount(currentRow+1); ui->tableWidgetMeasurements->verticalHeader()->setDefaultSectionSize(20); ui->tableWidgetMeasurements->resizeColumnsToContents(); ui->tableWidgetMeasurements->resizeRowsToContents(); - ui->tableWidgetMeasurements->setRowCount(currentRow+1); } //--------------------------------------------------------------------------------------------------------------------- @@ -258,10 +246,7 @@ void DialogIncrements::FillIncrements() { item = new QTableWidgetItem(QString().setNum(data->GetTableValue(iMap.value()))); item->setTextAlignment(Qt::AlignHCenter); - // set the item non-editable (view only), and non-selectable - Qt::ItemFlags flags = item->flags(); - flags &= ~(Qt::ItemIsSelectable | Qt::ItemIsEditable); // reset/clear the flag - item->setFlags(flags); + SetItemViewOnly(item); ui->tableWidgetIncrement->setItem(currentRow, 1, item); } @@ -350,6 +335,15 @@ void DialogIncrements::FillLengthArcs() FillTable(data->DataLengthArcs(), ui->tableWidgetArcs); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogIncrements::SetItemViewOnly(QTableWidgetItem *item) +{ + // set the item non-editable (view only), and non-selectable + Qt::ItemFlags flags = item->flags(); + flags &= ~(Qt::ItemIsSelectable | Qt::ItemIsEditable); // reset/clear the flag + item->setFlags(flags); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogIncrements::ShowMeasurements() { diff --git a/src/app/dialogs/app/dialogincrements.h b/src/app/dialogs/app/dialogincrements.h index a1bd11ca8..867f389d8 100644 --- a/src/app/dialogs/app/dialogincrements.h +++ b/src/app/dialogs/app/dialogincrements.h @@ -103,6 +103,7 @@ private: void AddIncrementToFile(const quint32 &id, const QString &name, const qreal &base, const qreal &ksize, const qreal &kheight, const QString &description); void HideColumns(QTableWidget *table); + void SetItemViewOnly(QTableWidgetItem *item); }; #endif // DIALOGINCREMENTS_H