From 974a074ffddd22e13b9724894c2d3023d0cb3268 Mon Sep 17 00:00:00 2001
From: Roman Telezhynskyi <kroluku@gmail.com>
Date: Tue, 17 Nov 2015 12:54:18 +0200
Subject: [PATCH] Fixate size of the 'Config dialog' only after first show.

--HG--
branch : develop
---
 src/app/valentina/dialogs/configdialog.cpp | 24 ++++++++++++++++++++--
 src/app/valentina/dialogs/configdialog.h   |  2 ++
 2 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/src/app/valentina/dialogs/configdialog.cpp b/src/app/valentina/dialogs/configdialog.cpp
index bc965dece..13528382d 100644
--- a/src/app/valentina/dialogs/configdialog.cpp
+++ b/src/app/valentina/dialogs/configdialog.cpp
@@ -38,7 +38,7 @@
 //---------------------------------------------------------------------------------------------------------------------
 ConfigDialog::ConfigDialog(QWidget *parent) :
     QDialog(parent), contentsWidget(nullptr), pagesWidget(nullptr), configurationPage(nullptr), patternPage(nullptr),
-    communityPage(nullptr), pathPage(nullptr)
+    communityPage(nullptr), pathPage(nullptr), isInitialized(false)
 {
     contentsWidget = new QListWidget;
     contentsWidget->setViewMode(QListView::IconMode);
@@ -92,7 +92,6 @@ ConfigDialog::ConfigDialog(QWidget *parent) :
 
     setWindowTitle(tr("Config Dialog"));
 
-    this->setFixedSize(QSize(750, 565));
     qApp->Settings()->GetOsSeparator() ? setLocale(QLocale::system()) : setLocale(QLocale(QLocale::C));
 }
 
@@ -116,6 +115,27 @@ void ConfigDialog::closeEvent(QCloseEvent *event)
     event->accept();
 }
 
+//---------------------------------------------------------------------------------------------------------------------
+void ConfigDialog::showEvent(QShowEvent *event)
+{
+    QDialog::showEvent( event );
+    if ( event->spontaneous() )
+    {
+        return;
+    }
+
+    if (isInitialized)
+    {
+        return;
+    }
+    // do your init stuff here
+
+    setMaximumSize(size());
+    setMinimumSize(size());
+
+    isInitialized = true;//first show windows are held
+}
+
 //---------------------------------------------------------------------------------------------------------------------
 void ConfigDialog::createIcons()
 {
diff --git a/src/app/valentina/dialogs/configdialog.h b/src/app/valentina/dialogs/configdialog.h
index 76250776d..9f8d9556e 100644
--- a/src/app/valentina/dialogs/configdialog.h
+++ b/src/app/valentina/dialogs/configdialog.h
@@ -47,6 +47,7 @@ signals:
     void              UpdateProperties();
 protected:
     virtual void      closeEvent(QCloseEvent *event) Q_DECL_OVERRIDE;
+    virtual void      showEvent(QShowEvent *event) Q_DECL_OVERRIDE;
 private:
     Q_DISABLE_COPY(ConfigDialog)
     QListWidget       *contentsWidget;
@@ -55,6 +56,7 @@ private:
     PatternPage       *patternPage;
     CommunityPage     *communityPage;
     PathPage          *pathPage;
+    bool              isInitialized;
     void              createIcons();
     void              createIcon(const QString &icon, const QString &text);
     void              Apply();