diff --git a/src/plugins/qmldesigner/components/formeditor/zoomaction.cpp b/src/plugins/qmldesigner/components/formeditor/zoomaction.cpp index 864da175157..5ddfe12d4f5 100644 --- a/src/plugins/qmldesigner/components/formeditor/zoomaction.cpp +++ b/src/plugins/qmldesigner/components/formeditor/zoomaction.cpp @@ -26,6 +26,7 @@ #include "zoomaction.h" #include +#include namespace QmlDesigner { @@ -55,6 +56,13 @@ void ZoomAction::zoomOut() emit indexChanged(m_currentComboBoxIndex + 1); } +void ZoomAction::resetZoomLevel() +{ + m_zoomLevel = 1.0; + m_currentComboBoxIndex = 8; + emit reseted(); +} + void ZoomAction::setZoomLevel(double zoomLevel) { m_zoomLevel = qBound(0.1, zoomLevel, 16.0); @@ -90,7 +98,12 @@ QWidget *ZoomAction::createWidget(QWidget *parent) comboBox->setModel(m_comboBoxModel.data()); } - comboBox->setCurrentIndex(8); + comboBox->setCurrentIndex(m_currentComboBoxIndex); + connect(this, &ZoomAction::reseted, comboBox, [this, comboBox]() { + blockSignals(true); + comboBox->setCurrentIndex(m_currentComboBoxIndex); + blockSignals(false); + }); connect(comboBox, static_cast(&QComboBox::currentIndexChanged), this, &ZoomAction::emitZoomLevelChanged); connect(this, &ZoomAction::indexChanged, comboBox, &QComboBox::setCurrentIndex); diff --git a/src/plugins/qmldesigner/components/formeditor/zoomaction.h b/src/plugins/qmldesigner/components/formeditor/zoomaction.h index 8cba2609b7c..0354352f798 100644 --- a/src/plugins/qmldesigner/components/formeditor/zoomaction.h +++ b/src/plugins/qmldesigner/components/formeditor/zoomaction.h @@ -44,6 +44,7 @@ public: void zoomIn(); void zoomOut(); + void resetZoomLevel(); protected: QWidget *createWidget(QWidget *parent); @@ -51,6 +52,7 @@ protected: signals: void zoomLevelChanged(double zoom); void indexChanged(int); + void reseted(); private: void emitZoomLevelChanged(int index);