/** * @file home_widget.h * @ingroup Core * @ingroup Widgets * @brief TODO: Document this. */ #ifndef HOME_WIDGET_H #define HOME_WIDGET_H #include "../../../tabs/tab_supervisor.h" #include "../cards/card_info_picture_art_crop_widget.h" #include "home_styled_button.h" #include #include #include #include class HomeWidget : public QWidget { Q_OBJECT public: HomeWidget(QWidget *parent, TabSupervisor *tabSupervisor); void updateRandomCard(); QPair extractDominantColors(const QPixmap &pixmap); public slots: void paintEvent(QPaintEvent *event) override; void initializeBackgroundFromSource(); void onBackgroundShuffleFrequencyChanged(); void updateBackgroundProperties(); void updateButtonsToBackgroundColor(); QGroupBox *createButtons(); void updateConnectButton(const ClientStatus status); private: QGridLayout *layout; QTimer *cardChangeTimer; TabSupervisor *tabSupervisor; QPixmap background; CardInfoPictureArtCropWidget *backgroundSourceCard = nullptr; DeckLoader *backgroundSourceDeck; QPixmap overlay; QPair gradientColors; HomeStyledButton *connectButton; }; #endif // HOME_WIDGET_H