From 5ba6d62d94923b520e6345ec39931f76a23f082a Mon Sep 17 00:00:00 2001 From: Roman Telezhynskyi Date: Sat, 18 Jul 2015 14:08:44 +0300 Subject: [PATCH] Save basic information in file. --HG-- branch : feature --- src/app/tape/dialogs/dialogabouttape.ui | 6 +- .../tape/dialogs/dialognewmeasurements.cpp | 4 +- src/app/tape/tmainwindow.cpp | 91 +++++++++++++++++-- src/app/tape/tmainwindow.h | 7 ++ src/app/tape/tmainwindow.ui | 6 -- src/app/valentina/dialogs/dialogincrements.ui | 8 +- src/libs/ifc/xml/vdomdocument.cpp | 10 +- src/libs/vformat/vmeasurements.cpp | 37 ++++++++ src/libs/vformat/vmeasurements.h | 4 + 9 files changed, 149 insertions(+), 24 deletions(-) diff --git a/src/app/tape/dialogs/dialogabouttape.ui b/src/app/tape/dialogs/dialogabouttape.ui index f19a4a772..9df2b3409 100644 --- a/src/app/tape/dialogs/dialogabouttape.ui +++ b/src/app/tape/dialogs/dialogabouttape.ui @@ -17,7 +17,11 @@ - Dialog + About Tape + + + + :/tapeicon/64x64/logo.png:/tapeicon/64x64/logo.png diff --git a/src/app/tape/dialogs/dialognewmeasurements.cpp b/src/app/tape/dialogs/dialognewmeasurements.cpp index dd4ba875e..f66081276 100644 --- a/src/app/tape/dialogs/dialognewmeasurements.cpp +++ b/src/app/tape/dialogs/dialognewmeasurements.cpp @@ -76,13 +76,13 @@ Unit DialogNewMeasurements::MUnit() const //--------------------------------------------------------------------------------------------------------------------- int DialogNewMeasurements::BaseSize() const { - return ui->comboBoxBaseSize->currentData().toInt(); + return ui->comboBoxBaseSize->currentText().toInt(); } //--------------------------------------------------------------------------------------------------------------------- int DialogNewMeasurements::BaseHeight() const { - return ui->comboBoxBaseHeight->currentData().toInt(); + return ui->comboBoxBaseHeight->currentText().toInt(); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/app/tape/tmainwindow.cpp b/src/app/tape/tmainwindow.cpp index 4a0ced890..c8b44eda7 100644 --- a/src/app/tape/tmainwindow.cpp +++ b/src/app/tape/tmainwindow.cpp @@ -163,6 +163,57 @@ void TMainWindow::AboutApplication() aboutDialog->show(); } +//--------------------------------------------------------------------------------------------------------------------- +void TMainWindow::SaveGivenName() +{ + m->SetGivenName(ui->lineEditGivenName->text()); +} + +//--------------------------------------------------------------------------------------------------------------------- +void TMainWindow::SaveFamilyName() +{ + m->SetFamilyName(ui->lineEditFamilyName->text()); +} + +//--------------------------------------------------------------------------------------------------------------------- +void TMainWindow::SaveEmail() +{ + m->SetEmail(ui->lineEditEmail->text()); +} + +//--------------------------------------------------------------------------------------------------------------------- +void TMainWindow::SaveSex(int index) +{ + m->SetSex(static_cast(ui->comboBoxSex->itemData(index).toInt())); +} + +//--------------------------------------------------------------------------------------------------------------------- +void TMainWindow::SaveBirthDate(const QDate &date) +{ + m->SetBirthDate(date); +} + +//--------------------------------------------------------------------------------------------------------------------- +void TMainWindow::SaveNotes() +{ + m->SetNotes(ui->plainTextEditNotes->toPlainText()); +} + +//--------------------------------------------------------------------------------------------------------------------- +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); +} + //--------------------------------------------------------------------------------------------------------------------- void TMainWindow::SetupMenu() { @@ -179,17 +230,11 @@ void TMainWindow::SetupMenu() connect(ui->actionSaveAs, &QAction::triggered, this, &TMainWindow::FileSaveAs); ui->actionSaveAs->setShortcuts(QKeySequence::SaveAs); - QAction *separatorAct = new QAction(this); - separatorAct->setSeparator(true); - ui->menuFile->insertAction(ui->actionQuit, separatorAct); + connect(ui->actionReadOnly, &QAction::triggered, this, &TMainWindow::ReadOnly); connect(ui->actionQuit, &QAction::triggered, this, &TMainWindow::close); ui->actionQuit->setShortcuts(QKeySequence::Quit); - // Edit - //ui->actionUndo->setShortcuts(QKeySequence::Undo); - //ui->actionRedo->setShortcuts(QKeySequence::Redo); - // Window connect(ui->menuWindow, &QMenu::aboutToShow, this, &TMainWindow::AboutToShowWindowMenu); AboutToShowWindowMenu(); @@ -211,13 +256,19 @@ void TMainWindow::InitWindow() if (mType == MeasurementsType::Standard) { ui->labelMType->setText(tr("Standard measurements")); - ui->labelBaseSizeValue->setText(QString().setNum(m->BaseSize()) + VDomDocument::UnitsToStr(m->MUnit(), true)); - ui->labelBaseHeightValue->setText(QString().setNum(m->BaseHeight()) + - VDomDocument::UnitsToStr(m->MUnit(), true)); + ui->labelBaseSizeValue->setText(QString().setNum(m->BaseSize()) + " " + + VDomDocument::UnitsToStr(m->MUnit(), true)); + ui->labelBaseHeightValue->setText(QString().setNum(m->BaseHeight()) + " " + + VDomDocument::UnitsToStr(m->MUnit(), true)); // Tab Measurements delete ui->labelValue; delete ui->horizontalLayoutValue; + delete ui->plainTextEditFormula; + delete ui->pushButtonGrowLength; + delete ui->toolButtonExprLength; + delete ui->labelEqual; + delete ui->labelResultCalculation; // Tab Information delete ui->labelGivenName; @@ -254,6 +305,26 @@ void TMainWindow::InitWindow() delete ui->labelBaseSizeValue; delete ui->labelBaseHeight; delete ui->labelBaseHeightValue; + + ui->lineEditGivenName->setText(m->GivenName()); + ui->lineEditFamilyName->setText(m->FamilyName()); + + ui->comboBoxSex->addItem(tr("male"), QVariant(static_cast(SexType::Male))); + ui->comboBoxSex->addItem(tr("female"), QVariant(static_cast(SexType::Female))); + const qint32 index = ui->comboBoxSex->findData(static_cast(m->Sex())); + ui->comboBoxSex->setCurrentIndex(index); + + ui->dateEditBirthDate->setDate(m->BirthDate()); + ui->lineEditEmail->setText(m->Email()); + ui->plainTextEditNotes->setPlainText(m->Notes()); + + connect(ui->lineEditGivenName, &QLineEdit::editingFinished, this, &TMainWindow::SaveGivenName); + connect(ui->lineEditFamilyName, &QLineEdit::editingFinished, this, &TMainWindow::SaveFamilyName); + connect(ui->lineEditEmail, &QLineEdit::editingFinished, this, &TMainWindow::SaveEmail); + connect(ui->comboBoxSex, static_cast(&QComboBox::currentIndexChanged), this, + &TMainWindow::SaveSex); + connect(ui->dateEditBirthDate, &QDateEdit::dateChanged, this, &TMainWindow::SaveBirthDate); + connect(ui->plainTextEditNotes, &QPlainTextEdit::textChanged, this, &TMainWindow::SaveNotes); } ui->actionAddCustom->setEnabled(true); diff --git a/src/app/tape/tmainwindow.h b/src/app/tape/tmainwindow.h index cae0c79e6..4f362dfbb 100644 --- a/src/app/tape/tmainwindow.h +++ b/src/app/tape/tmainwindow.h @@ -58,6 +58,13 @@ private slots: void AboutToShowWindowMenu(); void ShowWindow(); void AboutApplication(); + void SaveGivenName(); + void SaveFamilyName(); + void SaveEmail(); + void SaveSex(int index); + void SaveBirthDate(const QDate & date); + void SaveNotes(); + void ReadOnly(bool ro); private: Q_DISABLE_COPY(TMainWindow) diff --git a/src/app/tape/tmainwindow.ui b/src/app/tape/tmainwindow.ui index 18bc668bb..ed0a05f8a 100644 --- a/src/app/tape/tmainwindow.ui +++ b/src/app/tape/tmainwindow.ui @@ -606,13 +606,7 @@ - - - Edit - - - diff --git a/src/app/valentina/dialogs/dialogincrements.ui b/src/app/valentina/dialogs/dialogincrements.ui index 45c72deec..1ce0b79c3 100644 --- a/src/app/valentina/dialogs/dialogincrements.ui +++ b/src/app/valentina/dialogs/dialogincrements.ui @@ -39,7 +39,7 @@ QTabWidget::North - 1 + 0 @@ -108,7 +108,7 @@ - 1 + 0 @@ -118,8 +118,8 @@ 0 0 - 559 - 82 + 939 + 411 diff --git a/src/libs/ifc/xml/vdomdocument.cpp b/src/libs/ifc/xml/vdomdocument.cpp index 3487d54f9..8415cbfd5 100644 --- a/src/libs/ifc/xml/vdomdocument.cpp +++ b/src/libs/ifc/xml/vdomdocument.cpp @@ -377,7 +377,15 @@ QString VDomDocument::UniqueTagText(const QString &tagName, const QString &defVa const QDomElement domElement = domNode.toElement(); if (domElement.isNull() == false) { - return domElement.text(); + const QString text = domElement.text(); + if (text.isEmpty()) + { + return defVal; + } + else + { + return text; + } } } } diff --git a/src/libs/vformat/vmeasurements.cpp b/src/libs/vformat/vmeasurements.cpp index cd451abad..aee1fd0f0 100644 --- a/src/libs/vformat/vmeasurements.cpp +++ b/src/libs/vformat/vmeasurements.cpp @@ -43,6 +43,7 @@ const QString VMeasurements::TagGivenName = QStringLiteral("given-name"); const QString VMeasurements::TagBirthDate = QStringLiteral("birth-date"); const QString VMeasurements::TagSex = QStringLiteral("sex"); const QString VMeasurements::TagEmail = QStringLiteral("email"); +const QString VMeasurements::TagReadOnly = QStringLiteral("read-only"); const QString VMeasurements::AttrBase = QStringLiteral("base"); @@ -198,6 +199,32 @@ void VMeasurements::SetEmail(const QString &text) setTagText(TagEmail, text); } +//--------------------------------------------------------------------------------------------------------------------- +bool VMeasurements::ReadOnly() const +{ + if (UniqueTagText(TagReadOnly, "false") == "true") + { + return true; + } + else + { + return false; + } +} + +//--------------------------------------------------------------------------------------------------------------------- +void VMeasurements::SetReadOnly(bool ro) +{ + if (ro) + { + setTagText(TagReadOnly, "true"); + } + else + { + setTagText(TagReadOnly, "false"); + } +} + //--------------------------------------------------------------------------------------------------------------------- QString VMeasurements::GenderToStr(const SexType &sex) { @@ -244,6 +271,11 @@ void VMeasurements::CreateEmptyStandardFile(Unit unit, int baseSize, int baseHei version.appendChild(newNodeText); mElement.appendChild(version); + QDomElement ro = createElement(TagReadOnly); + const QDomText roNodeText = createTextNode(false); + ro.appendChild(roNodeText); + mElement.appendChild(ro); + mElement.appendChild(createElement(TagNotes)); QDomElement mUnit = createElement(TagUnit); @@ -278,6 +310,11 @@ void VMeasurements::CreateEmptyIndividualFile(Unit unit) version.appendChild(newNodeText); mElement.appendChild(version); + QDomElement ro = createElement(TagReadOnly); + const QDomText roNodeText = createTextNode(false); + ro.appendChild(roNodeText); + mElement.appendChild(ro); + mElement.appendChild(createElement(TagNotes)); QDomElement mUnit = createElement(TagUnit); diff --git a/src/libs/vformat/vmeasurements.h b/src/libs/vformat/vmeasurements.h index 64ebc9af8..34c7ad154 100644 --- a/src/libs/vformat/vmeasurements.h +++ b/src/libs/vformat/vmeasurements.h @@ -66,6 +66,9 @@ public: QString Email() const; void SetEmail(const QString &text); + bool ReadOnly() const; + void SetReadOnly(bool ro); + static const QString TagVST; static const QString TagVIT; static const QString TagBodyMeasurements; @@ -79,6 +82,7 @@ public: static const QString TagBirthDate; static const QString TagSex; static const QString TagEmail; + static const QString TagReadOnly; static const QString AttrBase;