QmlDesigner: show zoom percentage as tooltip

Because of wrong dpi behavior sometimes the combobox is not
big enough to show the complete zoom value, with tooltip it
can be made visible.

Change-Id: Id3ef7b677ea8302e0a332ff9f118483b9bff8178
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
Tim Jenssen
2018-12-13 23:12:26 +01:00
parent 267c1860f6
commit f377e81ca7
2 changed files with 12 additions and 15 deletions

View File

@@ -99,13 +99,24 @@ QWidget *ZoomAction::createWidget(QWidget *parent)
}
comboBox->setCurrentIndex(m_currentComboBoxIndex);
comboBox->setToolTip(comboBox->currentText());
connect(this, &ZoomAction::reseted, comboBox, [this, comboBox]() {
blockSignals(true);
comboBox->setCurrentIndex(m_currentComboBoxIndex);
blockSignals(false);
});
connect(comboBox, static_cast<void(QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
this, &ZoomAction::emitZoomLevelChanged);
[this, comboBox](int index) {
m_currentComboBoxIndex = index;
if (index == -1)
return;
const QModelIndex modelIndex(m_comboBoxModel.data()->index(index, 0));
setZoomLevel(m_comboBoxModel.data()->data(modelIndex, Qt::UserRole).toFloat());
comboBox->setToolTip(modelIndex.data().toString());
});
connect(this, &ZoomAction::indexChanged, comboBox, &QComboBox::setCurrentIndex);
comboBox->setProperty("hideborder", true);
@@ -113,15 +124,4 @@ QWidget *ZoomAction::createWidget(QWidget *parent)
return comboBox;
}
void ZoomAction::emitZoomLevelChanged(int index)
{
m_currentComboBoxIndex = index;
if (index == -1)
return;
const QModelIndex modelIndex(m_comboBoxModel.data()->index(index, 0));
setZoomLevel(m_comboBoxModel.data()->data(modelIndex, Qt::UserRole).toFloat());
}
} // namespace QmlDesigner

View File

@@ -56,9 +56,6 @@ signals:
void indexChanged(int);
void reseted();
private:
void emitZoomLevelChanged(int index);
private:
QPointer<QAbstractItemModel> m_comboBoxModel;
float m_zoomLevel;