From 089b24dbe50970a29bf7ca384b5048fcdb85eacf Mon Sep 17 00:00:00 2001
From: Michail Vourlakos <mvourlakos@gmail.com>
Date: Wed, 31 Mar 2021 11:57:30 +0300
Subject: [PATCH] settings:store views dialog window size

---
 app/settings/viewsdialog/viewsdialog.cpp | 19 +++++++++++++++++--
 app/settings/viewsdialog/viewsdialog.h   |  9 +++++++++
 2 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/app/settings/viewsdialog/viewsdialog.cpp b/app/settings/viewsdialog/viewsdialog.cpp
index 7a8f5c184..74653f279 100644
--- a/app/settings/viewsdialog/viewsdialog.cpp
+++ b/app/settings/viewsdialog/viewsdialog.cpp
@@ -33,8 +33,11 @@ ViewsDialog::ViewsDialog(SettingsDialog *parent, Controller::Layouts *controller
     : GenericDialog(parent),
       m_parentDlg(parent),
       m_ui(new Ui::ViewsDialog),
-      m_layoutsController(controller)
+      m_layoutsController(controller),
+      m_storage(KConfigGroup(KSharedConfig::openConfig(),"LatteSettingsDialog").group("ViewsDialog"))
 {
+    loadConfig();
+
     //! first we need to setup the ui
     m_ui->setupUi(this);
     //! we must create handlers after creating/adjusting the ui
@@ -52,11 +55,13 @@ ViewsDialog::ViewsDialog(SettingsDialog *parent, Controller::Layouts *controller
     connect(m_ui->buttonBox->button(QDialogButtonBox::Reset), &QPushButton::clicked,
             this, &ViewsDialog::onReset);
 
-    updateApplyButtonsState();
+    resize(m_windowSize);
+    updateApplyButtonsState();    
 }
 
 ViewsDialog::~ViewsDialog()
 {
+    saveConfig();
 }
 
 Controller::Layouts *ViewsDialog::layoutsController() const
@@ -109,6 +114,16 @@ void ViewsDialog::onReset()
    // m_handler->reset();
 }
 
+void ViewsDialog::loadConfig()
+{
+    m_windowSize = m_storage.readEntry("windowSize", QSize(775, 500));
+}
+
+void ViewsDialog::saveConfig()
+{
+    m_storage.writeEntry("windowSize", size());
+}
+
 }
 }
 }
diff --git a/app/settings/viewsdialog/viewsdialog.h b/app/settings/viewsdialog/viewsdialog.h
index 6bc3b092a..4f4558127 100644
--- a/app/settings/viewsdialog/viewsdialog.h
+++ b/app/settings/viewsdialog/viewsdialog.h
@@ -65,6 +65,9 @@ protected:
     void accept() override;
 
 private slots:
+    void loadConfig();
+    void saveConfig();
+
     void onOk();
     void onCancel();
     void onReset();
@@ -77,6 +80,12 @@ private:
     Controller::Layouts *m_layoutsController{nullptr};
 
     Handler::ViewsHandler *m_handler;
+
+    //! properties
+    QSize m_windowSize;
+
+    //! storage
+    KConfigGroup m_storage;
 };
 
 }