aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner/components/componentcore/zoomaction.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qmldesigner/components/componentcore/zoomaction.cpp')
-rw-r--r--src/plugins/qmldesigner/components/componentcore/zoomaction.cpp22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/plugins/qmldesigner/components/componentcore/zoomaction.cpp b/src/plugins/qmldesigner/components/componentcore/zoomaction.cpp
index 95ed102f82..4f1d1c3da9 100644
--- a/src/plugins/qmldesigner/components/componentcore/zoomaction.cpp
+++ b/src/plugins/qmldesigner/components/componentcore/zoomaction.cpp
@@ -30,7 +30,7 @@
namespace QmlDesigner {
-const int defaultZoomIndex = 11;
+const int defaultZoomIndex = 13;
ZoomAction::ZoomAction(QObject *parent)
: QWidgetAction(parent),
@@ -69,14 +69,19 @@ void ZoomAction::setZoomLevel(float zoomLevel)
if (qFuzzyCompare(m_zoomLevel, zoomLevel))
return;
+ forceZoomLevel(zoomLevel);
+}
+
+void ZoomAction::forceZoomLevel(float zoomLevel)
+{
m_zoomLevel = qBound(0.01f, zoomLevel, 16.0f);
emit zoomLevelChanged(m_zoomLevel);
}
//initial m_zoomLevel and m_currentComboBoxIndex
-const QVector<float> s_zoomFactors = {0.01f, 0.02f, 0.05f, 0.0625f, 0.125f, 0.25f,
- 0.33f, 0.5f, 0.66f, 0.75f, 0.9f, 1.0f, 1.25f,
- 1.5f, 1.75f, 2.0f, 3.0f, 4.0f, 6.0f, 8.0f, 10.0f, 16.0f };
+const QVector<float> s_zoomFactors = {0.01f, 0.02f, 0.05f, 0.0625f, 0.1f, 0.125f, 0.2f, 0.25f,
+ 0.33f, 0.5f, 0.66f, 0.75f, 0.9f, 1.0f, 1.1f, 1.25f, 1.33f,
+ 1.5f, 1.66f, 1.75f, 2.0f, 3.0f, 4.0f, 6.0f, 8.0f, 10.0f, 16.0f };
int getZoomIndex(float zoom)
{
@@ -87,6 +92,15 @@ int getZoomIndex(float zoom)
return -1;
}
+float ZoomAction::getClosestZoomLevel(float zoomLevel)
+{
+ int i = 0;
+ while (i < s_zoomFactors.size() && s_zoomFactors[i] < zoomLevel)
+ ++i;
+
+ return s_zoomFactors[qBound(0, i - 1, s_zoomFactors.size() - 1)];
+}
+
QWidget *ZoomAction::createWidget(QWidget *parent)
{
auto comboBox = new QComboBox(parent);