fix: scaled image when window is shown

This commit is contained in:
Gary Wang 2019-10-05 12:55:09 +08:00
parent ef3b942fec
commit 1b646a5183
2 changed files with 10 additions and 2 deletions

View File

@ -133,7 +133,7 @@ void MainWindow::adjustWindowSizeBySceneRect()
// if it scaled down by the resize policy:
QSize screenSize = qApp->screenAt(QCursor::pos())->availableSize();
QSize sceneSize = m_graphicsView->sceneRect().toRect().size();
QSize sceneSizeWithMargins = sceneSize + QSize(20, 20);
QSize sceneSizeWithMargins = sceneSize + QSize(130, 125);
if (screenSize.expandedTo(sceneSize) == screenSize) {
// we can show the picture by increase the window size.
if (screenSize.expandedTo(sceneSizeWithMargins) == screenSize) {
@ -141,6 +141,11 @@ void MainWindow::adjustWindowSizeBySceneRect()
} else {
this->resize(screenSize);
}
// We're sure the window can display the whole thing with 1:1 scale.
// The old window size may cause fitInView call from resize() and the
// above resize() call won't reset the scale back to 1:1, so we
// just call resetScale() here to ensure the thing is no longer scaled.
m_graphicsView->resetScale();
centerWindow();
} else {
// toggle maximum
@ -218,7 +223,9 @@ void MainWindow::mouseReleaseEvent(QMouseEvent *event)
void MainWindow::mouseDoubleClickEvent(QMouseEvent *event)
{
closeWindow();
if (!m_protectedMode) {
closeWindow();
}
return QMainWindow::mouseDoubleClickEvent(event);
}

View File

@ -55,6 +55,7 @@ private:
GraphicsView *m_graphicsView;
NavigatorView *m_gv;
BottomButtonGroup *m_bottomButtonGroup;
bool m_protectedMode = false;
bool m_clickedOnWindow = false;
};