Add sorting switch: Issue: #298

This commit is contained in:
Dave Davenport 2015-12-13 11:50:59 +01:00
parent 08d6d6b685
commit f3c22c50e4
7 changed files with 16 additions and 4 deletions

View File

@ -10,6 +10,7 @@
- Dmenu can read from file instead of stdin.
- Regex matching (#113)
- Take Screenshot of rofi using keybinding.
- Hotkey for sorting: (#298)
Improvements:
- Fix return code of multi-select.
- Update manpage (#289, #291)

View File

@ -155,6 +155,7 @@ Type `Shift-Right` to switch from Window list mode to Run mode and back.
|`Ctrl-space` | Set selected item as input text. |
|`Shift-Del` | Delete entry from history. |
|`grave` | Toggle case sensitivity. |
|`Alt-grave` | Toggle levenshtein sort. |
|`Alt-Shift-S` | Take a screenshot and store this in the Pictures directory. |

View File

@ -779,6 +779,7 @@ The first two fields specify the alpha level. This determines the amount of tran
* `Ctrl-space`: Set selected item as input text.
* `Shift-Del`: Delete entry from history.
* `grave`: Toggle case sensitivity.
* `Alt-grave`: Toggle levenshtein sorting.
* `Alt-Shift-S`: Take a screenshot and store this in the Pictures directory.
To get a full list of keybindings, see `rofi -dump-xresources | grep kb-`.

View File

@ -1300,6 +1300,9 @@ The first two fields specify the alpha level\. This determines the amount of tra
\fBgrave\fR: Toggle case sensitivity\.
.
.IP "\(bu" 4
\fBAlt\-grave\fR: Toggle levenshtein sorting\.
.
.IP "\(bu" 4
\fBAlt\-Shift\-S\fR: Take a screenshot and store this in the Pictures directory\.
.
.IP "" 0

View File

@ -54,6 +54,7 @@ typedef enum _KeyBindingAction
CUSTOM_18,
CUSTOM_19,
SCREENSHOT,
TOGGLE_SORT,
NUM_ABE
} KeyBindingAction;

View File

@ -84,7 +84,8 @@ DefaultBinding bindings[NUM_ABE] =
{ .id = CUSTOM_18, .name = "kb-custom-18", .keybinding = "Alt+Shift+8" },
{ .id = CUSTOM_17, .name = "kb-custom-17", .keybinding = "Alt+Shift+7" },
{ .id = CUSTOM_19, .name = "kb-custom-19", .keybinding = "Alt+Shift+9" },
{ .id = SCREENSHOT, .name = "kb-screenshot", .keybinding = "Alt+Shift+S" },
{ .id = SCREENSHOT, .name = "kb-screenshot", .keybinding = "Alt+Shift+S" },
{ .id = TOGGLE_SORT, .name = "kb-toggle-sort", .keybinding = "Alt+grave" },
};
void setup_abe ( void )

View File

@ -1390,9 +1390,7 @@ MenuReturn menu ( Mode *sw, char **input, char *prompt, unsigned int *selected_l
scrollbar_set_max_value ( state.scrollbar, state.num_lines );
// filtered list
state.line_map = g_malloc0_n ( state.num_lines, sizeof ( unsigned int ) );
if ( config.levenshtein_sort ) {
state.distance = (int *) g_malloc0_n ( state.num_lines, sizeof ( int ) );
}
state.distance = (int *) g_malloc0_n ( state.num_lines, sizeof ( int ) );
// resize window vertically to suit
// Subtract the margin of the last row.
@ -1565,6 +1563,12 @@ MenuReturn menu ( Mode *sw, char **input, char *prompt, unsigned int *selected_l
menu_capture_screenshot ( );
break;
}
if ( abe_test_action ( TOGGLE_SORT, ev.xkey.state, key ) ) {
config.levenshtein_sort = !config.levenshtein_sort;
state.refilter = TRUE;
state.update = TRUE;
break;
}
else if ( abe_test_action ( MODE_PREVIOUS, ev.xkey.state, key ) ) {
state.retv = MENU_PREVIOUS;
*( state.selected_line ) = 0;