diff --git a/src/libs/vmisc/vcommonsettings.cpp b/src/libs/vmisc/vcommonsettings.cpp index cddd6a77a..83f0a6073 100644 --- a/src/libs/vmisc/vcommonsettings.cpp +++ b/src/libs/vmisc/vcommonsettings.cpp @@ -64,15 +64,16 @@ const QString settingPatternForbidFlipping = QStringLiteral("pattern/forbidFlipp const QString settingPatternHideMainPath = QStringLiteral("pattern/hideMainPath"); const QString settingDoublePassmark = QStringLiteral("pattern/doublePassmark"); -const QString settingGeneralRecentFileList = QStringLiteral("recentFileList"); -const QString settingGeneralRestoreFileList = QStringLiteral("restoreFileList"); -const QString settingGeneralGeometry = QStringLiteral("geometry"); -const QString settingGeneralWindowState = QStringLiteral("windowState"); -const QString settingGeneralToolbarsState = QStringLiteral("toolbarsState"); -const QString settingPreferenceDialogSize = QStringLiteral("preferenceDialogSize"); -const QString settingLatestSkippedVersion = QStringLiteral("lastestSkippedVersion"); -const QString settingDateOfLastRemind = QStringLiteral("dateOfLastRemind"); -const QString settingUserDefinedMaterials = QStringLiteral("configuration/userDefinedMaterials"); +const QString settingGeneralRecentFileList = QStringLiteral("recentFileList"); +const QString settingGeneralRestoreFileList = QStringLiteral("restoreFileList"); +const QString settingGeneralGeometry = QStringLiteral("geometry"); +const QString settingGeneralWindowState = QStringLiteral("windowState"); +const QString settingGeneralToolbarsState = QStringLiteral("toolbarsState"); +const QString settingPreferenceDialogSize = QStringLiteral("preferenceDialogSize"); +const QString settingToolSeamAllowanceDialogSize = QStringLiteral("toolSeamAllowanceDialogSize"); +const QString settingLatestSkippedVersion = QStringLiteral("lastestSkippedVersion"); +const QString settingDateOfLastRemind = QStringLiteral("dateOfLastRemind"); +const QString settingUserDefinedMaterials = QStringLiteral("configuration/userDefinedMaterials"); const QString settingCSVWithHeader = QStringLiteral("csv/withHeader"); const QString settingCSVCodec = QStringLiteral("csv/withCodec"); @@ -544,6 +545,18 @@ void VCommonSettings::SetPreferenceDialogSize(const QSize& sz) setValue(settingPreferenceDialogSize, sz); } +//--------------------------------------------------------------------------------------------------------------------- +QSize VCommonSettings::GetToolSeamAllowanceDialogSize() const +{ + return value(settingToolSeamAllowanceDialogSize, QSize(0, 0)).toSize(); +} + +//--------------------------------------------------------------------------------------------------------------------- +void VCommonSettings::SetToolSeamAllowanceDialogSize(const QSize &sz) +{ + setValue(settingToolSeamAllowanceDialogSize, sz); +} + //--------------------------------------------------------------------------------------------------------------------- int VCommonSettings::GetLatestSkippedVersion() const { diff --git a/src/libs/vmisc/vcommonsettings.h b/src/libs/vmisc/vcommonsettings.h index c2185293a..1a45baf31 100644 --- a/src/libs/vmisc/vcommonsettings.h +++ b/src/libs/vmisc/vcommonsettings.h @@ -120,6 +120,9 @@ public: QSize GetPreferenceDialogSize() const; void SetPreferenceDialogSize(const QSize& sz); + QSize GetToolSeamAllowanceDialogSize() const; + void SetToolSeamAllowanceDialogSize(const QSize& sz); + int GetLatestSkippedVersion() const; void SetLatestSkippedVersion(int value); diff --git a/src/libs/vtools/dialogs/tools/piece/dialogseamallowance.cpp b/src/libs/vtools/dialogs/tools/piece/dialogseamallowance.cpp index 096ff7b17..f05290240 100644 --- a/src/libs/vtools/dialogs/tools/piece/dialogseamallowance.cpp +++ b/src/libs/vtools/dialogs/tools/piece/dialogseamallowance.cpp @@ -89,6 +89,7 @@ DialogSeamAllowance::DialogSeamAllowance(const VContainer *data, const quint32 & m_tabPins(new QWidget), m_tabPassmarks(new QWidget), m_ftb(new FancyTabBar(FancyTabBar::Left, this)), + m_isInitialized(false), applyAllowed(false),// By default disabled flagGPin(true), flagDPin(true), @@ -425,8 +426,38 @@ void DialogSeamAllowance::closeEvent(QCloseEvent *event) //--------------------------------------------------------------------------------------------------------------------- void DialogSeamAllowance::showEvent(QShowEvent *event) { - // Skip DialotTool implementation. For this tool don't need disable resizing because it uses a scroll area. QDialog::showEvent( event ); + if ( event->spontaneous() ) + { + return; + } + + if (m_isInitialized) + { + return; + } + // do your init stuff here + + const QSize sz = qApp->Settings()->GetToolSeamAllowanceDialogSize(); + if (not sz.isEmpty()) + { + resize(sz); + } + + m_isInitialized = true;//first show windows are held +} + +//--------------------------------------------------------------------------------------------------------------------- +void DialogSeamAllowance::resizeEvent(QResizeEvent *event) +{ + Q_UNUSED(event) + // remember the size for the next time this dialog is opened, but only + // if widget was already initialized, which rules out the resize at + // dialog creating, which would + if (m_isInitialized) + { + qApp->Settings()->SetToolSeamAllowanceDialogSize(size()); + } } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/piece/dialogseamallowance.h b/src/libs/vtools/dialogs/tools/piece/dialogseamallowance.h index 96ece39b7..6856c3c0e 100644 --- a/src/libs/vtools/dialogs/tools/piece/dialogseamallowance.h +++ b/src/libs/vtools/dialogs/tools/piece/dialogseamallowance.h @@ -73,6 +73,7 @@ protected: virtual void CheckState() Q_DECL_FINAL; virtual void closeEvent(QCloseEvent *event) Q_DECL_OVERRIDE; virtual void showEvent( QShowEvent *event ) Q_DECL_OVERRIDE; + virtual void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE; protected slots: void UpdateList(); @@ -173,6 +174,7 @@ private: FancyTabBar* m_ftb; + bool m_isInitialized; bool applyAllowed; bool flagGPin; bool flagDPin;