mirror of
https://github.com/RPCSX/rpcsx.git
synced 2026-02-10 09:44:33 +01:00
138 lines
3 KiB
C++
138 lines
3 KiB
C++
#pragma once
|
|
|
|
#include <optional>
|
|
|
|
#include <QDialog>
|
|
#include <QLineEdit>
|
|
#include <QListWidget>
|
|
|
|
#include "Emu/NP/rpcn_client.h"
|
|
|
|
class rpcn_settings_dialog : public QDialog
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
rpcn_settings_dialog(QWidget* parent = nullptr);
|
|
};
|
|
|
|
class rpcn_account_dialog : public QDialog
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
rpcn_account_dialog(QWidget* parent = nullptr);
|
|
|
|
private:
|
|
void refresh_combobox();
|
|
|
|
private:
|
|
QComboBox* cbx_servers = nullptr;
|
|
};
|
|
|
|
class rpcn_add_server_dialog : public QDialog
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
rpcn_add_server_dialog(QWidget* parent = nullptr);
|
|
const std::optional<std::pair<std::string, std::string>>& get_new_server() const;
|
|
|
|
private:
|
|
std::optional<std::pair<std::string, std::string>> m_new_server;
|
|
};
|
|
|
|
class rpcn_ask_username_dialog : public QDialog
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
rpcn_ask_username_dialog(QWidget* parent, const QString& description);
|
|
const std::optional<std::string>& get_username() const;
|
|
|
|
private:
|
|
std::optional<std::string> m_username;
|
|
};
|
|
|
|
class rpcn_ask_password_dialog : public QDialog
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
rpcn_ask_password_dialog(QWidget* parent, const QString& description);
|
|
const std::optional<std::string>& get_password() const;
|
|
|
|
private:
|
|
std::optional<std::string> m_password;
|
|
};
|
|
|
|
class rpcn_ask_email_dialog : public QDialog
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
rpcn_ask_email_dialog(QWidget* parent, const QString& description);
|
|
const std::optional<std::string>& get_email() const;
|
|
|
|
private:
|
|
std::optional<std::string> m_email;
|
|
};
|
|
|
|
class rpcn_ask_token_dialog : public QDialog
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
rpcn_ask_token_dialog(QWidget* parent, const QString& description);
|
|
const std::optional<std::string>& get_token() const;
|
|
|
|
private:
|
|
std::optional<std::string> m_token;
|
|
};
|
|
|
|
class rpcn_account_edit_dialog : public QDialog
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
rpcn_account_edit_dialog(QWidget* parent = nullptr);
|
|
|
|
private:
|
|
bool save_config();
|
|
|
|
private Q_SLOTS:
|
|
void resend_token();
|
|
void change_password();
|
|
|
|
protected:
|
|
QLineEdit *m_edit_username, *m_edit_token;
|
|
};
|
|
|
|
class rpcn_friends_dialog : public QDialog
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
rpcn_friends_dialog(QWidget* parent = nullptr);
|
|
~rpcn_friends_dialog();
|
|
void callback_handler(rpcn::NotificationType ntype, std::string username, bool status);
|
|
bool is_ok() const;
|
|
|
|
private:
|
|
void add_update_list(QListWidget* list, const QString& name, const QIcon& icon, const QVariant& data);
|
|
void remove_list(QListWidget* list, const QString& name);
|
|
|
|
private Q_SLOTS:
|
|
void add_update_friend(QString name, bool status);
|
|
void remove_friend(QString name);
|
|
void add_query(QString name);
|
|
|
|
Q_SIGNALS:
|
|
void signal_add_update_friend(QString name, bool status);
|
|
void signal_remove_friend(QString name);
|
|
void signal_add_query(QString name);
|
|
|
|
private:
|
|
const QIcon m_green_icon, m_red_icon, m_yellow_icon, m_orange_icon, m_black_icon;
|
|
// list of friends
|
|
QListWidget* m_lst_friends = nullptr;
|
|
// list of friend requests sent by/to the current user
|
|
QListWidget* m_lst_requests = nullptr;
|
|
// list of people blocked by the user
|
|
QListWidget* m_lst_blocks = nullptr;
|
|
|
|
std::shared_ptr<rpcn::rpcn_client> m_rpcn;
|
|
bool m_rpcn_ok = false;
|
|
};
|