Add menu items for projects and closing files
This commit is contained in:
parent
e278317565
commit
5032f74356
4 changed files with 33 additions and 5 deletions
|
|
@ -1,5 +1,6 @@
|
|||
new-document = New document
|
||||
open-project = Open project
|
||||
todo = TODO
|
||||
|
||||
# Context Pages
|
||||
|
||||
|
|
@ -30,8 +31,11 @@ file = File
|
|||
new-file = New file
|
||||
new-window = New window
|
||||
open-file = Open file...
|
||||
open-recent = Open recent
|
||||
todo = TODO
|
||||
open-recent-file = Open recent file
|
||||
close-file = Close file
|
||||
menu-open-project = Open project...
|
||||
open-recent-project = Open recent project
|
||||
close-project = Close project
|
||||
save = Save
|
||||
save-as = Save as...
|
||||
revert-all-changes = Revert all changes
|
||||
|
|
|
|||
|
|
@ -12,11 +12,14 @@ pub const CONFIG_VERSION: u64 = 1;
|
|||
|
||||
#[derive(Clone, Copy, Debug, Deserialize, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)]
|
||||
pub enum Action {
|
||||
CloseFile,
|
||||
CloseProject,
|
||||
Copy,
|
||||
Cut,
|
||||
NewFile,
|
||||
NewWindow,
|
||||
OpenFileDialog,
|
||||
OpenProjectDialog,
|
||||
Paste,
|
||||
Quit,
|
||||
Save,
|
||||
|
|
@ -28,11 +31,14 @@ pub enum Action {
|
|||
impl Action {
|
||||
pub fn message(&self) -> Message {
|
||||
match self {
|
||||
Self::CloseFile => Message::CloseFile,
|
||||
Self::CloseProject => Message::CloseProject,
|
||||
Self::Copy => Message::Copy,
|
||||
Self::Cut => Message::Cut,
|
||||
Self::NewFile => Message::NewFile,
|
||||
Self::NewWindow => Message::NewWindow,
|
||||
Self::OpenFileDialog => Message::OpenFileDialog,
|
||||
Self::OpenProjectDialog => Message::OpenProjectDialog,
|
||||
Self::Paste => Message::Paste,
|
||||
Self::Quit => Message::Quit,
|
||||
Self::Save => Message::Save,
|
||||
|
|
@ -74,12 +80,14 @@ impl KeyBind {
|
|||
}};
|
||||
}
|
||||
|
||||
bind!([Ctrl], W, CloseFile);
|
||||
bind!([Ctrl], X, Cut);
|
||||
bind!([Ctrl], C, Copy);
|
||||
bind!([Ctrl], V, Paste);
|
||||
bind!([Ctrl], N, NewFile);
|
||||
bind!([Ctrl, Shift], N, NewWindow);
|
||||
bind!([Ctrl], T, NewFile);
|
||||
bind!([Ctrl], N, NewWindow);
|
||||
bind!([Ctrl], O, OpenFileDialog);
|
||||
bind!([Ctrl, Shift], O, OpenProjectDialog);
|
||||
bind!([Ctrl], Q, Quit);
|
||||
bind!([Ctrl], S, Save);
|
||||
bind!([Ctrl], A, SelectAll);
|
||||
|
|
|
|||
|
|
@ -72,6 +72,8 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||
#[derive(Clone, Debug, Eq, PartialEq)]
|
||||
pub enum Message {
|
||||
Config(Config),
|
||||
CloseFile,
|
||||
CloseProject,
|
||||
Copy,
|
||||
Cut,
|
||||
DefaultFont(usize),
|
||||
|
|
@ -523,6 +525,12 @@ impl cosmic::Application for App {
|
|||
self.update_config();
|
||||
}
|
||||
}
|
||||
Message::CloseFile => {
|
||||
return self.update(Message::TabClose(self.tab_model.active()));
|
||||
}
|
||||
Message::CloseProject => {
|
||||
log::info!("TODO");
|
||||
}
|
||||
Message::Copy => match self.active_tab() {
|
||||
Some(tab) => {
|
||||
let editor = tab.editor.lock().unwrap();
|
||||
|
|
|
|||
10
src/menu.rs
10
src/menu.rs
|
|
@ -101,9 +101,17 @@ pub fn menu_bar<'a>(config: &Config) -> Element<'a, Message> {
|
|||
MenuTree::new(horizontal_rule(1)),
|
||||
menu_item(fl!("open-file"), Message::OpenFileDialog),
|
||||
MenuTree::with_children(
|
||||
menu_folder(fl!("open-recent")),
|
||||
menu_folder(fl!("open-recent-file")),
|
||||
vec![menu_item(fl!("todo"), Message::Todo)],
|
||||
),
|
||||
menu_item(fl!("close-file"), Message::CloseFile),
|
||||
MenuTree::new(horizontal_rule(1)),
|
||||
menu_item(fl!("menu-open-project"), Message::OpenProjectDialog),
|
||||
MenuTree::with_children(
|
||||
menu_folder(fl!("open-recent-project")),
|
||||
vec![menu_item(fl!("todo"), Message::Todo)],
|
||||
),
|
||||
menu_item(fl!("close-project"), Message::CloseProject),
|
||||
MenuTree::new(horizontal_rule(1)),
|
||||
menu_item(fl!("save"), Message::Save),
|
||||
menu_key(fl!("save-as"), "Ctrl + Shift + S", Message::Todo),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue