1 #ifndef LOGOWIDGET_H
2 #define LOGOWIDGET_H
3 
4 #include <QObject>
5 #include <QOpenGLWidget>
6 
7 class LogoDrawer : public QObject {
8     Q_OBJECT
9 public:
10     explicit LogoDrawer(QObject *parent = nullptr);
11     ~LogoDrawer();
12     void setLogoUrl(const QString &filename);
13     void setLogoBackground(const QColor &color);
14     void resizeGL(int w, int h);
15     void paintGL(QOpenGLWidget *widget);
16 
17 signals:
18     void logoSize(QSize size);
19 
20 private:
21     void regenerateTexture();
22 
23 private:
24     QRectF logoLocation;
25     QImage logo;
26     QString logoUrl;
27     QColor logoBackground;
28 };
29 
30 class LogoWidget : public QOpenGLWidget {
31     Q_OBJECT
32 public:
33     explicit LogoWidget(QWidget *parent = nullptr);
34     ~LogoWidget();
35     void setLogo(const QString &filename);
36     void setLogoBackground(const QColor &color);
37 
38 protected:
39     void initializeGL();
40     void paintGL();
41     void resizeGL(int w, int h);
42 
43 private:
44     LogoDrawer *logoDrawer = nullptr;
45     QString logoUrl;
46     QColor logoBackground;
47 };
48 
49 #endif // LOGOWIDGET_H
50