URI: 
       Track API changes. - icy_draw - icy_draw is the successor to mystic draw. fork / mirror
  HTML git clone https://git.drkhsh.at/icy_draw.git
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 06921b3bad014f05752dbadc0b1b9c2f2e6fcdad
   DIR parent 060f8efb33dab6ae225328fa545a7ecbc63fb42b
  HTML Author: Mike Krüger <mkrueger@posteo.de>
       Date:   Sun,  3 Sep 2023 10:06:32 +0200
       
       Track API changes.
       
       Diffstat:
         M src/ui/messages.rs                  |      46 ++++++++++---------------------
         M src/ui/tools/layer_view.rs          |      10 +++++-----
         M src/ui/top_bar.rs                   |       1 +
       
       3 files changed, 20 insertions(+), 37 deletions(-)
       ---
   DIR diff --git a/src/ui/messages.rs b/src/ui/messages.rs
       @@ -21,9 +21,9 @@ pub enum Message {
            ExportFile,
            ShowOutlineDialog,
        
       -    NewLayer,
       +    AddLayer,
            EditLayer(usize),
       -    DeleteLayer(usize),
       +    RemoveLayer(usize),
            MoveLayerUp(usize),
            MoveLayerDown(usize),
            ToggleVisibility(usize),
       @@ -218,17 +218,12 @@ impl MainWindow {
                            self.open_dialog(crate::EditLayerDialog::new(&view.lock().get_buffer(), i));
                        }
                    }
       -            Message::NewLayer => {
       -                if let Some(editor) = self
       -                    .get_active_document()
       -                    .unwrap()
       -                    .lock()
       -                    .unwrap()
       -                    .get_ansi_editor_mut()
       -                {
       +            Message::AddLayer => {
       +                self.run_editor_command(0, |_, editor, _| {
                            let mut lock = editor.buffer_view.lock();
       -                    lock.get_edit_state_mut().create_new_layer();
       -                }
       +                    lock.get_edit_state_mut().add_layer();
       +                    None
       +                });
                    }
                    Message::MoveLayerUp(cur_layer) => {
                        if let Some(editor) = self
       @@ -264,28 +259,15 @@ impl MainWindow {
                            editor.set_cur_layer(editor.get_cur_layer() + 1);
                        }
                    }
       -            Message::DeleteLayer(cur_layer) => {
       -                self.run_editor_command(cur_layer, |_, editor, cur_layer| {
       -                    editor
       -                        .buffer_view
       -                        .lock()
       -                        .get_buffer_mut()
       -                        .layers
       -                        .remove(cur_layer);
       -                    editor.set_cur_layer(
       -                        editor.get_cur_layer().clamp(
       -                            0,
       -                            editor
       -                                .buffer_view
       -                                .lock()
       -                                .get_buffer()
       -                                .layers
       -                                .len()
       -                                .saturating_sub(1),
       -                        ),
       -                    );
       +            Message::RemoveLayer(cur_layer) => {
       +
       +                self.run_editor_command(cur_layer, |_, editor: &mut crate::AnsiEditor, cur_layer| {
       +                    let mut lock = editor.buffer_view.lock();
       +                    lock.get_edit_state_mut().remove_layer(cur_layer);
                            None
                        });
       +
       +                
                    }
                    Message::DuplicateLayer(cur_layer) => {
                        self.run_editor_command(cur_layer, |_, editor, cur_layer| {
   DIR diff --git a/src/ui/tools/layer_view.rs b/src/ui/tools/layer_view.rs
       @@ -48,7 +48,7 @@ fn show_layer_view(ui: &mut egui::Ui, editor: &AnsiEditor) -> Option<Message> {
                .id_source("layer_view_scroll_area")
                .max_height(180.)
                .show_rows(ui, row_height, max, |ui, range| {
       -            for i in range {
       +            for i in range.rev() {
                        ui.horizontal(|ui| {
                            ui.add_space(4.0);
                            let (is_visible, title, color) = {
       @@ -144,7 +144,7 @@ fn show_layer_view(ui: &mut egui::Ui, editor: &AnsiEditor) -> Option<Message> {
                                    .button(fl!(crate::LANGUAGE_LOADER, "layer_tool_menu_new_layer"))
                                    .clicked()
                                {
       -                            result = Some(Message::NewLayer);
       +                            result = Some(Message::AddLayer);
                                    ui.close_menu();
                                }
                                if ui
       @@ -168,7 +168,7 @@ fn show_layer_view(ui: &mut egui::Ui, editor: &AnsiEditor) -> Option<Message> {
                                    .button(fl!(crate::LANGUAGE_LOADER, "layer_tool_menu_delete_layer"))
                                    .clicked()
                                {
       -                            result = Some(Message::DeleteLayer(i));
       +                            result = Some(Message::RemoveLayer(i));
                                    ui.close_menu();
                                }
                            });
       @@ -193,7 +193,7 @@ fn show_layer_view(ui: &mut egui::Ui, editor: &AnsiEditor) -> Option<Message> {
                });
        
                if r.clicked() {
       -            result = Some(Message::NewLayer);
       +            result = Some(Message::AddLayer);
                }
        
                let r = medium_hover_button(ui, &crate::MOVE_UP_SVG).on_hover_ui(|ui| {
       @@ -217,7 +217,7 @@ fn show_layer_view(ui: &mut egui::Ui, editor: &AnsiEditor) -> Option<Message> {
                });
        
                if r.clicked() && cur_layer < max {
       -            result = Some(Message::DeleteLayer(cur_layer));
       +            result = Some(Message::RemoveLayer(cur_layer));
                }
            });
            result
   DIR diff --git a/src/ui/top_bar.rs b/src/ui/top_bar.rs
       @@ -122,6 +122,7 @@ impl MainWindow {
                    });
        
                    ui.menu_button(fl!(crate::LANGUAGE_LOADER, "menu-edit"), |ui| {
       +                ui.set_width(250.0);
                        if let Some(doc) = self.get_active_document() {
                            if doc.lock().unwrap().can_undo() {
                                let button = button_with_shortcut(