Răsfoiți Sursa

Removed old in-launcher lobby

Ivan Savenko 1 an în urmă
părinte
comite
c4db99a60d

+ 0 - 11
launcher/CMakeLists.txt

@@ -15,10 +15,6 @@ set(launcher_SRCS
 		launcherdirs.cpp
 		jsonutils.cpp
 		updatedialog_moc.cpp
-		lobby/lobby.cpp
-		lobby/lobby_moc.cpp
-		lobby/lobbyroomrequest_moc.cpp
-		lobby/chat_moc.cpp
 )
 
 set(launcher_HEADERS
@@ -37,10 +33,6 @@ set(launcher_HEADERS
 		launcherdirs.h
 		jsonutils.h
 		updatedialog_moc.h
-		lobby/lobby.h
-		lobby/lobby_moc.h
-		lobby/lobbyroomrequest_moc.h
-		lobby/chat_moc.h
 		main.h
 )
 
@@ -52,9 +44,6 @@ set(launcher_FORMS
 		firstLaunch/firstlaunch_moc.ui
 		mainwindow_moc.ui
 		updatedialog_moc.ui
-		lobby/lobby_moc.ui
-		lobby/lobbyroomrequest_moc.ui
-		lobby/chat_moc.ui
 )
 
 set(launcher_TS

+ 0 - 173
launcher/lobby/chat_moc.cpp

@@ -1,173 +0,0 @@
-/*
- * chat_moc.cpp, part of VCMI engine
- *
- * Authors: listed in file AUTHORS in main folder
- *
- * License: GNU General Public License v2.0 or later
- * Full text of license available in license.txt file, in main folder
- *
- */
-#include "StdInc.h"
-#include "chat_moc.h"
-#include "ui_chat_moc.h"
-
-Chat::Chat(QWidget *parent) :
-	QWidget(parent),
-	ui(new Ui::Chat)
-{
-	ui->setupUi(this);
-	
-	namesCompleter.setModel(ui->listUsers->model());
-	namesCompleter.setCompletionMode(QCompleter::InlineCompletion);
-	
-	ui->messageEdit->setCompleter(&namesCompleter);
-	
-	for([[maybe_unused]] auto i : {GLOBAL, ROOM})
-		chatDocuments.push_back(new QTextDocument(this));
-	
-	setChatId(GLOBAL);
-}
-
-Chat::~Chat()
-{
-	delete ui;
-}
-
-void Chat::setUsername(const QString & user)
-{
-	username = user;
-}
-
-void Chat::setSession(const QString & s)
-{
-	session = s;
-	
-	on_chatSwitch_clicked();
-}
-
-void Chat::setChannel(const QString & channel)
-{
-	static const QMap<QString, ChatId> chatNames{{"global", GLOBAL}, {"room", ROOM}};
-	
-	setChatId(chatNames.value(channel));
-}
-
-void Chat::addUser(const QString & user)
-{
-	ui->listUsers->addItem(new QListWidgetItem("@" + user));
-}
-
-void Chat::clearUsers()
-{
-	ui->listUsers->clear();
-}
-
-void Chat::chatMessage(const QString & title, const QString & channel, QString body, bool isSystem)
-{
-	const QTextCharFormat regularFormat;
-	const QString boldHtml = "<b>%1</b>";
-	const QString colorHtml = "<font color=\"%1\">%2</font>";
-	bool meMentioned = false;
-	bool isScrollBarBottom = (ui->chat->verticalScrollBar()->maximum() - ui->chat->verticalScrollBar()->value() < 24);
-	
-	static const QMap<QString, ChatId> chatNames{{"global", GLOBAL}, {"room", ROOM}};
-	QTextDocument * doc = ui->chat->document();
-	if(chatNames.contains(channel))
-		doc = chatDocuments[chatNames.value(channel)];
-	
-	QTextCursor curs(doc);
-	curs.movePosition(QTextCursor::End);
-	
-	QString titleColor = "Olive";
-	if(isSystem || title == "System")
-		titleColor = "ForestGreen";
-	if(title == username)
-		titleColor = "Gold";
-	
-	curs.insertHtml(boldHtml.arg(colorHtml.arg(titleColor, title + ": ")));
-	
-	QRegularExpression mentionRe("@[\\w\\d]+");
-	auto subBody = body;
-	int mem = 0;
-	for(auto match = mentionRe.match(subBody); match.hasMatch(); match = mentionRe.match(subBody))
-	{
-		body.insert(mem + match.capturedEnd(), QChar(-1));
-		body.insert(mem + match.capturedStart(), QChar(-1));
-		mem += match.capturedEnd() + 2;
-		subBody = body.right(body.size() - mem);
-	}
-	auto pieces = body.split(QChar(-1));
-	for(auto & block : pieces)
-	{
-		if(block.startsWith("@"))
-		{
-			if(block == "@" + username)
-			{
-				meMentioned = true;
-				curs.insertHtml(boldHtml.arg(colorHtml.arg("IndianRed", block)));
-			}
-			else
-				curs.insertHtml(colorHtml.arg("DeepSkyBlue", block));
-		}
-		else
-		{
-			if(isSystem)
-				curs.insertHtml(colorHtml.arg("ForestGreen", block));
-			else
-				curs.insertText(block, regularFormat);
-		}
-	}
-	curs.insertText("\n", regularFormat);
-	
-	if(doc == ui->chat->document() && (meMentioned || isScrollBarBottom))
-	{
-		ui->chat->ensureCursorVisible();
-		ui->chat->verticalScrollBar()->setValue(ui->chat->verticalScrollBar()->maximum());
-	}
-}
-
-void Chat::chatMessage(const QString & title, QString body, bool isSystem)
-{
-	chatMessage(title, "", body, isSystem);
-}
-
-void Chat::sysMessage(QString body)
-{
-	chatMessage("System", body, true);
-}
-
-void Chat::sendMessage()
-{
-	QString msg(ui->messageEdit->text());
-	ui->messageEdit->clear();
-	emit messageSent(msg);
-}
-
-void Chat::on_messageEdit_returnPressed()
-{
-	sendMessage();
-}
-
-void Chat::on_sendButton_clicked()
-{
-	sendMessage();
-}
-
-void Chat::on_chatSwitch_clicked()
-{
-	static const QMap<ChatId, QString> chatNames{{GLOBAL, "global"}, {ROOM, "room"}};
-	
-	if(chatId == GLOBAL && !session.isEmpty())
-		emit channelSwitch(chatNames[ROOM]);
-	else
-		emit channelSwitch(chatNames[GLOBAL]);
-}
-
-void Chat::setChatId(ChatId _chatId)
-{
-	static const QMap<ChatId, QString> chatNames{{GLOBAL, "Global"}, {ROOM, "Room"}};
-	
-	chatId = _chatId;
-	ui->chatSwitch->setText(chatNames[chatId] + " chat");
-	ui->chat->setDocument(chatDocuments[chatId]);
-}

+ 0 - 70
launcher/lobby/chat_moc.h

@@ -1,70 +0,0 @@
-/*
- * chat_moc.h, part of VCMI engine
- *
- * Authors: listed in file AUTHORS in main folder
- *
- * License: GNU General Public License v2.0 or later
- * Full text of license available in license.txt file, in main folder
- *
- */
-#pragma once
-
-#include <QWidget>
-#include <QCompleter>
-
-namespace Ui {
-class Chat;
-}
-
-class Chat : public QWidget
-{
-	Q_OBJECT
-	
-	enum ChatId
-	{
-		GLOBAL = 0,
-		ROOM
-	};
-	
-	QCompleter namesCompleter;
-	QString username;
-	QString session;
-	ChatId chatId = GLOBAL;
-	
-	QVector<QTextDocument*> chatDocuments;
-	
-private:
-	void setChatId(ChatId);
-	void sendMessage();
-
-public:
-	explicit Chat(QWidget *parent = nullptr);
-	~Chat();
-	
-	void setUsername(const QString &);
-	void setSession(const QString &);
-	void setChannel(const QString &);
-	
-	void clearUsers();
-	void addUser(const QString & user);
-	
-	void chatMessage(const QString & title, const QString & channel, QString body, bool isSystem = false);
-	void chatMessage(const QString & title, QString body, bool isSystem = false);
-	
-signals:
-	void messageSent(QString);
-	void channelSwitch(QString);
-	
-public slots:
-	void sysMessage(QString body);
-
-private slots:
-	void on_messageEdit_returnPressed();
-
-	void on_sendButton_clicked();
-
-	void on_chatSwitch_clicked();
-
-private:
-	Ui::Chat *ui;
-};

+ 0 - 121
launcher/lobby/chat_moc.ui

@@ -1,121 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>Chat</class>
- <widget class="QWidget" name="Chat">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>465</width>
-    <height>413</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Form</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <property name="spacing">
-    <number>2</number>
-   </property>
-   <property name="leftMargin">
-    <number>0</number>
-   </property>
-   <property name="topMargin">
-    <number>0</number>
-   </property>
-   <property name="rightMargin">
-    <number>0</number>
-   </property>
-   <property name="bottomMargin">
-    <number>0</number>
-   </property>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout2">
-     <property name="bottomMargin">
-      <number>0</number>
-     </property>
-     <item>
-      <widget class="QLabel" name="label">
-       <property name="text">
-        <string>Users in lobby</string>
-       </property>
-       <property name="indent">
-        <number>-1</number>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QPushButton" name="chatSwitch">
-       <property name="text">
-        <string>Global chat</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QListWidget" name="listUsers">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Expanding" vsizetype="Maximum">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="maximumSize">
-      <size>
-       <width>16777215</width>
-       <height>96</height>
-      </size>
-     </property>
-     <property name="midLineWidth">
-      <number>0</number>
-     </property>
-     <property name="editTriggers">
-      <set>QAbstractItemView::NoEditTriggers</set>
-     </property>
-     <property name="selectionMode">
-      <enum>QAbstractItemView::NoSelection</enum>
-     </property>
-     <property name="isWrapping" stdset="0">
-      <bool>true</bool>
-     </property>
-     <property name="layoutMode">
-      <enum>QListView::SinglePass</enum>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QTextBrowser" name="chat"/>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <property name="spacing">
-      <number>-1</number>
-     </property>
-     <property name="bottomMargin">
-      <number>0</number>
-     </property>
-     <item>
-      <widget class="QLineEdit" name="messageEdit">
-       <property name="text">
-        <string/>
-       </property>
-       <property name="placeholderText">
-        <string>type you message</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QPushButton" name="sendButton">
-       <property name="text">
-        <string>send</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>

+ 0 - 123
launcher/lobby/lobby.cpp

@@ -1,123 +0,0 @@
-/*
- * lobby.cpp, part of VCMI engine
- *
- * Authors: listed in file AUTHORS in main folder
- *
- * License: GNU General Public License v2.0 or later
- * Full text of license available in license.txt file, in main folder
- *
- */
-#include "StdInc.h"
-#include "lobby.h"
-#include "../lib/GameConstants.h"
-
-SocketLobby::SocketLobby(QObject *parent) :
-	QObject(parent)
-{
-	socket = new QTcpSocket(this);
-	connect(socket, SIGNAL(connected()), this, SLOT(connected()));
-	connect(socket, SIGNAL(disconnected()), this, SLOT(disconnected()));
-	connect(socket, SIGNAL(readyRead()), this, SLOT(readyRead()));
-	connect(socket, SIGNAL(bytesWritten(qint64)), this, SLOT(bytesWritten(qint64)));
-}
-
-void SocketLobby::connectServer(const QString & host, int port, const QString & usr, int timeout)
-{
-	username = usr;
-
-	socket->connectToHost(host, port);
-
-	if(!socket->waitForDisconnected(timeout) && !isConnected)
-	{
-		emit text("Error: " + socket->errorString());
-		emit disconnect();
-	}
-}
-
-void SocketLobby::disconnectServer()
-{
-	socket->disconnectFromHost();
-}
-
-void SocketLobby::requestNewSession(const QString & session, int totalPlayers, const QString & pswd, const QMap<QString, QString> & mods)
-{
-	const QString sessionMessage = ProtocolStrings[CREATE].arg(session, pswd, QString::number(totalPlayers), prepareModsClientString(mods));
-	send(sessionMessage);
-}
-
-void SocketLobby::requestJoinSession(const QString & session, const QString & pswd, const QMap<QString, QString> & mods)
-{
-	const QString sessionMessage = ProtocolStrings[JOIN].arg(session, pswd, prepareModsClientString(mods));
-	send(sessionMessage);
-}
-
-void SocketLobby::requestLeaveSession(const QString & session)
-{
-	const QString sessionMessage = ProtocolStrings[LEAVE].arg(session);
-	send(sessionMessage);
-}
-
-void SocketLobby::requestReadySession(const QString & session)
-{
-	const QString sessionMessage = ProtocolStrings[READY].arg(session);
-	send(sessionMessage);
-}
-
-void SocketLobby::send(const QString & msg)
-{
-	QByteArray str = msg.toUtf8();
-	int sz = str.size();
-	QByteArray pack((const char *)&sz, sizeof(sz));
-	pack.append(str);
-	socket->write(pack);
-}
-
-void SocketLobby::connected()
-{
-	isConnected = true;
-	emit text("Connected!");
-
-	QByteArray greetingBytes;
-	greetingBytes.append(ProtocolVersion);
-	greetingBytes.append(ProtocolEncoding.size());
-	const QString greetingConst = QString(greetingBytes)
-								+ ProtocolStrings[GREETING].arg(QString::fromStdString(ProtocolEncoding),
-																username,
-																QString::fromStdString(GameConstants::VCMI_VERSION));
-	send(greetingConst);
-}
-
-void SocketLobby::disconnected()
-{
-	isConnected = false;
-	emit disconnect();
-	emit text("Disconnected!");
-}
-
-void SocketLobby::bytesWritten(qint64 bytes)
-{
-	qDebug() << "We wrote: " << bytes;
-}
-
-void SocketLobby::readyRead()
-{
-	qDebug() << "Reading...";
-	emit receive(socket->readAll());
-}
-
-
-ServerCommand::ServerCommand(ProtocolConsts cmd, const QStringList & args):
-	command(cmd),
-	arguments(args)
-{
-}
-
-QString prepareModsClientString(const QMap<QString, QString> & mods)
-{
-	QStringList result;
-	for(auto & mod : mods.keys())
-	{
-		result << mod + "&" + mods[mod];
-	}
-	return result.join(";");
-}

+ 0 - 226
launcher/lobby/lobby.h

@@ -1,226 +0,0 @@
-/*
- * lobby.h, part of VCMI engine
- *
- * Authors: listed in file AUTHORS in main folder
- *
- * License: GNU General Public License v2.0 or later
- * Full text of license available in license.txt file, in main folder
- *
- */
-#pragma once
-
-#include <QTcpSocket>
-#include <QAbstractSocket>
-
-const unsigned int ProtocolVersion = 5;
-const std::string ProtocolEncoding = "utf8";
-
-class ProtocolError: public std::runtime_error
-{
-public:
-	ProtocolError(const char * w): std::runtime_error(w) {}
-};
-
-enum ProtocolConsts
-{
-	//client consts
-	GREETING, USERNAME, MESSAGE, VERSION, CREATE, JOIN, LEAVE, KICK, READY, FORCESTART, HERE, ALIVE, HOSTMODE, SETCHANNEL,
-
-	//server consts
-	SESSIONS, CREATED, JOINED, KICKED, SRVERROR, CHAT, CHATCHANNEL, START, STATUS, HOST, MODS, CLIENTMODS, USERS, HEALTH, GAMEMODE, CHANNEL
-};
-
-const QMap<ProtocolConsts, QString> ProtocolStrings
-{
-	//=== client commands ===
-	
-	//handshaking with server
-	//%1: first byte is protocol_version, then size of encoding string in bytes, then encoding string
-	//%2: client name
-	//%3: VCMI version
-	{GREETING, "%1<GREETINGS>%2<VER>%3"},
-	
-	//[unsupported] autorization with username
-	//%1: username
-	{USERNAME, "<USER>%1"},
-	
-	//sending message to the chat
-	//%1: message text
-	{MESSAGE, "<MSG>%1"},
-	
-	//create new room
-	//%1: room name
-	//%2: password for the room
-	//%3: max number of players
-	//%4: mods used by host
-	// each mod has a format modname&modversion, mods should be separated by ; symbol
-	{CREATE, "<NEW>%1<PSWD>%2<COUNT>%3<MODS>%4"},
-	
-	//join to the room
-	//%1: room name
-	//%2: password for the room
-	//%3: list of mods used by player
-	// each mod has a format modname&modversion, mods should be separated by ; symbol
-	{JOIN, "<JOIN>%1<PSWD>%2<MODS>%3"},
-	
-	//leave the room
-	//%1: room name
-	{LEAVE, "<LEAVE>%1"},
-	
-	//kick user from the current room
-	//%1: player username
-	{KICK, "<KICK>%1"},
-	
-	//signal that player is ready for game
-	//%1: room name
-	{READY, "<READY>%1"},
-	
-	//[unsupported] start session immediately
-	//%1: room name
-	{FORCESTART, "<FORCESTART>%1"},
-	
-	//request user list
-	{HERE, "<HERE>"},
-	
-	//used as reponse to healcheck
-	{ALIVE, "<ALIVE>"},
-	
-	//host sets game mode (new game or load game)
-	//%1: game mode - 0 for new game, 1 for load game
-	{HOSTMODE, "<HOSTMODE>%1"},
-	
-	//set new chat channel
-	//%1: channel name
-	{SETCHANNEL, "<CHANNEL>%1"},
-
-	//=== server commands ===
-	//server commands are started from :>>, arguments are enumerated by : symbol
-	
-	//new session was created
-	//arg[0]: room name
-	{CREATED, "CREATED"},
-	
-	//list of existing sessions
-	//arg[0]: amount of sessions, following arguments depending on it
-	//arg[x]: session name
-	//arg[x+1]: amount of players in the session
-	//arg[x+2]: total amount of players allowed
-	//arg[x+3]: True if session is protected by password
-	{SESSIONS, "SESSIONS"},
-	
-	//user has joined to the session
-	//arg[0]: session name
-	//arg[1]: username (who was joined)
-	{JOINED, "JOIN"},
-	
-	//user has left the session
-	//arg[0]: session name
-	//arg[1]: username (who has left)
-	{KICKED, "KICK"},
-	
-	//session has been started
-	//arg[0]: session name
-	//arg[1]: uuid to be used for connection
-	{START, "START"},
-	
-	//host ownership for the game session
-	//arg[0]: uuid to be used by vcmiserver
-	//arg[1]: amount of players (clients) to be connected
-	{HOST, "HOST"},
-	
-	//room status
-	//arg[0]: amount of players, following arguments depending on it
-	//arg[x]: player username
-	//arg[x+1]: True if player is ready
-	{STATUS, "STATUS"}, //joined_players:player_name:is_ready
-	
-	//server error
-	//arg[0]: error message
-	{SRVERROR, "ERROR"},
-	
-	//mods used in the session by host player
-	//arg[0]: amount of mods, following arguments depending on it
-	//arg[x]: mod name
-	//arg[x+1]: mod version
-	{MODS, "MODS"},
-	
-	//mods used by user
-	//arg[0]: username
-	//arg[1]: amount of mods, following arguments depending on it
-	//arg[x]: mod name
-	//arg[x+1]: mod version
-	{CLIENTMODS, "MODSOTHER"},
-	
-	//received chat message
-	//arg[0]: sender username
-	//arg[1]: channel
-	//arg[2]: message text
-	{CHAT, "MSG"},
-	
-	//received chat message to specific channel
-	//arg[0]: sender username
-	//arg[1]: channel
-	//arg[2]: message text
-	{CHATCHANNEL, "MSGCH"},
-	
-	//list of users currently in lobby
-	//arg[0]: amount of players, following arguments depend on it
-	//arg[x]: username
-	//arg[x+1]: room (empty if not in the room)
-	{USERS, "USERS"},
-	
-	//healthcheck from server
-	{HEALTH, "HEALTH"},
-	
-	//game mode (new game or load game) set by host
-	//arg[0]: game mode
-	{GAMEMODE, "GAMEMODE"},
-	
-	//chat channel changed
-	//arg[0]: channel name
-	{CHANNEL, "CHANNEL"},
-};
-
-class ServerCommand
-{
-public:
-	ServerCommand(ProtocolConsts, const QStringList & arguments);
-
-	const ProtocolConsts command;
-	const QStringList arguments;
-};
-
-class SocketLobby : public QObject
-{
-	Q_OBJECT
-public:
-	explicit SocketLobby(QObject *parent = nullptr);
-	void connectServer(const QString & host, int port, const QString & username, int timeout);
-	void disconnectServer();
-	void requestNewSession(const QString & session, int totalPlayers, const QString & pswd, const QMap<QString, QString> & mods);
-	void requestJoinSession(const QString & session, const QString & pswd, const QMap<QString, QString> & mods);
-	void requestLeaveSession(const QString & session);
-	void requestReadySession(const QString & session);
-
-	void send(const QString &);
-
-signals:
-
-	void text(QString);
-	void receive(QString);
-	void disconnect();
-
-public slots:
-
-	void connected();
-	void disconnected();
-	void bytesWritten(qint64 bytes);
-	void readyRead();
-
-private:
-	QTcpSocket *socket;
-	bool isConnected = false;
-	QString username;
-};
-
-QString prepareModsClientString(const QMap<QString, QString> & mods);

+ 0 - 585
launcher/lobby/lobby_moc.cpp

@@ -1,585 +0,0 @@
-/*
- * lobby_moc.cpp, part of VCMI engine
- *
- * Authors: listed in file AUTHORS in main folder
- *
- * License: GNU General Public License v2.0 or later
- * Full text of license available in license.txt file, in main folder
- *
- */
-#include "StdInc.h"
-#include "main.h"
-#include "lobby_moc.h"
-#include "ui_lobby_moc.h"
-#include "lobbyroomrequest_moc.h"
-#include "../mainwindow_moc.h"
-#include "../modManager/cmodlist.h"
-#include "../../lib/CConfigHandler.h"
-
-enum GameMode
-{
-	NEW_GAME = 0, LOAD_GAME = 1
-};
-
-enum ModResolutionRoles
-{
-	ModNameRole = Qt::UserRole + 1,
-	ModEnableRole,
-	ModResolvableRole
-};
-
-Lobby::Lobby(QWidget *parent) :
-	QWidget(parent),
-	ui(new Ui::Lobby)
-{
-	ui->setupUi(this);
-
-	connect(&socketLobby, SIGNAL(text(QString)), ui->chatWidget, SLOT(sysMessage(QString)));
-	connect(&socketLobby, SIGNAL(receive(QString)), this, SLOT(dispatchMessage(QString)));
-	connect(&socketLobby, SIGNAL(disconnect()), this, SLOT(onDisconnected()));
-	connect(ui->chatWidget, SIGNAL(messageSent(QString)), this, SLOT(onMessageSent(QString)));
-	connect(ui->chatWidget, SIGNAL(channelSwitch(QString)), this, SLOT(onChannelSwitch(QString)));
-	
-	QString hostString("%1:%2");
-	hostString = hostString.arg(QString::fromStdString(settings["launcher"]["lobbyUrl"].String()));
-	hostString = hostString.arg(settings["launcher"]["lobbyPort"].Integer());
-	
-	ui->serverEdit->setText(hostString);
-	ui->userEdit->setText(QString::fromStdString(settings["launcher"]["lobbyUsername"].String()));
-	ui->kickButton->setVisible(false);
-}
-
-void Lobby::changeEvent(QEvent *event)
-{
-	if(event->type() == QEvent::LanguageChange)
-	{
-		ui->retranslateUi(this);
-	}
-	QWidget::changeEvent(event);
-}
-
-Lobby::~Lobby()
-{
-	delete ui;
-}
-
-QMap<QString, QString> Lobby::buildModsMap() const
-{
-	QMap<QString, QString> result;
-	QObject * mainWindow = qApp->activeWindow();
-	if(!mainWindow)
-		mainWindow = parent();
-	if(!mainWindow)
-		return result; //probably something is really wrong here
-	
-	while(mainWindow->parent())
-		mainWindow = mainWindow->parent();
-	const auto & modlist = qobject_cast<MainWindow*>(mainWindow)->getModList();
-	
-	for(auto & modname : modlist.getModList())
-	{
-		auto mod = modlist.getMod(modname);
-		if(mod.isEnabled())
-		{
-			result[modname] = mod.getValue("version").toString();
-		}
-	}
-	return result;
-}
-
-bool Lobby::isModAvailable(const QString & modName, const QString & modVersion) const
-{
-	QObject * mainWindow = qApp->activeWindow();
-	while(mainWindow->parent())
-		mainWindow = mainWindow->parent();
-	const auto & modlist = qobject_cast<MainWindow*>(mainWindow)->getModList();
-	
-	if(!modlist.hasMod(modName))
-		return false;
-
-	auto mod = modlist.getMod(modName);
-	return (mod.isInstalled () || mod.isAvailable()) && (mod.getValue("version") == modVersion);
-}
-
-void Lobby::serverCommand(const ServerCommand & command) try
-{
-	//initialize variables outside of switch block
-	const QString statusPlaceholder("%1 %2\n");
-	const auto & args = command.arguments;
-	int amount;
-	int tagPoint;
-	QString joinStr;
-	switch(command.command)
-	{
-	case SRVERROR:
-		protocolAssert(args.size());
-		ui->chatWidget->chatMessage("System error", args[0], true);
-		if(authentificationStatus == AuthStatus::AUTH_NONE)
-			authentificationStatus = AuthStatus::AUTH_ERROR;
-		break;
-
-	case CREATED:
-		protocolAssert(args.size());
-		hostSession = args[0];
-		session = args[0];
-		ui->chatWidget->setSession(session);
-		break;
-
-	case SESSIONS:
-		protocolAssert(args.size());
-		amount = args[0].toInt();
-		protocolAssert(amount * 4 == (args.size() - 1));
-		ui->sessionsTable->setRowCount(amount);
-
-		tagPoint = 1;
-		for(int i = 0; i < amount; ++i)
-		{
-			QTableWidgetItem * sessionNameItem = new QTableWidgetItem(args[tagPoint++]);
-			ui->sessionsTable->setItem(i, 0, sessionNameItem);
-
-			int playersJoined = args[tagPoint++].toInt();
-			int playersTotal = args[tagPoint++].toInt();
-			auto * sessionPlayerItem = new QTableWidgetItem(QString("%1/%2").arg(playersJoined).arg(playersTotal));
-			ui->sessionsTable->setItem(i, 1, sessionPlayerItem);
-
-			auto * sessionProtectedItem = new QTableWidgetItem();
-			bool isPrivate = (args[tagPoint++] == "True");
-			sessionProtectedItem->setData(Qt::UserRole, isPrivate);
-			if(isPrivate)
-				sessionProtectedItem->setIcon(QIcon("icons:room-private.png"));
-			ui->sessionsTable->setItem(i, 2, sessionProtectedItem);
-		}
-		break;
-
-	case JOINED:
-	case KICKED:
-		protocolAssert(args.size() == 2);
-		if(args[1] == username)
-		{
-			hostModsMap.clear();
-			session = "";
-			ui->chatWidget->setSession(session);
-			ui->buttonReady->setText("Ready");
-			ui->optNewGame->setChecked(true);
-			session = args[0];
-			ui->chatWidget->setSession(session);
-			bool isHost = command.command == JOINED && hostSession == session;
-			ui->optNewGame->setEnabled(isHost);
-			ui->optLoadGame->setEnabled(isHost);
-			ui->stackedWidget->setCurrentWidget(command.command == JOINED ? ui->roomPage : ui->sessionsPage);
-		}
-		else
-		{
-			joinStr = (command.command == JOINED ? "%1 joined to the session %2" : "%1 left session %2");
-			ui->chatWidget->sysMessage(joinStr.arg(args[1], args[0]));
-		}
-		break;
-
-	case MODS: {
-		protocolAssert(args.size() > 0);
-		amount = args[0].toInt();
-		protocolAssert(amount * 2 == (args.size() - 1));
-
-		tagPoint = 1;
-		for(int i = 0; i < amount; ++i, tagPoint += 2)
-			hostModsMap[args[tagPoint]] = args[tagPoint + 1];
-		
-		updateMods();
-		break;
-		}
-			
-	case CLIENTMODS: {
-		protocolAssert(args.size() >= 1);
-		auto & clientModsMap = clientsModsMap[args[0]];
-		amount = args[1].toInt();
-		protocolAssert(amount * 2 == (args.size() - 2));
-
-		tagPoint = 2;
-		for(int i = 0; i < amount; ++i, tagPoint += 2)
-			clientModsMap[args[tagPoint]] = args[tagPoint + 1];
-		
-		break;
-		}
-
-
-	case STATUS:
-		protocolAssert(args.size() > 0);
-		amount = args[0].toInt();
-		protocolAssert(amount * 2 == (args.size() - 1));
-
-		tagPoint = 1;
-		ui->playersList->clear();
-		for(int i = 0; i < amount; ++i, tagPoint += 2)
-		{
-			if(args[tagPoint + 1] == "True")
-				ui->playersList->addItem(new QListWidgetItem(QIcon("icons:mod-enabled.png"), args[tagPoint]));
-			else
-				ui->playersList->addItem(new QListWidgetItem(QIcon("icons:mod-disabled.png"), args[tagPoint]));
-			
-			if(args[tagPoint] == username)
-			{
-				if(args[tagPoint + 1] == "True")
-					ui->buttonReady->setText("Not ready");
-				else
-					ui->buttonReady->setText("Ready");
-			}
-		}
-		break;
-
-	case START: {
-		protocolAssert(args.size() == 1);
-		//actually start game
-		gameArgs << "--lobby";
-		gameArgs << "--lobby-address" << serverUrl;
-		gameArgs << "--lobby-port" << QString::number(serverPort);
-		gameArgs << "--lobby-username" << username;
-		gameArgs << "--lobby-gamemode" << QString::number(isLoadGameMode);
-		gameArgs << "--uuid" << args[0];
-		startGame(gameArgs);		
-		break;
-		}
-
-	case HOST: {
-		protocolAssert(args.size() == 2);
-		gameArgs << "--lobby-host";
-		gameArgs << "--lobby-uuid" << args[0];
-		gameArgs << "--lobby-connections" << args[1];
-		break;
-		}
-
-	case CHAT: {
-		protocolAssert(args.size() > 1);
-		QString msg;
-		for(int i = 1; i < args.size(); ++i)
-			msg += args[i];
-		ui->chatWidget->chatMessage(args[0], msg);
-		break;
-		}
-			
-	case CHATCHANNEL: {
-		protocolAssert(args.size() > 2);
-		QString msg;
-		for(int i = 2; i < args.size(); ++i)
-			msg += args[i];
-		ui->chatWidget->chatMessage(args[0], args[1], msg);
-		break;
-		}
-			
-	case CHANNEL: {
-		protocolAssert(args.size() == 1);
-		ui->chatWidget->setChannel(args[0]);
-		break;
-		}
-			
-	case HEALTH: {
-		socketLobby.send(ProtocolStrings[ALIVE]);
-		break;
-	}
-			
-	case USERS: {
-		protocolAssert(args.size() > 0);
-		amount = args[0].toInt();
-		
-		protocolAssert(amount == (args.size() - 1));
-		ui->chatWidget->clearUsers();
-		for(int i = 0; i < amount; ++i)
-		{
-			ui->chatWidget->addUser(args[i + 1]);
-		}
-		break;
-	}
-			
-	case GAMEMODE: {
-		protocolAssert(args.size() == 1);
-		isLoadGameMode = args[0].toInt();
-		if(isLoadGameMode)
-			ui->optLoadGame->setChecked(true);
-		else
-			ui->optNewGame->setChecked(true);
-		break;
-	}
-
-	default:
-			ui->chatWidget->sysMessage("Unknown server command");
-	}
-
-	if(authentificationStatus == AuthStatus::AUTH_ERROR)
-	{
-		socketLobby.disconnectServer();
-	}
-	else
-	{
-		authentificationStatus = AuthStatus::AUTH_OK;
-		ui->newButton->setEnabled(true);
-	}
-}
-catch(const ProtocolError & e)
-{
-	ui->chatWidget->chatMessage("System error", e.what(), true);
-}
-
-void Lobby::dispatchMessage(QString txt) try
-{
-	if(txt.isEmpty())
-		return;
-
-	QStringList parseTags = txt.split(":>>");
-	protocolAssert(parseTags.size() > 1 && parseTags[0].isEmpty() && !parseTags[1].isEmpty());
-
-	for(int c = 1; c < parseTags.size(); ++c)
-	{
-		QStringList parseArgs = parseTags[c].split(":");
-		protocolAssert(parseArgs.size() > 1);
-
-		auto ctype = ProtocolStrings.key(parseArgs[0]);
-		parseArgs.pop_front();
-		ServerCommand cmd(ctype, parseArgs);
-		serverCommand(cmd);
-	}
-}
-catch(const ProtocolError & e)
-{
-	ui->chatWidget->chatMessage("System error", e.what(), true);
-}
-
-void Lobby::onDisconnected()
-{
-	authentificationStatus = AuthStatus::AUTH_NONE;
-	session = "";
-	ui->chatWidget->setSession(session);
-	ui->chatWidget->setChannel("global");
-	ui->stackedWidget->setCurrentWidget(ui->sessionsPage);
-	ui->connectButton->setChecked(false);
-	ui->serverEdit->setEnabled(true);
-	ui->userEdit->setEnabled(true);
-	ui->newButton->setEnabled(false);
-	ui->joinButton->setEnabled(false);
-	ui->sessionsTable->setRowCount(0);
-}
-
-void Lobby::protocolAssert(bool expr)
-{
-	if(!expr)
-		throw ProtocolError("Protocol error");
-}
-
-void Lobby::on_connectButton_toggled(bool checked)
-{
-	if(checked)
-	{
-		ui->connectButton->setText(tr("Disconnect"));
-		authentificationStatus = AuthStatus::AUTH_NONE;
-		username = ui->userEdit->text();
-		ui->chatWidget->setUsername(username);
-		const int connectionTimeout = settings["launcher"]["connectionTimeout"].Integer();
-		
-		auto serverStrings = ui->serverEdit->text().split(":");
-		if(serverStrings.size() != 2)
-		{
-			QMessageBox::critical(this, "Connection error", "Server address must have the format URL:port");
-			return;
-		}
-		
-		serverUrl = serverStrings[0];
-		serverPort = serverStrings[1].toInt();
-
-		Settings node = settings.write["launcher"];
-		node["lobbyUrl"].String() = serverUrl.toStdString();
-		node["lobbyPort"].Integer() = serverPort;
-		node["lobbyUsername"].String() = username.toStdString();
-		
-		ui->serverEdit->setEnabled(false);
-		ui->userEdit->setEnabled(false);
-
-		ui->chatWidget->sysMessage("Connecting to " + serverUrl + ":" + QString::number(serverPort));
-		//show text immediately
-		ui->chatWidget->repaint();
-		qApp->processEvents();
-		
-		socketLobby.connectServer(serverUrl, serverPort, username, connectionTimeout);
-	}
-	else
-	{
-		ui->connectButton->setText(tr("Connect"));
-		ui->serverEdit->setEnabled(true);
-		ui->userEdit->setEnabled(true);
-		ui->chatWidget->clearUsers();
-		hostModsMap.clear();
-		updateMods();
-		socketLobby.disconnectServer();
-	}
-}
-
-void Lobby::updateMods()
-{
-	ui->modsList->clear();
-	if(hostModsMap.empty())
-		return;
-	
-	auto createModListWidget = [](const QIcon & icon, const QString & label, const QString & name, bool enableFlag, bool resolveFlag)
-	{
-		auto * lw = new QListWidgetItem(icon, label);
-		lw->setData(ModResolutionRoles::ModNameRole, name);
-		lw->setData(ModResolutionRoles::ModEnableRole, enableFlag);
-		lw->setData(ModResolutionRoles::ModResolvableRole, resolveFlag);
-		return lw;
-	};
-	
-	auto enabledMods = buildModsMap();
-	for(const auto & mod : hostModsMap.keys())
-	{
-		auto & modValue = hostModsMap[mod];
-		auto modName = QString("%1 (v%2)").arg(mod, modValue);
-		if(enabledMods.contains(mod))
-		{
-			if(enabledMods[mod] == modValue)
-				enabledMods.remove(mod); //mod fully matches, remove from list
-			else
-			{
-				//mod version mismatch
-				ui->modsList->addItem(createModListWidget(QIcon("icons:mod-update.png"), modName, mod, true, false));
-			}
-		}
-		else if(isModAvailable(mod, modValue))
-		{
-			//mod is available and needs to be enabled
-			ui->modsList->addItem(createModListWidget(QIcon("icons:mod-enabled.png"), modName, mod, true, true));
-		}
-		else
-		{
-			//mod is not available and needs to be installed
-			ui->modsList->addItem(createModListWidget(QIcon("icons:mod-delete.png"), modName, mod, true, false));
-		}
-	}
-	for(const auto & remainMod : enabledMods.keys())
-	{
-		auto modName = QString("%1 (v%2)").arg(remainMod, enabledMods[remainMod]);
-		//mod needs to be disabled
-		ui->modsList->addItem(createModListWidget(QIcon("icons:mod-disabled.png"), modName, remainMod, false, true));
-	}
-	if(!ui->modsList->count())
-	{
-		ui->buttonResolve->setEnabled(false);
-		ui->modsList->addItem(tr("No issues detected"));
-	}
-	else
-	{
-		ui->buttonResolve->setEnabled(true);
-	}
-}
-
-void Lobby::on_newButton_clicked()
-{
-	new LobbyRoomRequest(socketLobby, "", buildModsMap(), this);
-}
-
-void Lobby::on_joinButton_clicked()
-{
-	auto * item = ui->sessionsTable->item(ui->sessionsTable->currentRow(), 0);
-	if(item)
-	{
-		auto isPrivate = ui->sessionsTable->item(ui->sessionsTable->currentRow(), 2)->data(Qt::UserRole).toBool();
-		if(isPrivate)
-			new LobbyRoomRequest(socketLobby, item->text(), buildModsMap(), this);
-		else
-			socketLobby.requestJoinSession(item->text(), "", buildModsMap());
-	}
-}
-
-void Lobby::on_buttonLeave_clicked()
-{
-	socketLobby.requestLeaveSession(session);
-}
-
-void Lobby::on_buttonReady_clicked()
-{
-	if(ui->buttonReady->text() == "Ready")
-		ui->buttonReady->setText("Not ready");
-	else
-		ui->buttonReady->setText("Ready");
-	socketLobby.requestReadySession(session);
-}
-
-void Lobby::on_sessionsTable_itemSelectionChanged()
-{
-	auto selection = ui->sessionsTable->selectedItems();
-	ui->joinButton->setEnabled(!selection.empty());
-}
-
-void Lobby::on_playersList_currentRowChanged(int currentRow)
-{
-	ui->kickButton->setVisible(ui->playersList->currentItem()
-							   && currentRow > 0
-							   && ui->playersList->currentItem()->text() != username);
-}
-
-void Lobby::on_kickButton_clicked()
-{
-	if(ui->playersList->currentItem() && ui->playersList->currentItem()->text() != username)
-		socketLobby.send(ProtocolStrings[KICK].arg(ui->playersList->currentItem()->text()));
-}
-
-
-void Lobby::on_buttonResolve_clicked()
-{
-	QStringList toEnableList;
-	QStringList toDisableList;
-	auto items = ui->modsList->selectedItems();
-	if(items.empty())
-	{
-		for(int i = 0; i < ui->modsList->count(); ++i)
-			items.push_back(ui->modsList->item(i));
-	}
-	
-	for(auto * item : items)
-	{
-		auto modName = item->data(ModResolutionRoles::ModNameRole);
-		if(modName.isNull())
-			continue;
-		
-		bool modToEnable = item->data(ModResolutionRoles::ModEnableRole).toBool();
-		bool modToResolve = item->data(ModResolutionRoles::ModResolvableRole).toBool();
-		
-		if(!modToResolve)
-			continue;
-		
-		if(modToEnable)
-			toEnableList << modName.toString();
-		else
-			toDisableList << modName.toString();
-	}
-	
-	//disabling first, then enabling
-	for(auto & mod : toDisableList)
-		emit disableMod(mod);
-	for(auto & mod : toEnableList)
-		emit enableMod(mod);
-}
-
-void Lobby::on_optNewGame_toggled(bool checked)
-{
-	if(checked)
-	{
-		if(isLoadGameMode)
-			socketLobby.send(ProtocolStrings[HOSTMODE].arg(GameMode::NEW_GAME));
-	}
-}
-
-void Lobby::on_optLoadGame_toggled(bool checked)
-{
-	if(checked)
-	{
-		if(!isLoadGameMode)
-			socketLobby.send(ProtocolStrings[HOSTMODE].arg(GameMode::LOAD_GAME));
-	}
-}
-
-void Lobby::onMessageSent(QString message)
-{
-	socketLobby.send(ProtocolStrings[MESSAGE].arg(message));
-}
-
-void Lobby::onChannelSwitch(QString channel)
-{
-	socketLobby.send(ProtocolStrings[SETCHANNEL].arg(channel));
-}

+ 0 - 92
launcher/lobby/lobby_moc.h

@@ -1,92 +0,0 @@
-/*
- * lobby_moc.h, part of VCMI engine
- *
- * Authors: listed in file AUTHORS in main folder
- *
- * License: GNU General Public License v2.0 or later
- * Full text of license available in license.txt file, in main folder
- *
- */
-#pragma once
-#include <QWidget>
-#include "lobby.h"
-
-namespace Ui {
-class Lobby;
-}
-
-class Lobby : public QWidget
-{
-	Q_OBJECT
-
-	void changeEvent(QEvent *event) override;
-public:
-	explicit Lobby(QWidget *parent = nullptr);
-	~Lobby();
-	
-signals:
-	
-	void enableMod(QString mod);
-	void disableMod(QString mod);
-	
-public slots:
-	void updateMods();
-
-private slots:
-	void dispatchMessage(QString);
-	void serverCommand(const ServerCommand &);
-	void onMessageSent(QString message);
-	void onChannelSwitch(QString channel);
-
-	void on_connectButton_toggled(bool checked);
-
-	void on_newButton_clicked();
-
-	void on_joinButton_clicked();
-
-	void on_buttonLeave_clicked();
-
-	void on_buttonReady_clicked();
-
-	void onDisconnected();
-
-	void on_sessionsTable_itemSelectionChanged();
-
-	void on_playersList_currentRowChanged(int currentRow);
-
-	void on_kickButton_clicked();
-
-	void on_buttonResolve_clicked();
-
-	void on_optNewGame_toggled(bool checked);
-
-	void on_optLoadGame_toggled(bool checked);
-
-private:
-	QString serverUrl;
-	int serverPort;
-	bool isLoadGameMode = false;
-	
-	Ui::Lobby *ui;
-	SocketLobby socketLobby;
-	QString hostSession;
-	QString session;
-	QString username;
-	QStringList gameArgs;
-	QMap<QString, QString> hostModsMap;
-	QMap<QString, QMap<QString, QString>> clientsModsMap;
-
-	enum AuthStatus
-	{
-		AUTH_NONE, AUTH_OK, AUTH_ERROR
-	};
-
-	AuthStatus authentificationStatus = AUTH_NONE;
-
-private:
-	QMap<QString, QString> buildModsMap() const;
-	bool isModAvailable(const QString & modName, const QString & modVersion) const;
-
-
-	void protocolAssert(bool);
-};

+ 0 - 311
launcher/lobby/lobby_moc.ui

@@ -1,311 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>Lobby</class>
- <widget class="QWidget" name="Lobby">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>652</width>
-    <height>383</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string/>
-  </property>
-  <layout class="QGridLayout" name="gridLayout">
-   <property name="bottomMargin">
-    <number>0</number>
-   </property>
-   <item row="0" column="3">
-    <widget class="QLabel" name="label_4">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="text">
-      <string>Username</string>
-     </property>
-    </widget>
-   </item>
-   <item row="0" column="5">
-    <widget class="QPushButton" name="connectButton">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="text">
-      <string>Connect</string>
-     </property>
-     <property name="checkable">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item row="0" column="1">
-    <widget class="QLineEdit" name="serverEdit">
-     <property name="text">
-      <string notr="true">127.0.0.1:5002</string>
-     </property>
-    </widget>
-   </item>
-   <item row="0" column="0">
-    <widget class="QLabel" name="label">
-     <property name="text">
-      <string>Server</string>
-     </property>
-    </widget>
-   </item>
-   <item row="0" column="4">
-    <widget class="QLineEdit" name="userEdit"/>
-   </item>
-   <item row="1" column="0" colspan="6">
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <property name="spacing">
-      <number>-1</number>
-     </property>
-     <property name="bottomMargin">
-      <number>0</number>
-     </property>
-     <item>
-      <layout class="QVBoxLayout" name="verticalLayout">
-       <property name="spacing">
-        <number>0</number>
-       </property>
-       <property name="leftMargin">
-        <number>10</number>
-       </property>
-       <property name="bottomMargin">
-        <number>0</number>
-       </property>
-       <item>
-        <widget class="Chat" name="chatWidget" native="true">
-         <property name="sizePolicy">
-          <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
-           <horstretch>0</horstretch>
-           <verstretch>0</verstretch>
-          </sizepolicy>
-         </property>
-        </widget>
-       </item>
-      </layout>
-     </item>
-     <item>
-      <widget class="QStackedWidget" name="stackedWidget">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="currentIndex">
-        <number>0</number>
-       </property>
-       <widget class="QWidget" name="sessionsPage">
-        <layout class="QGridLayout" name="gridLayout_2">
-         <property name="leftMargin">
-          <number>0</number>
-         </property>
-         <property name="topMargin">
-          <number>0</number>
-         </property>
-         <property name="rightMargin">
-          <number>0</number>
-         </property>
-         <property name="bottomMargin">
-          <number>0</number>
-         </property>
-         <item row="1" column="0">
-          <widget class="QPushButton" name="newButton">
-           <property name="enabled">
-            <bool>false</bool>
-           </property>
-           <property name="text">
-            <string>New room</string>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="1">
-          <widget class="QPushButton" name="joinButton">
-           <property name="enabled">
-            <bool>false</bool>
-           </property>
-           <property name="text">
-            <string>Join room</string>
-           </property>
-          </widget>
-         </item>
-         <item row="0" column="0" colspan="2">
-          <widget class="QTableWidget" name="sessionsTable">
-           <property name="editTriggers">
-            <set>QAbstractItemView::NoEditTriggers</set>
-           </property>
-           <property name="selectionMode">
-            <enum>QAbstractItemView::SingleSelection</enum>
-           </property>
-           <property name="selectionBehavior">
-            <enum>QAbstractItemView::SelectRows</enum>
-           </property>
-           <attribute name="horizontalHeaderCascadingSectionResizes">
-            <bool>false</bool>
-           </attribute>
-           <attribute name="horizontalHeaderDefaultSectionSize">
-            <number>80</number>
-           </attribute>
-           <attribute name="horizontalHeaderShowSortIndicator" stdset="0">
-            <bool>false</bool>
-           </attribute>
-           <attribute name="horizontalHeaderStretchLastSection">
-            <bool>true</bool>
-           </attribute>
-           <attribute name="verticalHeaderMinimumSectionSize">
-            <number>20</number>
-           </attribute>
-           <attribute name="verticalHeaderDefaultSectionSize">
-            <number>20</number>
-           </attribute>
-           <column>
-            <property name="text">
-             <string>Session</string>
-            </property>
-           </column>
-           <column>
-            <property name="text">
-             <string>Players</string>
-            </property>
-           </column>
-           <column>
-            <property name="text">
-             <string/>
-            </property>
-           </column>
-          </widget>
-         </item>
-        </layout>
-       </widget>
-       <widget class="QWidget" name="roomPage">
-        <layout class="QGridLayout" name="gridLayout_3">
-         <property name="leftMargin">
-          <number>0</number>
-         </property>
-         <property name="topMargin">
-          <number>0</number>
-         </property>
-         <property name="rightMargin">
-          <number>0</number>
-         </property>
-         <property name="bottomMargin">
-          <number>0</number>
-         </property>
-         <property name="verticalSpacing">
-          <number>-1</number>
-         </property>
-         <item row="1" column="1">
-          <widget class="QPushButton" name="kickButton">
-           <property name="text">
-            <string>Kick player</string>
-           </property>
-          </widget>
-         </item>
-         <item row="2" column="0" colspan="2">
-          <widget class="QListWidget" name="playersList">
-           <property name="editTriggers">
-            <set>QAbstractItemView::NoEditTriggers</set>
-           </property>
-           <property name="selectionMode">
-            <enum>QAbstractItemView::SingleSelection</enum>
-           </property>
-           <property name="selectionBehavior">
-            <enum>QAbstractItemView::SelectRows</enum>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="0">
-          <widget class="QLabel" name="label_3">
-           <property name="text">
-            <string>Players in the room</string>
-           </property>
-          </widget>
-         </item>
-         <item row="6" column="0">
-          <widget class="QPushButton" name="buttonLeave">
-           <property name="text">
-            <string>Leave</string>
-           </property>
-          </widget>
-         </item>
-         <item row="3" column="0">
-          <widget class="QLabel" name="label_5">
-           <property name="text">
-            <string>Mods mismatch</string>
-           </property>
-          </widget>
-         </item>
-         <item row="4" column="0" colspan="2">
-          <widget class="QListWidget" name="modsList">
-           <property name="editTriggers">
-            <set>QAbstractItemView::NoEditTriggers</set>
-           </property>
-           <property name="selectionMode">
-            <enum>QAbstractItemView::MultiSelection</enum>
-           </property>
-          </widget>
-         </item>
-         <item row="6" column="1">
-          <widget class="QPushButton" name="buttonReady">
-           <property name="text">
-            <string>Ready</string>
-           </property>
-          </widget>
-         </item>
-         <item row="3" column="1">
-          <widget class="QPushButton" name="buttonResolve">
-           <property name="text">
-            <string>Resolve</string>
-           </property>
-          </widget>
-         </item>
-         <item row="5" column="0" colspan="2">
-          <layout class="QHBoxLayout" name="horizontalLayout_3">
-           <property name="bottomMargin">
-            <number>0</number>
-           </property>
-           <item>
-            <widget class="QRadioButton" name="optNewGame">
-             <property name="text">
-              <string>New game</string>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QRadioButton" name="optLoadGame">
-             <property name="text">
-              <string>Load game</string>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </item>
-        </layout>
-       </widget>
-      </widget>
-     </item>
-    </layout>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>Chat</class>
-   <extends>QWidget</extends>
-   <header>lobby/chat_moc.h</header>
-   <container>1</container>
-  </customwidget>
- </customwidgets>
- <resources/>
- <connections/>
-</ui>

+ 0 - 59
launcher/lobby/lobbyroomrequest_moc.cpp

@@ -1,59 +0,0 @@
-/*
- * lobbyroomrequest_moc.cpp, part of VCMI engine
- *
- * Authors: listed in file AUTHORS in main folder
- *
- * License: GNU General Public License v2.0 or later
- * Full text of license available in license.txt file, in main folder
- *
- */
-#include "lobbyroomrequest_moc.h"
-#include "ui_lobbyroomrequest_moc.h"
-
-LobbyRoomRequest::LobbyRoomRequest(SocketLobby & socket, const QString & room, const QMap<QString, QString> & mods, QWidget *parent) :
-	QDialog(parent),
-	ui(new Ui::LobbyRoomRequest),
-	socketLobby(socket),
-	mods(mods)
-{
-	ui->setupUi(this);
-	ui->nameEdit->setText(room);
-	if(!room.isEmpty())
-	{
-		ui->nameEdit->setReadOnly(true);
-		ui->totalPlayers->setEnabled(false);
-	}
-
-	show();
-}
-
-void LobbyRoomRequest::changeEvent(QEvent *event)
-{
-	if(event->type() == QEvent::LanguageChange)
-	{
-		ui->retranslateUi(this);
-	}
-	QDialog::changeEvent(event);
-}
-
-LobbyRoomRequest::~LobbyRoomRequest()
-{
-	delete ui;
-}
-
-void LobbyRoomRequest::on_buttonBox_accepted()
-{
-	if(ui->nameEdit->isReadOnly())
-	{
-		socketLobby.requestJoinSession(ui->nameEdit->text(), ui->passwordEdit->text(), mods);
-	}
-	else
-	{
-		if(!ui->nameEdit->text().isEmpty())
-		{
-			int totalPlayers = ui->totalPlayers->currentIndex() + 2; //where 2 is a minimum amount of players
-			socketLobby.requestNewSession(ui->nameEdit->text(), totalPlayers, ui->passwordEdit->text(), mods);
-		}
-	}
-}
-

+ 0 - 38
launcher/lobby/lobbyroomrequest_moc.h

@@ -1,38 +0,0 @@
-/*
- * lobbyroomrequest_moc.h, part of VCMI engine
- *
- * Authors: listed in file AUTHORS in main folder
- *
- * License: GNU General Public License v2.0 or later
- * Full text of license available in license.txt file, in main folder
- *
- */
-#ifndef LOBBYROOMREQUEST_MOC_H
-#define LOBBYROOMREQUEST_MOC_H
-
-#include <QDialog>
-#include "lobby.h"
-
-namespace Ui {
-class LobbyRoomRequest;
-}
-
-class LobbyRoomRequest : public QDialog
-{
-	Q_OBJECT
-
-	void changeEvent(QEvent *event) override;
-public:
-	explicit LobbyRoomRequest(SocketLobby & socket, const QString & room, const QMap<QString, QString> & mods, QWidget *parent = nullptr);
-	~LobbyRoomRequest();
-
-private slots:
-	void on_buttonBox_accepted();
-
-private:
-	Ui::LobbyRoomRequest *ui;
-	SocketLobby & socketLobby;
-	QMap<QString, QString> mods;
-};
-
-#endif // LOBBYROOMREQUEST_MOC_H

+ 0 - 151
launcher/lobby/lobbyroomrequest_moc.ui

@@ -1,151 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>LobbyRoomRequest</class>
- <widget class="QDialog" name="LobbyRoomRequest">
-  <property name="windowModality">
-   <enum>Qt::WindowModal</enum>
-  </property>
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>227</width>
-    <height>188</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Room settings</string>
-  </property>
-  <property name="locale">
-   <locale language="English" country="UnitedStates"/>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>false</bool>
-  </property>
-  <property name="modal">
-   <bool>true</bool>
-  </property>
-  <layout class="QGridLayout" name="gridLayout">
-   <item row="0" column="0" colspan="2">
-    <widget class="QLabel" name="label">
-     <property name="text">
-      <string>Room name</string>
-     </property>
-    </widget>
-   </item>
-   <item row="1" column="0" colspan="2">
-    <widget class="QLineEdit" name="nameEdit"/>
-   </item>
-   <item row="2" column="0">
-    <widget class="QLabel" name="label_2">
-     <property name="text">
-      <string>Maximum players</string>
-     </property>
-    </widget>
-   </item>
-   <item row="2" column="1">
-    <widget class="QComboBox" name="totalPlayers">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="currentText">
-      <string notr="true">2</string>
-     </property>
-     <item>
-      <property name="text">
-       <string notr="true">2</string>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string notr="true">3</string>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string notr="true">4</string>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string notr="true">5</string>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string notr="true">6</string>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string notr="true">7</string>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string notr="true">8</string>
-      </property>
-     </item>
-    </widget>
-   </item>
-   <item row="3" column="0" colspan="2">
-    <widget class="QLabel" name="label_3">
-     <property name="text">
-      <string>Password (optional)</string>
-     </property>
-    </widget>
-   </item>
-   <item row="4" column="0" colspan="2">
-    <widget class="QLineEdit" name="passwordEdit"/>
-   </item>
-   <item row="5" column="0" colspan="2">
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>LobbyRoomRequest</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>LobbyRoomRequest</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>

+ 0 - 13
launcher/mainwindow_moc.cpp

@@ -53,7 +53,6 @@ void MainWindow::computeSidePanelSizes()
 	QVector<QToolButton*> widgets = {
 		ui->modslistButton,
 		ui->settingsButton,
-		ui->lobbyButton,
 		ui->aboutButton,
 		ui->startEditorButton,
 		ui->startGameButton
@@ -86,10 +85,6 @@ MainWindow::MainWindow(QWidget * parent)
 
 	ui->setupUi(this);
 	
-	connect(ui->lobbyView, &Lobby::enableMod, ui->modlistView, &CModListView::enableModByName);
-	connect(ui->lobbyView, &Lobby::disableMod, ui->modlistView, &CModListView::disableModByName);
-	connect(ui->modlistView, &CModListView::modsChanged, ui->lobbyView, &Lobby::updateMods);
-
 	//load window settings
 	QSettings s(Ui::teamName, Ui::appName);
 
@@ -151,7 +146,6 @@ void MainWindow::enterSetup()
 {
 	ui->startGameButton->setEnabled(false);
 	ui->startEditorButton->setEnabled(false);
-	ui->lobbyButton->setEnabled(false);
 	ui->settingsButton->setEnabled(false);
 	ui->aboutButton->setEnabled(false);
 	ui->modslistButton->setEnabled(false);
@@ -165,7 +159,6 @@ void MainWindow::exitSetup()
 
 	ui->startGameButton->setEnabled(true);
 	ui->startEditorButton->setEnabled(true);
-	ui->lobbyButton->setEnabled(true);
 	ui->settingsButton->setEnabled(true);
 	ui->aboutButton->setEnabled(true);
 	ui->modslistButton->setEnabled(true);
@@ -228,12 +221,6 @@ void MainWindow::on_settingsButton_clicked()
 	ui->tabListWidget->setCurrentIndex(TabRows::SETTINGS);
 }
 
-void MainWindow::on_lobbyButton_clicked()
-{
-	ui->startGameButton->setEnabled(false);
-	ui->tabListWidget->setCurrentIndex(TabRows::LOBBY);
-}
-
 void MainWindow::on_aboutButton_clicked()
 {
 	ui->startGameButton->setEnabled(true);

+ 2 - 4
launcher/mainwindow_moc.h

@@ -38,9 +38,8 @@ private:
 	{
 		MODS = 0,
 		SETTINGS = 1,
-		LOBBY = 2,
-		SETUP = 3,
-		ABOUT = 4,
+		SETUP = 2,
+		ABOUT = 3,
 	};
 
 	void changeEvent(QEvent *event) override;
@@ -65,7 +64,6 @@ public slots:
 private slots:
 	void on_modslistButton_clicked();
 	void on_settingsButton_clicked();
-	void on_lobbyButton_clicked();
 	void on_startEditorButton_clicked();
 	void on_aboutButton_clicked();
 };

+ 0 - 57
launcher/mainwindow_moc.ui

@@ -133,56 +133,6 @@
         </property>
        </widget>
       </item>
-      <item>
-       <widget class="QToolButton" name="lobbyButton">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
-          <horstretch>1</horstretch>
-          <verstretch>10</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="minimumSize">
-         <size>
-          <width>0</width>
-          <height>0</height>
-         </size>
-        </property>
-        <property name="maximumSize">
-         <size>
-          <width>16777215</width>
-          <height>16777215</height>
-         </size>
-        </property>
-        <property name="text">
-         <string>Lobby</string>
-        </property>
-        <property name="icon">
-         <iconset>
-          <normaloff>icons:menu-lobby.png</normaloff>icons:menu-lobby.png</iconset>
-        </property>
-        <property name="iconSize">
-         <size>
-          <width>64</width>
-          <height>64</height>
-         </size>
-        </property>
-        <property name="checkable">
-         <bool>true</bool>
-        </property>
-        <property name="checked">
-         <bool>false</bool>
-        </property>
-        <property name="autoExclusive">
-         <bool>true</bool>
-        </property>
-        <property name="toolButtonStyle">
-         <enum>Qt::ToolButtonTextUnderIcon</enum>
-        </property>
-        <property name="autoRaise">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
       <item>
        <widget class="QToolButton" name="aboutButton">
         <property name="sizePolicy">
@@ -370,7 +320,6 @@
       </property>
       <widget class="CModListView" name="modlistView"/>
       <widget class="CSettingsView" name="settingsView"/>
-      <widget class="Lobby" name="lobbyView"/>
       <widget class="FirstLaunchView" name="setupView"/>
       <widget class="AboutProjectView" name="aboutView"/>
      </widget>
@@ -392,12 +341,6 @@
    <header>settingsView/csettingsview_moc.h</header>
    <container>1</container>
   </customwidget>
-  <customwidget>
-   <class>Lobby</class>
-   <extends>QWidget</extends>
-   <header>lobby/lobby_moc.h</header>
-   <container>1</container>
-  </customwidget>
   <customwidget>
    <class>FirstLaunchView</class>
    <extends>QWidget</extends>

+ 8 - 153
launcher/translation/chinese.ts

@@ -687,59 +687,31 @@ Fullscreen Exclusive Mode - game will cover entirety of your screen and will use
         <translation>显示开场动画</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="450"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="448"/>
         <source>Active</source>
         <translation>激活</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="455"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="453"/>
         <source>Disabled</source>
         <translation>禁用</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="456"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="454"/>
         <source>Enable</source>
         <translation>启用</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="461"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="459"/>
         <source>Not Installed</source>
         <translation>未安装</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="462"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="460"/>
         <source>Install</source>
         <translation>安装</translation>
     </message>
 </context>
-<context>
-    <name>Chat</name>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="14"/>
-        <source>Form</source>
-        <translation>窗体</translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="40"/>
-        <source>Users in lobby</source>
-        <translation>大厅内用户</translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="50"/>
-        <source>Global chat</source>
-        <translation>全局聊天</translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="104"/>
-        <source>type you message</source>
-        <translation>输入你的消息</translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="111"/>
-        <source>send</source>
-        <translation>发送</translation>
-    </message>
-</context>
 <context>
     <name>FirstLaunchView</name>
     <message>
@@ -1055,119 +1027,7 @@ Heroes® of Might and Magic® III HD is currently not supported!</source>
     </message>
 </context>
 <context>
-    <name>Lobby</name>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="42"/>
-        <location filename="../lobby/lobby_moc.cpp" line="403"/>
-        <source>Connect</source>
-        <translation>连接</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="29"/>
-        <source>Username</source>
-        <translation>用户名</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="59"/>
-        <source>Server</source>
-        <translation>服务器</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="173"/>
-        <source>Session</source>
-        <translation>会话</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="178"/>
-        <source>Players</source>
-        <translation>玩家</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="268"/>
-        <source>Resolve</source>
-        <translation>解析</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="280"/>
-        <source>New game</source>
-        <translation>新游戏</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="287"/>
-        <source>Load game</source>
-        <translation>加载游戏</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="128"/>
-        <source>New room</source>
-        <translation>新房间</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="138"/>
-        <source>Join room</source>
-        <translation>加入房间</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="261"/>
-        <source>Ready</source>
-        <translation>准备</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="244"/>
-        <source>Mods mismatch</source>
-        <translatorcomment>Mod统一翻译为模组</translatorcomment>
         <translation>模组不匹配</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="237"/>
-        <source>Leave</source>
-        <translation>离开</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="210"/>
-        <source>Kick player</source>
-        <translation>踢出玩家</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="230"/>
-        <source>Players in the room</source>
-        <translation>房间内的玩家</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.cpp" line="370"/>
-        <source>Disconnect</source>
-        <translation>断开</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.cpp" line="463"/>
-        <source>No issues detected</source>
-        <translation>没有发现问题</translation>
-    </message>
-</context>
-<context>
-    <name>LobbyRoomRequest</name>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="17"/>
-        <source>Room settings</source>
-        <translation>房间设置</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="32"/>
-        <source>Room name</source>
-        <translation>房间名称</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="42"/>
-        <source>Maximum players</source>
-        <translation>最大玩家数</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="97"/>
-        <source>Password (optional)</source>
-        <translation>密码(可选)</translation>
-    </message>
-</context>
-<context>
     <name>MainWindow</name>
     <message>
         <location filename="../mainwindow_moc.ui" line="20"/>
@@ -1180,25 +1040,20 @@ Heroes® of Might and Magic® III HD is currently not supported!</source>
         <translation>设置</translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="207"/>
+        <location filename="../mainwindow_moc.ui" line="157"/>
         <source>Help</source>
         <translation>帮助</translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="276"/>
+        <location filename="../mainwindow_moc.ui" line="226"/>
         <source>Map Editor</source>
         <translation>地图编辑器</translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="329"/>
+        <location filename="../mainwindow_moc.ui" line="279"/>
         <source>Start game</source>
         <translation>开始游戏</translation>
     </message>
-    <message>
-        <location filename="../mainwindow_moc.ui" line="157"/>
-        <source>Lobby</source>
-        <translation>大厅</translation>
-    </message>
     <message>
         <location filename="../mainwindow_moc.ui" line="57"/>
         <source>Mods</source>

+ 8 - 153
launcher/translation/czech.ts

@@ -681,59 +681,31 @@ Exkluzivní celá obrazovka - hra zakryje vaši celou obrazovku a použije vybra
         <translation>Zobrazit intro</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="450"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="448"/>
         <source>Active</source>
         <translation>Aktivní</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="455"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="453"/>
         <source>Disabled</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="456"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="454"/>
         <source>Enable</source>
         <translation type="unfinished">Povolit</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="461"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="459"/>
         <source>Not Installed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="462"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="460"/>
         <source>Install</source>
         <translation type="unfinished">Instalovat</translation>
     </message>
 </context>
-<context>
-    <name>Chat</name>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="40"/>
-        <source>Users in lobby</source>
-        <translation>Uživatelé v předsíni</translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="50"/>
-        <source>Global chat</source>
-        <translation>Obecná konverzace</translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="104"/>
-        <source>type you message</source>
-        <translation>zadejte vaši zprávu</translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="111"/>
-        <source>send</source>
-        <translation>poslat</translation>
-    </message>
-</context>
 <context>
     <name>FirstLaunchView</name>
     <message>
@@ -1047,118 +1019,6 @@ Heroes® of Might and Magic® III HD není v současnosti podporovaný!</transla
         <translation>Automaticky (%1)</translation>
     </message>
 </context>
-<context>
-    <name>Lobby</name>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="42"/>
-        <location filename="../lobby/lobby_moc.cpp" line="403"/>
-        <source>Connect</source>
-        <translation>Připojit</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="29"/>
-        <source>Username</source>
-        <translation>Uživatelské jméno</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="59"/>
-        <source>Server</source>
-        <translation>Server</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="173"/>
-        <source>Session</source>
-        <translation>Relace</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="178"/>
-        <source>Players</source>
-        <translation>Hráči</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="268"/>
-        <source>Resolve</source>
-        <translation>Vyřešit</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="280"/>
-        <source>New game</source>
-        <translation>Nová hra</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="287"/>
-        <source>Load game</source>
-        <translation>Načíst hru</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="128"/>
-        <source>New room</source>
-        <translation>Nová místnost</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="138"/>
-        <source>Join room</source>
-        <translation>Připojit se do místnosti</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="261"/>
-        <source>Ready</source>
-        <translation>Připraven</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="244"/>
-        <source>Mods mismatch</source>
-        <translation>Nesoulad modifikací</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="237"/>
-        <source>Leave</source>
-        <translation>Odejít</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="210"/>
-        <source>Kick player</source>
-        <translation>Vyhodit hráče</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="230"/>
-        <source>Players in the room</source>
-        <translation>Hráči v místnosti</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.cpp" line="370"/>
-        <source>Disconnect</source>
-        <translation>Odpojit</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.cpp" line="463"/>
-        <source>No issues detected</source>
-        <translation>Bez problémů</translation>
-    </message>
-</context>
-<context>
-    <name>LobbyRoomRequest</name>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="17"/>
-        <source>Room settings</source>
-        <translation>Nastavení místnosti</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="32"/>
-        <source>Room name</source>
-        <translation>Název místnosti</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="42"/>
-        <source>Maximum players</source>
-        <translation>Maximum hráčů</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="97"/>
-        <source>Password (optional)</source>
-        <translation>Heslo (volitelné)</translation>
-    </message>
-</context>
 <context>
     <name>MainWindow</name>
     <message>
@@ -1172,25 +1032,20 @@ Heroes® of Might and Magic® III HD není v současnosti podporovaný!</transla
         <translation>Nastavení</translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="207"/>
+        <location filename="../mainwindow_moc.ui" line="157"/>
         <source>Help</source>
         <translation>Nápověda</translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="276"/>
+        <location filename="../mainwindow_moc.ui" line="226"/>
         <source>Map Editor</source>
         <translation>Editor map</translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="329"/>
+        <location filename="../mainwindow_moc.ui" line="279"/>
         <source>Start game</source>
         <translation>Spustit hru</translation>
     </message>
-    <message>
-        <location filename="../mainwindow_moc.ui" line="157"/>
-        <source>Lobby</source>
-        <translation>Předsíň</translation>
-    </message>
     <message>
         <location filename="../mainwindow_moc.ui" line="57"/>
         <source>Mods</source>

+ 8 - 153
launcher/translation/english.ts

@@ -668,59 +668,31 @@ Fullscreen Exclusive Mode - game will cover entirety of your screen and will use
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="450"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="448"/>
         <source>Active</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="455"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="453"/>
         <source>Disabled</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="456"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="454"/>
         <source>Enable</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="461"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="459"/>
         <source>Not Installed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="462"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="460"/>
         <source>Install</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
-<context>
-    <name>Chat</name>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="40"/>
-        <source>Users in lobby</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="50"/>
-        <source>Global chat</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="104"/>
-        <source>type you message</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="111"/>
-        <source>send</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
 <context>
     <name>FirstLaunchView</name>
     <message>
@@ -1028,118 +1000,6 @@ Heroes® of Might and Magic® III HD is currently not supported!</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
-<context>
-    <name>Lobby</name>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="42"/>
-        <location filename="../lobby/lobby_moc.cpp" line="403"/>
-        <source>Connect</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="29"/>
-        <source>Username</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="59"/>
-        <source>Server</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="173"/>
-        <source>Session</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="178"/>
-        <source>Players</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="268"/>
-        <source>Resolve</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="280"/>
-        <source>New game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="287"/>
-        <source>Load game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="128"/>
-        <source>New room</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="138"/>
-        <source>Join room</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="261"/>
-        <source>Ready</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="244"/>
-        <source>Mods mismatch</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="237"/>
-        <source>Leave</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="210"/>
-        <source>Kick player</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="230"/>
-        <source>Players in the room</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.cpp" line="370"/>
-        <source>Disconnect</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.cpp" line="463"/>
-        <source>No issues detected</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>LobbyRoomRequest</name>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="17"/>
-        <source>Room settings</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="32"/>
-        <source>Room name</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="42"/>
-        <source>Maximum players</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="97"/>
-        <source>Password (optional)</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
 <context>
     <name>MainWindow</name>
     <message>
@@ -1153,25 +1013,20 @@ Heroes® of Might and Magic® III HD is currently not supported!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="207"/>
+        <location filename="../mainwindow_moc.ui" line="157"/>
         <source>Help</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="276"/>
+        <location filename="../mainwindow_moc.ui" line="226"/>
         <source>Map Editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="329"/>
+        <location filename="../mainwindow_moc.ui" line="279"/>
         <source>Start game</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <location filename="../mainwindow_moc.ui" line="157"/>
-        <source>Lobby</source>
-        <translation type="unfinished"></translation>
-    </message>
     <message>
         <location filename="../mainwindow_moc.ui" line="57"/>
         <source>Mods</source>

+ 7 - 152
launcher/translation/french.ts

@@ -679,59 +679,31 @@ Mode exclusif plein écran - le jeu couvrira l&quot;intégralité de votre écra
         <translation>Montrer l&apos;intro</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="450"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="448"/>
         <source>Active</source>
         <translation>Actif</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="455"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="453"/>
         <source>Disabled</source>
         <translation>Désactivé</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="456"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="454"/>
         <source>Enable</source>
         <translation>Activé</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="461"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="459"/>
         <source>Not Installed</source>
         <translation>Pas Installé</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="462"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="460"/>
         <source>Install</source>
         <translation>Installer</translation>
     </message>
 </context>
-<context>
-    <name>Chat</name>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="40"/>
-        <source>Users in lobby</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="50"/>
-        <source>Global chat</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="104"/>
-        <source>type you message</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="111"/>
-        <source>send</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
 <context>
     <name>FirstLaunchView</name>
     <message>
@@ -1045,118 +1017,6 @@ Heroes® of Might and Magic® III HD n&quot;est actuellement pas pris en charge
         <translation>Auto (%1)</translation>
     </message>
 </context>
-<context>
-    <name>Lobby</name>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="29"/>
-        <source>Username</source>
-        <translation>Nom d&apos;utilisateur</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="42"/>
-        <location filename="../lobby/lobby_moc.cpp" line="403"/>
-        <source>Connect</source>
-        <translation>Connecter</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="59"/>
-        <source>Server</source>
-        <translation>Serveur</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="128"/>
-        <source>New room</source>
-        <translation>Nouveau salon</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="138"/>
-        <source>Join room</source>
-        <translation>Rejoindre le salon</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="173"/>
-        <source>Session</source>
-        <translation>Session</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="178"/>
-        <source>Players</source>
-        <translation>Joueurs</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="210"/>
-        <source>Kick player</source>
-        <translation>Jeter le joueur</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="230"/>
-        <source>Players in the room</source>
-        <translation>Joueurs dans le salon</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="237"/>
-        <source>Leave</source>
-        <translation>Quitter</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="244"/>
-        <source>Mods mismatch</source>
-        <translation>Incohérence de mods</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="261"/>
-        <source>Ready</source>
-        <translation>Prêt</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="268"/>
-        <source>Resolve</source>
-        <translation>Résoudre</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="280"/>
-        <source>New game</source>
-        <translation>Nouvelle partie</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="287"/>
-        <source>Load game</source>
-        <translation>Charger une partie</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.cpp" line="370"/>
-        <source>Disconnect</source>
-        <translation>Déconnecter</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.cpp" line="463"/>
-        <source>No issues detected</source>
-        <translation>Pas de problème détecté</translation>
-    </message>
-</context>
-<context>
-    <name>LobbyRoomRequest</name>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="17"/>
-        <source>Room settings</source>
-        <translation>Paramètres de salon</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="32"/>
-        <source>Room name</source>
-        <translation>Nom de salon</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="42"/>
-        <source>Maximum players</source>
-        <translation>Maximum de joueurs</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="97"/>
-        <source>Password (optional)</source>
-        <translation>Mot de passe (optionnel)</translation>
-    </message>
-</context>
 <context>
     <name>MainWindow</name>
     <message>
@@ -1176,21 +1036,16 @@ Heroes® of Might and Magic® III HD n&quot;est actuellement pas pris en charge
     </message>
     <message>
         <location filename="../mainwindow_moc.ui" line="157"/>
-        <source>Lobby</source>
-        <translation>Salle d&apos;attente</translation>
-    </message>
-    <message>
-        <location filename="../mainwindow_moc.ui" line="207"/>
         <source>Help</source>
         <translation>Aide</translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="276"/>
+        <location filename="../mainwindow_moc.ui" line="226"/>
         <source>Map Editor</source>
         <translation>Éditeur de carte</translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="329"/>
+        <location filename="../mainwindow_moc.ui" line="279"/>
         <source>Start game</source>
         <translation>Démarrer une partie</translation>
     </message>

+ 7 - 152
launcher/translation/german.ts

@@ -681,59 +681,31 @@ Exklusiver Vollbildmodus - das Spiel bedeckt den gesamten Bildschirm und verwend
         <translation>Intro anzeigen</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="450"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="448"/>
         <source>Active</source>
         <translation>Aktiv</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="455"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="453"/>
         <source>Disabled</source>
         <translation>Deaktiviert</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="456"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="454"/>
         <source>Enable</source>
         <translation>Aktivieren</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="461"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="459"/>
         <source>Not Installed</source>
         <translation>Nicht installiert</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="462"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="460"/>
         <source>Install</source>
         <translation>Installieren</translation>
     </message>
 </context>
-<context>
-    <name>Chat</name>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formular</translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="40"/>
-        <source>Users in lobby</source>
-        <translation>Benutzer in der Lobby</translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="50"/>
-        <source>Global chat</source>
-        <translation>Globaler Chat</translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="104"/>
-        <source>type you message</source>
-        <translation>Nachricht eingeben</translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="111"/>
-        <source>send</source>
-        <translation>senden</translation>
-    </message>
-</context>
 <context>
     <name>FirstLaunchView</name>
     <message>
@@ -1047,118 +1019,6 @@ Heroes III: HD Edition wird derzeit nicht unterstützt!</translation>
         <translation>Auto (%1)</translation>
     </message>
 </context>
-<context>
-    <name>Lobby</name>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="42"/>
-        <location filename="../lobby/lobby_moc.cpp" line="403"/>
-        <source>Connect</source>
-        <translation>Verbinden</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="29"/>
-        <source>Username</source>
-        <translation>Benutzername</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="59"/>
-        <source>Server</source>
-        <translation>Server</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="173"/>
-        <source>Session</source>
-        <translation>Sitzung</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="178"/>
-        <source>Players</source>
-        <translation>Spieler</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="268"/>
-        <source>Resolve</source>
-        <translation>Auflösen</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="280"/>
-        <source>New game</source>
-        <translation>Neues Spiel</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="287"/>
-        <source>Load game</source>
-        <translation>Spiel laden</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="128"/>
-        <source>New room</source>
-        <translation>Neuer Raum</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="138"/>
-        <source>Join room</source>
-        <translation>Raum beitreten</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="261"/>
-        <source>Ready</source>
-        <translation>Bereit</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="244"/>
-        <source>Mods mismatch</source>
-        <translation>Mods stimmen nicht überein</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="237"/>
-        <source>Leave</source>
-        <translation>Verlassen</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="210"/>
-        <source>Kick player</source>
-        <translation>Spieler kicken</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="230"/>
-        <source>Players in the room</source>
-        <translation>Spieler im Raum</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.cpp" line="370"/>
-        <source>Disconnect</source>
-        <translation>Verbindung trennen</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.cpp" line="463"/>
-        <source>No issues detected</source>
-        <translation>Keine Probleme festgestellt</translation>
-    </message>
-</context>
-<context>
-    <name>LobbyRoomRequest</name>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="17"/>
-        <source>Room settings</source>
-        <translation>Raumeinstellungen</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="32"/>
-        <source>Room name</source>
-        <translation>Raumname</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="42"/>
-        <source>Maximum players</source>
-        <translation>Maximale Spieler</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="97"/>
-        <source>Password (optional)</source>
-        <translation>Passwort (optional)</translation>
-    </message>
-</context>
 <context>
     <name>MainWindow</name>
     <message>
@@ -1178,21 +1038,16 @@ Heroes III: HD Edition wird derzeit nicht unterstützt!</translation>
     </message>
     <message>
         <location filename="../mainwindow_moc.ui" line="157"/>
-        <source>Lobby</source>
-        <translation>Lobby</translation>
-    </message>
-    <message>
-        <location filename="../mainwindow_moc.ui" line="207"/>
         <source>Help</source>
         <translation>Hilfe</translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="276"/>
+        <location filename="../mainwindow_moc.ui" line="226"/>
         <source>Map Editor</source>
         <translation>Karteneditor</translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="329"/>
+        <location filename="../mainwindow_moc.ui" line="279"/>
         <source>Start game</source>
         <translation>Spiel starten</translation>
     </message>

+ 8 - 153
launcher/translation/polish.ts

@@ -681,59 +681,31 @@ Pełny ekran klasyczny - gra przysłoni cały ekran uruchamiając się w wybrane
         <translation>Pokaż intro</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="450"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="448"/>
         <source>Active</source>
         <translation>Aktywny</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="455"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="453"/>
         <source>Disabled</source>
         <translation>Wyłączone</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="456"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="454"/>
         <source>Enable</source>
         <translation>Włącz</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="461"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="459"/>
         <source>Not Installed</source>
         <translation>Nie zainstalowano</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="462"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="460"/>
         <source>Install</source>
         <translation>Zainstaluj</translation>
     </message>
 </context>
-<context>
-    <name>Chat</name>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="14"/>
-        <source>Form</source>
-        <translation>Okno</translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="40"/>
-        <source>Users in lobby</source>
-        <translation>Gracze w lobby</translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="50"/>
-        <source>Global chat</source>
-        <translation>Globalny czat</translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="104"/>
-        <source>type you message</source>
-        <translation>napisz wiadomość</translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="111"/>
-        <source>send</source>
-        <translation>wyślij</translation>
-    </message>
-</context>
 <context>
     <name>FirstLaunchView</name>
     <message>
@@ -1047,118 +1019,6 @@ Heroes III: HD Edition nie jest obecnie wspierane!</translation>
         <translation></translation>
     </message>
 </context>
-<context>
-    <name>Lobby</name>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="42"/>
-        <location filename="../lobby/lobby_moc.cpp" line="403"/>
-        <source>Connect</source>
-        <translation>Połącz</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="29"/>
-        <source>Username</source>
-        <translation>Nazwa użytkownika</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="59"/>
-        <source>Server</source>
-        <translation>Serwer</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="173"/>
-        <source>Session</source>
-        <translation>Sesja</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="178"/>
-        <source>Players</source>
-        <translation>Gracze</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="268"/>
-        <source>Resolve</source>
-        <translation>Rozwiąż</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="280"/>
-        <source>New game</source>
-        <translation>Nowa gra</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="287"/>
-        <source>Load game</source>
-        <translation>Wczytaj grę</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="128"/>
-        <source>New room</source>
-        <translation>Nowy pokój</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="138"/>
-        <source>Join room</source>
-        <translation>Dołącz</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="261"/>
-        <source>Ready</source>
-        <translation>Zgłoś gotowość</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="244"/>
-        <source>Mods mismatch</source>
-        <translation>Niezgodność modów</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="237"/>
-        <source>Leave</source>
-        <translation>Wyjdź</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="210"/>
-        <source>Kick player</source>
-        <translation>Wyrzuć gracza</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="230"/>
-        <source>Players in the room</source>
-        <translation>Gracze w pokoju</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.cpp" line="370"/>
-        <source>Disconnect</source>
-        <translation>Rozłącz</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.cpp" line="463"/>
-        <source>No issues detected</source>
-        <translation>Nie znaleziono problemów</translation>
-    </message>
-</context>
-<context>
-    <name>LobbyRoomRequest</name>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="17"/>
-        <source>Room settings</source>
-        <translation>Ustawienia pokoju</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="32"/>
-        <source>Room name</source>
-        <translation>Nazwa pokoju</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="42"/>
-        <source>Maximum players</source>
-        <translation>Maks. ilość graczy</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="97"/>
-        <source>Password (optional)</source>
-        <translation>Hasło (opcjonalnie)</translation>
-    </message>
-</context>
 <context>
     <name>MainWindow</name>
     <message>
@@ -1172,25 +1032,20 @@ Heroes III: HD Edition nie jest obecnie wspierane!</translation>
         <translation>Ustawienia</translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="207"/>
+        <location filename="../mainwindow_moc.ui" line="157"/>
         <source>Help</source>
         <translation>Pomoc</translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="276"/>
+        <location filename="../mainwindow_moc.ui" line="226"/>
         <source>Map Editor</source>
         <translation>Edytor map</translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="329"/>
+        <location filename="../mainwindow_moc.ui" line="279"/>
         <source>Start game</source>
         <translation>Uruchom grę</translation>
     </message>
-    <message>
-        <location filename="../mainwindow_moc.ui" line="157"/>
-        <source>Lobby</source>
-        <translation>Lobby</translation>
-    </message>
     <message>
         <location filename="../mainwindow_moc.ui" line="57"/>
         <source>Mods</source>

+ 8 - 153
launcher/translation/russian.ts

@@ -668,59 +668,31 @@ Fullscreen Exclusive Mode - game will cover entirety of your screen and will use
         <translation>Вступление</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="450"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="448"/>
         <source>Active</source>
         <translation>Активен</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="455"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="453"/>
         <source>Disabled</source>
         <translation>Отключен</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="456"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="454"/>
         <source>Enable</source>
         <translation>Включить</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="461"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="459"/>
         <source>Not Installed</source>
         <translation>Не установлен</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="462"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="460"/>
         <source>Install</source>
         <translation>Установить</translation>
     </message>
 </context>
-<context>
-    <name>Chat</name>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="40"/>
-        <source>Users in lobby</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="50"/>
-        <source>Global chat</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="104"/>
-        <source>type you message</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="111"/>
-        <source>send</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
 <context>
     <name>FirstLaunchView</name>
     <message>
@@ -1034,118 +1006,6 @@ Heroes® of Might and Magic® III HD is currently not supported!</source>
         <translation>Авто (%1)</translation>
     </message>
 </context>
-<context>
-    <name>Lobby</name>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="42"/>
-        <location filename="../lobby/lobby_moc.cpp" line="403"/>
-        <source>Connect</source>
-        <translation>Подключиться</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="29"/>
-        <source>Username</source>
-        <translation>Имя пользователя</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="59"/>
-        <source>Server</source>
-        <translation>Сервер</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="173"/>
-        <source>Session</source>
-        <translation>Сессия</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="178"/>
-        <source>Players</source>
-        <translation>Игроки</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="268"/>
-        <source>Resolve</source>
-        <translation>Скорректировать</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="280"/>
-        <source>New game</source>
-        <translation>Новая игра</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="287"/>
-        <source>Load game</source>
-        <translation>Загрузить игру</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="128"/>
-        <source>New room</source>
-        <translation>Создать комнату</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="138"/>
-        <source>Join room</source>
-        <translation>Присоединиться к комнате</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="261"/>
-        <source>Ready</source>
-        <translation>Готово</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="244"/>
-        <source>Mods mismatch</source>
-        <translation>Моды не совпадают</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="237"/>
-        <source>Leave</source>
-        <translation>Выйти</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="210"/>
-        <source>Kick player</source>
-        <translation>Выгнать игрока</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="230"/>
-        <source>Players in the room</source>
-        <translation>Игроки в комнате</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.cpp" line="370"/>
-        <source>Disconnect</source>
-        <translation>Отключиться</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.cpp" line="463"/>
-        <source>No issues detected</source>
-        <translation>Проблем не обнаружено</translation>
-    </message>
-</context>
-<context>
-    <name>LobbyRoomRequest</name>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="17"/>
-        <source>Room settings</source>
-        <translation>Настройки комнаты</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="32"/>
-        <source>Room name</source>
-        <translation>Название</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="42"/>
-        <source>Maximum players</source>
-        <translation>Максимум игроков</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="97"/>
-        <source>Password (optional)</source>
-        <translation>Пароль (не обязательно)</translation>
-    </message>
-</context>
 <context>
     <name>MainWindow</name>
     <message>
@@ -1159,25 +1019,20 @@ Heroes® of Might and Magic® III HD is currently not supported!</source>
         <translation>Параметры</translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="207"/>
+        <location filename="../mainwindow_moc.ui" line="157"/>
         <source>Help</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="276"/>
+        <location filename="../mainwindow_moc.ui" line="226"/>
         <source>Map Editor</source>
         <translation>Редактор карт</translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="329"/>
+        <location filename="../mainwindow_moc.ui" line="279"/>
         <source>Start game</source>
         <translation>Играть</translation>
     </message>
-    <message>
-        <location filename="../mainwindow_moc.ui" line="157"/>
-        <source>Lobby</source>
-        <translation>Лобби</translation>
-    </message>
     <message>
         <location filename="../mainwindow_moc.ui" line="57"/>
         <source>Mods</source>

+ 8 - 153
launcher/translation/spanish.ts

@@ -668,59 +668,31 @@ Fullscreen Exclusive Mode - game will cover entirety of your screen and will use
         <translation>Idioma de los datos de Heroes III.</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="450"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="448"/>
         <source>Active</source>
         <translation>Activado</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="455"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="453"/>
         <source>Disabled</source>
         <translation>Desactivado</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="456"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="454"/>
         <source>Enable</source>
         <translation>Activar</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="461"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="459"/>
         <source>Not Installed</source>
         <translation>No Instalado</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="462"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="460"/>
         <source>Install</source>
         <translation>Instalar</translation>
     </message>
 </context>
-<context>
-    <name>Chat</name>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="40"/>
-        <source>Users in lobby</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="50"/>
-        <source>Global chat</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="104"/>
-        <source>type you message</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="111"/>
-        <source>send</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
 <context>
     <name>FirstLaunchView</name>
     <message>
@@ -1034,118 +1006,6 @@ Ten en cuenta que para usar VCMI debes ser dueño de los archivos de datos origi
         <translation>Automático (%1)</translation>
     </message>
 </context>
-<context>
-    <name>Lobby</name>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="42"/>
-        <location filename="../lobby/lobby_moc.cpp" line="403"/>
-        <source>Connect</source>
-        <translation>Conectar</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="29"/>
-        <source>Username</source>
-        <translation>Nombre de usuario</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="59"/>
-        <source>Server</source>
-        <translation>Servidor</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="173"/>
-        <source>Session</source>
-        <translation>Sesión</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="178"/>
-        <source>Players</source>
-        <translation>Jugadores</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="268"/>
-        <source>Resolve</source>
-        <translation>Resolver</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="280"/>
-        <source>New game</source>
-        <translation>Nueva partida</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="287"/>
-        <source>Load game</source>
-        <translation>Cargar partida</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="128"/>
-        <source>New room</source>
-        <translation>Nueva sala</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="138"/>
-        <source>Join room</source>
-        <translation>Unirse a la sala</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="261"/>
-        <source>Ready</source>
-        <translation>Listo</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="244"/>
-        <source>Mods mismatch</source>
-        <translation>No coinciden los mods</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="237"/>
-        <source>Leave</source>
-        <translation>Salir</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="210"/>
-        <source>Kick player</source>
-        <translation>Expulsar jugador</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="230"/>
-        <source>Players in the room</source>
-        <translation>Jugadores en la sala</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.cpp" line="370"/>
-        <source>Disconnect</source>
-        <translation>Desconectar</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.cpp" line="463"/>
-        <source>No issues detected</source>
-        <translation>No se han detectado problemas</translation>
-    </message>
-</context>
-<context>
-    <name>LobbyRoomRequest</name>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="17"/>
-        <source>Room settings</source>
-        <translation>Configuración de la sala</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="32"/>
-        <source>Room name</source>
-        <translation>Nombre de la sala</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="42"/>
-        <source>Maximum players</source>
-        <translation>Jugadores máximos</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="97"/>
-        <source>Password (optional)</source>
-        <translation>Contraseña (opcional)</translation>
-    </message>
-</context>
 <context>
     <name>MainWindow</name>
     <message>
@@ -1159,25 +1019,20 @@ Ten en cuenta que para usar VCMI debes ser dueño de los archivos de datos origi
         <translation>Configuración</translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="207"/>
+        <location filename="../mainwindow_moc.ui" line="157"/>
         <source>Help</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="276"/>
+        <location filename="../mainwindow_moc.ui" line="226"/>
         <source>Map Editor</source>
         <translation>Editor de Mapas</translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="329"/>
+        <location filename="../mainwindow_moc.ui" line="279"/>
         <source>Start game</source>
         <translation>Iniciar juego</translation>
     </message>
-    <message>
-        <location filename="../mainwindow_moc.ui" line="157"/>
-        <source>Lobby</source>
-        <translation>Sala de Espera</translation>
-    </message>
     <message>
         <location filename="../mainwindow_moc.ui" line="57"/>
         <source>Mods</source>

+ 7 - 152
launcher/translation/ukrainian.ts

@@ -681,59 +681,31 @@ Fullscreen Exclusive Mode - game will cover entirety of your screen and will use
         <translation>Вступні відео</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="450"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="448"/>
         <source>Active</source>
         <translation>Активні</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="455"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="453"/>
         <source>Disabled</source>
         <translation>Деактивований</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="456"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="454"/>
         <source>Enable</source>
         <translation>Активувати</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="461"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="459"/>
         <source>Not Installed</source>
         <translation>Не встановлено</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="462"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="460"/>
         <source>Install</source>
         <translation>Встановити</translation>
     </message>
 </context>
-<context>
-    <name>Chat</name>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="40"/>
-        <source>Users in lobby</source>
-        <translation>Гравців у лобі</translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="50"/>
-        <source>Global chat</source>
-        <translation>Загальний чат</translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="104"/>
-        <source>type you message</source>
-        <translation>введіть повідомлення</translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="111"/>
-        <source>send</source>
-        <translation>Відправити</translation>
-    </message>
-</context>
 <context>
     <name>FirstLaunchView</name>
     <message>
@@ -1047,118 +1019,6 @@ Heroes® of Might and Magic® III HD наразі не підтримуєтьс
         <translation>Авто (%1)</translation>
     </message>
 </context>
-<context>
-    <name>Lobby</name>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="42"/>
-        <location filename="../lobby/lobby_moc.cpp" line="403"/>
-        <source>Connect</source>
-        <translation>Підключитися</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="29"/>
-        <source>Username</source>
-        <translation>Ім&apos;я користувача</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="59"/>
-        <source>Server</source>
-        <translation>Сервер</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="173"/>
-        <source>Session</source>
-        <translation>Сесія</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="178"/>
-        <source>Players</source>
-        <translation>Гравці</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="268"/>
-        <source>Resolve</source>
-        <translation>Розв&apos;язати</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="280"/>
-        <source>New game</source>
-        <translation>Нова гра</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="287"/>
-        <source>Load game</source>
-        <translation>Завантажити гру</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="128"/>
-        <source>New room</source>
-        <translation>Створити кімнату</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="138"/>
-        <source>Join room</source>
-        <translation>Приєднатися до кімнати</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="261"/>
-        <source>Ready</source>
-        <translation>Готовність</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="244"/>
-        <source>Mods mismatch</source>
-        <translation>Модифікації, що не збігаються</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="237"/>
-        <source>Leave</source>
-        <translation>Вийти з кімнати</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="210"/>
-        <source>Kick player</source>
-        <translation>Виключити гравця</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="230"/>
-        <source>Players in the room</source>
-        <translation>Гравці у кімнаті</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.cpp" line="370"/>
-        <source>Disconnect</source>
-        <translation>Від&apos;єднатися</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.cpp" line="463"/>
-        <source>No issues detected</source>
-        <translation>Проблем не виявлено</translation>
-    </message>
-</context>
-<context>
-    <name>LobbyRoomRequest</name>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="17"/>
-        <source>Room settings</source>
-        <translation>Налаштування кімнати</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="32"/>
-        <source>Room name</source>
-        <translation>Назва кімнати</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="42"/>
-        <source>Maximum players</source>
-        <translation>Максимум гравців</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="97"/>
-        <source>Password (optional)</source>
-        <translation>Пароль (за бажанням)</translation>
-    </message>
-</context>
 <context>
     <name>MainWindow</name>
     <message>
@@ -1178,21 +1038,16 @@ Heroes® of Might and Magic® III HD наразі не підтримуєтьс
     </message>
     <message>
         <location filename="../mainwindow_moc.ui" line="157"/>
-        <source>Lobby</source>
-        <translation>Лобі</translation>
-    </message>
-    <message>
-        <location filename="../mainwindow_moc.ui" line="207"/>
         <source>Help</source>
         <translation>Допомога</translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="276"/>
+        <location filename="../mainwindow_moc.ui" line="226"/>
         <source>Map Editor</source>
         <translation>Редактор мап</translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="329"/>
+        <location filename="../mainwindow_moc.ui" line="279"/>
         <source>Start game</source>
         <translation>Грати</translation>
     </message>

+ 8 - 153
launcher/translation/vietnamese.ts

@@ -674,59 +674,31 @@ Toàn màn hình riêng biệt - Trò chơi chạy toàn màn hình và dùng đ
         <translation>Hiện thị giới thiệu</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="450"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="448"/>
         <source>Active</source>
         <translation>Bật</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="455"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="453"/>
         <source>Disabled</source>
         <translation>Tắt</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="456"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="454"/>
         <source>Enable</source>
         <translation>Bật</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="461"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="459"/>
         <source>Not Installed</source>
         <translation>Chưa cài đặt</translation>
     </message>
     <message>
-        <location filename="../settingsView/csettingsview_moc.cpp" line="462"/>
+        <location filename="../settingsView/csettingsview_moc.cpp" line="460"/>
         <source>Install</source>
         <translation>Cài đặt</translation>
     </message>
 </context>
-<context>
-    <name>Chat</name>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="40"/>
-        <source>Users in lobby</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="50"/>
-        <source>Global chat</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="104"/>
-        <source>type you message</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../lobby/chat_moc.ui" line="111"/>
-        <source>send</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
 <context>
     <name>FirstLaunchView</name>
     <message>
@@ -1040,118 +1012,6 @@ Hiện tại chưa hỗ trợ Heroes® of Might and Magic® III HD!</translation
         <translation>Tự động (%1)</translation>
     </message>
 </context>
-<context>
-    <name>Lobby</name>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="42"/>
-        <location filename="../lobby/lobby_moc.cpp" line="403"/>
-        <source>Connect</source>
-        <translation>Kết nối</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="29"/>
-        <source>Username</source>
-        <translation>Tên đăng nhập</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="59"/>
-        <source>Server</source>
-        <translation>Máy chủ</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="173"/>
-        <source>Session</source>
-        <translation>Phiên</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="178"/>
-        <source>Players</source>
-        <translation>Người chơi</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="268"/>
-        <source>Resolve</source>
-        <translation>Phân tích</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="280"/>
-        <source>New game</source>
-        <translation>Tạo mới</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="287"/>
-        <source>Load game</source>
-        <translation>Tải lại</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="128"/>
-        <source>New room</source>
-        <translation>Tạo phòng</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="138"/>
-        <source>Join room</source>
-        <translation>Vào phòng</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="261"/>
-        <source>Ready</source>
-        <translation>Sẵn sàng</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="244"/>
-        <source>Mods mismatch</source>
-        <translation>Bản sửa đổi chưa giống</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="237"/>
-        <source>Leave</source>
-        <translation>Rời khỏi</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="210"/>
-        <source>Kick player</source>
-        <translation>Mời ra</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.ui" line="230"/>
-        <source>Players in the room</source>
-        <translation>Người chơi trong phòng</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.cpp" line="370"/>
-        <source>Disconnect</source>
-        <translation>Thoát</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobby_moc.cpp" line="463"/>
-        <source>No issues detected</source>
-        <translation>Không có vấn đề</translation>
-    </message>
-</context>
-<context>
-    <name>LobbyRoomRequest</name>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="17"/>
-        <source>Room settings</source>
-        <translation>Cài đặt phòng</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="32"/>
-        <source>Room name</source>
-        <translation>Tên phòng</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="42"/>
-        <source>Maximum players</source>
-        <translation>Số người chơi tối đa</translation>
-    </message>
-    <message>
-        <location filename="../lobby/lobbyroomrequest_moc.ui" line="97"/>
-        <source>Password (optional)</source>
-        <translation>Mật khẩu (tùy chọn)</translation>
-    </message>
-</context>
 <context>
     <name>MainWindow</name>
     <message>
@@ -1165,25 +1025,20 @@ Hiện tại chưa hỗ trợ Heroes® of Might and Magic® III HD!</translation
         <translation>Cài đặt</translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="207"/>
+        <location filename="../mainwindow_moc.ui" line="157"/>
         <source>Help</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="276"/>
+        <location filename="../mainwindow_moc.ui" line="226"/>
         <source>Map Editor</source>
         <translation>Tạo bản đồ</translation>
     </message>
     <message>
-        <location filename="../mainwindow_moc.ui" line="329"/>
+        <location filename="../mainwindow_moc.ui" line="279"/>
         <source>Start game</source>
         <translation>Chơi ngay</translation>
     </message>
-    <message>
-        <location filename="../mainwindow_moc.ui" line="157"/>
-        <source>Lobby</source>
-        <translation>Sảnh</translation>
-    </message>
     <message>
         <location filename="../mainwindow_moc.ui" line="57"/>
         <source>Mods</source>