diff --git a/toonz/sources/toonz/frameheadgadget.cpp b/toonz/sources/toonz/frameheadgadget.cpp index 29e3876..76e525e 100644 --- a/toonz/sources/toonz/frameheadgadget.cpp +++ b/toonz/sources/toonz/frameheadgadget.cpp @@ -37,12 +37,6 @@ void enableOnionSkin(bool enable = true) osmh->notifyOnionSkinMaskChanged(); } -void enableZeroThick(bool enable = true) -{ - Preferences::instance()->setShow0ThickLines(enable); - TApp::instance()->getCurrentScene()->notifySceneChanged(); -} - bool isOnionSkinEnabled() { TOnionSkinMaskHandle *osmh = TApp::instance()->getCurrentOnionSkin(); @@ -703,4 +697,36 @@ public: bool checked = action->isChecked(); enableZeroThick(checked); } + + static void enableZeroThick(bool enable = true) + { + Preferences::instance()->setShow0ThickLines(enable); + TApp::instance()->getCurrentScene()->notifySceneChanged(); + } } ZeroThickToggle; + + +void ZeroThickToggleGui::addZeroThickCommand(QMenu *menu) +{ + static ZeroThickToggleHandler switcher; + if (Preferences::instance()->getShow0ThickLines()) { + QAction *hideZeroThick = menu->addAction(QString(QObject::tr("Hide Zero Thickness Lines"))); + menu->connect(hideZeroThick, SIGNAL(triggered()), + &switcher, SLOT(deactivate())); + } + else { + QAction *showZeroThick = menu->addAction(QString(QObject::tr("Show Zero Thickness Lines"))); + menu->connect(showZeroThick, SIGNAL(triggered()), + &switcher, SLOT(activate())); + } +} + +void ZeroThickToggleGui::ZeroThickToggleHandler::activate() +{ + ZeroThickToggle::enableZeroThick(true); +} + +void ZeroThickToggleGui::ZeroThickToggleHandler::deactivate() +{ + ZeroThickToggle::enableZeroThick(false); +} \ No newline at end of file diff --git a/toonz/sources/toonz/frameheadgadget.h b/toonz/sources/toonz/frameheadgadget.h index d3fa727..bf6aee2 100644 --- a/toonz/sources/toonz/frameheadgadget.h +++ b/toonz/sources/toonz/frameheadgadget.h @@ -11,6 +11,7 @@ class FilmstripFrames; class QEvent; class QColor; class QWidget; +class QMenu; class FrameHeadGadget : public QObject { @@ -84,4 +85,20 @@ public: bool eventFilter(QObject *obj, QEvent *event); }; +namespace ZeroThickToggleGui +{ + void addZeroThickCommand(QMenu* menu); + + class ZeroThickToggleHandler : public QObject + { + Q_OBJECT + + public slots: + void activate(); + void deactivate(); + }; + + +} //Namespace ZeroThickToggleGui + #endif diff --git a/toonz/sources/toonz/sceneviewercontextmenu.cpp b/toonz/sources/toonz/sceneviewercontextmenu.cpp index b4a02ed..8135be3 100644 --- a/toonz/sources/toonz/sceneviewercontextmenu.cpp +++ b/toonz/sources/toonz/sceneviewercontextmenu.cpp @@ -7,6 +7,7 @@ #include "tapp.h" #include "menubarcommandids.h" #include "onionskinmaskgui.h" +#include "frameheadgadget.h" // TnzTools includes #include "tools/toolhandle.h" @@ -158,10 +159,14 @@ SceneViewerContextMenu::SceneViewerContextMenu(SceneViewer *parent) addAction(action); ret = ret && parent->connect(action, SIGNAL(triggered()), SLOT(setActualPixelSize())); -// onion skin + // onion skin if (Preferences::instance()->isOnionSkinEnabled() && !parent->isPreviewEnabled()) OnioniSkinMaskGUI::addOnionSkinCommand(this); + // Zero Thick + if (!parent->isPreviewEnabled()) + ZeroThickToggleGui::addZeroThickCommand(this); + // preview if (parent->isPreviewEnabled()) { addSeparator();