mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 17:37:37 +00:00
PaintBrush: Added 'Move active layer up/down' to the Menu
This allowes the active layer to be moved up or down.
This commit is contained in:
parent
80a360683f
commit
49727ffee4
3 changed files with 39 additions and 0 deletions
|
@ -104,6 +104,26 @@ void Image::move_layer_to_front(Layer& layer)
|
|||
m_layers.append(layer);
|
||||
}
|
||||
|
||||
void Image::move_layer_down(Layer& layer)
|
||||
{
|
||||
NonnullRefPtr<Layer> protector(layer);
|
||||
auto index = index_of(layer);
|
||||
if (!index)
|
||||
return;
|
||||
m_layers.remove(index);
|
||||
m_layers.insert(index - 1, layer);
|
||||
}
|
||||
|
||||
void Image::move_layer_up(Layer& layer)
|
||||
{
|
||||
NonnullRefPtr<Layer> protector(layer);
|
||||
auto index = index_of(layer);
|
||||
if (index == m_layers.size() - 1)
|
||||
return;
|
||||
m_layers.remove(index);
|
||||
m_layers.insert(index + 1, layer);
|
||||
}
|
||||
|
||||
void Image::remove_layer(Layer& layer)
|
||||
{
|
||||
NonnullRefPtr<Layer> protector(layer);
|
||||
|
|
|
@ -57,6 +57,8 @@ public:
|
|||
|
||||
void move_layer_to_front(Layer&);
|
||||
void move_layer_to_back(Layer&);
|
||||
void move_layer_up(Layer&);
|
||||
void move_layer_down(Layer&);
|
||||
void remove_layer(Layer&);
|
||||
|
||||
private:
|
||||
|
|
|
@ -151,6 +151,23 @@ int main(int argc, char** argv)
|
|||
layer_table_view.selection().set(layer_table_view.model()->index(0));
|
||||
}, window));
|
||||
layer_menu.add_separator();
|
||||
layer_menu.add_action(GUI::Action::create("Move active layer up", { Mod_Ctrl, Key_PageUp }, [&](auto&) {
|
||||
auto active_layer = image_editor.active_layer();
|
||||
if(!active_layer)
|
||||
return;
|
||||
image_editor.image()->move_layer_up(*active_layer);
|
||||
layer_table_view.move_selection(1);
|
||||
image_editor.layers_did_change();
|
||||
}, window));
|
||||
layer_menu.add_action(GUI::Action::create("Move active layer down", { Mod_Ctrl, Key_PageDown }, [&](auto&) {
|
||||
auto active_layer = image_editor.active_layer();
|
||||
if(!active_layer)
|
||||
return;
|
||||
image_editor.image()->move_layer_down(*active_layer);
|
||||
layer_table_view.move_selection(-1);
|
||||
image_editor.layers_did_change();
|
||||
}, window));
|
||||
layer_menu.add_separator();
|
||||
layer_menu.add_action(GUI::Action::create("Remove active layer", { Mod_Ctrl , Key_D }, [&](auto&) {
|
||||
auto active_layer = image_editor.active_layer();
|
||||
if(!active_layer)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue