statuswidget.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #ifndef STATUSWIDGET_H
  2. #define STATUSWIDGET_H
  3. #include <QWidget>
  4. #include <QSettings>
  5. #include <QTime>
  6. #include <QMap>
  7. #include <QPropertyAnimation>
  8. #include <QGraphicsOpacityEffect>
  9. #include "models/patchlist.h"
  10. namespace Ui {
  11. class StatusWidget;
  12. }
  13. class StatusWidget : public QWidget
  14. {
  15. Q_OBJECT
  16. public:
  17. explicit StatusWidget(PatchList *legacy_patches, QWidget *parent = 0);
  18. ~StatusWidget();
  19. public slots:
  20. void updateFontsSizes();
  21. protected:
  22. void resizeEvent(QResizeEvent *event) override;
  23. private slots:
  24. void setToolTipToWeeklyCodeHelp();
  25. void setToolTipToWeeklyCodeComplete();
  26. void setToolTipToNewsHelp();
  27. void setToolTipToServersStatus();
  28. void resetToolTip();
  29. void fadeBetweenToolTips(QWidget* next_tooltip);
  30. void onPatchTotalOperationsStarted();
  31. void onPatchTotalOperationsFinished();
  32. void onPatchOperationStarted(Patch::Operation operation, Patch* patch);
  33. void onPatchOperationFinished(Patch::Operation operation, Patch* patch);
  34. void onPatchTotalProgressChanged(Patch::OperationProgress operation_progress);
  35. void onPatchProgressChanged(Patch::OperationProgress progress, Patch* patch);
  36. private:
  37. void updateStatusBar(Patch::OperationProgress progress);
  38. private:
  39. Ui::StatusWidget *ui;
  40. PatchList *legacy_patches_;
  41. bool all_patch_operations_finished_ = false;
  42. QMap<QString, QGraphicsOpacityEffect*> tooltip_effects;
  43. QMap<QString, QPropertyAnimation*> tooltip_animations;
  44. QMap<Patch*, Patch::Operation> patch_operations;
  45. QWidget* active_tooltip;
  46. QTime last_statusbar_update_time_;
  47. };
  48. #endif // STATUSWIDGET_H