diff options
author | Konstantinos Sideris <sideris.konstantin@gmail.com> | 2018-08-11 13:50:56 +0300 |
---|---|---|
committer | Konstantinos Sideris <sideris.konstantin@gmail.com> | 2018-08-11 13:50:56 +0300 |
commit | aa2f6ce77d924a0dc53325a425215a1b03e72f43 (patch) | |
tree | a6d8b8808a0f31c541aa7cb6af0cfd1f6826776f /src/ui | |
parent | Add solid background in TypingDisplay (diff) | |
download | nheko-aa2f6ce77d924a0dc53325a425215a1b03e72f43.tar.xz |
Simplify dialog creation
Diffstat (limited to 'src/ui')
-rw-r--r-- | src/ui/LoadingIndicator.cpp | 9 | ||||
-rw-r--r-- | src/ui/LoadingIndicator.h | 1 | ||||
-rw-r--r-- | src/ui/OverlayModal.cpp | 21 | ||||
-rw-r--r-- | src/ui/OverlayModal.h | 3 |
4 files changed, 20 insertions, 14 deletions
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; |