Skip to content

Commit

Permalink
Merge pull request #1410 from manongjohn/fix_shift_frame_range
Browse files Browse the repository at this point in the history
Fix Erase and Fill Shift+Frame Range operation
  • Loading branch information
manongjohn committed Mar 13, 2024
2 parents f887e76 + 343523d commit 2edef7a
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 16 deletions.
11 changes: 7 additions & 4 deletions toonz/sources/tnztools/filltool.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1781,7 +1781,8 @@ void AreaFillTool::leftButtonDoubleClick(const TPointD &pos,
m_firstStrokes.clear();
for (int i = 0; i < m_polyline.getBrushCount(); i++)
m_firstStrokes.push_back(m_polyline.makePolylineStroke(i));
m_firstFrameId = m_parent->getCurrentFid();
m_firstFrameId = m_parent->getCurrentFid();
m_firstFrameIdx = app->getCurrentFrame()->getFrameIndex();
} else {
if (app->getCurrentFrame()->isEditingScene()) {
app->getCurrentColumn()->setColumnIndex(m_currCell.first);
Expand Down Expand Up @@ -1941,8 +1942,9 @@ void AreaFillTool::leftButtonUp(const TPointD &pos, const TMouseEvent &e,
}
m_parent->invalidate(m_selectingRect.enlarge(2));
if (e.isShiftPressed()) {
m_firstRect = m_selectingRect;
m_firstFrameId = m_parent->getCurrentFid();
m_firstRect = m_selectingRect;
m_firstFrameId = m_parent->getCurrentFid();
m_firstFrameIdx = app->getCurrentFrame()->getFrameIndex();
m_firstStrokes.clear();
if (m_polyline.size() > 1) {
for (int i = 0; i < m_polyline.getBrushCount(); i++)
Expand Down Expand Up @@ -2069,7 +2071,8 @@ void AreaFillTool::leftButtonUp(const TPointD &pos, const TMouseEvent &e,
m_firstStrokes.clear();
for (int i = 0; i < m_track.getBrushCount(); i++)
m_firstStrokes.push_back(m_track.makeStroke(error, i));
m_firstFrameId = m_parent->getCurrentFid();
m_firstFrameId = m_parent->getCurrentFid();
m_firstFrameIdx = app->getCurrentFrame()->getFrameIndex();
} else {
if (app->getCurrentFrame()->isEditingScene()) {
app->getCurrentColumn()->setColumnIndex(m_currCell.first);
Expand Down
11 changes: 7 additions & 4 deletions toonz/sources/tnztools/fullcolorerasertool.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -796,8 +796,9 @@ void FullColorEraserTool::leftButtonUp(const TPointD &pos,
notifyImageChanged();

if (e.isShiftPressed()) {
m_firstRect = m_selectingRect;
m_firstFrameId = getFrameId();
m_firstRect = m_selectingRect;
m_firstFrameId = getFrameId();
m_firstFrameIdx = getFrame();
m_firstStrokes.clear();
if (m_polyline.size() > 1) {
for (int i = 0; i < m_polyline.getBrushCount(); i++)
Expand Down Expand Up @@ -918,7 +919,8 @@ void FullColorEraserTool::leftButtonUp(const TPointD &pos,
for (int i = 0; i < m_track.getBrushCount(); i++)
m_firstStrokes.push_back(m_track.makeStroke(error, i));
invalidate();
m_firstFrameId = getFrameId();
m_firstFrameId = getFrameId();
m_firstFrameIdx = getFrame();
} else {
if (m_isXsheetCell) {
app->getCurrentColumn()->setColumnIndex(m_currCell.first);
Expand Down Expand Up @@ -1007,7 +1009,8 @@ void FullColorEraserTool::leftButtonDoubleClick(const TPointD &pos,
for (int i = 0; i < m_polyline.getBrushCount(); i++)
m_firstStrokes.push_back(m_polyline.makePolylineStroke(i));
invalidate();
m_firstFrameId = getFrameId();
m_firstFrameId = getFrameId();
m_firstFrameIdx = getFrame();
} else {
if (m_isXsheetCell) {
app->getCurrentColumn()->setColumnIndex(m_currCell.first);
Expand Down
14 changes: 9 additions & 5 deletions toonz/sources/tnztools/rastererasertool.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1595,8 +1595,9 @@ void EraserTool::leftButtonUp(const TPointD &pos, const TMouseEvent &e) {
}

if (e.isShiftPressed()) {
m_firstRect = m_selectingRect;
m_firstFrameId = getFrameId();
m_firstRect = m_selectingRect;
m_firstFrameId = getFrameId();
m_firstFrameIdx = getFrame();
m_firstStrokes.clear();
if (m_polyline.size() > 1) {
for (int i = 0; i < m_polyline.getBrushCount(); i++)
Expand Down Expand Up @@ -1823,7 +1824,8 @@ void EraserTool::leftButtonUp(const TPointD &pos, const TMouseEvent &e) {
for (int i = 0; i < m_track.getBrushCount(); i++)
m_firstStrokes.push_back(m_track.makeStroke(error, i));
invalidate();
m_firstFrameId = getFrameId();
m_firstFrameId = getFrameId();
m_firstFrameIdx = getFrame();
} else {
if (m_isXsheetCell) {
app->getCurrentColumn()->setColumnIndex(m_currCell.first);
Expand Down Expand Up @@ -1916,7 +1918,8 @@ void EraserTool::leftButtonUp(const TPointD &pos, const TMouseEvent &e) {
for (int i = 0; i < m_track.getBrushCount(); i++)
m_firstStrokes.push_back(m_track.makeStroke(error, i));
invalidate();
m_firstFrameId = getFrameId();
m_firstFrameId = getFrameId();
m_firstFrameIdx = getFrame();
} else {
if (m_isXsheetCell) {
app->getCurrentColumn()->setColumnIndex(m_currCell.first);
Expand Down Expand Up @@ -2017,7 +2020,8 @@ void EraserTool::leftButtonDoubleClick(const TPointD &pos,
for (int i = 0; i < m_polyline.getBrushCount(); i++)
m_firstStrokes.push_back(m_polyline.makePolylineStroke(i));
invalidate();
m_firstFrameId = getFrameId();
m_firstFrameId = getFrameId();
m_firstFrameIdx = getFrame();
} else {
if (m_isXsheetCell) {
app->getCurrentColumn()->setColumnIndex(m_currCell.first);
Expand Down
8 changes: 5 additions & 3 deletions toonz/sources/tnztools/vectorerasertool.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1135,8 +1135,9 @@ void EraserTool::leftButtonUp(const TPointD &pos, const TMouseEvent &e) {
}

if (e.isShiftPressed()) {
m_firstRect = m_selectingRect;
m_firstFrameId = getCurrentFid();
m_firstRect = m_selectingRect;
m_firstFrameId = getCurrentFid();
m_firstFrameIdx = getFrame();
m_firstStrokes.clear();
if (m_polyline.size() > 1) {
for (int i = 0; i < m_polyline.getBrushCount(); i++)
Expand Down Expand Up @@ -1946,7 +1947,8 @@ void EraserTool::multiErase(std::vector<TStroke *> lastStrokes, const std::wstri
for (int i = 0; i < m_track.getBrushCount(); i++)
m_firstStrokes.push_back(m_track.makeStroke(error, i));
}
m_firstFrameId = getCurrentFid();
m_firstFrameId = getCurrentFid();
m_firstFrameIdx = getFrame();
} else {
if (application->getCurrentFrame()->isEditingScene()) {
application->getCurrentColumn()->setColumnIndex(m_currCell.first);
Expand Down

0 comments on commit 2edef7a

Please sign in to comment.