mirror of
https://git.eden-emu.dev/eden-emu/eden
synced 2026-05-24 13:27:02 +02:00
I'm tired of dealing with this tbh Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3706 Reviewed-by: Lizzie <lizzie@eden-emu.dev>
71 lines
1.7 KiB
C++
71 lines
1.7 KiB
C++
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
#pragma once
|
|
|
|
#include <QDialog>
|
|
#include "common/uuid.h"
|
|
#include "core/file_sys/vfs/vfs_types.h"
|
|
|
|
class QGraphicsScene;
|
|
class ProfileAvatarDialog;
|
|
|
|
namespace Ui {
|
|
class NewUserDialog;
|
|
}
|
|
|
|
struct User {
|
|
QString username;
|
|
Common::UUID uuid;
|
|
QPixmap pixmap;
|
|
};
|
|
|
|
class NewUserDialog : public QDialog {
|
|
Q_OBJECT
|
|
Q_PROPERTY(bool isDefaultAvatar READ isDefaultAvatar WRITE setIsDefaultAvatar NOTIFY
|
|
isDefaultAvatarChanged FINAL)
|
|
|
|
public:
|
|
explicit NewUserDialog(QWidget* parent = nullptr);
|
|
explicit NewUserDialog(Common::UUID uuid, const std::string& username, const QString& title,
|
|
QWidget* parent = nullptr);
|
|
~NewUserDialog();
|
|
|
|
bool isDefaultAvatar() const;
|
|
void setIsDefaultAvatar(bool newIsDefaultAvatar);
|
|
|
|
static QString GetImagePath(const Common::UUID& uuid);
|
|
static QPixmap GetIcon(const Common::UUID& uuid);
|
|
static QPixmap DefaultAvatar();
|
|
|
|
private:
|
|
Ui::NewUserDialog* ui;
|
|
QGraphicsScene* m_scene;
|
|
QPixmap m_pixmap;
|
|
|
|
ProfileAvatarDialog* avatar_dialog;
|
|
|
|
bool m_isDefaultAvatar = true;
|
|
bool m_editing = false;
|
|
|
|
void setup(Common::UUID uuid, const std::string& username, const QString& title);
|
|
bool LoadAvatarData();
|
|
std::vector<uint8_t> DecompressYaz0(const FileSys::VirtualFile& file);
|
|
|
|
public slots:
|
|
void setImage(const QPixmap& pixmap);
|
|
void selectImage();
|
|
void setAvatar();
|
|
|
|
void revertImage();
|
|
void updateRevertButton();
|
|
|
|
void generateUUID();
|
|
void verifyUser();
|
|
|
|
void dispatchUser();
|
|
|
|
signals:
|
|
void isDefaultAvatarChanged(bool isDefaultAvatar);
|
|
void userAdded(User user);
|
|
};
|