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