fix the freeze with openglwidget

Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
This commit is contained in:
Trial97
2025-01-21 23:36:40 +02:00
parent d2516cbecc
commit 7010b8acb6
8 changed files with 81 additions and 66 deletions

View File

@ -25,20 +25,20 @@
#include "minecraft/auth/MinecraftAccount.h"
#include "minecraft/skins/SkinList.h"
#include "minecraft/skins/SkinModel.h"
#include "ui/dialogs/skins/draw/SkinOpenGLWindow.h"
namespace Ui {
class SkinManageDialog;
}
class SkinManageDialog : public QDialog {
class SkinManageDialog : public QDialog, public SkinProvider {
Q_OBJECT
public:
explicit SkinManageDialog(QWidget* parent, MinecraftAccountPtr acct);
virtual ~SkinManageDialog();
void resizeEvent(QResizeEvent* event) override;
SkinModel* getSelectedSkin();
QHash<QString, QImage> capes();
virtual SkinModel* getSelectedSkin() override;
virtual QHash<QString, QImage> capes() override;
public slots:
void selectionChanged(QItemSelection, QItemSelection);
@ -60,10 +60,12 @@ class SkinManageDialog : public QDialog {
private:
void setupCapes();
private:
MinecraftAccountPtr m_acct;
Ui::SkinManageDialog* m_ui;
SkinList m_list;
QString m_selectedSkinKey;
QHash<QString, QImage> m_capes;
QHash<QString, int> m_capesIdx;
SkinOpenGLWindow* m_skinPreview = nullptr;
};