From fd62a6047274ac2d294c516b9f6f5870a73d4df2 Mon Sep 17 00:00:00 2001 From: David Capello Date: Mon, 23 Mar 2015 14:39:21 -0300 Subject: [PATCH] Save ColorBar box size in preferences --- data/pref.xml | 3 +++ src/app/ui/color_bar.cpp | 10 +++++++++- src/app/ui/color_bar.h | 1 + src/app/ui/color_selector.cpp | 2 +- src/app/ui/palette_view.cpp | 7 +++++-- src/app/ui/palette_view.h | 3 ++- 6 files changed, 21 insertions(+), 5 deletions(-) diff --git a/data/pref.xml b/data/pref.xml index 80ae13406..a749a4012 100644 --- a/data/pref.xml +++ b/data/pref.xml @@ -81,6 +81,9 @@
+
+
diff --git a/src/app/ui/color_bar.cpp b/src/app/ui/color_bar.cpp index 231e7fa11..e58c263d9 100644 --- a/src/app/ui/color_bar.cpp +++ b/src/app/ui/color_bar.cpp @@ -11,6 +11,7 @@ #include "app/ui/color_bar.h" +#include "app/app.h" #include "app/cmd/remap_colors.h" #include "app/cmd/set_palette.h" #include "app/color.h" @@ -20,6 +21,7 @@ #include "app/context_access.h" #include "app/ini_file.h" #include "app/modules/gui.h" +#include "app/pref/preferences.h" #include "app/transaction.h" #include "app/ui/skin/skin_theme.h" #include "app/ui/status_bar.h" @@ -75,7 +77,8 @@ ColorBar* ColorBar::m_instance = NULL; ColorBar::ColorBar(int align) : Box(align) , m_paletteButton("Edit Palette") - , m_paletteView(true, this) + , m_paletteView(true, this, + App::instance()->preferences().colorBar.boxSize() * guiscale()) , m_remapButton("Remap") , m_fgColor(app::Color::fromRgb(255, 255, 255), IMAGE_RGB) , m_bgColor(app::Color::fromRgb(0, 0, 0), IMAGE_RGB) @@ -269,6 +272,11 @@ void ColorBar::onPaletteViewRemapColors(const Remap& remap, const Palette* newPa } } +void ColorBar::onPaletteViewChangeSize(int boxsize) +{ + App::instance()->preferences().colorBar.boxSize(boxsize / guiscale()); +} + void ColorBar::onFgColorButtonChange(const app::Color& color) { if (!m_lock) diff --git a/src/app/ui/color_bar.h b/src/app/ui/color_bar.h index 89734f9b2..7f14e237b 100644 --- a/src/app/ui/color_bar.h +++ b/src/app/ui/color_bar.h @@ -64,6 +64,7 @@ namespace app { // PaletteViewDelegate impl void onPaletteViewIndexChange(int index, ui::MouseButtons buttons) override; void onPaletteViewRemapColors(const doc::Remap& remap, const doc::Palette* newPalette) override; + void onPaletteViewChangeSize(int boxsize) override; private: class ScrollableView : public ui::View { diff --git a/src/app/ui/color_selector.cpp b/src/app/ui/color_selector.cpp index ddd89ca17..9219b515b 100644 --- a/src/app/ui/color_selector.cpp +++ b/src/app/ui/color_selector.cpp @@ -55,7 +55,7 @@ ColorSelector::ColorSelector() , m_vbox(JI_VERTICAL) , m_topBox(JI_HORIZONTAL) , m_color(app::Color::fromMask()) - , m_colorPalette(false, this) + , m_colorPalette(false, this, 7*guiscale()) , m_indexButton("Index", 1, kButtonWidget) , m_rgbButton("RGB", 1, kButtonWidget) , m_hsvButton("HSB", 1, kButtonWidget) diff --git a/src/app/ui/palette_view.cpp b/src/app/ui/palette_view.cpp index 762289ffa..61479132f 100644 --- a/src/app/ui/palette_view.cpp +++ b/src/app/ui/palette_view.cpp @@ -51,13 +51,13 @@ WidgetType palette_view_type() return type; } -PaletteView::PaletteView(bool editable, PaletteViewDelegate* delegate) +PaletteView::PaletteView(bool editable, PaletteViewDelegate* delegate, int boxsize) : Widget(palette_view_type()) , m_state(State::WAITING) , m_editable(editable) , m_delegate(delegate) , m_columns(16) - , m_boxsize(7*guiscale()) + , m_boxsize(boxsize) , m_currentEntry(-1) , m_rangeAnchor(-1) , m_selectedEntries(Palette::MaxColors, false) @@ -248,6 +248,9 @@ bool PaletteView::onProcessMessage(Message* msg) int z = delta.x - delta.y; m_boxsize += z * guiscale(); m_boxsize = MID(4*guiscale(), m_boxsize, 32*guiscale()); + if (m_delegate) + m_delegate->onPaletteViewChangeSize(m_boxsize); + view->layout(); } else { diff --git a/src/app/ui/palette_view.h b/src/app/ui/palette_view.h index f4de7ba7f..76518aa4d 100644 --- a/src/app/ui/palette_view.h +++ b/src/app/ui/palette_view.h @@ -28,13 +28,14 @@ namespace app { virtual ~PaletteViewDelegate() { } virtual void onPaletteViewIndexChange(int index, ui::MouseButtons buttons) { } virtual void onPaletteViewRemapColors(const doc::Remap& remap, const doc::Palette* newPalette) { } + virtual void onPaletteViewChangeSize(int boxsize) { } }; class PaletteView : public ui::Widget { public: typedef std::vector SelectedEntries; - PaletteView(bool editable, PaletteViewDelegate* delegate); + PaletteView(bool editable, PaletteViewDelegate* delegate, int boxsize); int getColumns() const { return m_columns; } void setColumns(int columns);