diff --git a/src/app/valentina/mainwindow.cpp b/src/app/valentina/mainwindow.cpp index 6eee2d14f..0f5cf844f 100644 --- a/src/app/valentina/mainwindow.cpp +++ b/src/app/valentina/mainwindow.cpp @@ -327,12 +327,19 @@ MainWindow::MainWindow(QWidget *parent) ui->plainTextEditPatternMessages->SetFilter(text); }); - connect(ui->toolButtonClearMessages, &QToolButton::clicked, this, [this]() + connect(ui->toolButtonClearMessages, &QToolButton::clicked, this, &MainWindow::ClearPatternMessages); + + ui->toolButtonAutoRefresh->setChecked(qApp->ValentinaSettings()->GetAutoRefreshPatternMessage()); + connect(ui->toolButtonAutoRefresh, &QToolButton::clicked, this, [](bool checked) { - ui->plainTextEditPatternMessages->clear(); - if (not m_unreadPatternMessage.isNull()) + qApp->ValentinaSettings()->SetAutoRefreshPatternMessage(checked); + }); + + connect(doc, &VPattern::PreParseState, this, [this]() + { + if (ui->toolButtonAutoRefresh->isChecked()) { - m_unreadPatternMessage->setText(QString()); + ClearPatternMessages(); } }); } @@ -3703,6 +3710,16 @@ void MainWindow::ShowProgress() } } +//--------------------------------------------------------------------------------------------------------------------- +void MainWindow::ClearPatternMessages() +{ + ui->plainTextEditPatternMessages->clear(); + if (not m_unreadPatternMessage.isNull()) + { + m_unreadPatternMessage->setText(QString()); + } +} + //--------------------------------------------------------------------------------------------------------------------- void MainWindow::SetDefaultHeight() { diff --git a/src/app/valentina/mainwindow.h b/src/app/valentina/mainwindow.h index 192c66879..ea85cdd67 100644 --- a/src/app/valentina/mainwindow.h +++ b/src/app/valentina/mainwindow.h @@ -205,6 +205,7 @@ private slots: void ChangedHeight(const QString &text); void ShowProgress(); + void ClearPatternMessages(); private: Q_DISABLE_COPY(MainWindow) diff --git a/src/app/valentina/mainwindow.ui b/src/app/valentina/mainwindow.ui index 3be6831bd..16043d93f 100644 --- a/src/app/valentina/mainwindow.ui +++ b/src/app/valentina/mainwindow.ui @@ -2041,6 +2041,25 @@ + + + + Auto refresh the list with each parse + + + ... + + + + + + true + + + false + + + diff --git a/src/app/valentina/xml/vpattern.cpp b/src/app/valentina/xml/vpattern.cpp index 1b701d720..1c1691d76 100644 --- a/src/app/valentina/xml/vpattern.cpp +++ b/src/app/valentina/xml/vpattern.cpp @@ -167,6 +167,7 @@ void VPattern::Parse(const Document &parse) break; } + emit PreParseState(); m_parsing = true; SCASSERT(sceneDraw != nullptr) SCASSERT(sceneDetail != nullptr) diff --git a/src/app/valentina/xml/vpattern.h b/src/app/valentina/xml/vpattern.h index 4d6cfea6f..12b21681f 100644 --- a/src/app/valentina/xml/vpattern.h +++ b/src/app/valentina/xml/vpattern.h @@ -119,6 +119,9 @@ public: int ElementsToParse() const; +signals: + void PreParseState(); + public slots: virtual void LiteParseTree(const Document &parse) override; diff --git a/src/libs/vmisc/vsettings.cpp b/src/libs/vmisc/vsettings.cpp index 80053bf2c..12792f72a 100644 --- a/src/libs/vmisc/vsettings.cpp +++ b/src/libs/vmisc/vsettings.cpp @@ -71,6 +71,8 @@ namespace { Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingConfigurationLabelLanguage, (QLatin1String("configuration/label_language"))) +Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingAutoRefreshPatternMessage, + (QLatin1String("configuration/autoRefreshPatternMessage"))) Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingPathsLayout, (QLatin1String("paths/layout"))) @@ -764,7 +766,19 @@ int VSettings::GetDefMaxPatternMessageFontSize() void VSettings::SetPatternMessageFontSize(int size) { setValue(*settingPatternMessagesFontSize, qBound(GetDefMinPatternMessageFontSize(), size, - GetDefMaxPatternMessageFontSize())); + GetDefMaxPatternMessageFontSize())); +} + +//--------------------------------------------------------------------------------------------------------------------- +bool VSettings::GetAutoRefreshPatternMessage() const +{ + return value(*settingAutoRefreshPatternMessage, true).toBool(); +} + +//--------------------------------------------------------------------------------------------------------------------- +void VSettings::SetAutoRefreshPatternMessage(bool value) +{ + setValue(*settingAutoRefreshPatternMessage, value); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vmisc/vsettings.h b/src/libs/vmisc/vsettings.h index 68e094d2e..96e39c151 100644 --- a/src/libs/vmisc/vsettings.h +++ b/src/libs/vmisc/vsettings.h @@ -195,6 +195,9 @@ public: static int GetDefMaxPatternMessageFontSize(); void SetPatternMessageFontSize(int size); + bool GetAutoRefreshPatternMessage() const; + void SetAutoRefreshPatternMessage(bool value); + private: Q_DISABLE_COPY(VSettings)