This commit is contained in:
Person 2019-06-11 19:19:27 -07:00
commit 6289ea7808
2 changed files with 11 additions and 8 deletions

View File

@ -261,6 +261,7 @@ void FractoriumEmberController<T>::OpenAndPrepFiles(const QStringList& filenames
FillLibraryTree(append ? previousSize - 1 : 0); FillLibraryTree(append ? previousSize - 1 : 0);
ClearUndo(); ClearUndo();
m_GLController->ClearControl();
SetEmber(previousSize, false); SetEmber(previousSize, false);
} }
} }
@ -279,7 +280,7 @@ void Fractorium::OnActionOpen(bool checked) { m_Controller->OpenAndPrepFiles(Set
template <typename T> template <typename T>
void FractoriumEmberController<T>::SaveCurrentAsXml() void FractoriumEmberController<T>::SaveCurrentAsXml()
{ {
QString filename; QString filename;
auto s = m_Fractorium->m_Settings; auto s = m_Fractorium->m_Settings;
if (s->SaveAutoUnique() && m_LastSaveCurrent != "") if (s->SaveAutoUnique() && m_LastSaveCurrent != "")
@ -321,6 +322,8 @@ void FractoriumEmberController<T>::SaveCurrentAsXml()
else else
m_Fractorium->ShowCritical("Save Failed", "Could not save file, try saving to a different folder."); m_Fractorium->ShowCritical("Save Failed", "Could not save file, try saving to a different folder.");
} }
m_GLController->ClearControl();
} }
void Fractorium::OnActionSaveCurrentAsXml(bool checked) { m_Controller->SaveCurrentAsXml(); } void Fractorium::OnActionSaveCurrentAsXml(bool checked) { m_Controller->SaveCurrentAsXml(); }
@ -364,6 +367,8 @@ void FractoriumEmberController<T>::SaveEntireFileAsXml()
else else
m_Fractorium->ShowCritical("Save Failed", "Could not save file, try saving to a different folder."); m_Fractorium->ShowCritical("Save Failed", "Could not save file, try saving to a different folder.");
} }
m_GLController->ClearControl();
} }
void Fractorium::OnActionSaveEntireFileAsXml(bool checked) { m_Controller->SaveEntireFileAsXml(); } void Fractorium::OnActionSaveEntireFileAsXml(bool checked) { m_Controller->SaveEntireFileAsXml(); }

View File

@ -374,7 +374,7 @@ void GLEmberControllerBase::ClearControl() { m_DragModifier &= ~et(eDragModifier
template <typename T> template <typename T>
void GLEmberController<T>::ClearWindow() void GLEmberController<T>::ClearWindow()
{ {
auto ember = m_FractoriumEmberController->CurrentEmber(); auto ember = m_FractoriumEmberController->CurrentEmber();
m_GL->makeCurrent(); m_GL->makeCurrent();
m_GL->glClearColor(ember->m_Background.r, ember->m_Background.g, ember->m_Background.b, 1.0); m_GL->glClearColor(ember->m_Background.r, ember->m_Background.g, ember->m_Background.b, 1.0);
m_GL->glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); m_GL->glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
@ -804,7 +804,7 @@ bool GLEmberControllerBase::KeyPress_(QKeyEvent* e)
{ {
SetControl(); SetControl();
return true; return true;
} }
return false; return false;
} }
@ -829,7 +829,7 @@ bool GLEmberControllerBase::KeyRelease_(QKeyEvent* e)
{ {
if (e->key() == Qt::Key_Control) if (e->key() == Qt::Key_Control)
{ {
ClearControl(); ClearControl();
return true; return true;
} }
@ -1116,12 +1116,10 @@ void GLEmberController<T>::Wheel(QWheelEvent* e)
} }
else else
{ {
if (m_Fractorium->DrawImage()) if (m_Fractorium->DrawImage() && (!(e->buttons() & Qt::MiddleButton)) && (!(e->modifiers() & Qt::ShiftModifier))) //Middle button does whole image translation, so ignore the mouse wheel while panning to avoid inadvertent zooming. ShiftModifier for sensitive mouse.
{ {
auto ember = m_FractoriumEmberController->CurrentEmber(); auto ember = m_FractoriumEmberController->CurrentEmber();
m_Fractorium->SetScale(ember->m_PixelsPerUnit + (e->angleDelta().y() >= 0 ? 50 : -50));
if (!(e->buttons() & Qt::MiddleButton))//Middle button does whole image translation, so ignore the mouse wheel while panning to avoid inadvertent zooming.
m_Fractorium->SetScale(ember->m_PixelsPerUnit + (e->angleDelta().y() >= 0 ? 50 : -50));
} }
} }
} }