revert: remove auto long image mode
- remove auto long image mode. - there is no "auto" requirement for this. - user can utilize fit by height/width to achieve the same goal by manually click them. - some optimization code about graphic view are preserved.
This commit is contained in:
@@ -138,7 +138,6 @@ void GraphicsView::resetTransform()
|
||||
void GraphicsView::zoomView(qreal scaleFactor)
|
||||
{
|
||||
m_enableFitInView = false;
|
||||
m_longImageMode = false;
|
||||
scale(scaleFactor, scaleFactor);
|
||||
applyTransformationModeByScaleFactor();
|
||||
emit navigatorViewRequired(!isThingSmallerThanWindowWith(transform()), transform());
|
||||
@@ -280,31 +279,6 @@ void GraphicsView::fitByOrientation(Qt::Orientation ori, bool scaleDownOnly)
|
||||
emit navigatorViewRequired(!isThingSmallerThanWindowWith(transform()), transform());
|
||||
}
|
||||
|
||||
bool GraphicsView::isLongImage() const
|
||||
{
|
||||
// Get the transformed image size (considering rotation and other transforms)
|
||||
QRectF transformedRect = transform().mapRect(sceneRect());
|
||||
QSizeF imageSize = transformedRect.size();
|
||||
|
||||
if (imageSize.isEmpty()) return false;
|
||||
|
||||
qreal aspectRatio = imageSize.width() / imageSize.height();
|
||||
|
||||
// Check if aspect ratio exceeds 5:2 (wide) or 2:5 (tall)
|
||||
return aspectRatio > 2.5 || aspectRatio < 0.4;
|
||||
}
|
||||
|
||||
void GraphicsView::fitLongImage()
|
||||
{
|
||||
QRectF transformedRect = transform().mapRect(sceneRect());
|
||||
|
||||
if (transformedRect.width() < transformedRect.height()) {
|
||||
fitByOrientation(Qt::Horizontal, true);
|
||||
} else {
|
||||
fitByOrientation(Qt::Vertical, true);
|
||||
}
|
||||
}
|
||||
|
||||
void GraphicsView::displayScene()
|
||||
{
|
||||
if (shouldAvoidTransform()) {
|
||||
@@ -312,14 +286,6 @@ void GraphicsView::displayScene()
|
||||
return;
|
||||
}
|
||||
|
||||
// Check if should apply long image mode
|
||||
if (Settings::instance()->autoLongImageMode() && isLongImage()) {
|
||||
m_longImageMode = true;
|
||||
m_firstUserMediaLoaded = true;
|
||||
if (isSceneBiggerThanView()) fitLongImage();
|
||||
return;
|
||||
}
|
||||
|
||||
if (isSceneBiggerThanView()) {
|
||||
// Do fit-in-view
|
||||
fitInView(sceneRect(), Qt::KeepAspectRatio);
|
||||
@@ -330,7 +296,6 @@ void GraphicsView::displayScene()
|
||||
emit navigatorViewRequired(false, transform());
|
||||
}
|
||||
|
||||
m_longImageMode = false;
|
||||
m_enableFitInView = true;
|
||||
m_firstUserMediaLoaded = true;
|
||||
}
|
||||
@@ -350,11 +315,6 @@ void GraphicsView::setEnableAutoFitInView(bool enable)
|
||||
m_enableFitInView = enable;
|
||||
}
|
||||
|
||||
void GraphicsView::setLongImageMode(bool enable)
|
||||
{
|
||||
m_longImageMode = enable;
|
||||
}
|
||||
|
||||
bool GraphicsView::avoidResetTransform() const
|
||||
{
|
||||
return m_avoidResetTransform;
|
||||
@@ -427,12 +387,7 @@ void GraphicsView::wheelEvent(QWheelEvent *event)
|
||||
|
||||
void GraphicsView::resizeEvent(QResizeEvent *event)
|
||||
{
|
||||
if (m_longImageMode) {
|
||||
// In long image mode, reapply long image logic on resize
|
||||
// We directly apply the long image mode logic without rechecking
|
||||
// if we should enter long image mode, as the mode is already active
|
||||
fitLongImage();
|
||||
} else if (m_enableFitInView) {
|
||||
if (m_enableFitInView) {
|
||||
bool originalSizeSmallerThanWindow = isThingSmallerThanWindowWith(resetScale(transform()));
|
||||
if (originalSizeSmallerThanWindow && scaleFactor() >= 1) {
|
||||
// no longer need to do fitInView()
|
||||
|
||||
Reference in New Issue
Block a user