mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	Address review comments
This commit is contained in:
		
							parent
							
								
									3be7aa2cfc
								
							
						
					
					
						commit
						601fd81d5c
					
				
					 9 changed files with 58 additions and 72 deletions
				
			
		|  | @ -2,6 +2,7 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
|  | #include <array> | ||||||
| #include <future> | #include <future> | ||||||
| #include <QColor> | #include <QColor> | ||||||
| #include <QImage> | #include <QImage> | ||||||
|  | @ -10,7 +11,6 @@ | ||||||
| #include <QMetaType> | #include <QMetaType> | ||||||
| #include <QTime> | #include <QTime> | ||||||
| #include <QtConcurrent/QtConcurrentRun> | #include <QtConcurrent/QtConcurrentRun> | ||||||
| 
 |  | ||||||
| #include "citra_qt/game_list_p.h" | #include "citra_qt/game_list_p.h" | ||||||
| #include "citra_qt/multiplayer/chat_room.h" | #include "citra_qt/multiplayer/chat_room.h" | ||||||
| #include "citra_qt/multiplayer/message.h" | #include "citra_qt/multiplayer/message.h" | ||||||
|  | @ -36,10 +36,10 @@ public: | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|     ChatMessage() {} |     static constexpr std::array<const char*, 16> player_color = { | ||||||
|     const QList<QString> player_color = { |  | ||||||
|         {"#0000FF", "#FF0000", "#8A2BE2", "#FF69B4", "#1E90FF", "#008000", "#00FF7F", "#B22222", |         {"#0000FF", "#FF0000", "#8A2BE2", "#FF69B4", "#1E90FF", "#008000", "#00FF7F", "#B22222", | ||||||
|          "#DAA520", "#FF4500", "#2E8B57", "#5F9EA0", "#D2691E", "#9ACD32", "#FF7F50", "FFFF00"}}; |          "#DAA520", "#FF4500", "#2E8B57", "#5F9EA0", "#D2691E", "#9ACD32", "#FF7F50", "FFFF00"}}; | ||||||
|  | 
 | ||||||
