-
-
Notifications
You must be signed in to change notification settings - Fork 14
/
LockPanel.vala
77 lines (66 loc) · 2.98 KB
/
LockPanel.vala
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
// -*- Mode: vala; indent-tabs-mode: nil; tab-width: 4 -*-
/*-
* Copyright (c) 2014-2018 elementary LLC. (https://elementary.io)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this program; if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA
*
* Authored by: Corentin Noël <corentin@elementary.io>
*/
public class SecurityPrivacy.LockPanel : Granite.SimpleSettingsPage {
Settings locker;
public LockPanel () {
Object (icon_name: "system-lock-screen",
title: _("Locking"));
}
construct {
locker = new Settings ("apps.light-locker");
var lock_suspend_label = new Gtk.Label (_("Lock on sleep:"));
var lock_suspend_switch = new Gtk.Switch ();
var lock_sleep_label = new Gtk.Label (_("Lock after screen turns off:"));
var lock_sleep_switch = new Gtk.Switch ();
/* Synchronize lock_suspend_switch and GSettings value */
lock_suspend_switch.active = locker.get_boolean ("lock-on-suspend");
locker.bind ("lock-on-suspend", lock_suspend_switch, "active", SettingsBindFlags.DEFAULT);
if (locker.get_uint ("lock-after-screensaver") > 0)
lock_sleep_switch.active = true;
else
lock_sleep_switch.active = false;
locker.changed["lock-after-screensaver"].connect (() => {
if (locker.get_uint ("lock-after-screensaver") > 0)
lock_sleep_switch.active = true;
else
lock_sleep_switch.active = false;
});
lock_sleep_switch.notify["active"].connect (() => {
if (lock_sleep_switch.active)
locker.set_uint ("lock-after-screensaver", 1);
else
locker.set_uint ("lock-after-screensaver", 0);
});
lock_suspend_label.halign = Gtk.Align.END;
lock_sleep_label.halign = Gtk.Align.END;
lock_suspend_label.valign = Gtk.Align.CENTER;
lock_sleep_label.valign = Gtk.Align.CENTER;
lock_suspend_switch.halign = Gtk.Align.START;
lock_sleep_switch.halign = Gtk.Align.START;
content_area.hexpand = true;
content_area.halign = Gtk.Align.CENTER;
content_area.attach (lock_suspend_label, 0, 0, 1, 1);
content_area.attach (lock_sleep_label, 0, 1, 1, 1);
content_area.attach (lock_suspend_switch, 1, 0, 1, 1);
content_area.attach (lock_sleep_switch, 1, 1, 1, 1);
}
}