examples: use QSignalBlocker

Examples should show idiomatic Qt, and QSignalBlocker is idiomatic
since it's inception in Qt 5.3. Just updating the examples was
forgotten.

This commit makes good for that.

Fix coding-style issues as a drive-by.

Change-Id: If138e87ea2ab7a444599734113f7cc6df11fb42d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
This commit is contained in:
Marc Mutz 2016-07-19 21:29:21 +03:00 committed by Giuseppe D'Angelo
parent 4790ccfa7a
commit 10d4969966
2 changed files with 33 additions and 28 deletions

View File

@ -44,6 +44,7 @@
#include <QDialog>
#include <QDialogButtonBox>
#include <QGridLayout>
#include <QSignalBlocker>
#include <QSpinBox>
#include <QLabel>
#include <QPainterPath>
@ -409,20 +410,22 @@ void ColorSwatch::updateContextMenu()
allowBottomAction->setEnabled(area != Qt::BottomDockWidgetArea);
}
leftAction->blockSignals(true);
rightAction->blockSignals(true);
topAction->blockSignals(true);
bottomAction->blockSignals(true);
leftAction->setChecked(area == Qt::LeftDockWidgetArea);
rightAction->setChecked(area == Qt::RightDockWidgetArea);
topAction->setChecked(area == Qt::TopDockWidgetArea);
bottomAction->setChecked(area == Qt::BottomDockWidgetArea);
leftAction->blockSignals(false);
rightAction->blockSignals(false);
topAction->blockSignals(false);
bottomAction->blockSignals(false);
{
const QSignalBlocker blocker(leftAction);
leftAction->setChecked(area == Qt::LeftDockWidgetArea);
}
{
const QSignalBlocker blocker(rightAction);
rightAction->setChecked(area == Qt::RightDockWidgetArea);
}
{
const QSignalBlocker blocker(topAction);
topAction->setChecked(area == Qt::TopDockWidgetArea);
}
{
const QSignalBlocker blocker(bottomAction);
bottomAction->setChecked(area == Qt::BottomDockWidgetArea);
}
if (areaActions->isEnabled()) {
leftAction->setEnabled(areas & Qt::LeftDockWidgetArea);

View File

@ -157,25 +157,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);
}
{
const QSignalBlocker blocker(sizeCombo);
// sizeCombo signals are now blocked until end of scope
sizeCombo->clear();
} else {
foreach(size, fontDatabase.smoothSizes(font.family(), fontDatabase.styleString(font))) {
sizeCombo->addItem(QVariant(size).toString());
sizeCombo->setEditable(false);
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)