mirror of
https://github.com/redstrate/Astra.git
synced 2025-04-21 20:27:45 +00:00
Giant commit overhauling the interface to use KDE's Kirigami framework, which is based on Qt Quick. The logic is all but rewritten, allowing accounts to be separate from profiles.
42 lines
No EOL
1,013 B
C++
42 lines
No EOL
1,013 B
C++
#pragma once
|
|
|
|
#include <QAbstractListModel>
|
|
|
|
#include "account.h"
|
|
|
|
class AccountManager : public QAbstractListModel
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit AccountManager(LauncherCore &launcher, QObject *parent = nullptr);
|
|
|
|
void load();
|
|
|
|
enum CustomRoles {
|
|
AccountRole = Qt::UserRole,
|
|
};
|
|
|
|
int rowCount(const QModelIndex &index = QModelIndex()) const override;
|
|
|
|
QVariant data(const QModelIndex &index, int role) const override;
|
|
|
|
QHash<int, QByteArray> roleNames() const override;
|
|
|
|
Q_INVOKABLE Account *createSquareEnixAccount(const QString &username, int licenseType, bool isFreeTrial);
|
|
Q_INVOKABLE Account *createSapphireAccount(const QString &lobbyUrl, const QString &username);
|
|
|
|
Account *getByUuid(const QString &uuid) const;
|
|
|
|
Q_INVOKABLE bool canDelete(Account *account) const;
|
|
Q_INVOKABLE void deleteAccount(Account *account);
|
|
|
|
Q_SIGNALS:
|
|
|
|
private:
|
|
void insertAccount(Account *account);
|
|
|
|
QVector<Account *> m_accounts;
|
|
|
|
LauncherCore &m_launcher;
|
|
}; |