Merge pull request #4178 from uLeonis/master

[v0.20][Gui] Consolidate Std view modes
This commit is contained in:
Yorik van Havre
2021-09-09 12:22:27 +02:00
committed by GitHub
10 changed files with 299 additions and 45 deletions

View File

@@ -63,11 +63,11 @@ void AbstractMouseSelection::grabMouseModel(Gui::View3DInventorViewer* viewer)
initialize();
}
void AbstractMouseSelection::releaseMouseModel()
void AbstractMouseSelection::releaseMouseModel(bool abort)
{
if (_pcView3D) {
// do termination of your mousemodel
terminate();
terminate(abort);
_pcView3D->getWidget()->setCursor(m_cPrevCursor);
_pcView3D = 0;
@@ -278,7 +278,7 @@ void PolyPickerSelection::initialize()
lastConfirmed = false;
}
void PolyPickerSelection::terminate()
void PolyPickerSelection::terminate(bool abort)
{
_pcView3D->removeGraphicsItem(&polyline);
_pcView3D->setRenderType(View3DInventorViewer::Native);
@@ -671,7 +671,7 @@ void RubberbandSelection::initialize()
_pcView3D->redraw();
}
void RubberbandSelection::terminate()
void RubberbandSelection::terminate(bool abort)
{
_pcView3D->removeGraphicsItem(&rubberband);
if (QtGLFramebufferObject::hasOpenGLFramebufferObjects()) {
@@ -763,14 +763,15 @@ BoxZoomSelection::~BoxZoomSelection()
{
}
void BoxZoomSelection::terminate()
void BoxZoomSelection::terminate(bool abort)
{
RubberbandSelection::terminate();
int xmin = std::min<int>(m_iXold, m_iXnew);
int xmax = std::max<int>(m_iXold, m_iXnew);
int ymin = std::min<int>(m_iYold, m_iYnew);
int ymax = std::max<int>(m_iYold, m_iYnew);
SbBox2s box(xmin, ymin, xmax, ymax);
_pcView3D->boxZoom(box);
RubberbandSelection::terminate(abort);
if (!abort) {
int xmin = std::min<int>(m_iXold, m_iXnew);
int xmax = std::max<int>(m_iXold, m_iXnew);
int ymin = std::min<int>(m_iYold, m_iYnew);
int ymax = std::max<int>(m_iYold, m_iYnew);
SbBox2s box(xmin, ymin, xmax, ymax);
_pcView3D->boxZoom(box);
}
}