diff --git a/toonz/sources/toonz/colormodelviewer.cpp b/toonz/sources/toonz/colormodelviewer.cpp index 95adbfeb6b..5293a759f4 100644 --- a/toonz/sources/toonz/colormodelviewer.cpp +++ b/toonz/sources/toonz/colormodelviewer.cpp @@ -50,6 +50,7 @@ #include #include #include +#include #define LINES "Lines" #define AREAS "Areas" @@ -94,9 +95,20 @@ ColorModelViewer::ColorModelViewer(QWidget *parent) FlipConsole::eFlipVertical, FlipConsole::eResetView}), eDontKeepFilesOpened, true) , m_mode(0) - , m_currentRefImgPath(TFilePath()) { + , m_currentRefImgPath(TFilePath()), + m_alwaysPickLineStyle(false) { setObjectName("colormodel"); + pickLineStyles = new QToolButton(this); + QString tip("Pick Line Styles"); + QIcon icon = createQIcon("centerline"); + pickLineStyles->setIcon(icon); + pickLineStyles->setToolTip(tip); + pickLineStyles->setCheckable(true); + + // TODO: add to right place + this->layout()->addWidget(pickLineStyles); + setToolCursor(m_imageViewer, ToolCursor::PickerCursor); // Do not call the special procedure for flipbook closures... @@ -105,6 +117,12 @@ ColorModelViewer::ColorModelViewer(QWidget *parent) bool ret = connect(this, SIGNAL(refImageNotFound()), this, SLOT(onRefImageNotFound()), Qt::QueuedConnection); + ret = ret && connect(pickLineStyles, &QToolButton::clicked, this, + [this](bool clicked) { + m_alwaysPickLineStyle = clicked; + changePickType(); + }); + assert(ret); m_imageViewer->setMouseTracking(true); @@ -414,6 +432,8 @@ void ColorModelViewer::changePickType() { if (!propGroup) { m_mode = 2; setToolCursor(m_imageViewer, ToolCursor::PickerCursor); + pickLineStyles->setDisabled(true); + pickLineStyles->setChecked(true); return; } @@ -422,23 +442,31 @@ void ColorModelViewer::changePickType() { if (!modeProp) { m_mode = 2; setToolCursor(m_imageViewer, ToolCursor::PickerCursor); + pickLineStyles->setDisabled(true); + pickLineStyles->setChecked(true); return; } else {//A a Temporary change, to always pick Lines and Areas std::string var = modeProp->getValueAsString(); if (var == LINES) { - m_mode = 2; - setToolCursor(m_imageViewer, ToolCursor::PickerCursor); + m_mode = 1; + setToolCursor(m_imageViewer, ToolCursor::PickerCursorLine); } else if (var == AREAS) { - m_mode = 2; - setToolCursor(m_imageViewer, ToolCursor::PickerCursor); + if (m_alwaysPickLineStyle) + m_mode = 2;// Areas & Line + else + m_mode = 0; + setToolCursor(m_imageViewer, ToolCursor::PickerCursorArea); } else // Line & Areas { m_mode = 2; setToolCursor(m_imageViewer, ToolCursor::PickerCursor); } + pickLineStyles->setEnabled(var == AREAS); + pickLineStyles->setChecked(m_mode != 0); } + } //----------------------------------------------------------------------------- diff --git a/toonz/sources/toonz/colormodelviewer.h b/toonz/sources/toonz/colormodelviewer.h index 833a62dbac..9739a665aa 100644 --- a/toonz/sources/toonz/colormodelviewer.h +++ b/toonz/sources/toonz/colormodelviewer.h @@ -17,6 +17,9 @@ class ColorModelViewer final : public FlipBook { /*-- ColorModelのファイルパスを覚えておいて、UseCurrentFrame間の移動に対応 * --*/ TFilePath m_currentRefImgPath; + /*-- Set m_mode to 2 after got m_mode --*/ + bool m_alwaysPickLineStyle; + QToolButton *pickLineStyles; public: ColorModelViewer(QWidget *parent = 0);