diff options
| author | Xavier Del Campo Romero <xavi.dcr@tutanota.com> | 2023-09-18 23:42:07 +0200 |
|---|---|---|
| committer | Xavier Del Campo Romero <xavi.dcr@tutanota.com> | 2023-10-09 14:08:59 +0200 |
| commit | 677ac164a953a90acff60e7b84b0091184f56464 (patch) | |
| tree | e015357c23ab56326fae4217c25d294b6626b850 /main | |
| parent | 2f1f04b3e80beaf2c7f333a14cb7e14eeafe935e (diff) | |
| download | dino-677ac164a953a90acff60e7b84b0091184f56464.tar.gz | |
Make Ctrl-Q accelerator user-configurable
Some devices, such as those using virtual keyboards such as Squeekboard,
might find the Ctrl-Q accelerator annoying, as it can be easily
mistyped.
Diffstat (limited to 'main')
| -rw-r--r-- | main/data/settings_dialog.ui | 12 | ||||
| -rw-r--r-- | main/src/ui/application.vala | 17 | ||||
| -rw-r--r-- | main/src/ui/settings_dialog.vala | 3 |
3 files changed, 31 insertions, 1 deletions
diff --git a/main/data/settings_dialog.ui b/main/data/settings_dialog.ui index 302a9e1c..a45b0664 100644 --- a/main/data/settings_dialog.ui +++ b/main/data/settings_dialog.ui @@ -172,6 +172,18 @@ <property name="height">1</property> </packing> </child> + <child> + <object class="GtkCheckButton" id="quit_ctrl_q_checkbutton"> + <property name="label" translatable="yes">Quit Dino with Ctrl+Q</property> + <property name="visible">True</property> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">8</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> </object> </child> </object> diff --git a/main/src/ui/application.vala b/main/src/ui/application.vala index 91d4dec4..a7aaf075 100644 --- a/main/src/ui/application.vala +++ b/main/src/ui/application.vala @@ -117,6 +117,8 @@ public class Dino.Ui.Application : Gtk.Application, Dino.Application { } private void create_actions() { + Dino.Entities.Settings settings = Dino.Application.get_default().settings; + SimpleAction accounts_action = new SimpleAction("accounts", null); accounts_action.activate.connect(show_accounts_window); add_action(accounts_action); @@ -132,7 +134,20 @@ public class Dino.Ui.Application : Gtk.Application, Dino.Application { SimpleAction quit_action = new SimpleAction("quit", null); quit_action.activate.connect(quit); add_action(quit_action); - set_accels_for_action("app.quit", KEY_COMBINATION_QUIT); + + if (settings.quit_ctrl_q) { + set_accels_for_action("app.quit", KEY_COMBINATION_QUIT); + } + + settings.quit_ctrl_q_update.connect((active) => + { + if (active) { + set_accels_for_action("app.quit", KEY_COMBINATION_QUIT); + } + else { + set_accels_for_action("app.quit", {null}); + } + }); SimpleAction open_conversation_action = new SimpleAction("open-conversation", VariantType.INT32); open_conversation_action.activate.connect((variant) => { diff --git a/main/src/ui/settings_dialog.vala b/main/src/ui/settings_dialog.vala index fc1eb678..14abc580 100644 --- a/main/src/ui/settings_dialog.vala +++ b/main/src/ui/settings_dialog.vala @@ -16,6 +16,7 @@ class SettingsDialog : Dialog { [GtkChild] private unowned RadioButton encryption_radio_openpgp; [GtkChild] private unowned CheckButton send_button_checkbutton; [GtkChild] private unowned CheckButton enter_newline_checkbutton; + [GtkChild] private unowned CheckButton quit_ctrl_q_checkbutton; Dino.Entities.Settings settings = Dino.Application.get_default().settings; @@ -33,6 +34,7 @@ class SettingsDialog : Dialog { send_button_checkbutton.active = settings.send_button; enter_newline_checkbutton.active = settings.enter_newline; enter_newline_checkbutton.sensitive = settings.send_button; + quit_ctrl_q_checkbutton.active = settings.quit_ctrl_q; typing_checkbutton.toggled.connect(() => { settings.send_typing = typing_checkbutton.active; } ); marker_checkbutton.toggled.connect(() => { settings.send_marker = marker_checkbutton.active; } ); @@ -67,6 +69,7 @@ class SettingsDialog : Dialog { enter_newline_checkbutton.active = visible; } }); + quit_ctrl_q_checkbutton.toggled.connect(() => { settings.quit_ctrl_q = quit_ctrl_q_checkbutton.active; }); } } |
