summaryrefslogtreecommitdiff
path: root/lockscreen
diff options
authorAndrea Azzarone <azzaronea@gmail.com>2014-04-02 21:23:58 +0200
committerAndrea Azzarone <azzaronea@gmail.com>2014-04-02 21:23:58 +0200
commitc9ca04fda2bb5cb79f66e6e6ac87e5101a7667f6 (patch)
treec5ca7112411b1bcf58197aa611454f0e7c933f8f /lockscreen
parent4d64fdf953177f3b0b736b4df6e4603674e19d54 (diff)
Add the first settings.
(bzr r3736.1.4)
Diffstat (limited to 'lockscreen')
-rw-r--r--lockscreen/LockScreenController.cpp2
-rw-r--r--lockscreen/LockScreenSettings.cpp29
-rw-r--r--lockscreen/LockScreenSettings.h5
-rw-r--r--lockscreen/ScreenSaverDBusManager.cpp5
4 files changed, 34 insertions, 7 deletions
diff --git a/lockscreen/LockScreenController.cpp b/lockscreen/LockScreenController.cpp
index c778ed874..50d745856 100644
--- a/lockscreen/LockScreenController.cpp
+++ b/lockscreen/LockScreenController.cpp
@@ -65,7 +65,7 @@ Controller::Controller(session::Manager::Ptr const& session_manager,
session_manager_->unlock_requested.connect(sigc::mem_fun(this, &Controller::OnUnlockRequested));
session_manager_->presence_status_changed.connect([this](bool is_idle) {
- if (is_idle)
+ if (is_idle && Settings::Instance().idle_activation_enabled())
{
EnsureFadeWindows(UScreen::GetDefault()->GetMonitors());
animation::StartOrReverse(fade_windows_animator_, animation::Direction::FORWARD);
diff --git a/lockscreen/LockScreenSettings.cpp b/lockscreen/LockScreenSettings.cpp
index c791be237..5b55196f2 100644
--- a/lockscreen/LockScreenSettings.cpp
+++ b/lockscreen/LockScreenSettings.cpp
@@ -43,18 +43,27 @@ const std::string BACKGROUND_COLOR_KEY = "background-color";
const std::string USER_BG_KEY = "draw-user-backgrounds";
const std::string DRAW_GRID_KEY = "draw-grid";
const std::string SHOW_HOSTNAME_KEY = "show-hostname";
+
+const std::string GS_SETTINGS = "org.gnome.desktop.screensaver";
+const std::string IDLE_ACTIVATION_ENABLED_KEY = "idle-activation-enabled";
+const std::string LOCK_DELAY = "lock-delay";
+const std::string LOCK_ENABLED = "lock-enabled";
+const std::string LOCK_ON_SUSPEND = "ubuntu-lock-on-suspend";
}
struct Settings::Impl
{
Impl()
: greeter_settings_(g_settings_new(GREETER_SETTINGS.c_str()))
- , signal_(greeter_settings_, "changed", sigc::hide(sigc::hide(sigc::mem_fun(this, &Impl::UpdateSettings))))
+ , gs_settings_(g_settings_new(GS_SETTINGS.c_str()))
+ , greeter_signal_(greeter_settings_, "changed", sigc::hide(sigc::hide(sigc::mem_fun(this, &Impl::UpdateGreeterSettings))))
+ , gs_signal_(gs_settings_, "changed", sigc::hide(sigc::hide(sigc::mem_fun(this, &Impl::UpdateGSSettings))))
{
- UpdateSettings();
+ UpdateGreeterSettings();
+ UpdateGSSettings();
}
- void UpdateSettings()
+ void UpdateGreeterSettings()
{
auto* s = settings_instance;
s->font_name = glib::String(g_settings_get_string(greeter_settings_, FONT_KEY.c_str())).Str();
@@ -66,8 +75,20 @@ struct Settings::Impl
s->draw_grid = g_settings_get_boolean(greeter_settings_, DRAW_GRID_KEY.c_str()) != FALSE;
}
+ void UpdateGSSettings()
+ {
+ auto* s = settings_instance;
+ s->idle_activation_enabled = g_settings_get_boolean(gs_settings_, IDLE_ACTIVATION_ENABLED_KEY.c_str()) != FALSE;
+ s->lock_enabled = g_settings_get_boolean(gs_settings_, LOCK_ENABLED.c_str()) != FALSE;
+ s->lock_on_suspend = g_settings_get_boolean(gs_settings_, LOCK_ON_SUSPEND.c_str()) != FALSE;
+ s->lock_delay = g_settings_get_int(gs_settings_, LOCK_DELAY.c_str());
+ }
+
glib::Object<GSettings> greeter_settings_;
- glib::Signal<void, GSettings*, const gchar*> signal_;
+ glib::Object<GSettings> gs_settings_;
+
+ glib::Signal<void, GSettings*, const gchar*> greeter_signal_;
+ glib::Signal<void, GSettings*, const gchar*> gs_signal_;
};
Settings::Settings()
diff --git a/lockscreen/LockScreenSettings.h b/lockscreen/LockScreenSettings.h
index 4e1148673..af7d58711 100644
--- a/lockscreen/LockScreenSettings.h
+++ b/lockscreen/LockScreenSettings.h
@@ -53,6 +53,11 @@ public:
nux::Property<bool> use_user_background;
nux::Property<bool> draw_grid;
+ nux::Property<bool> idle_activation_enabled;
+ nux::Property<int> lock_delay;
+ nux::Property<bool> lock_enabled;
+ nux::Property<bool> lock_on_suspend;
+
static const int GRID_SIZE = 40;
private:
diff --git a/lockscreen/ScreenSaverDBusManager.cpp b/lockscreen/ScreenSaverDBusManager.cpp
index d54852d39..8252c71dc 100644
--- a/lockscreen/ScreenSaverDBusManager.cpp
+++ b/lockscreen/ScreenSaverDBusManager.cpp
@@ -19,7 +19,7 @@
#include "ScreenSaverDBusManager.h"
-#include <iostream>
+#include "LockScreenSettings.h"
namespace unity
{
@@ -85,7 +85,8 @@ DBusManager::DBusManager(session::Manager::Ptr const& session)
connections_.Add(session_->presence_status_changed.connect([this] (bool value) {
- object_->EmitSignal("ActiveChanged", g_variant_new("(b)", value));
+ if (Settings::Instance().idle_activation_enabled())
+ object_->EmitSignal("ActiveChanged", g_variant_new("(b)", value));
}));
return nullptr;