Don't dismiss the loading overlay by clicking
This commit is contained in:
parent
72cba5d9eb
commit
48dabdfdc7
@ -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…
Reference in New Issue
Block a user