Skip to content
This repository has been archived by the owner on Sep 22, 2022. It is now read-only.

Commit

Permalink
Rewrite keybindings editor
Browse files Browse the repository at this point in the history
  • Loading branch information
tadfisher committed Dec 23, 2021
1 parent e704f0f commit 6319308
Show file tree
Hide file tree
Showing 8 changed files with 1,200 additions and 147 deletions.
62 changes: 62 additions & 0 deletions KeybindingsComboRow.ui
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0" />
<template class="ComboRow" parent="GtkListBoxRow">
<property name="selectable">True</property>
<property name="activatable">True</property>
<property name="child">
<object class="GtkStack" id="stack">
<child>
<object class="GtkStackPage">
<property name="child">
<object class="GtkBox" id="shortcutPage">
<property name="hexpand">True</property>
<property name="spacing">12</property>
<child>
<object class="GtkShortcutLabel" id="shortcutLabel">
<property name="hexpand">True</property>
<property name="disabled_text" translatable="yes">Disabled</property>
</object>
</child>
<child>
<object class="GtkButton" id="deleteButton">
<property name="halign">end</property>
<property name="tooltip_text" translatable="yes">Remove shortcut</property>
<property name="icon_name">edit-clear-symbolic</property>
<style>
<class name="flat" />
<class name="circular" />
</style>
<signal name="clicked" handler="_onDeleteButtonClicked" />
</object>
</child>
</object>
</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<property name="child">
<object class="GtkLabel" id="placeholderPage">
<property name="hexpand">True</property>
<property name="xalign">0.0</property>
<property name="use_markup">True</property>
<property name="label" translatable="yes">&lt;i&gt;Add shortcut…&lt;/i&gt;</property>
</object>
</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<property name="child">
<object class="GtkLabel" id="editPage">
<property name="use_markup">True</property>
<property name="label" translatable="yes">Enter keyboard shortcut, &lt;b&gt;Backspace&lt;/b&gt; to delete or &lt;b&gt;Esc&lt;/b&gt; to cancel</property>
</object>
</property>
</object>
</child>
</object>
</property>
</template>
</interface>
49 changes: 49 additions & 0 deletions KeybindingsPane.ui
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8" ?>
<interface>
<requires lib="gtk" version="4.0"/>
<template class="KeybindingsPane" parent="GtkBox">
<property name="focusable">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkSearchEntry" id="search">
<property name="activates-default">False</property>
<property name="halign">center</property>
<property name="margin-top">12</property>
<signal name="search-changed"
handler="_onSearchChanged" />
</object>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="hscrollbar_policy">never</property>
<child>
<object class="GtkViewport">
<property name="focusable">False</property>
<property name="vexpand">True</property>
<property name="scroll_to_focus">True</property>
<child>
<object class="GtkListBox" id="listbox">
<property name="activate_on_single_click">True</property>
<property name="hexpand">True</property>
<property name="margin_start">36</property>
<property name="margin_end">36</property>
<property name="margin_top">12</property>
<property name="margin_bottom">36</property>
<property name="width_request">480</property>
<property name="selection_mode">single</property>
<style>
<class name="frame" />
<class name="rich-list" />
</style>
<signal name="row-activated"
handler="_onRowActivated" />
<signal name="row-selected"
handler="_onRowSelected" />
</object>
</child>
</object>
</child>
</object>
</child>
</template>
</interface>
81 changes: 81 additions & 0 deletions KeybindingsRow.ui
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0" />
<template class="KeybindingsRow" parent="GtkListBoxRow">
<property name="focus_on_click">True</property>
<property name="selectable">False</property>
<property name="activatable">True</property>
<property name="child">
<object class="GtkBox">
<style>
<class name="header" />
</style>
<child>
<object class="GtkLabel" id="descLabel">
<property name="ellipsize">end</property>
<property name="halign">start</property>
<property name="hexpand">True</property>
<property name="lines">0</property>
<property name="wrap">True</property>
<property name="wrap-mode">word-char</property>
<property name="xalign">0</property>
</object>
</child>
<child>
<object class="GtkStack" id="stack">
<property name="hhomogeneous">false</property>
<property name="transition_type">slide-up-down</property>
<property name="visible_child">accelLabel</property>
<child>
<object class="GtkStackPage">
<property name="child">
<object class="GtkBox" id="controls">
<property name="orientation">horizontal</property>
<property name="spacing">12</property>
<property name="halign">end</property>
<child>
<object class="GtkButton" id="resetButton">
<property name="icon_name">edit-undo-symbolic</property>
<property name="tooltip_text" translatable="yes">Reset to default</property>
<style>
<class name="flat" />
<class name="circular" />
</style>
<signal name="clicked" handler="_onResetButtonClicked" />
</object>
</child>
<child>
<object class="GtkButton" id="disableButton">
<property name="icon_name">edit-clear-all-symbolic</property>
<property name="tooltip_text" translatable="yes">Disable action</property>
<style>
<class name="flat" />
<class name="circular" />
</style>
<signal name="clicked" handler="_onDisableButtonClicked" />
</object>
</child>
</object>
</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<property name="child">
<object class="GtkLabel" id="accelLabel">
<property name="halign">end</property>
<property name="xalign">1.0</property>
<property name="use-markup">True</property>
<style>
<class name="dim-label" />
</style>
</object>
</property>
</object>
</child>
</object>
</child>
</object>
</property>
</template>
</interface>
48 changes: 1 addition & 47 deletions Settings.ui
Original file line number Diff line number Diff line change
Expand Up @@ -742,53 +742,7 @@
<property name="name">keybindings</property>
<property name="title" translatable="yes">Keybindings</property>
<property name="child">
<object class="GtkBox">
<property name="focusable">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkSearchBar">
<property name="hexpand">True</property>
<property name="search_mode_enabled">True</property>
<property name="child">
<object class="GtkSearchEntry" id="keybinding_search">
<property name="can_focus">True</property>
</object>
</property>
</object>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="hscrollbar_policy">never</property>
<child>
<object class="GtkViewport">
<property name="focusable">False</property>
<child>
<object class="GtkBox" id="keybindings">
<property name="focusable">False</property>
<property name="margin_start">36</property>
<property name="margin_end">36</property>
<property name="margin_top">36</property>
<property name="margin_bottom">36</property>
<property name="vexpand">1</property>
<property name="halign">center</property>
<property name="width_request">480</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
<object class="KeybindingsPane" />
</property>
</object>
</child>
Expand Down
2 changes: 1 addition & 1 deletion keybindings.js
Original file line number Diff line number Diff line change
Expand Up @@ -505,7 +505,7 @@ function enableAction(action) {

} else {
if (keycomboMap[action.keycombo]) {
Utils.warn("Other action bound to", action.keystr, keycomboMap[action.keycombo].name)
Utils.warn("Other action bound to", action.keystr, keycomboMap[action.keycombo].name);
return Meta.KeyBindingAction.NONE;
}

Expand Down
Loading

0 comments on commit 6319308

Please sign in to comment.