From 3c32c869a61b2d3c783da34d2d023c3bb7027756 Mon Sep 17 00:00:00 2001 From: Roman Telezhynskyi Date: Sat, 25 Jul 2015 18:18:01 +0300 Subject: [PATCH] In some cases need just disable GUI (Read only mode) without writing in file. --HG-- branch : feature --- .../tapeicon/24x24/padlock_locked.png | Bin 375 -> 583 bytes .../tapeicon/24x24/padlock_opened.png | Bin 385 -> 616 bytes src/app/tape/tmainwindow.cpp | 183 +++++++++++------- src/app/tape/tmainwindow.h | 2 + src/app/tape/tmainwindow.ui | 2 +- .../schema/individual_measurements/v0.3.0.xsd | 14 +- src/libs/vformat/vmeasurements.cpp | 16 +- 7 files changed, 136 insertions(+), 81 deletions(-) diff --git a/src/app/tape/share/resources/tapeicon/24x24/padlock_locked.png b/src/app/tape/share/resources/tapeicon/24x24/padlock_locked.png index 7a25deb3a06a6649cc50366a63530b2db3a3a2a4..ac5771edecf633d6bcc243bc91911fd1cbffe3ac 100644 GIT binary patch delta 559 zcmV+~0?_^U0>=c9BYy%8Nkl;VM93#2!Ff;N*yo$4s0pBotvf| zE6wSLxoJKM@*HF@TJ)&@Z_5ShD$jr!xHuHv z%uUnSn$k22V1E~s&ZPpZ0xL0JGT{r$Afm@{fuhIOWB)f+#u}d5MZEB-oZZ z!8az5DVlkU07>cuG8>Vg{d+osi0bM>0jvs=+wOb&v%1Q!g#GHwj|j;7y2H{mCtf3# zJTE}^L2fBriaI(Wib=cX3QwRF_zn6QWW6-aQS9J`B7gV&9=*d0KX#=mPaqF0?;qR};8;n05DNeR002ovPDHLkV1ijt1QY-O delta 349 zcmV-j0iyoL1or}vBYy!tNklzB{;*Q^jKz3NLPBHvfed%lsh=bOboE7 z{KYErm7!?1ZdPGgequ=s@U4cGW3`dNgaN-R`VaV9fNZOH!1081+rz%RON12ixIRm00000NkvXXu0mjfZM3X^ diff --git a/src/app/tape/share/resources/tapeicon/24x24/padlock_opened.png b/src/app/tape/share/resources/tapeicon/24x24/padlock_opened.png index 588e13cdce395e009e85cf926603a26964e6bb25..99d27c81883186a61218515c5dd8eba8bed8c55b 100644 GIT binary patch delta 592 zcmV-W0hBYy%fNkl_8K5eds2i=8(!nVH><*1qcS_P%q@ zJ@f8cv1F}IR@a5@0=Iy(##31bh+WLHuo=ECIwmx#U}PJqQ~m{bVEc8x znHPOL$pY~$<890cn2{Tds{-RQz;j7A|Ehy@lAgkRLX0XtQ45r~vHwldxsZh)C+*-i zVpNfd!uSQ^ilj@Jr;?@!gpjlj-035lCorCwD;qR#fO{beZ$lQ|A?^b^tur^$y>z)i zI!P1bjTx^?et*Bpv-~L5C+a|G5IZnN(yvaDIcnA*27P>80h8FS z_Jy!L?U;yHHl}EUx_q6M5QWeqV8b>-g{1d=okrqPY)%@Dl}^$jW(`r;E=s2frgm3i z+gpg2vak&BS!fI#hAjN<2&9vAXnR-EMdLy!#*#GLMSq;wUO}u>-vA0(0r3$Shb;VT zM|2)>wQ+Oir82v|-4RU?YsQ(-1z>Vaz<5RNQ>`g(;!30+4{Oz$Ea|uxG2aTu>0XE% zx3G?={D^%KEsAT|ss!YoT>m|yu0V{Un%=UojbS!q3$c3yYSaHCniG-GcVGwCg>f#L zxP1Jo$4Raii^GlpZ~#0m_mbuT+e!TQYA>Ope4l0*3Shq*5iWp-k}g+Hb-eYa`xr$V e10R5Ek@pWsN-5$M8w@-E0000i1c3vPBYy!%Nkl-`AqN1G2(55Cv18~Gd;5fvRyf~f+*w_x7FUgR^830Df_5r%jv@Og{owIaT<4C3`x zNg$PcT`3{OmhUp9xEO@INMKa^x}9Xi;l}V>678CYsAoP+yylA|5&02jGxEGFVabxf z>N;;$ibq^w8DP(GHZy+yu&Qi6Of^h#SQsr57^q>DAn6(mS>Sg`{{{Y*K-enoaWEv_ zWReadOnly()); if (ui->tableWidget->rowCount() > 0) { ui->tableWidget->selectRow(0); } + + GUIReadOnly(m->ReadOnly()); // Keep last } catch (VException &e) { @@ -209,6 +210,8 @@ void TMainWindow::FileNew() MeasurementsWasSaved(false); InitWindow(); + + GUIReadOnly(m->ReadOnly()); // Keep last } else { @@ -420,101 +423,71 @@ void TMainWindow::AboutApplication() //--------------------------------------------------------------------------------------------------------------------- void TMainWindow::SaveGivenName() { - m->SetGivenName(ui->lineEditGivenName->text()); - MeasurementsWasSaved(false); + if (m->GivenName() != ui->lineEditGivenName->text()) + { + m->SetGivenName(ui->lineEditGivenName->text()); + MeasurementsWasSaved(false); + } } //--------------------------------------------------------------------------------------------------------------------- void TMainWindow::SaveFamilyName() { - m->SetFamilyName(ui->lineEditFamilyName->text()); - MeasurementsWasSaved(false); + if (m->FamilyName() != ui->lineEditFamilyName->text()) + { + m->SetFamilyName(ui->lineEditFamilyName->text()); + MeasurementsWasSaved(false); + } } //--------------------------------------------------------------------------------------------------------------------- void TMainWindow::SaveEmail() { - m->SetEmail(ui->lineEditEmail->text()); - MeasurementsWasSaved(false); + if (m->Email() != ui->lineEditEmail->text()) + { + m->SetEmail(ui->lineEditEmail->text()); + MeasurementsWasSaved(false); + } } //--------------------------------------------------------------------------------------------------------------------- void TMainWindow::SaveSex(int index) { - m->SetSex(static_cast(ui->comboBoxSex->itemData(index).toInt())); - MeasurementsWasSaved(false); + const SexType type = static_cast(ui->comboBoxSex->itemData(index).toInt()); + if (m->Sex() != type) + { + m->SetSex(type); + MeasurementsWasSaved(false); + } } //--------------------------------------------------------------------------------------------------------------------- void TMainWindow::SaveBirthDate(const QDate &date) { - m->SetBirthDate(date); - MeasurementsWasSaved(false); + if (m->BirthDate() != date) + { + m->SetBirthDate(date); + MeasurementsWasSaved(false); + } } //--------------------------------------------------------------------------------------------------------------------- void TMainWindow::SaveNotes() { - m->SetNotes(ui->plainTextEditNotes->toPlainText()); - MeasurementsWasSaved(false); + if (m->Notes() != ui->plainTextEditNotes->toPlainText()) + { + m->SetNotes(ui->plainTextEditNotes->toPlainText()); + MeasurementsWasSaved(false); + } } //--------------------------------------------------------------------------------------------------------------------- void TMainWindow::ReadOnly(bool ro) { - ui->actionReadOnly->setChecked(ro); - if (ro) - { - ui->actionReadOnly->setIcon(QIcon("://tapeicon/24x24/padlock_locked.png")); - } - else - { - ui->actionReadOnly->setIcon(QIcon("://tapeicon/24x24/padlock_opened.png")); - } m->SetReadOnly(ro); MeasurementsWasSaved(false); - ui->plainTextEditNotes->setReadOnly(ro); - ui->actionAddCustom->setDisabled(ro); - ui->actionAddKnown->setDisabled(ro); - - if (not ro) - { - if (QTableWidgetItem *nameField = ui->tableWidget->item(ui->tableWidget->currentRow(), 0)) - { - if (nameField->text().indexOf(CustomSign) == 0) // Check if custom - { - ui->lineEditName->setReadOnly(ro); - } - } - } - else - { - ui->lineEditName->setReadOnly(ro); - } - ui->plainTextEditDescription->setReadOnly(ro); - - if (mType == MeasurementsType::Individual) - { - ui->lineEditGivenName->setReadOnly(ro); - ui->lineEditFamilyName->setReadOnly(ro); - ui->dateEditBirthDate->setReadOnly(ro); - ui->comboBoxSex->setDisabled(ro); - ui->lineEditEmail->setReadOnly(ro); - - ui->plainTextEditFormula->setReadOnly(ro); - } - else - { - ui->doubleSpinBoxBaseValue->setDisabled(ro); - ui->doubleSpinBoxInSizes->setDisabled(ro); - ui->doubleSpinBoxInHeights->setDisabled(ro); - - gradationHeights->setDisabled(ro); - gradationSizes->setDisabled(ro); - } - - Controls(); // Buttons remove, up, down + GUIReadOnly(ro); } //--------------------------------------------------------------------------------------------------------------------- @@ -854,11 +827,23 @@ void TMainWindow::ShowMData() { ui->plainTextEditDescription->setReadOnly(false); ui->lineEditName->setReadOnly(false); + ui->lineEditFullName->setReadOnly(false); + + if (mType == MeasurementsType::Individual) + { + ui->plainTextEditFormula->setReadOnly(false); + } } else { - ui->plainTextEditDescription->setReadOnly(false); - ui->lineEditName->setReadOnly(false); + ui->plainTextEditDescription->setReadOnly(true); + ui->lineEditName->setReadOnly(true); + ui->lineEditFullName->setReadOnly(true); + + if (mType == MeasurementsType::Individual) + { + ui->plainTextEditFormula->setReadOnly(true); + } } } } @@ -1140,6 +1125,7 @@ void TMainWindow::InitWindow() SCASSERT(m != nullptr); ui->labelToolTip->setVisible(false); ui->tabWidget->setVisible(true); + ui->tabWidget->setCurrentIndex(0); ui->plainTextEditNotes->setEnabled(true); @@ -1557,10 +1543,6 @@ void TMainWindow::Controls() //--------------------------------------------------------------------------------------------------------------------- void TMainWindow::MFields(bool enabled) { - ui->lineEditName->setEnabled(enabled); - ui->plainTextEditDescription->setEnabled(enabled); - ui->lineEditFullName->setEnabled(enabled); - if (mType == MeasurementsType::Standard) { ui->doubleSpinBoxBaseValue->setEnabled(enabled); @@ -1569,7 +1551,6 @@ void TMainWindow::MFields(bool enabled) } else { - ui->plainTextEditFormula->setEnabled(enabled); ui->pushButtonGrow->setEnabled(enabled); ui->toolButtonExpr->setEnabled(enabled); } @@ -1633,6 +1614,68 @@ void TMainWindow::Open(const QString &pathTo, const QString &filter) } } +//--------------------------------------------------------------------------------------------------------------------- +void TMainWindow::GUIReadOnly(bool ro) +{ + ui->actionReadOnly->setChecked(ro); + if (ro) + { + ui->actionReadOnly->setIcon(QIcon("://tapeicon/24x24/padlock_locked.png")); + } + else + { + ui->actionReadOnly->setIcon(QIcon("://tapeicon/24x24/padlock_opened.png")); + } + + ui->plainTextEditNotes->setReadOnly(ro); + ui->actionAddCustom->setDisabled(ro); + ui->actionAddKnown->setDisabled(ro); + + ui->lineEditName->setDisabled(false); + if (not ro) + { + if (QTableWidgetItem *nameField = ui->tableWidget->item(ui->tableWidget->currentRow(), 0)) + { + if (nameField->text().indexOf(CustomSign) == 0) // Check if custom + { + ui->lineEditName->setReadOnly(ro); + } + } + } + else + { + ui->lineEditName->setReadOnly(ro); + } + + ui->plainTextEditDescription->setDisabled(false); + ui->plainTextEditDescription->setReadOnly(ro); + ui->lineEditFullName->setDisabled(false); + ui->lineEditFullName->setReadOnly(ro); + + if (mType == MeasurementsType::Individual) + { + ui->lineEditGivenName->setReadOnly(ro); + ui->lineEditFamilyName->setReadOnly(ro); + ui->dateEditBirthDate->setReadOnly(ro); + ui->comboBoxSex->setDisabled(ro); + ui->lineEditEmail->setReadOnly(ro); + + ui->plainTextEditFormula->setDisabled(false); + ui->plainTextEditFormula->setReadOnly(ro); + } + else + { + ui->doubleSpinBoxBaseValue->setDisabled(ro); + ui->doubleSpinBoxInSizes->setDisabled(ro); + ui->doubleSpinBoxInHeights->setDisabled(ro); + + gradationHeights->setDisabled(ro); + gradationSizes->setDisabled(ro); + } + + Controls(); // Buttons remove, up, down +} + //--------------------------------------------------------------------------------------------------------------------- void TMainWindow::SetDecimals() { diff --git a/src/app/tape/tmainwindow.h b/src/app/tape/tmainwindow.h index 45af6c831..29c675bfd 100644 --- a/src/app/tape/tmainwindow.h +++ b/src/app/tape/tmainwindow.h @@ -69,6 +69,7 @@ private slots: void AboutToShowWindowMenu(); void ShowWindow(); void AboutApplication(); + void SaveGivenName(); void SaveFamilyName(); void SaveEmail(); @@ -144,6 +145,7 @@ private: void EvalFormula(const QString &formula, VContainer *data, QLabel *label); void Open(const QString &pathTo, const QString &filter); + void GUIReadOnly(bool ro); }; #endif // TMAINWINDOW_H diff --git a/src/app/tape/tmainwindow.ui b/src/app/tape/tmainwindow.ui index 60acd6b44..2a3c24d58 100644 --- a/src/app/tape/tmainwindow.ui +++ b/src/app/tape/tmainwindow.ui @@ -32,7 +32,7 @@ - 1 + 0 diff --git a/src/libs/ifc/schema/individual_measurements/v0.3.0.xsd b/src/libs/ifc/schema/individual_measurements/v0.3.0.xsd index 6f2a3248c..d05c3ba4c 100644 --- a/src/libs/ifc/schema/individual_measurements/v0.3.0.xsd +++ b/src/libs/ifc/schema/individual_measurements/v0.3.0.xsd @@ -5,16 +5,16 @@ - - + + - - - - - + + + + + diff --git a/src/libs/vformat/vmeasurements.cpp b/src/libs/vformat/vmeasurements.cpp index 67f705374..329e04d47 100644 --- a/src/libs/vformat/vmeasurements.cpp +++ b/src/libs/vformat/vmeasurements.cpp @@ -304,7 +304,7 @@ void VMeasurements::SetGivenName(const QString &text) //--------------------------------------------------------------------------------------------------------------------- QDate VMeasurements::BirthDate() const { - const QString date = UniqueTagText(TagBirthDate, "1900-01-01"); + const QString date = UniqueTagText(TagBirthDate, "1990-02-15"); return QDate::fromString(date, "yyyy-MM-dd"); } @@ -541,8 +541,18 @@ void VMeasurements::CreateEmptyIndividualFile(Unit unit) QDomElement personal = createElement(TagPersonal); personal.appendChild(createElement(TagGivenName)); - personal.appendChild(createElement(TagBirthDate)); - personal.appendChild(createElement(TagSex)); + personal.appendChild(createElement(TagFamilyName)); + + QDomElement date = createElement(TagBirthDate); + const QDomText newDate = createTextNode(QDate(1990, 02, 15).toString("yyyy-MM-dd")); + date.appendChild(newDate); + personal.appendChild(date); + + QDomElement sex = createElement(TagSex); + const QDomText newSex = createTextNode(GenderToStr(SexType::Male)); + sex.appendChild(newSex); + personal.appendChild(sex); + personal.appendChild(createElement(TagEmail)); mElement.appendChild(personal);