diff --git a/src/ui/LoadingIndicator.cpp b/src/ui/LoadingIndicator.cpp
index 05b7fff5..c8337089 100644
--- a/src/ui/LoadingIndicator.cpp
+++ b/src/ui/LoadingIndicator.cpp
@@ -12,17 +12,10 @@ LoadingIndicator::LoadingIndicator(QWidget *parent)
setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
setFocusPolicy(Qt::NoFocus);
- timer_ = new QTimer();
+ timer_ = new QTimer(this);
connect(timer_, SIGNAL(timeout()), this, SLOT(onTimeout()));
}
-LoadingIndicator::~LoadingIndicator()
-{
- stop();
-
- delete timer_;
-}
-
void
LoadingIndicator::paintEvent(QPaintEvent *e)
{
diff --git a/src/ui/LoadingIndicator.h b/src/ui/LoadingIndicator.h
index bb33fe6c..e8de0aec 100644
--- a/src/ui/LoadingIndicator.h
+++ b/src/ui/LoadingIndicator.h
@@ -13,7 +13,6 @@ class LoadingIndicator : public QWidget
public:
LoadingIndicator(QWidget *parent = 0);
- virtual ~LoadingIndicator();
void paintEvent(QPaintEvent *e);
diff --git a/src/ui/OverlayModal.cpp b/src/ui/OverlayModal.cpp
index 30ebdf5c..abd1827a 100644
--- a/src/ui/OverlayModal.cpp
+++ b/src/ui/OverlayModal.cpp
@@ -20,18 +20,31 @@
#include "OverlayModal.h"
-OverlayModal::OverlayModal(QWidget *parent, QWidget *content)
+OverlayModal::OverlayModal(QWidget *parent)
: OverlayWidget(parent)
- , content_{content}
, color_{QColor(30, 30, 30, 170)}
{
layout_ = new QVBoxLayout(this);
- layout_->addWidget(content);
layout_->setSpacing(0);
layout_->setContentsMargins(10, 40, 10, 20);
setContentAlignment(Qt::AlignCenter);
+}
+
+void
+OverlayModal::setWidget(QWidget *widget)
+{
+ // Delete the previous widget
+ if (layout_->count() > 0) {
+ QLayoutItem *item;
+ while ((item = layout_->takeAt(0)) != nullptr) {
+ delete item->widget();
+ delete item;
+ }
+ }
- content->setFocus();
+ layout_->addWidget(widget);
+ content_ = widget;
+ content_->setFocus();
}
void
diff --git a/src/ui/OverlayModal.h b/src/ui/OverlayModal.h
index acba7a7a..e1fe8ec0 100644
--- a/src/ui/OverlayModal.h
+++ b/src/ui/OverlayModal.h
@@ -27,12 +27,13 @@
class OverlayModal : public OverlayWidget
{
public:
- OverlayModal(QWidget *parent, QWidget *content);
+ OverlayModal(QWidget *parent);
void setColor(QColor color) { color_ = color; }
void setDismissible(bool state) { isDismissible_ = state; }
void setContentAlignment(QFlags<Qt::AlignmentFlag> flag) { layout_->setAlignment(flag); }
+ void setWidget(QWidget *widget);
protected:
void paintEvent(QPaintEvent *event) override;
|