From e11a0ee44885f45e7907b7508b8b8eac3e7c014b Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Sat, 16 Apr 2022 12:25:28 +0200 Subject: [PATCH] [libcalamaresui] Use delegating-constructor, drop initialize() --- .../widgets/waitingspinnerwidget.cpp | 33 +++++++++---------- .../widgets/waitingspinnerwidget.h | 1 - 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/src/libcalamaresui/widgets/waitingspinnerwidget.cpp b/src/libcalamaresui/widgets/waitingspinnerwidget.cpp index a41a8a3f7..a4bb9b79c 100644 --- a/src/libcalamaresui/widgets/waitingspinnerwidget.cpp +++ b/src/libcalamaresui/widgets/waitingspinnerwidget.cpp @@ -47,34 +47,33 @@ static bool isAlignCenter(Qt::AlignmentFlag a) WaitingSpinnerWidget::WaitingSpinnerWidget(QWidget *parent, bool centerOnParent, bool disableParentWhenSpinning) - : QWidget(parent), - _centerOnParent(centerOnParent), - _disableParentWhenSpinning(disableParentWhenSpinning) { - initialize(); -} + : WaitingSpinnerWidget(Qt::WindowModality::NonModal, parent, centerOnParent, disableParentWhenSpinning) +{} WaitingSpinnerWidget::WaitingSpinnerWidget(Qt::WindowModality modality, QWidget *parent, bool centerOnParent, bool disableParentWhenSpinning) - : QWidget(parent, Qt::Dialog | Qt::FramelessWindowHint), + : QWidget(parent, modality == Qt::WindowModality::NonModal ? Qt::WindowFlags() : Qt::Dialog | Qt::FramelessWindowHint), _centerOnParent(centerOnParent), - _disableParentWhenSpinning(disableParentWhenSpinning){ - initialize(); - - // We need to set the window modality AFTER we've hidden the - // widget for the first time since changing this property while - // the widget is visible has no effect. - setWindowModality(modality); - setAttribute(Qt::WA_TranslucentBackground); -} - -void WaitingSpinnerWidget::initialize() { + _disableParentWhenSpinning(disableParentWhenSpinning) +{ _timer = new QTimer(this); connect(_timer, SIGNAL(timeout()), this, SLOT(rotate())); updateSize(); updateTimer(); hide(); + + // We need to set the window modality AFTER we've hidden the + // widget for the first time since changing this property while + // the widget is visible has no effect. + // + // Non-modal windows don't need any work + if ( modality != Qt::WindowModality::NonModal ) + { + setWindowModality(modality); + setAttribute(Qt::WA_TranslucentBackground); + } } void WaitingSpinnerWidget::paintEvent(QPaintEvent *) { diff --git a/src/libcalamaresui/widgets/waitingspinnerwidget.h b/src/libcalamaresui/widgets/waitingspinnerwidget.h index d66a2cea0..1ecc33a87 100644 --- a/src/libcalamaresui/widgets/waitingspinnerwidget.h +++ b/src/libcalamaresui/widgets/waitingspinnerwidget.h @@ -123,7 +123,6 @@ private: qreal trailFadePerc, qreal minOpacity, QColor color); - void initialize(); void updateSize(); void updateTimer(); void updatePosition();