EllipsisPushButton.h
Go to the documentation of this file.
1#pragma once
2
3#include <QPainter>
4#include <QPushButton>
5#include <QStyleOptionButton>
6#include <QTimer>
7
8class EllipsisPushButton : public QPushButton
9{
10 Q_OBJECT
11
12public:
13 explicit EllipsisPushButton(QWidget* parent = nullptr);
14 explicit EllipsisPushButton(const QString& text, QWidget* parent = nullptr);
15
16 void startTimeout(double timeoutSec);
17 void finishProgress(bool failed);
18
19protected:
20 void paintEvent(QPaintEvent* event) override;
21 void mousePressEvent(QMouseEvent* event) override;
22
23private:
24 QTimer progressTimer;
25 double timeoutSec = 0.0;
26 double elapsedSec = 0.0;
27 bool progressActive = false;
28 QTimer resetColorTimer;
29 QString originalStyle;
30};
void mousePressEvent(QMouseEvent *event) override
void startTimeout(double timeoutSec)
EllipsisPushButton(QWidget *parent=nullptr)
void finishProgress(bool failed)
void paintEvent(QPaintEvent *event) override