Don't dismiss the loading overlay by clicking

remotes/origin/HEAD
Konstantinos Sideris 7 years ago
parent 72cba5d9eb
commit 48dabdfdc7
  1. 28
      include/ui/OverlayModal.h
  2. 1
      src/MainWindow.cc
  3. 2
      src/ui/OverlayModal.cc

@ -28,14 +28,18 @@
class OverlayModal : public OverlayWidget class OverlayModal : public OverlayWidget
{ {
public: public:
explicit OverlayModal(QWidget *parent, QWidget *content); OverlayModal(QWidget *parent, QWidget *content);
void fadeIn(); void fadeIn();
void fadeOut(); void fadeOut();
public: void setDuration(int duration)
inline void setDuration(int duration); {
inline void setColor(QColor color); duration_ = duration;
animation_->setDuration(duration_);
};
void setColor(QColor color) { color_ = color; }
void setDismissible(bool state) { isDismissible_ = state; }
protected: protected:
void paintEvent(QPaintEvent *event) override; void paintEvent(QPaintEvent *event) override;
@ -48,19 +52,9 @@ private:
int duration_; int duration_;
QColor color_; QColor color_;
//! Decides whether or not the modal can be removed by clicking into it.
bool isDismissible_ = true;
QGraphicsOpacityEffect *opacity_; QGraphicsOpacityEffect *opacity_;
QPropertyAnimation *animation_; QPropertyAnimation *animation_;
}; };
inline void
OverlayModal::setDuration(int duration)
{
duration_ = duration;
animation_->setDuration(duration_);
}
inline void
OverlayModal::setColor(QColor color)
{
color_ = color;
}

@ -213,6 +213,7 @@ MainWindow::showChatPage(QString userid, QString homeserver, QString token)
progressModal_ = progressModal_ =
QSharedPointer<OverlayModal>(new OverlayModal(this, spinner_.data()), QSharedPointer<OverlayModal>(new OverlayModal(this, spinner_.data()),
[=](OverlayModal *modal) { modal->deleteLater(); }); [=](OverlayModal *modal) { modal->deleteLater(); });
progressModal_->setDismissible(false);
progressModal_->fadeIn(); progressModal_->fadeIn();
progressModal_->setDuration(modalOpacityDuration); progressModal_->setDuration(modalOpacityDuration);
} }

@ -64,7 +64,7 @@ OverlayModal::paintEvent(QPaintEvent *event)
void void
OverlayModal::mousePressEvent(QMouseEvent *e) OverlayModal::mousePressEvent(QMouseEvent *e)
{ {
if (content_ && !content_->geometry().contains(e->pos())) if (isDismissible_ && content_ && !content_->geometry().contains(e->pos()))
fadeOut(); fadeOut();
} }

Loading…
Cancel
Save