From aba6e6de6a60f216548f0560ce719745998ee564 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=BCseyin=20ASLIT=C3=9CRK?= Date: Sat, 9 Nov 2019 12:29:03 +0300 Subject: [PATCH] FileManager: Remember my last position and size. --- Applications/FileManager/main.cpp | 20 ++++++++++++++++++-- Base/home/anon/FileManager.ini | 6 ++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/Applications/FileManager/main.cpp b/Applications/FileManager/main.cpp index 04d215ba9c..6c76c5e60b 100644 --- a/Applications/FileManager/main.cpp +++ b/Applications/FileManager/main.cpp @@ -45,8 +45,13 @@ int main(int argc, char** argv) auto window = GWindow::construct(); window->set_title("File Manager"); - window->set_rect(20, 200, 640, 480); - + + auto left = config->read_num_entry("Window", "Left", 150); + auto top = config->read_num_entry("Window", "Top", 75); + auto width = config->read_num_entry("Window", "Width", 640); + auto heigth = config->read_num_entry("Window", "Heigth", 480); + window->set_rect( {left, top, width, heigth} ); + auto widget = GWidget::construct(); widget->set_layout(make(Orientation::Vertical)); widget->layout()->set_spacing(0); @@ -408,5 +413,16 @@ int main(int argc, char** argv) view_as_icons_action->set_checked(true); } + // Write window position to config file on close request. + window->on_close_request = [&] { + config->write_num_entry("Window", "Left", window->x()); + config->write_num_entry("Window", "Top", window->y()); + config->write_num_entry("Window", "Width", window->width()); + config->write_num_entry("Window", "Heigth", window->height()); + config->sync(); + + return GWindow::CloseRequestDecision::Close; + }; + return app.exec(); } diff --git a/Base/home/anon/FileManager.ini b/Base/home/anon/FileManager.ini index f4b363fbb7..c0edb5457b 100644 --- a/Base/home/anon/FileManager.ini +++ b/Base/home/anon/FileManager.ini @@ -1,2 +1,8 @@ [DirectoryView] ViewMode=Icon + +[Window] +Left=150 +Top=75 +Width=640 +Heigth=480