12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- #ifndef STATUSWIDGET_H
- #define STATUSWIDGET_H
- #include <QWidget>
- #include <QSettings>
- #include <QTime>
- #include <QMap>
- #include <QPropertyAnimation>
- #include <QGraphicsOpacityEffect>
- #include <QLabel>
- #include "models/patchlist.h"
- namespace Ui {
- class StatusWidget;
- }
- class StatusWidget : public QWidget
- {
- Q_OBJECT
- public:
- // States. Higher state value means higher priority on visualisation
- enum ToolTipState : int {
- E_INFO = 8,
- E_ERROR = 4,
- E_PROCESS = 2,
- E_RANDOM = 1
- };
- explicit StatusWidget(PatchList *legacy_patches, QWidget *parent = 0);
- ~StatusWidget();
- public slots:
- void updateFontsSizes();
- void setToolTipMessage(QString message, ToolTipState state);
- void unsetToolTipMessage(ToolTipState state);
- protected:
- void resizeEvent(QResizeEvent *event) override;
- private slots:
- void generateRandomTooltipMessage();
- void fadeBetweenToolTips(QString tooltip_id);
- void onPatchTotalOperationsStarted();
- void onPatchTotalOperationsFinished();
- void updatePatchProgressStatus(Patch::OperationProgress progress);
- void on_game_button_clicked();
- void on_check_for_updates_button_clicked();
- private:
- void createTooltipMessageWidget(QString tooltip_id);
- private:
- Ui::StatusWidget *ui;
- PatchList *legacy_patches_;
- bool all_patch_operations_finished_ = false;
- QMap<QString, QLabel*> tooltip_widgets_;
- QMap<QString, QGraphicsOpacityEffect*> tooltip_effects_;
- QMap<QString, QPropertyAnimation*> tooltip_animations_;
- QString current_tooltip_message_;
- QMap<Patch*, Patch::Operation> patch_operations;
- QTime last_statusbar_update_time_;
- ToolTipState tooltip_state_ = E_RANDOM;
- QMap<ToolTipState, QString> tooltip_messages_;
- QTimer random_tooltip_generator_timer_;
- QTimer process_completed_tooltip_hide_timer_;
- };
- #endif // STATUSWIDGET_H
|