Skip to content

Commit 3db1a68

Browse files
author
Stephan Dilly
authored
allow config for key symbols (#997)
closes #465
1 parent e548e8c commit 3db1a68

39 files changed

+603
-424
lines changed

src/app.rs

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -297,24 +297,27 @@ impl App {
297297
{
298298
flags.insert(NeedsUpdate::COMMANDS);
299299
} else if let Event::Key(k) = ev {
300-
let new_flags = if k == self.key_config.tab_toggle {
300+
let new_flags = if k
301+
== self.key_config.keys.tab_toggle
302+
{
301303
self.toggle_tabs(false)?;
302304
NeedsUpdate::COMMANDS
303-
} else if k == self.key_config.tab_toggle_reverse {
305+
} else if k == self.key_config.keys.tab_toggle_reverse
306+
{
304307
self.toggle_tabs(true)?;
305308
NeedsUpdate::COMMANDS
306-
} else if k == self.key_config.tab_status
307-
|| k == self.key_config.tab_log
308-
|| k == self.key_config.tab_files
309-
|| k == self.key_config.tab_stashing
310-
|| k == self.key_config.tab_stashes
309+
} else if k == self.key_config.keys.tab_status
310+
|| k == self.key_config.keys.tab_log
311+
|| k == self.key_config.keys.tab_files
312+
|| k == self.key_config.keys.tab_stashing
313+
|| k == self.key_config.keys.tab_stashes
311314
{
312315
self.switch_tab(k)?;
313316
NeedsUpdate::COMMANDS
314-
} else if k == self.key_config.cmd_bar_toggle {
317+
} else if k == self.key_config.keys.cmd_bar_toggle {
315318
self.cmdbar.borrow_mut().toggle_more();
316319
NeedsUpdate::empty()
317-
} else if k == self.key_config.open_options {
320+
} else if k == self.key_config.keys.open_options {
318321
self.options_popup.show()?;
319322
NeedsUpdate::ALL
320323
} else {
@@ -497,7 +500,7 @@ impl App {
497500
return false;
498501
}
499502
if let Event::Key(e) = ev {
500-
if e == self.key_config.quit {
503+
if e == self.key_config.keys.quit {
501504
self.do_quit = true;
502505
return true;
503506
}
@@ -507,7 +510,7 @@ impl App {
507510

508511
fn check_hard_exit(&mut self, ev: Event) -> bool {
509512
if let Event::Key(e) = ev {
510-
if e == self.key_config.exit {
513+
if e == self.key_config.keys.exit {
511514
self.do_quit = true;
512515
return true;
513516
}
@@ -537,15 +540,15 @@ impl App {
537540
}
538541

539542
fn switch_tab(&mut self, k: KeyEvent) -> Result<()> {
540-
if k == self.key_config.tab_status {
543+
if k == self.key_config.keys.tab_status {
541544
self.set_tab(0)?;
542-
} else if k == self.key_config.tab_log {
545+
} else if k == self.key_config.keys.tab_log {
543546
self.set_tab(1)?;
544-
} else if k == self.key_config.tab_files {
547+
} else if k == self.key_config.keys.tab_files {
545548
self.set_tab(2)?;
546-
} else if k == self.key_config.tab_stashing {
549+
} else if k == self.key_config.keys.tab_stashing {
547550
self.set_tab(3)?;
548-
} else if k == self.key_config.tab_stashes {
551+
} else if k == self.key_config.keys.tab_stashes {
549552
self.set_tab(4)?;
550553
}
551554

src/components/blame_file.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -185,25 +185,25 @@ impl Component for BlameFileComponent {
185185
) -> Result<EventState> {
186186
if self.is_visible() {
187187
if let Event::Key(key) = event {
188-
if key == self.key_config.exit_popup {
188+
if key == self.key_config.keys.exit_popup {
189189
self.hide();
190-
} else if key == self.key_config.move_up {
190+
} else if key == self.key_config.keys.move_up {
191191
self.move_selection(ScrollType::Up);
192-
} else if key == self.key_config.move_down {
192+
} else if key == self.key_config.keys.move_down {
193193
self.move_selection(ScrollType::Down);
194-
} else if key == self.key_config.shift_up
195-
|| key == self.key_config.home
194+
} else if key == self.key_config.keys.shift_up
195+
|| key == self.key_config.keys.home
196196
{
197197
self.move_selection(ScrollType::Home);
198-
} else if key == self.key_config.shift_down
199-
|| key == self.key_config.end
198+
} else if key == self.key_config.keys.shift_down
199+
|| key == self.key_config.keys.end
200200
{
201201
self.move_selection(ScrollType::End);
202-
} else if key == self.key_config.page_down {
202+
} else if key == self.key_config.keys.page_down {
203203
self.move_selection(ScrollType::PageDown);
204-
} else if key == self.key_config.page_up {
204+
} else if key == self.key_config.keys.page_up {
205205
self.move_selection(ScrollType::PageUp);
206-
} else if key == self.key_config.focus_right {
206+
} else if key == self.key_config.keys.focus_right {
207207
self.hide();
208208

209209
return self.selected_commit().map_or(

src/components/branchlist.rs

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -208,54 +208,55 @@ impl Component for BranchListComponent {
208208
}
209209

210210
if let Event::Key(e) = ev {
211-
if e == self.key_config.exit_popup {
211+
if e == self.key_config.keys.exit_popup {
212212
self.hide();
213-
} else if e == self.key_config.move_down {
213+
} else if e == self.key_config.keys.move_down {
214214
return self
215215
.move_selection(ScrollType::Up)
216216
.map(Into::into);
217-
} else if e == self.key_config.move_up {
217+
} else if e == self.key_config.keys.move_up {
218218
return self
219219
.move_selection(ScrollType::Down)
220220
.map(Into::into);
221-
} else if e == self.key_config.page_down {
221+
} else if e == self.key_config.keys.page_down {
222222
return self
223223
.move_selection(ScrollType::PageDown)
224224
.map(Into::into);
225-
} else if e == self.key_config.page_up {
225+
} else if e == self.key_config.keys.page_up {
226226
return self
227227
.move_selection(ScrollType::PageUp)
228228
.map(Into::into);
229-
} else if e == self.key_config.home {
229+
} else if e == self.key_config.keys.home {
230230
return self
231231
.move_selection(ScrollType::Home)
232232
.map(Into::into);
233-
} else if e == self.key_config.end {
233+
} else if e == self.key_config.keys.end {
234234
return self
235235
.move_selection(ScrollType::End)
236236
.map(Into::into);
237-
} else if e == self.key_config.tab_toggle {
237+
} else if e == self.key_config.keys.tab_toggle {
238238
self.local = !self.local;
239239
self.update_branches()?;
240-
} else if e == self.key_config.enter {
240+
} else if e == self.key_config.keys.enter {
241241
try_or_popup!(
242242
self,
243243
"switch branch error:",
244244
self.switch_to_selected_branch()
245245
);
246-
} else if e == self.key_config.create_branch && self.local
246+
} else if e == self.key_config.keys.create_branch
247+
&& self.local
247248
{
248249
self.queue.push(InternalEvent::CreateBranch);
249-
} else if e == self.key_config.rename_branch
250+
} else if e == self.key_config.keys.rename_branch
250251
&& self.valid_selection()
251252
{
252253
self.rename_branch();
253-
} else if e == self.key_config.delete_branch
254+
} else if e == self.key_config.keys.delete_branch
254255
&& !self.selection_is_cur_branch()
255256
&& self.valid_selection()
256257
{
257258
self.delete_branch();
258-
} else if e == self.key_config.merge_branch
259+
} else if e == self.key_config.keys.merge_branch
259260
&& !self.selection_is_cur_branch()
260261
&& self.valid_selection()
261262
{
@@ -264,7 +265,7 @@ impl Component for BranchListComponent {
264265
"merge branch error:",
265266
self.merge_branch()
266267
);
267-
} else if e == self.key_config.rebase_branch
268+
} else if e == self.key_config.keys.rebase_branch
268269
&& !self.selection_is_cur_branch()
269270
&& self.valid_selection()
270271
{
@@ -273,23 +274,23 @@ impl Component for BranchListComponent {
273274
"rebase error:",
274275
self.rebase_branch()
275276
);
276-
} else if e == self.key_config.move_right
277+
} else if e == self.key_config.keys.move_right
277278
&& self.valid_selection()
278279
{
279280
self.hide();
280281
if let Some(b) = self.get_selected() {
281282
self.queue
282283
.push(InternalEvent::InspectCommit(b, None));
283284
}
284-
} else if e == self.key_config.compare_commits
285+
} else if e == self.key_config.keys.compare_commits
285286
&& self.valid_selection()
286287
{
287288
self.hide();
288289
if let Some(b) = self.get_selected() {
289290
self.queue
290291
.push(InternalEvent::CompareCommits(b, None));
291292
}
292-
} else if e == self.key_config.cmd_bar_toggle {
293+
} else if e == self.key_config.keys.cmd_bar_toggle {
293294
//do not consume if its the more key
294295
return Ok(EventState::NotConsumed);
295296
}

src/components/changes.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,8 @@ impl Component for ChangesComponent {
242242

243243
if self.focused() {
244244
if let Event::Key(e) = ev {
245-
return if e == self.key_config.stage_unstage_item {
245+
return if e == self.key_config.keys.stage_unstage_item
246+
{
246247
try_or_popup!(
247248
self,
248249
"staging error:",
@@ -253,7 +254,7 @@ impl Component for ChangesComponent {
253254
NeedsUpdate::ALL,
254255
));
255256
Ok(EventState::Consumed)
256-
} else if e == self.key_config.status_stage_all
257+
} else if e == self.key_config.keys.status_stage_all
257258
&& !self.is_empty()
258259
{
259260
if self.is_working_dir {
@@ -268,11 +269,11 @@ impl Component for ChangesComponent {
268269
self.queue
269270
.push(InternalEvent::StatusLastFileMoved);
270271
Ok(EventState::Consumed)
271-
} else if e == self.key_config.status_reset_item
272+
} else if e == self.key_config.keys.status_reset_item
272273
&& self.is_working_dir
273274
{
274275
Ok(self.dispatch_reset_workdir().into())
275-
} else if e == self.key_config.status_ignore_file
276+
} else if e == self.key_config.keys.status_ignore_file
276277
&& self.is_working_dir
277278
&& !self.is_empty()
278279
{

src/components/commit.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -316,17 +316,20 @@ impl Component for CommitComponent {
316316
}
317317

318318
if let Event::Key(e) = ev {
319-
if e == self.key_config.enter && self.can_commit() {
319+
if e == self.key_config.keys.enter
320+
&& self.can_commit()
321+
{
320322
try_or_popup!(
321323
self,
322324
"commit error:",
323325
self.commit()
324326
);
325-
} else if e == self.key_config.commit_amend
327+
} else if e == self.key_config.keys.commit_amend
326328
&& self.can_amend()
327329
{
328330
self.amend()?;
329-
} else if e == self.key_config.open_commit_editor {
331+
} else if e == self.key_config.keys.open_commit_editor
332+
{
330333
self.queue.push(
331334
InternalEvent::OpenExternalEditor(None),
332335
);

src/components/commit_details/details.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -357,16 +357,16 @@ impl Component for DetailsComponent {
357357
fn event(&mut self, event: Event) -> Result<EventState> {
358358
if self.focused {
359359
if let Event::Key(e) = event {
360-
return Ok(if e == self.key_config.move_up {
360+
return Ok(if e == self.key_config.keys.move_up {
361361
self.move_scroll_top(ScrollType::Up).into()
362-
} else if e == self.key_config.move_down {
362+
} else if e == self.key_config.keys.move_down {
363363
self.move_scroll_top(ScrollType::Down).into()
364-
} else if e == self.key_config.home
365-
|| e == self.key_config.shift_up
364+
} else if e == self.key_config.keys.home
365+
|| e == self.key_config.keys.shift_up
366366
{
367367
self.move_scroll_top(ScrollType::Home).into()
368-
} else if e == self.key_config.end
369-
|| e == self.key_config.shift_down
368+
} else if e == self.key_config.keys.end
369+
|| e == self.key_config.keys.shift_down
370370
{
371371
self.move_scroll_top(ScrollType::End).into()
372372
} else {

src/components/commit_details/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -214,13 +214,13 @@ impl Component for CommitDetailsComponent {
214214

215215
if self.focused() {
216216
if let Event::Key(e) = ev {
217-
return if e == self.key_config.focus_below
217+
return if e == self.key_config.keys.focus_below
218218
&& self.details_focused()
219219
{
220220
self.set_details_focus(false);
221221
self.file_tree.focus(true);
222222
Ok(EventState::Consumed)
223-
} else if e == self.key_config.focus_above
223+
} else if e == self.key_config.keys.focus_above
224224
&& self.file_tree.focused()
225225
&& !self.is_compare()
226226
{

src/components/commitlist.rs

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -423,28 +423,29 @@ impl DrawableComponent for CommitList {
423423
impl Component for CommitList {
424424
fn event(&mut self, ev: Event) -> Result<EventState> {
425425
if let Event::Key(k) = ev {
426-
let selection_changed = if k == self.key_config.move_up {
427-
self.move_selection(ScrollType::Up)?
428-
} else if k == self.key_config.move_down {
429-
self.move_selection(ScrollType::Down)?
430-
} else if k == self.key_config.shift_up
431-
|| k == self.key_config.home
432-
{
433-
self.move_selection(ScrollType::Home)?
434-
} else if k == self.key_config.shift_down
435-
|| k == self.key_config.end
436-
{
437-
self.move_selection(ScrollType::End)?
438-
} else if k == self.key_config.page_up {
439-
self.move_selection(ScrollType::PageUp)?
440-
} else if k == self.key_config.page_down {
441-
self.move_selection(ScrollType::PageDown)?
442-
} else if k == self.key_config.log_mark_commit {
443-
self.mark();
444-
true
445-
} else {
446-
false
447-
};
426+
let selection_changed =
427+
if k == self.key_config.keys.move_up {
428+
self.move_selection(ScrollType::Up)?
429+
} else if k == self.key_config.keys.move_down {
430+
self.move_selection(ScrollType::Down)?
431+
} else if k == self.key_config.keys.shift_up
432+
|| k == self.key_config.keys.home
433+
{
434+
self.move_selection(ScrollType::Home)?
435+
} else if k == self.key_config.keys.shift_down
436+
|| k == self.key_config.keys.end
437+
{
438+
self.move_selection(ScrollType::End)?
439+
} else if k == self.key_config.keys.page_up {
440+
self.move_selection(ScrollType::PageUp)?
441+
} else if k == self.key_config.keys.page_down {
442+
self.move_selection(ScrollType::PageDown)?
443+
} else if k == self.key_config.keys.log_mark_commit {
444+
self.mark();
445+
true
446+
} else {
447+
false
448+
};
448449
return Ok(selection_changed.into());
449450
}
450451

src/components/compare_commits.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -112,19 +112,19 @@ impl Component for CompareCommitsComponent {
112112
}
113113

114114
if let Event::Key(e) = ev {
115-
if e == self.key_config.exit_popup {
115+
if e == self.key_config.keys.exit_popup {
116116
self.hide();
117-
} else if e == self.key_config.focus_right
117+
} else if e == self.key_config.keys.focus_right
118118
&& self.can_focus_diff()
119119
{
120120
self.details.focus(false);
121121
self.diff.focus(true);
122-
} else if e == self.key_config.focus_left
122+
} else if e == self.key_config.keys.focus_left
123123
&& self.diff.focused()
124124
{
125125
self.details.focus(true);
126126
self.diff.focus(false);
127-
} else if e == self.key_config.focus_left {
127+
} else if e == self.key_config.keys.focus_left {
128128
self.hide();
129129
}
130130

src/components/create_branch.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ impl Component for CreateBranchComponent {
6767
}
6868

6969
if let Event::Key(e) = ev {
70-
if e == self.key_config.enter {
70+
if e == self.key_config.keys.enter {
7171
self.create_branch();
7272
}
7373

0 commit comments

Comments
 (0)