|
12 | 12 |
|
13 | 13 | construct { |
14 | 14 | orientation = VERTICAL; |
15 | | - margin_top = 12; |
16 | | - margin_bottom = 12; |
17 | | - margin_start = 12; |
18 | | - margin_end = 12; |
| 15 | + margin_top = 10; |
| 16 | + margin_bottom = 10; |
| 17 | + margin_start = 10; |
| 18 | + margin_end = 10; |
19 | 19 |
|
20 | 20 | var overlay = new Gtk.Overlay (); |
21 | 21 | append (overlay); |
|
24 | 24 | overlay.add_overlay (toast); |
25 | 25 |
|
26 | 26 | // the box with all the settings |
27 | | - var settingsbox = new Gtk.Box (VERTICAL, 24) { |
28 | | - margin_top = 6, |
29 | | - margin_start = 6, |
30 | | - margin_end = 6, |
| 27 | + var settingsbox = new Gtk.Box (VERTICAL, 20) { |
| 28 | + margin_top = 5, |
| 29 | + margin_start = 5, |
| 30 | + margin_end = 5, |
31 | 31 | hexpand = true, |
32 | 32 | vexpand = true, |
33 | 33 | valign = Gtk.Align.START |
34 | 34 | }; |
35 | 35 |
|
| 36 | + |
| 37 | + /***************************************/ |
| 38 | + /* lists */ |
| 39 | + /***************************************/ |
| 40 | + |
| 41 | + var lists_box = new Gtk.Box (HORIZONTAL, 5); |
| 42 | + |
| 43 | + var list_entry = new Gtk.Entry () { |
| 44 | + halign = Gtk.Align.END, |
| 45 | + hexpand = false, |
| 46 | + valign = Gtk.Align.CENTER, |
| 47 | + max_length = 5, |
| 48 | + max_width_chars = 5 |
| 49 | + }; |
| 50 | + |
| 51 | + var list_label = new Granite.HeaderLabel (_("List item symbol")) { |
| 52 | + mnemonic_widget = list_entry, |
| 53 | + secondary_text = _("Prefix by which to begin each item in a list. If there is no prefix, the toggle list button will be hidden"), |
| 54 | + hexpand = true |
| 55 | + }; |
| 56 | + |
| 57 | + lists_box.append (list_label); |
| 58 | + lists_box.append (list_entry); |
| 59 | + |
| 60 | + Application.gsettings.bind ( |
| 61 | + "list-item-start", |
| 62 | + list_entry, "text", |
| 63 | + SettingsBindFlags.DEFAULT); |
| 64 | + |
| 65 | + |
| 66 | + settingsbox.append (lists_box); |
| 67 | + |
| 68 | + |
36 | 69 | /*************************************************/ |
37 | 70 | /* scribbly Toggle */ |
38 | 71 | /*************************************************/ |
|
63 | 96 | /* Autostart Request */ |
64 | 97 | /****************************************************/ |
65 | 98 | #if !WINDOWS |
66 | | - var both_buttons = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 6) { |
| 99 | + var both_buttons = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 5) { |
67 | 100 | halign = Gtk.Align.FILL |
68 | 101 | }; |
69 | 102 |
|
70 | 103 | ///TRANSLATORS: Button to autostart the application |
71 | 104 | var set_autostart = new Gtk.Button () { |
72 | | - label = _("Set autostart"), |
| 105 | + label = _("Autostart"), |
73 | 106 | valign = Gtk.Align.CENTER |
74 | 107 | }; |
75 | 108 |
|
|
94 | 127 | both_buttons.append (set_autostart); |
95 | 128 | both_buttons.append (remove_autostart); |
96 | 129 |
|
97 | | - var autostart_box = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 6); |
| 130 | + var autostart_box = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 5); |
98 | 131 |
|
99 | 132 | var autostart_label = new Granite.HeaderLabel (_("Allow to start at login")) { |
100 | 133 | mnemonic_widget = both_buttons, |
|
109 | 142 | /*************************************************/ |
110 | 143 | // Bar at the bottom |
111 | 144 | var actionbar = new Gtk.CenterBox () { |
112 | | - margin_start = 6, |
113 | | - margin_end = 6, |
114 | | - valign = Gtk.Align.END |
| 145 | + margin_start = 5, |
| 146 | + margin_end = 5, |
| 147 | + valign = Gtk.Align.END, |
| 148 | + hexpand = true, |
| 149 | + vexpand = false |
115 | 150 | }; |
116 | | - actionbar.set_hexpand (true); |
117 | | - actionbar.set_vexpand (false); |
118 | 151 |
|
119 | 152 | // Monies? |
120 | 153 | var support_button = new Gtk.LinkButton.with_label ( |
|
123 | 156 | ); |
124 | 157 | actionbar.start_widget = support_button; |
125 | 158 |
|
126 | | - // Reset |
127 | | - //reset_button = new Gtk.Button (); |
128 | | - //reset_button.set_label ( _("Reset to Default")); |
129 | | - //reset_button.tooltip_markup = (_("Reset all settings to defaults")); |
130 | | - //actionbar.pack_end (reset_button); |
131 | | - |
132 | 159 | close_button = new Gtk.Button () { |
133 | 160 | width_request = 96, |
134 | 161 | label = _("Close"), |
|
137 | 164 | _("Close preferences") |
138 | 165 | ) |
139 | 166 | }; |
140 | | - actionbar.end_widget = close_button; |
| 167 | + |
| 168 | + var reset = new Gtk.Button.from_icon_name ("system-reboot-symbolic") { |
| 169 | + tooltip_markup = _("Reset all settings to defaults"), |
| 170 | + valign = Gtk.Align.CENTER |
| 171 | + }; |
| 172 | + reset.clicked.connect (on_reset); |
| 173 | + |
| 174 | + var end_box = new Gtk.Box (HORIZONTAL, 5); |
| 175 | + end_box.append (reset); |
| 176 | + end_box.append (close_button); |
| 177 | + actionbar.end_widget = end_box; |
141 | 178 |
|
142 | 179 | append (settingsbox); |
143 | 180 | append (actionbar); |
144 | 181 | } |
| 182 | + |
| 183 | + private void on_reset () { |
| 184 | + debug ("Resetting settings…"); |
| 185 | + |
| 186 | + string[] keys = {"scribbly-mode-active", "hide-bar", "list-item-start"}; |
| 187 | + foreach (var key in keys) { |
| 188 | + Application.gsettings.reset (key); |
| 189 | + } |
| 190 | + |
| 191 | +#if !WINDOWS |
| 192 | + Jorts.Utils.autostart_remove (); |
| 193 | + toast.send_notification (); |
| 194 | +#endif |
| 195 | + } |
145 | 196 | } |
0 commit comments