|     QString timestamp; |     QString timestamp; | ||||||
|     QString nickname; |     QString nickname; | ||||||
|     QString message; |     QString message; | ||||||
|  | @ -49,7 +49,7 @@ class StatusMessage { | ||||||
| public: | public: | ||||||
|     explicit StatusMessage(const QString& msg, QTime ts = {}) { |     explicit StatusMessage(const QString& msg, QTime ts = {}) { | ||||||
|         /// Convert the time to their default locale defined format
 |         /// Convert the time to their default locale defined format
 | ||||||
|         static QLocale locale; |         QLocale locale; | ||||||
|         timestamp = locale.toString(ts.isValid() ? ts : QTime::currentTime(), QLocale::ShortFormat); |         timestamp = locale.toString(ts.isValid() ? ts : QTime::currentTime(), QLocale::ShortFormat); | ||||||
|         message = msg; |         message = msg; | ||||||
|     } |     } | ||||||
|  | @ -65,7 +65,7 @@ private: | ||||||
|     QString message; |     QString message; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| ChatRoom::ChatRoom(QWidget* parent) : ui(new Ui::ChatRoom) { | ChatRoom::ChatRoom(QWidget* parent) : QWidget(parent), ui(new Ui::ChatRoom) { | ||||||
|     ui->setupUi(this); |     ui->setupUi(this); | ||||||
| 
 | 
 | ||||||
|     // set the item_model for player_view
 |     // set the item_model for player_view
 | ||||||
|  | @ -159,7 +159,9 @@ void ChatRoom::OnChatReceive(const Network::ChatEntry& chat) { | ||||||
| 
 | 
 | ||||||
| void ChatRoom::OnSendChat() { | void ChatRoom::OnSendChat() { | ||||||
|     if (auto room = Network::GetRoomMember().lock()) { |     if (auto room = Network::GetRoomMember().lock()) { | ||||||
|         if (room->GetState() == Network::RoomMember::State::Joined) { |         if (room->GetState() != Network::RoomMember::State::Joined) { | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|         auto message = ui->chat_message->text().toStdString(); |         auto message = ui->chat_message->text().toStdString(); | ||||||
|         if (!ValidateMessage(message)) { |         if (!ValidateMessage(message)) { | ||||||
|             return; |             return; | ||||||
|  | @ -182,17 +184,16 @@ void ChatRoom::OnSendChat() { | ||||||
|         ui->chat_message->clear(); |         ui->chat_message->clear(); | ||||||
|     } |     } | ||||||
| } | } | ||||||
| } |  | ||||||
| 
 | 
 | ||||||
| void ChatRoom::SetPlayerList(const Network::RoomMember::MemberList& member_list) { | void ChatRoom::SetPlayerList(const Network::RoomMember::MemberList& member_list) { | ||||||
|     // TODO(B3N30): Remember which row is selected
 |     // TODO(B3N30): Remember which row is selected
 | ||||||
|     player_list->removeRows(0, player_list->rowCount()); |     player_list->removeRows(0, player_list->rowCount()); | ||||||
|     for (const auto& member : member_list) { |     for (const auto& member : member_list) { | ||||||
|         if (member.nickname == "") |         if (member.nickname.empty()) | ||||||
|             continue; |             continue; | ||||||
|         QList<QStandardItem*> l; |         QList<QStandardItem*> l; | ||||||
|         std::vector<std::string> elements = {member.nickname, member.game_info.name}; |         std::vector<std::string> elements = {member.nickname, member.game_info.name}; | ||||||
|         for (auto& item : elements) { |         for (const auto& item : elements) { | ||||||
|             QStandardItem* child = new QStandardItem(QString::fromStdString(item)); |             QStandardItem* child = new QStandardItem(QString::fromStdString(item)); | ||||||
|             child->setEditable(false); |             child->setEditable(false); | ||||||
|             l.append(child); |             l.append(child); | ||||||
|  |  | ||||||
|  | @ -45,7 +45,7 @@ signals: | ||||||
|     void ChatReceived(const Network::ChatEntry&); |     void ChatReceived(const Network::ChatEntry&); | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|     const u32 max_chat_lines = 1000; |     static constexpr u32 max_chat_lines = 1000; | ||||||
|     void AppendChatMessage(const QString&); |     void AppendChatMessage(const QString&); | ||||||
|     bool ValidateMessage(const std::string&); |     bool ValidateMessage(const std::string&); | ||||||
|     QStandardItemModel* player_list; |     QStandardItemModel* player_list; | ||||||
|  |  | ||||||
|  | @ -19,7 +19,7 @@ | ||||||
| #include "network/network.h" | #include "network/network.h" | ||||||
| #include "ui_direct_connect.h" | #include "ui_direct_connect.h" | ||||||
| 
 | 
 | ||||||
| enum class ConnectionType : u8 { TRAVERSAL_SERVER, IP }; | enum class ConnectionType : u8 { TraversalServer, IP }; | ||||||
| 
 | 
 | ||||||
| DirectConnectWindow::DirectConnectWindow(QWidget* parent) | DirectConnectWindow::DirectConnectWindow(QWidget* parent) | ||||||
|     : QDialog(parent, Qt::WindowTitleHint | Qt::WindowCloseButtonHint | Qt::WindowSystemMenuHint), |     : QDialog(parent, Qt::WindowTitleHint | Qt::WindowCloseButtonHint | Qt::WindowSystemMenuHint), | ||||||
|  | @ -44,38 +44,30 @@ DirectConnectWindow::DirectConnectWindow(QWidget* parent) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void DirectConnectWindow::Connect() { | void DirectConnectWindow::Connect() { | ||||||
|     ClearAllError(); |  | ||||||
|     bool isValid = true; |  | ||||||
|     if (!ui->nickname->hasAcceptableInput()) { |     if (!ui->nickname->hasAcceptableInput()) { | ||||||
|         isValid = false; |         NetworkMessage::ShowError(NetworkMessage::USERNAME_NOT_VALID); | ||||||
|         ShowError(NetworkMessage::USERNAME_NOT_VALID); |  | ||||||
|     } |  | ||||||
|     if (const auto member = Network::GetRoomMember().lock()) { |  | ||||||
|         if (member->IsConnected()) { |  | ||||||
|             if (!NetworkMessage::WarnDisconnect()) { |  | ||||||
|         return; |         return; | ||||||
|     } |     } | ||||||
|  |     if (const auto member = Network::GetRoomMember().lock()) { | ||||||
|  |         if (member->IsConnected() && !NetworkMessage::WarnDisconnect()) { | ||||||
|  |             return; | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|     switch (static_cast<ConnectionType>(ui->connection_type->currentIndex())) { |     switch (static_cast<ConnectionType>(ui->connection_type->currentIndex())) { | ||||||
|     case ConnectionType::TRAVERSAL_SERVER: |     case ConnectionType::TraversalServer: | ||||||
|         break; |         break; | ||||||
|     case ConnectionType::IP: |     case ConnectionType::IP: | ||||||
|         if (!ui->ip->hasAcceptableInput()) { |         if (!ui->ip->hasAcceptableInput()) { | ||||||
|             isValid = false; |  | ||||||
|             NetworkMessage::ShowError(NetworkMessage::IP_ADDRESS_NOT_VALID); |             NetworkMessage::ShowError(NetworkMessage::IP_ADDRESS_NOT_VALID); | ||||||
|  |             return; | ||||||
|         } |         } | ||||||
|         if (!ui->port->hasAcceptableInput()) { |         if (!ui->port->hasAcceptableInput()) { | ||||||
|             isValid = false; |  | ||||||
|             NetworkMessage::ShowError(NetworkMessage::PORT_NOT_VALID); |             NetworkMessage::ShowError(NetworkMessage::PORT_NOT_VALID); | ||||||
|  |             return; | ||||||
|         } |         } | ||||||
|         break; |         break; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     if (!isValid) { |  | ||||||
|         return; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     // Store settings
 |     // Store settings
 | ||||||
|     UISettings::values.nickname = ui->nickname->text(); |     UISettings::values.nickname = ui->nickname->text(); | ||||||
|     UISettings::values.ip = ui->ip->text(); |     UISettings::values.ip = ui->ip->text(); | ||||||
|  | @ -98,8 +90,6 @@ void DirectConnectWindow::Connect() { | ||||||
|     BeginConnecting(); |     BeginConnecting(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void DirectConnectWindow::ClearAllError() {} |  | ||||||
| 
 |  | ||||||
| void DirectConnectWindow::BeginConnecting() { | void DirectConnectWindow::BeginConnecting() { | ||||||
|     ui->connect->setEnabled(false); |     ui->connect->setEnabled(false); | ||||||
|     ui->connect->setText(tr("Connecting")); |     ui->connect->setText(tr("Connecting")); | ||||||
|  |  | ||||||
|  | @ -30,7 +30,6 @@ private slots: | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|     void Connect(); |     void Connect(); | ||||||
|     void ClearAllError(); |  | ||||||
|     void BeginConnecting(); |     void BeginConnecting(); | ||||||
|     void EndConnecting(); |     void EndConnecting(); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -4,10 +4,10 @@ | ||||||
| 
 | 
 | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
|  | #include <utility> | ||||||
| #include <QPixmap> | #include <QPixmap> | ||||||
| #include <QStandardItem> | #include <QStandardItem> | ||||||
| #include <QStandardItemModel> | #include <QStandardItemModel> | ||||||
| 
 |  | ||||||
| #include "common/common_types.h" | #include "common/common_types.h" | ||||||
| 
 | 
 | ||||||
| namespace Column { | namespace Column { | ||||||
|  | @ -25,7 +25,7 @@ class LobbyItem : public QStandardItem { | ||||||
| public: | public: | ||||||
|     LobbyItem() = default; |     LobbyItem() = default; | ||||||
|     explicit LobbyItem(const QString& string) : QStandardItem(string) {} |     explicit LobbyItem(const QString& string) : QStandardItem(string) {} | ||||||
|     virtual ~LobbyItem() override {} |     virtual ~LobbyItem() override = default; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| class LobbyItemName : public LobbyItem { | class LobbyItemName : public LobbyItem { | ||||||
|  | @ -62,7 +62,7 @@ public: | ||||||
|     static const int GameIconRole = Qt::UserRole + 3; |     static const int GameIconRole = Qt::UserRole + 3; | ||||||
| 
 | 
 | ||||||
|     LobbyItemGame() = default; |     LobbyItemGame() = default; | ||||||
|     explicit LobbyItemGame(u64 title_id, QString game_name, QPixmap smdh_icon) : LobbyItem() { |     explicit LobbyItemGame(u64 title_id, QString game_name, QPixmap smdh_icon) { | ||||||
|         setData(static_cast<unsigned long long>(title_id), TitleIDRole); |         setData(static_cast<unsigned long long>(title_id), TitleIDRole); | ||||||
|         setData(game_name, GameNameRole); |         setData(game_name, GameNameRole); | ||||||
|         if (!smdh_icon.isNull()) { |         if (!smdh_icon.isNull()) { | ||||||
|  | @ -97,7 +97,7 @@ public: | ||||||
|     static const int HostPortRole = Qt::UserRole + 3; |     static const int HostPortRole = Qt::UserRole + 3; | ||||||
| 
 | 
 | ||||||
|     LobbyItemHost() = default; |     LobbyItemHost() = default; | ||||||
|     explicit LobbyItemHost(QString username, QString ip, u16 port) : LobbyItem() { |     explicit LobbyItemHost(QString username, QString ip, u16 port) { | ||||||
|         setData(username, HostUsernameRole); |         setData(username, HostUsernameRole); | ||||||
|         setData(ip, HostIPRole); |         setData(ip, HostIPRole); | ||||||
|         setData(port, HostPortRole); |         setData(port, HostPortRole); | ||||||
|  | @ -120,13 +120,9 @@ public: | ||||||
| class LobbyMember { | class LobbyMember { | ||||||
| public: | public: | ||||||
|     LobbyMember() = default; |     LobbyMember() = default; | ||||||
|     LobbyMember(const LobbyMember& other) { |     LobbyMember(const LobbyMember& other) = default; | ||||||
|         username = other.username; |     explicit LobbyMember(QString username, u64 title_id, QString game_name) | ||||||
|         title_id = other.title_id; |         : username(std::move(username)), title_id(title_id), game_name(std::move(game_name)) {} | ||||||
|         game_name = other.game_name; |  | ||||||
|     } |  | ||||||
|     explicit LobbyMember(const QString username, u64 title_id, const QString game_name) |  | ||||||
|         : username(username), title_id(title_id), game_name(game_name) {} |  | ||||||
|     ~LobbyMember() = default; |     ~LobbyMember() = default; | ||||||
| 
 | 
 | ||||||
|     QString GetUsername() const { |     QString GetUsername() const { | ||||||
|  | @ -153,7 +149,7 @@ public: | ||||||
|     static const int MaxPlayerRole = Qt::UserRole + 2; |     static const int MaxPlayerRole = Qt::UserRole + 2; | ||||||
| 
 | 
 | ||||||
|     LobbyItemMemberList() = default; |     LobbyItemMemberList() = default; | ||||||
|     explicit LobbyItemMemberList(QList<QVariant> members, u32 max_players) : LobbyItem() { |     explicit LobbyItemMemberList(QList<QVariant> members, u32 max_players) { | ||||||
|         setData(members, MemberListRole); |         setData(members, MemberListRole); | ||||||
|         setData(max_players, MaxPlayerRole); |         setData(max_players, MaxPlayerRole); | ||||||
|     } |     } | ||||||
|  | @ -183,7 +179,7 @@ public: | ||||||
|     static const int MemberListRole = Qt::UserRole + 1; |     static const int MemberListRole = Qt::UserRole + 1; | ||||||
| 
 | 
 | ||||||
|     LobbyItemExpandedMemberList() = default; |     LobbyItemExpandedMemberList() = default; | ||||||
|     explicit LobbyItemExpandedMemberList(QList<QVariant> members) : LobbyItem() { |     explicit LobbyItemExpandedMemberList(QList<QVariant> members) { | ||||||
|         setData(members, MemberListRole); |         setData(members, MemberListRole); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -4,12 +4,14 @@ | ||||||
| 
 | 
 | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
|  | #include <utility> | ||||||
|  | 
 | ||||||
| namespace NetworkMessage { | namespace NetworkMessage { | ||||||
| 
 | 
 | ||||||
| class ConnectionError { | class ConnectionError { | ||||||
| 
 | 
 | ||||||
| public: | public: | ||||||
|     explicit ConnectionError(const std::string& str) : err(str) {} |     explicit ConnectionError(std::string str) : err(std::move(str)) {} | ||||||
|     const std::string& GetString() const { |     const std::string& GetString() const { | ||||||
|         return err; |         return err; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | @ -104,14 +104,15 @@ void MultiplayerState::OnCreateRoom() { | ||||||
| 
 | 
 | ||||||
| void MultiplayerState::OnCloseRoom() { | void MultiplayerState::OnCloseRoom() { | ||||||
|     if (auto room = Network::GetRoom().lock()) { |     if (auto room = Network::GetRoom().lock()) { | ||||||
|         if (room->GetState() == Network::Room::State::Open) { |         if (room->GetState() != Network::Room::State::Open) { | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|         if (NetworkMessage::WarnCloseRoom()) { |         if (NetworkMessage::WarnCloseRoom()) { | ||||||
|             room->Destroy(); |             room->Destroy(); | ||||||
|             announce_multiplayer_session->Stop(); |             announce_multiplayer_session->Stop(); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
| } |  | ||||||
| 
 | 
 | ||||||
| void MultiplayerState::OnOpenNetworkRoom() { | void MultiplayerState::OnOpenNetworkRoom() { | ||||||
|     if (auto member = Network::GetRoomMember().lock()) { |     if (auto member = Network::GetRoomMember().lock()) { | ||||||
|  |  | ||||||
|  | @ -6,8 +6,6 @@ | ||||||
| 
 | 
 | ||||||
| ClickableLabel::ClickableLabel(QWidget* parent, Qt::WindowFlags f) : QLabel(parent) {} | ClickableLabel::ClickableLabel(QWidget* parent, Qt::WindowFlags f) : QLabel(parent) {} | ||||||
| 
 | 
 | ||||||
| ClickableLabel::~ClickableLabel() {} |  | ||||||
| 
 |  | ||||||
| void ClickableLabel::mouseReleaseEvent(QMouseEvent* event) { | void ClickableLabel::mouseReleaseEvent(QMouseEvent* event) { | ||||||
|     emit clicked(); |     emit clicked(); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -6,14 +6,13 @@ | ||||||
| 
 | 
 | ||||||
| #include <QLabel> | #include <QLabel> | ||||||
| #include <QWidget> | #include <QWidget> | ||||||
| #include <Qt> |  | ||||||
| 
 | 
 | ||||||
| class ClickableLabel : public QLabel { | class ClickableLabel : public QLabel { | ||||||
|     Q_OBJECT |     Q_OBJECT | ||||||
| 
 | 
 | ||||||
| public: | public: | ||||||
|     explicit ClickableLabel(QWidget* parent = Q_NULLPTR, Qt::WindowFlags f = Qt::WindowFlags()); |     explicit ClickableLabel(QWidget* parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags()); | ||||||
|     ~ClickableLabel(); |     ~ClickableLabel() = default; | ||||||
| 
 | 
 | ||||||
| signals: | signals: | ||||||
|     void clicked(); |     void clicked(); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue