mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 05:37:34 +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);
|
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)
|
void Image::remove_layer(Layer& layer)
|
||||||
{
|
{
|
||||||
NonnullRefPtr<Layer> protector(layer);
|
NonnullRefPtr<Layer> protector(layer);
|
||||||
|
|
|
@ -57,6 +57,8 @@ public:
|
||||||
|
|
||||||
void move_layer_to_front(Layer&);
|
void move_layer_to_front(Layer&);
|
||||||
void move_layer_to_back(Layer&);
|
void move_layer_to_back(Layer&);
|
||||||
|
void move_layer_up(Layer&);
|
||||||
|
void move_layer_down(Layer&);
|
||||||
void remove_layer(Layer&);
|
void remove_layer(Layer&);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -151,6 +151,23 @@ int main(int argc, char** argv)
|
||||||
layer_table_view.selection().set(layer_table_view.model()->index(0));
|
layer_table_view.selection().set(layer_table_view.model()->index(0));
|
||||||
}, window));
|
}, window));
|
||||||
layer_menu.add_separator();
|
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&) {
|
layer_menu.add_action(GUI::Action::create("Remove active layer", { Mod_Ctrl , Key_D }, [&](auto&) {
|
||||||
auto active_layer = image_editor.active_layer();
|
auto active_layer = image_editor.active_layer();
|
||||||
if(!active_layer)
|
if(!active_layer)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue