1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 18:17:44 +00:00

PixelPaint: Add level sliders for brightness, contrast and gamma

This patch adds a basic dialog to change brightness, contrast and gamma
correction for the selected layer.
This commit is contained in:
Torstennator 2022-04-24 10:46:59 +02:00 committed by Sam Atkins
parent 69c451e485
commit 5aeb6552f0
9 changed files with 303 additions and 0 deletions

View file

@ -12,6 +12,7 @@
#include "EditGuideDialog.h"
#include "FilterGallery.h"
#include "FilterParams.h"
#include "LevelsDialog.h"
#include "ResizeImageDialog.h"
#include <Applications/PixelPaint/PixelPaintWindowGML.h>
#include <LibConfig/Client.h>
@ -701,6 +702,15 @@ void MainWidget::initialize_menubar(GUI::Window& window)
auto& help_menu = window.add_menu("&Help");
help_menu.add_action(GUI::CommonActions::make_about_action("Pixel Paint", GUI::Icon::default_icon("app-pixel-paint"), &window));
m_levels_dialog_action = GUI::Action::create(
"Change &Levels...", { Mod_Ctrl, Key_L }, g_icon_bag.levels, [&](auto&) {
auto* editor = current_image_editor();
VERIFY(editor);
auto dialog = PixelPaint::LevelsDialog::construct(&window, editor);
if (dialog->exec() != GUI::Dialog::ExecResult::OK)
dialog->revert_possible_changes();
});
auto& toolbar = *find_descendant_of_type_named<GUI::Toolbar>("toolbar");
toolbar.add_action(*m_new_image_action);
toolbar.add_action(*m_open_image_action);
@ -715,6 +725,7 @@ void MainWidget::initialize_menubar(GUI::Window& window)
toolbar.add_action(*m_zoom_in_action);
toolbar.add_action(*m_zoom_out_action);
toolbar.add_action(*m_reset_zoom_action);
m_zoom_combobox = toolbar.add<GUI::ComboBox>();
m_zoom_combobox->set_max_width(75);
m_zoom_combobox->set_model(*GUI::ItemListModel<String>::create(s_suggested_zoom_levels));
@ -752,6 +763,9 @@ void MainWidget::initialize_menubar(GUI::Window& window)
m_zoom_combobox->on_return_pressed = [this]() {
m_zoom_combobox->on_change(m_zoom_combobox->text(), GUI::ModelIndex());
};
toolbar.add_separator();
toolbar.add_action(*m_levels_dialog_action);
}
void MainWidget::set_actions_enabled(bool enabled)