diff options
Diffstat (limited to 'examples/widgets/widgets/charactermap/mainwindow.cpp')
-rw-r--r-- | examples/widgets/widgets/charactermap/mainwindow.cpp | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/examples/widgets/widgets/charactermap/mainwindow.cpp b/examples/widgets/widgets/charactermap/mainwindow.cpp index 160b77a945..2141850f16 100644 --- a/examples/widgets/widgets/charactermap/mainwindow.cpp +++ b/examples/widgets/widgets/charactermap/mainwindow.cpp @@ -167,25 +167,27 @@ void MainWindow::findSizes(const QFont &font) { QFontDatabase fontDatabase; QString currentSize = sizeCombo->currentText(); - sizeCombo->blockSignals(true); - sizeCombo->clear(); - - int size; - if(fontDatabase.isSmoothlyScalable(font.family(), fontDatabase.styleString(font))) { - foreach(size, QFontDatabase::standardSizes()) { - sizeCombo->addItem(QVariant(size).toString()); - sizeCombo->setEditable(true); - } - } else { - foreach(size, fontDatabase.smoothSizes(font.family(), fontDatabase.styleString(font))) { - sizeCombo->addItem(QVariant(size).toString()); - sizeCombo->setEditable(false); + { + const QSignalBlocker blocker(sizeCombo); + // sizeCombo signals are now blocked until end of scope + sizeCombo->clear(); + + int size; + if (fontDatabase.isSmoothlyScalable(font.family(), fontDatabase.styleString(font))) { + foreach (size, QFontDatabase::standardSizes()) { + sizeCombo->addItem(QVariant(size).toString()); + sizeCombo->setEditable(true); + } + + } else { + foreach (size, fontDatabase.smoothSizes(font.family(), fontDatabase.styleString(font))) { + sizeCombo->addItem(QVariant(size).toString()); + sizeCombo->setEditable(false); + } } } - sizeCombo->blockSignals(false); - int sizeIndex = sizeCombo->findText(currentSize); if(sizeIndex == -1) |