disable edit shift when deactivating shift & trace

This commit is contained in:
shun-iwasawa 2022-03-14 19:00:43 +09:00 committed by manongjohn
parent 73164b3b33
commit c365f34223
2 changed files with 15 additions and 1 deletions

View file

@ -348,6 +348,10 @@ void ShiftTraceTool::onActivate() {
} }
void ShiftTraceTool::onDeactivate() { void ShiftTraceTool::onDeactivate() {
// Deactivating Shift and Trace mode resets the pseudo tool with keeping the
// Edit Shift checkbox unchanged
QAction *shiftTrace = CommandManager::instance()->getAction("MI_ShiftTrace");
if (!shiftTrace->isChecked()) return;
QAction *action = CommandManager::instance()->getAction("MI_EditShift"); QAction *action = CommandManager::instance()->getAction("MI_EditShift");
action->setChecked(false); action->setChecked(false);
} }

View file

@ -420,7 +420,17 @@ public:
if (std::string(m_cmdId) == MI_ShiftTrace) { if (std::string(m_cmdId) == MI_ShiftTrace) {
cm->enable(MI_EditShift, checked); cm->enable(MI_EditShift, checked);
cm->enable(MI_NoShift, checked); cm->enable(MI_NoShift, checked);
if (checked) OnioniSkinMaskGUI::resetShiftTraceFrameOffset(); if (checked) {
OnioniSkinMaskGUI::resetShiftTraceFrameOffset();
// activate edit shift
if (isChecked(MI_EditShift))
TApp::instance()->getCurrentTool()->setPseudoTool("T_ShiftTrace");
} else {
// deactivate edit shift
if (isChecked(MI_EditShift))
TApp::instance()->getCurrentTool()->unsetPseudoTool();
}
// cm->getAction(MI_NoShift)->setChecked(false); // cm->getAction(MI_NoShift)->setChecked(false);
TApp::instance()->getCurrentOnionSkin()->notifyOnionSkinMaskChanged(); TApp::instance()->getCurrentOnionSkin()->notifyOnionSkinMaskChanged();
} else if (std::string(m_cmdId) == MI_EditShift) { } else if (std::string(m_cmdId) == MI_EditShift) {