Add shortcut to jump to tabs; ctrl + n

This commit is contained in:
Josh Megnauth 2024-01-20 20:45:49 -05:00
parent 37318444d3
commit e4db4c0dcd
No known key found for this signature in database
GPG key ID: 70813183462EFAD3
2 changed files with 40 additions and 2 deletions

View file

@ -212,6 +212,7 @@ pub enum Message {
SystemThemeModeChange(cosmic_theme::ThemeMode),
SyntaxTheme(usize, bool),
TabActivate(segmented_button::Entity),
TabActivateJump(usize),
TabChanged(segmented_button::Entity),
TabClose(segmented_button::Entity),
TabContextAction(segmented_button::Entity, Action),
@ -1599,6 +1600,21 @@ impl Application for App {
self.tab_model.activate(entity);
return self.update_tab();
}
Message::TabActivateJump(pos) => {
// Length is always at least one, so there shouldn't be a division by zero
let len = self.tab_model.iter().count();
//
let pos = if pos >= 8 || pos > len - 1 {
len - 1
} else {
pos % len
};
let entity = self.tab_model.iter().nth(pos);
if let Some(entity) = entity {
return self.update(Message::TabActivate(entity));
}
}
Message::TabChanged(entity) => {
if let Some(Tab::Editor(tab)) = self.tab_model.data::<Tab>(entity) {
let mut title = tab.title();