mirror of
https://github.com/RGBCube/serenity
synced 2025-05-20 16:55:08 +00:00
FileManager: Apply wallpaper on startup
I noticed that nothing actually applies the wallpaper on startup. I wasn't sure where to put the responsibility, so I gave it to the desktop mode file manager. Also adds a save_config option to set_wallpaper so it doesn't needlessly save the config.
This commit is contained in:
parent
14a54a72fa
commit
c434a91c91
3 changed files with 10 additions and 3 deletions
|
@ -40,6 +40,7 @@
|
||||||
#include <LibGUI/Application.h>
|
#include <LibGUI/Application.h>
|
||||||
#include <LibGUI/BoxLayout.h>
|
#include <LibGUI/BoxLayout.h>
|
||||||
#include <LibGUI/Clipboard.h>
|
#include <LibGUI/Clipboard.h>
|
||||||
|
#include <LibGUI/Desktop.h>
|
||||||
#include <LibGUI/FileSystemModel.h>
|
#include <LibGUI/FileSystemModel.h>
|
||||||
#include <LibGUI/InputBox.h>
|
#include <LibGUI/InputBox.h>
|
||||||
#include <LibGUI/Label.h>
|
#include <LibGUI/Label.h>
|
||||||
|
@ -242,6 +243,12 @@ int run_in_desktop_mode(RefPtr<Core::ConfigFile> config, String initial_location
|
||||||
desktop_view_context_menu->popup(event.screen_position());
|
desktop_view_context_menu->popup(event.screen_position());
|
||||||
};
|
};
|
||||||
|
|
||||||
|
auto wm_config = Core::ConfigFile::get_for_app("WindowManager");
|
||||||
|
auto selected_wallpaper = wm_config->read_entry("Background", "Wallpaper", "");
|
||||||
|
if (!selected_wallpaper.is_empty()) {
|
||||||
|
GUI::Desktop::the().set_wallpaper(selected_wallpaper, false);
|
||||||
|
}
|
||||||
|
|
||||||
window->show();
|
window->show();
|
||||||
return GUI::Application::the()->exec();
|
return GUI::Application::the()->exec();
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,12 +64,12 @@ void Desktop::set_wallpaper_mode(const StringView& mode)
|
||||||
WindowServerConnection::the().post_message(Messages::WindowServer::SetWallpaperMode(mode));
|
WindowServerConnection::the().post_message(Messages::WindowServer::SetWallpaperMode(mode));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Desktop::set_wallpaper(const StringView& path)
|
bool Desktop::set_wallpaper(const StringView& path, bool save_config)
|
||||||
{
|
{
|
||||||
WindowServerConnection::the().post_message(Messages::WindowServer::AsyncSetWallpaper(path));
|
WindowServerConnection::the().post_message(Messages::WindowServer::AsyncSetWallpaper(path));
|
||||||
auto ret_val = WindowServerConnection::the().wait_for_specific_message<Messages::WindowClient::AsyncSetWallpaperFinished>()->success();
|
auto ret_val = WindowServerConnection::the().wait_for_specific_message<Messages::WindowClient::AsyncSetWallpaperFinished>()->success();
|
||||||
|
|
||||||
if (ret_val) {
|
if (ret_val && save_config) {
|
||||||
RefPtr<Core::ConfigFile> config = Core::ConfigFile::get_for_app("WindowManager");
|
RefPtr<Core::ConfigFile> config = Core::ConfigFile::get_for_app("WindowManager");
|
||||||
dbg() << "Saving wallpaper path '" << path << "' to config file at " << config->file_name();
|
dbg() << "Saving wallpaper path '" << path << "' to config file at " << config->file_name();
|
||||||
config->write_entry("Background", "Wallpaper", path);
|
config->write_entry("Background", "Wallpaper", path);
|
||||||
|
|
|
@ -43,7 +43,7 @@ public:
|
||||||
void set_wallpaper_mode(const StringView& mode);
|
void set_wallpaper_mode(const StringView& mode);
|
||||||
|
|
||||||
String wallpaper() const;
|
String wallpaper() const;
|
||||||
bool set_wallpaper(const StringView& path);
|
bool set_wallpaper(const StringView& path, bool save_config = true);
|
||||||
|
|
||||||
Gfx::IntRect rect() const { return m_rect; }
|
Gfx::IntRect rect() const { return m_rect; }
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue