From a64bad4437b466d2e3f1d32d71310dac89620222 Mon Sep 17 00:00:00 2001 From: shun-iwasawa Date: Fri, 20 Sep 2019 18:32:30 +0900 Subject: [PATCH] fix color field undo registration (#2787) --- toonz/sources/include/toonzqt/colorfield.h | 1 + toonz/sources/toonzqt/colorfield.cpp | 26 ++++++++++++++-------- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/toonz/sources/include/toonzqt/colorfield.h b/toonz/sources/include/toonzqt/colorfield.h index 9aa56834..9d10a031 100644 --- a/toonz/sources/include/toonzqt/colorfield.h +++ b/toonz/sources/include/toonzqt/colorfield.h @@ -110,6 +110,7 @@ protected slots: void onSliderChanged(int value); void onSliderReleased(); void onEditChanged(const QString &str); + void onEditFinished(); }; //============================================================================= diff --git a/toonz/sources/toonzqt/colorfield.cpp b/toonz/sources/toonzqt/colorfield.cpp index 407aee8e..c37e04e7 100644 --- a/toonz/sources/toonzqt/colorfield.cpp +++ b/toonz/sources/toonzqt/colorfield.cpp @@ -70,7 +70,7 @@ StyleSample::~StyleSample() { //----------------------------------------------------------------------------- /*! Return current StyleSample \b TColorStyle style. -*/ + */ TColorStyle *StyleSample::getStyle() const { return m_style; } //----------------------------------------------------------------------------- @@ -116,7 +116,7 @@ void StyleSample::setChessboardColors(const TPixel32 &col1, //----------------------------------------------------------------------------- /*! Paint square color. -*/ + */ void StyleSample::paintEvent(QPaintEvent *event) { if (!isEnable()) return; QPainter painter(this); @@ -225,9 +225,11 @@ ChannelField::ChannelField(QWidget *parent, const QString &string, int value, bool ret = connect(m_channelEdit, SIGNAL(textChanged(const QString &)), SLOT(onEditChanged(const QString &))); - ret = ret && connect(m_channelSlider, SIGNAL(valueChanged(int)), + ret = ret && connect(m_channelEdit, SIGNAL(editingFinished()), + SLOT(onEditFinished())); + ret = ret && connect(m_channelSlider, SIGNAL(valueChanged(int)), SLOT(onSliderChanged(int))); - ret = ret && connect(m_channelSlider, SIGNAL(sliderReleased()), + ret = ret && connect(m_channelSlider, SIGNAL(sliderReleased()), SLOT(onSliderReleased())); assert(ret); } @@ -262,14 +264,20 @@ int ChannelField::getChannel() { emit signal valueChanged(int value). */ void ChannelField::onEditChanged(const QString &str) { - int value = str.toInt(); - if (value < 0) value = 0; + int value = str.toInt(); + if (value < 0) value = 0; if (value > m_maxValue) value = m_maxValue; assert(0 <= value && value <= m_maxValue); if (str.toInt() != value) m_channelEdit->setValue(value); if (m_channelSlider->value() == value) return; m_channelSlider->setValue(value); - emit valueChanged(value, false); + emit valueChanged(value, true); +} + +//----------------------------------------------------------------------------- + +void ChannelField::onEditFinished() { + emit valueChanged(m_channelEdit->getValue(), false); } //----------------------------------------------------------------------------- @@ -422,7 +430,7 @@ void ColorField::setColor(const TPixel32 &color) { //----------------------------------------------------------------------------- /*! Set all \b ChannelField channel value to ColorField current color. -*/ + */ void ColorField::hideChannelsFields(bool hide) { if (hide) { m_redChannel->hide(); @@ -456,7 +464,7 @@ void ColorField::hideChannelsFields(bool hide) { //----------------------------------------------------------------------------- /*! Set all \b ChannelField channel value to ColorField current color. -*/ + */ void ColorField::updateChannels() { m_redChannel->setChannel(m_color.r); m_greenChannel->setChannel(m_color.g);