Commit 4125d690 authored by marco's avatar marco
Browse files

Fix merge & relative path for portable build

parents be7efa98 74533859
...@@ -7,6 +7,7 @@ RUN apt-get update && apt-get install -y\ ...@@ -7,6 +7,7 @@ RUN apt-get update && apt-get install -y\
cmake\ cmake\
git\ git\
libprotobuf-dev\ libprotobuf-dev\
libqt5sql5-mysql\
libqt5svg5-dev\ libqt5svg5-dev\
libqt5webkit5-dev\ libqt5webkit5-dev\
libsqlite3-dev\ libsqlite3-dev\
...@@ -37,4 +38,4 @@ WORKDIR /home/servatrice ...@@ -37,4 +38,4 @@ WORKDIR /home/servatrice
EXPOSE 4747 EXPOSE 4747
CMD servatrice ENTRYPOINT [ "servatrice" ]
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include "pb/event_server_shutdown.pb.h" #include "pb/event_server_shutdown.pb.h"
#include "pb/event_connection_closed.pb.h" #include "pb/event_connection_closed.pb.h"
#include "pb/event_user_message.pb.h" #include "pb/event_user_message.pb.h"
#include "pb/event_notify_user.pb.h"
#include "pb/event_list_rooms.pb.h" #include "pb/event_list_rooms.pb.h"
#include "pb/event_add_to_list.pb.h" #include "pb/event_add_to_list.pb.h"
#include "pb/event_remove_from_list.pb.h" #include "pb/event_remove_from_list.pb.h"
...@@ -40,6 +41,7 @@ AbstractClient::AbstractClient(QObject *parent) ...@@ -40,6 +41,7 @@ AbstractClient::AbstractClient(QObject *parent)
qRegisterMetaType<Event_ListRooms>("Event_ListRooms"); qRegisterMetaType<Event_ListRooms>("Event_ListRooms");
qRegisterMetaType<Event_GameJoined>("Event_GameJoined"); qRegisterMetaType<Event_GameJoined>("Event_GameJoined");
qRegisterMetaType<Event_UserMessage>("Event_UserMessage"); qRegisterMetaType<Event_UserMessage>("Event_UserMessage");
qRegisterMetaType<Event_NotifyUser>("Event_NotifyUser");
qRegisterMetaType<ServerInfo_User>("ServerInfo_User"); qRegisterMetaType<ServerInfo_User>("ServerInfo_User");
qRegisterMetaType<QList<ServerInfo_User> >("QList<ServerInfo_User>"); qRegisterMetaType<QList<ServerInfo_User> >("QList<ServerInfo_User>");
qRegisterMetaType<Event_ReplayAdded>("Event_ReplayAdded"); qRegisterMetaType<Event_ReplayAdded>("Event_ReplayAdded");
...@@ -75,6 +77,7 @@ void AbstractClient::processProtocolItem(const ServerMessage &item) ...@@ -75,6 +77,7 @@ void AbstractClient::processProtocolItem(const ServerMessage &item)
case SessionEvent::SERVER_SHUTDOWN: emit serverShutdownEventReceived(event.GetExtension(Event_ServerShutdown::ext)); break; case SessionEvent::SERVER_SHUTDOWN: emit serverShutdownEventReceived(event.GetExtension(Event_ServerShutdown::ext)); break;
case SessionEvent::CONNECTION_CLOSED: emit connectionClosedEventReceived(event.GetExtension(Event_ConnectionClosed::ext)); break; case SessionEvent::CONNECTION_CLOSED: emit connectionClosedEventReceived(event.GetExtension(Event_ConnectionClosed::ext)); break;
case SessionEvent::USER_MESSAGE: emit userMessageEventReceived(event.GetExtension(Event_UserMessage::ext)); break; case SessionEvent::USER_MESSAGE: emit userMessageEventReceived(event.GetExtension(Event_UserMessage::ext)); break;
case SessionEvent::NOTIFY_USER: emit notifyUserEventReceived(event.GetExtension(Event_NotifyUser::ext)); break;
case SessionEvent::LIST_ROOMS: emit listRoomsEventReceived(event.GetExtension(Event_ListRooms::ext)); break; case SessionEvent::LIST_ROOMS: emit listRoomsEventReceived(event.GetExtension(Event_ListRooms::ext)); break;
case SessionEvent::ADD_TO_LIST: emit addToListEventReceived(event.GetExtension(Event_AddToList::ext)); break; case SessionEvent::ADD_TO_LIST: emit addToListEventReceived(event.GetExtension(Event_AddToList::ext)); break;
case SessionEvent::REMOVE_FROM_LIST: emit removeFromListEventReceived(event.GetExtension(Event_RemoveFromList::ext)); break; case SessionEvent::REMOVE_FROM_LIST: emit removeFromListEventReceived(event.GetExtension(Event_RemoveFromList::ext)); break;
......
...@@ -21,6 +21,7 @@ class Event_ServerMessage; ...@@ -21,6 +21,7 @@ class Event_ServerMessage;
class Event_ListRooms; class Event_ListRooms;
class Event_GameJoined; class Event_GameJoined;
class Event_UserMessage; class Event_UserMessage;
class Event_NotifyUser;
class Event_ConnectionClosed; class Event_ConnectionClosed;
class Event_ServerShutdown; class Event_ServerShutdown;
class Event_ReplayAdded; class Event_ReplayAdded;
...@@ -56,6 +57,7 @@ signals: ...@@ -56,6 +57,7 @@ signals:
void listRoomsEventReceived(const Event_ListRooms &event); void listRoomsEventReceived(const Event_ListRooms &event);
void gameJoinedEventReceived(const Event_GameJoined &event); void gameJoinedEventReceived(const Event_GameJoined &event);
void userMessageEventReceived(const Event_UserMessage &event); void userMessageEventReceived(const Event_UserMessage &event);
void notifyUserEventReceived(const Event_NotifyUser &event);
void userInfoChanged(const ServerInfo_User &userInfo); void userInfoChanged(const ServerInfo_User &userInfo);
void buddyListReceived(const QList<ServerInfo_User> &buddyList); void buddyListReceived(const QList<ServerInfo_User> &buddyList);
void ignoreListReceived(const QList<ServerInfo_User> &ignoreList); void ignoreListReceived(const QList<ServerInfo_User> &ignoreList);
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
void DlgCreateGame::sharedCtor() void DlgCreateGame::sharedCtor()
{ {
rememberGameSettings = new QCheckBox(tr("Re&member settings"));
descriptionLabel = new QLabel(tr("&Description:")); descriptionLabel = new QLabel(tr("&Description:"));
descriptionEdit = new QLineEdit; descriptionEdit = new QLineEdit;
descriptionLabel->setBuddy(descriptionEdit); descriptionLabel->setBuddy(descriptionEdit);
...@@ -38,6 +39,7 @@ void DlgCreateGame::sharedCtor() ...@@ -38,6 +39,7 @@ void DlgCreateGame::sharedCtor()
generalGrid->addWidget(descriptionEdit, 0, 1); generalGrid->addWidget(descriptionEdit, 0, 1);
generalGrid->addWidget(maxPlayersLabel, 1, 0); generalGrid->addWidget(maxPlayersLabel, 1, 0);
generalGrid->addWidget(maxPlayersEdit, 1, 1); generalGrid->addWidget(maxPlayersEdit, 1, 1);
generalGrid->addWidget(rememberGameSettings, 2, 0);
QVBoxLayout *gameTypeLayout = new QVBoxLayout; QVBoxLayout *gameTypeLayout = new QVBoxLayout;
QMapIterator<int, QString> gameTypeIterator(gameTypes); QMapIterator<int, QString> gameTypeIterator(gameTypes);
...@@ -111,15 +113,26 @@ DlgCreateGame::DlgCreateGame(TabRoom *_room, const QMap<int, QString> &_gameType ...@@ -111,15 +113,26 @@ DlgCreateGame::DlgCreateGame(TabRoom *_room, const QMap<int, QString> &_gameType
{ {
sharedCtor(); sharedCtor();
rememberGameSettings->setChecked(settingsCache->getRememberGameSettings());
descriptionEdit->setText(settingsCache->getGameDescription()); descriptionEdit->setText(settingsCache->getGameDescription());
maxPlayersEdit->setValue(settingsCache->getMaxPlayers()); maxPlayersEdit->setValue(settingsCache->getMaxPlayers());
onlyBuddiesCheckBox->setChecked(settingsCache->getOnlyBuddies()); onlyBuddiesCheckBox->setChecked(settingsCache->getOnlyBuddies());
onlyRegisteredCheckBox->setChecked(settingsCache->getOnlyRegistered()); if (room && room->getUserInfo()->user_level() & ServerInfo_User::IsRegistered)
{
onlyRegisteredCheckBox->setChecked(settingsCache->getOnlyRegistered());
} else {
onlyBuddiesCheckBox->setEnabled(false);
onlyRegisteredCheckBox->setEnabled(false);
}
spectatorsAllowedCheckBox->setChecked(settingsCache->getSpectatorsAllowed()); spectatorsAllowedCheckBox->setChecked(settingsCache->getSpectatorsAllowed());
spectatorsNeedPasswordCheckBox->setChecked(settingsCache->getSpectatorsNeedPassword()); spectatorsNeedPasswordCheckBox->setChecked(settingsCache->getSpectatorsNeedPassword());
spectatorsCanTalkCheckBox->setChecked(settingsCache->getSpectatorsCanTalk()); spectatorsCanTalkCheckBox->setChecked(settingsCache->getSpectatorsCanTalk());
spectatorsSeeEverythingCheckBox->setChecked(settingsCache->getSpectatorsCanSeeEverything()); spectatorsSeeEverythingCheckBox->setChecked(settingsCache->getSpectatorsCanSeeEverything());
if (!rememberGameSettings->isChecked()){
actReset();
}
clearButton = new QPushButton(tr("&Clear")); clearButton = new QPushButton(tr("&Clear"));
buttonBox->addButton(QDialogButtonBox::Cancel); buttonBox->addButton(QDialogButtonBox::Cancel);
buttonBox->addButton(clearButton, QDialogButtonBox::ActionRole); buttonBox->addButton(clearButton, QDialogButtonBox::ActionRole);
...@@ -134,6 +147,7 @@ DlgCreateGame::DlgCreateGame(const ServerInfo_Game &gameInfo, const QMap<int, QS ...@@ -134,6 +147,7 @@ DlgCreateGame::DlgCreateGame(const ServerInfo_Game &gameInfo, const QMap<int, QS
{ {
sharedCtor(); sharedCtor();
rememberGameSettings->setEnabled(false);
descriptionEdit->setEnabled(false); descriptionEdit->setEnabled(false);
maxPlayersEdit->setEnabled(false); maxPlayersEdit->setEnabled(false);
passwordEdit->setEnabled(false); passwordEdit->setEnabled(false);
...@@ -197,15 +211,6 @@ descriptionEdit->setFocus(); ...@@ -197,15 +211,6 @@ descriptionEdit->setFocus();
void DlgCreateGame::actOK() void DlgCreateGame::actOK()
{ {
settingsCache->setGameDescription(descriptionEdit->text());
settingsCache->setMaxPlayers(maxPlayersEdit->value());
settingsCache->setOnlyBuddies(onlyBuddiesCheckBox->isChecked());
settingsCache->setOnlyRegistered(onlyRegisteredCheckBox->isChecked());
settingsCache->setSpectatorsAllowed(spectatorsAllowedCheckBox->isChecked());
settingsCache->setSpectatorsNeedPassword(spectatorsNeedPasswordCheckBox->isChecked());
settingsCache->setSpectatorsCanTalk(spectatorsCanTalkCheckBox->isChecked());
settingsCache->setSpectatorsCanSeeEverything(spectatorsSeeEverythingCheckBox->isChecked());
Command_CreateGame cmd; Command_CreateGame cmd;
cmd.set_description(descriptionEdit->text().simplified().toStdString()); cmd.set_description(descriptionEdit->text().simplified().toStdString());
cmd.set_password(passwordEdit->text().toStdString()); cmd.set_password(passwordEdit->text().toStdString());
...@@ -227,7 +232,18 @@ void DlgCreateGame::actOK() ...@@ -227,7 +232,18 @@ void DlgCreateGame::actOK()
} }
} }
settingsCache->setGameTypes(gameTypes); settingsCache->setRememberGameSettings(rememberGameSettings->isChecked());
if (rememberGameSettings->isChecked()){
settingsCache->setGameDescription(descriptionEdit->text());
settingsCache->setMaxPlayers(maxPlayersEdit->value());
settingsCache->setOnlyBuddies(onlyBuddiesCheckBox->isChecked());
settingsCache->setOnlyRegistered(onlyRegisteredCheckBox->isChecked());
settingsCache->setSpectatorsAllowed(spectatorsAllowedCheckBox->isChecked());
settingsCache->setSpectatorsNeedPassword(spectatorsNeedPasswordCheckBox->isChecked());
settingsCache->setSpectatorsCanTalk(spectatorsCanTalkCheckBox->isChecked());
settingsCache->setSpectatorsCanSeeEverything(spectatorsSeeEverythingCheckBox->isChecked());
settingsCache->setGameTypes(gameTypes);
}
PendingCommand *pend = room->prepareRoomCommand(cmd); PendingCommand *pend = room->prepareRoomCommand(cmd);
connect(pend, SIGNAL(finished(Response, CommandContainer, QVariant)), this, SLOT(checkResponse(Response))); connect(pend, SIGNAL(finished(Response, CommandContainer, QVariant)), this, SLOT(checkResponse(Response)));
room->sendRoomCommand(pend); room->sendRoomCommand(pend);
......
...@@ -39,6 +39,7 @@ private: ...@@ -39,6 +39,7 @@ private:
QCheckBox *spectatorsAllowedCheckBox, *spectatorsNeedPasswordCheckBox, *spectatorsCanTalkCheckBox, *spectatorsSeeEverythingCheckBox; QCheckBox *spectatorsAllowedCheckBox, *spectatorsNeedPasswordCheckBox, *spectatorsCanTalkCheckBox, *spectatorsSeeEverythingCheckBox;
QDialogButtonBox *buttonBox; QDialogButtonBox *buttonBox;
QPushButton *clearButton; QPushButton *clearButton;
QCheckBox *rememberGameSettings;
void sharedCtor(); void sharedCtor();
}; };
......
...@@ -34,7 +34,7 @@ DlgEditUser::DlgEditUser(QWidget *parent, QString email, int gender, QString cou ...@@ -34,7 +34,7 @@ DlgEditUser::DlgEditUser(QWidget *parent, QString email, int gender, QString cou
foreach(QString c, countries) foreach(QString c, countries)
{ {
countryEdit->addItem(QPixmap(":/resources/countries/" + c + ".svg"), c); countryEdit->addItem(QPixmap(":/resources/countries/" + c + ".svg"), c);
if(c == country) if (c == country)
countryEdit->setCurrentIndex(i); countryEdit->setCurrentIndex(i);
++i; ++i;
......
...@@ -58,9 +58,7 @@ DlgRegister::DlgRegister(QWidget *parent) ...@@ -58,9 +58,7 @@ DlgRegister::DlgRegister(QWidget *parent)
countryEdit->setCurrentIndex(0); countryEdit->setCurrentIndex(0);
QStringList countries = settingsCache->getCountries(); QStringList countries = settingsCache->getCountries();
foreach(QString c, countries) foreach(QString c, countries)
{
countryEdit->addItem(QPixmap(":/resources/countries/" + c + ".svg"), c); countryEdit->addItem(QPixmap(":/resources/countries/" + c + ".svg"), c);
}
realnameLabel = new QLabel(tr("Real name:")); realnameLabel = new QLabel(tr("Real name:"));
realnameEdit = new QLineEdit(); realnameEdit = new QLineEdit();
......
...@@ -19,7 +19,7 @@ public: ...@@ -19,7 +19,7 @@ public:
QString getPassword() const { return passwordEdit->text(); } QString getPassword() const { return passwordEdit->text(); }
QString getEmail() const { return emailEdit->text(); } QString getEmail() const { return emailEdit->text(); }
int getGender() const { return genderEdit->currentIndex() - 1; } int getGender() const { return genderEdit->currentIndex() - 1; }
QString getCountry() const { return genderEdit->currentIndex() == 0 ? "" : countryEdit->currentText(); } QString getCountry() const { return countryEdit->currentIndex() == 0 ? "" : countryEdit->currentText(); }
QString getRealName() const { return realnameEdit->text(); } QString getRealName() const { return realnameEdit->text(); }
private slots: private slots:
void actOk(); void actOk();
......
...@@ -119,7 +119,7 @@ QPixmap CountryPixmapGenerator::generatePixmap(int height, const QString &countr ...@@ -119,7 +119,7 @@ QPixmap CountryPixmapGenerator::generatePixmap(int height, const QString &countr
if (pmCache.contains(key)) if (pmCache.contains(key))
return pmCache.value(key); return pmCache.value(key);
QSvgRenderer svg(QString(":/resources/countries/" + countryCode + ".svg")); QSvgRenderer svg(QString(":/resources/countries/" + countryCode.toLower() + ".svg"));
int width = (int) round(height * (double) svg.defaultSize().width() / (double) svg.defaultSize().height()); int width = (int) round(height * (double) svg.defaultSize().width() / (double) svg.defaultSize().height());
QPixmap pixmap(width, height); QPixmap pixmap(width, height);
pixmap.fill(Qt::transparent); pixmap.fill(Qt::transparent);
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include "pb/event_server_identification.pb.h" #include "pb/event_server_identification.pb.h"
#include "settingscache.h" #include "settingscache.h"
#include "main.h" #include "main.h"
#include "version_string.h"
static const unsigned int protocolVersion = 14; static const unsigned int protocolVersion = 14;
...@@ -112,6 +113,7 @@ void RemoteClient::doLogin() ...@@ -112,6 +113,7 @@ void RemoteClient::doLogin()
cmdLogin.set_user_name(userName.toStdString()); cmdLogin.set_user_name(userName.toStdString());
cmdLogin.set_password(password.toStdString()); cmdLogin.set_password(password.toStdString());
cmdLogin.set_clientid(settingsCache->getClientID().toStdString()); cmdLogin.set_clientid(settingsCache->getClientID().toStdString());
cmdLogin.set_clientver(VERSION_STRING);
PendingCommand *pend = prepareSessionCommand(cmdLogin); PendingCommand *pend = prepareSessionCommand(cmdLogin);
connect(pend, SIGNAL(finished(Response, CommandContainer, QVariant)), this, SLOT(loginResponse(Response))); connect(pend, SIGNAL(finished(Response, CommandContainer, QVariant)), this, SLOT(loginResponse(Response)));
sendCommand(pend); sendCommand(pend);
......
...@@ -220,6 +220,7 @@ SettingsCache::SettingsCache() ...@@ -220,6 +220,7 @@ SettingsCache::SettingsCache()
spectatorsNeedPassword = settings->value("game/spectatorsneedpassword", false).toBool(); spectatorsNeedPassword = settings->value("game/spectatorsneedpassword", false).toBool();
spectatorsCanTalk = settings->value("game/spectatorscantalk", false).toBool(); spectatorsCanTalk = settings->value("game/spectatorscantalk", false).toBool();
spectatorsCanSeeEverything = settings->value("game/spectatorscanseeeverything", false).toBool(); spectatorsCanSeeEverything = settings->value("game/spectatorscanseeeverything", false).toBool();
rememberGameSettings = settings->value("game/remembergamesettings", true).toBool();
clientID = settings->value("personal/clientid", "notset").toString(); clientID = settings->value("personal/clientid", "notset").toString();
} }
...@@ -646,3 +647,9 @@ void SettingsCache::setSpectatorsCanSeeEverything(const bool _spectatorsCanSeeEv ...@@ -646,3 +647,9 @@ void SettingsCache::setSpectatorsCanSeeEverything(const bool _spectatorsCanSeeEv
spectatorsCanSeeEverything = _spectatorsCanSeeEverything; spectatorsCanSeeEverything = _spectatorsCanSeeEverything;
settings->setValue("game/spectatorscanseeeverything", spectatorsCanSeeEverything); settings->setValue("game/spectatorscanseeeverything", spectatorsCanSeeEverything);
} }
void SettingsCache::setRememberGameSettings(const bool _rememberGameSettings)
{
rememberGameSettings = _rememberGameSettings;
settings->setValue("game/remembergamesettings", rememberGameSettings);
}
\ No newline at end of file
...@@ -115,6 +115,8 @@ private: ...@@ -115,6 +115,8 @@ private:
bool spectatorsCanSeeEverything; bool spectatorsCanSeeEverything;
int keepalive; int keepalive;
void translateLegacySettings(); void translateLegacySettings();
bool rememberGameSettings;
public: public:
SettingsCache(); SettingsCache();
QString getSettingsPath(); QString getSettingsPath();
...@@ -187,6 +189,7 @@ public: ...@@ -187,6 +189,7 @@ public:
bool getSpectatorsNeedPassword() const { return spectatorsNeedPassword; } bool getSpectatorsNeedPassword() const { return spectatorsNeedPassword; }
bool getSpectatorsCanTalk() const { return spectatorsCanTalk; } bool getSpectatorsCanTalk() const { return spectatorsCanTalk; }
bool getSpectatorsCanSeeEverything() const { return spectatorsCanSeeEverything; } bool getSpectatorsCanSeeEverything() const { return spectatorsCanSeeEverything; }
bool getRememberGameSettings() const { return rememberGameSettings; }
int getKeepAlive() const { return keepalive; } int getKeepAlive() const { return keepalive; }
void setClientID(QString clientID); void setClientID(QString clientID);
QString getClientID() { return clientID; } QString getClientID() { return clientID; }
...@@ -260,6 +263,7 @@ public slots: ...@@ -260,6 +263,7 @@ public slots:
void setSpectatorsNeedPassword(const bool _spectatorsNeedPassword); void setSpectatorsNeedPassword(const bool _spectatorsNeedPassword);
void setSpectatorsCanTalk(const bool _spectatorsCanTalk); void setSpectatorsCanTalk(const bool _spectatorsCanTalk);
void setSpectatorsCanSeeEverything(const bool _spectatorsCanSeeEverything); void setSpectatorsCanSeeEverything(const bool _spectatorsCanSeeEverything);
void setRememberGameSettings(const bool _rememberGameSettings);
}; };
extern SettingsCache *settingsCache; extern SettingsCache *settingsCache;
......
#include <QDebug>
#include <QPainter>
#include <QMessageBox>
#include <QApplication> #include <QApplication>
#include "tab_supervisor.h" #include "tab_supervisor.h"
#include "abstractclient.h" #include "abstractclient.h"
...@@ -13,14 +16,12 @@ ...@@ -13,14 +16,12 @@
#include "pixmapgenerator.h" #include "pixmapgenerator.h"
#include "userlist.h" #include "userlist.h"
#include "settingscache.h" #include "settingscache.h"
#include <QDebug>
#include <QPainter>
#include <QMessageBox>
#include "pb/room_commands.pb.h" #include "pb/room_commands.pb.h"
#include "pb/room_event.pb.h" #include "pb/room_event.pb.h"
#include "pb/game_event_container.pb.h" #include "pb/game_event_container.pb.h"
#include "pb/event_user_message.pb.h" #include "pb/event_user_message.pb.h"
#include "pb/event_notify_user.pb.h"
#include "pb/event_game_joined.pb.h" #include "pb/event_game_joined.pb.h"
#include "pb/serverinfo_user.pb.h" #include "pb/serverinfo_user.pb.h"
#include "pb/serverinfo_room.pb.h" #include "pb/serverinfo_room.pb.h"
...@@ -90,6 +91,7 @@ TabSupervisor::TabSupervisor(AbstractClient *_client, QWidget *parent) ...@@ -90,6 +91,7 @@ TabSupervisor::TabSupervisor(AbstractClient *_client, QWidget *parent)
connect(client, SIGNAL(gameJoinedEventReceived(const Event_GameJoined &)), this, SLOT(gameJoined(const Event_GameJoined &))); connect(client, SIGNAL(gameJoinedEventReceived(const Event_GameJoined &)), this, SLOT(gameJoined(const Event_GameJoined &)));
connect(client, SIGNAL(userMessageEventReceived(const Event_UserMessage &)), this, SLOT(processUserMessageEvent(const Event_UserMessage &))); connect(client, SIGNAL(userMessageEventReceived(const Event_UserMessage &)), this, SLOT(processUserMessageEvent(const Event_UserMessage &)));
connect(client, SIGNAL(maxPingTime(int, int)), this, SLOT(updatePingTime(int, int))); connect(client, SIGNAL(maxPingTime(int, int)), this, SLOT(updatePingTime(int, int)));
connect(client, SIGNAL(notifyUserEventReceived(const Event_NotifyUser &)), this, SLOT(processNotifyUserEvent(const Event_NotifyUser &)));
retranslateUi(); retranslateUi();
} }
...@@ -559,3 +561,13 @@ bool TabSupervisor::getAdminLocked() const ...@@ -559,3 +561,13 @@ bool TabSupervisor::getAdminLocked() const
return true; return true;
return tabAdmin->getLocked(); return tabAdmin->getLocked();
} }
void TabSupervisor::processNotifyUserEvent(const Event_NotifyUser &event)
{
switch ((Event_NotifyUser::NotificationType) event.type()) {
case Event_NotifyUser::PROMOTED: QMessageBox::information(this, tr("Promotion"), tr("You have been promoted to moderator. Please log out and back in for changes to take effect.")); break;
default: ;
}
}
...@@ -22,6 +22,7 @@ class RoomEvent; ...@@ -22,6 +22,7 @@ class RoomEvent;
class GameEventContainer; class GameEventContainer;
class Event_GameJoined; class Event_GameJoined;
class Event_UserMessage; class Event_UserMessage;
class Event_NotifyUser;
class ServerInfo_Room; class ServerInfo_Room;
class ServerInfo_User; class ServerInfo_User;
class GameReplay; class GameReplay;
...@@ -105,6 +106,7 @@ private slots: ...@@ -105,6 +106,7 @@ private slots:
void processRoomEvent(const RoomEvent &event); void processRoomEvent(const RoomEvent &event);
void processGameEventContainer(const GameEventContainer &cont); void processGameEventContainer(const GameEventContainer &cont);
void processUserMessageEvent(const Event_UserMessage &event); void processUserMessageEvent(const Event_UserMessage &event);
void processNotifyUserEvent(const Event_NotifyUser &event);
}; };
#endif #endif
\ No newline at end of file
#include <QAction> #include <QAction>
#include <QMenu> #include <QMenu>
#include <QMessageBox>
#include "user_context_menu.h" #include "user_context_menu.h"
#include "tab_supervisor.h" #include "tab_supervisor.h"
#include "tab_userlists.h" #include "tab_userlists.h"
...@@ -31,6 +32,8 @@ UserContextMenu::UserContextMenu(const TabSupervisor *_tabSupervisor, QWidget *p ...@@ -31,6 +32,8 @@ UserContextMenu::UserContextMenu(const TabSupervisor *_tabSupervisor, QWidget *p
aRemoveFromIgnoreList = new QAction(QString(), this); aRemoveFromIgnoreList = new QAction(QString(), this);
aKick = new QAction(QString(), this); aKick = new QAction(QString(), this);
aBan = new QAction(QString(), this); aBan = new QAction(QString(), this);
aPromoteToMod = new QAction(QString(), this);
aDemoteFromMod = new QAction(QString(), this);
retranslateUi(); retranslateUi();
} }
...@@ -46,6 +49,8 @@ void UserContextMenu::retranslateUi() ...@@ -46,6 +49,8 @@ void UserContextMenu::retranslateUi()
aRemoveFromIgnoreList->setText(tr("Remove from &ignore list")); aRemoveFromIgnoreList->setText(tr("Remove from &ignore list"));
aKick->setText(tr("Kick from &game")); aKick->setText(tr("Kick from &game"));
aBan->setText(tr("Ban from &server")); aBan->setText(tr("Ban from &server"));
aPromoteToMod->setText(tr("&Promote user to moderator"));
aDemoteFromMod->setText(tr("Dem&ote user from moderator"));
} }
void UserContextMenu::gamesOfUserReceived(const Response &resp, const CommandContainer &commandContainer) void UserContextMenu::gamesOfUserReceived(const Response &resp, const CommandContainer &commandContainer)
...@@ -89,6 +94,27 @@ void UserContextMenu::banUser_processUserInfoResponse(const Response &r) ...@@ -89,6 +94,27 @@ void UserContextMenu::banUser_processUserInfoResponse(const Response &r)
dlg->show(); dlg->show();
} }
void UserContextMenu::adjustMod_processUserResponse(const Response &resp, const CommandContainer &commandContainer)
{
const Command_AdjustMod &cmd = commandContainer.admin_command(0).GetExtension(Command_AdjustMod::ext);
if (resp.response_code() == Response::RespOk) {
if (cmd.should_be_mod()) {
QMessageBox::information(static_cast<QWidget *>(parent()), tr("Success"), tr("Successfully promoted user."));
} else {
QMessageBox::information(static_cast<QWidget *>(parent()), tr("Success"), tr("Successfully demoted user."));
}
} else {
if (cmd.should_be_mod()) {
QMessageBox::information(static_cast<QWidget *>(parent()), tr("Failed"), tr("Failed to promote user."));
} else {
QMessageBox::information(static_cast<QWidget *>(parent()), tr("Failed"), tr("Failed to demote user."));
}
}
}
void UserContextMenu::banUser_dialogFinished() void UserContextMenu::banUser_dialogFinished()
{ {
BanDialog *dlg = static_cast<BanDialog *>(sender()); BanDialog *dlg = static_cast<BanDialog *>(sender());
...@@ -132,6 +158,14 @@ void UserContextMenu::showContextMenu(const QPoint &pos, const QString &userName ...@@ -132,6 +158,14 @@ void UserContextMenu::showContextMenu(const QPoint &pos, const QString &userName
if (!tabSupervisor->getAdminLocked()) { if (!tabSupervisor->getAdminLocked()) {
menu->addSeparator(); menu->addSeparator();
menu->addAction(aBan); menu->addAction(aBan);
menu->addSeparator();
if (userLevel.testFlag(ServerInfo_User::IsModerator) && (tabSupervisor->getUserInfo()->user_level() & ServerInfo_User::IsAdmin)) {
menu->addAction(aDemoteFromMod);
} else if (userLevel.testFlag(ServerInfo_User::IsRegistered) && (tabSupervisor->getUserInfo()->user_level() & ServerInfo_User::IsAdmin)) {
menu->addAction(aPromoteToMod);
}
} }
bool anotherUser = userName != QString::fromStdString(tabSupervisor->getUserInfo()->name()); bool anotherUser = userName != QString::fromStdString(tabSupervisor->getUserInfo()->name());
aDetails->setEnabled(online); aDetails->setEnabled(online);
...@@ -143,6 +177,8 @@ void UserContextMenu::showContextMenu(const QPoint &pos, const QString &userName ...@@ -143,6 +177,8 @@ void UserContextMenu::showContextMenu(const QPoint &pos, const QString &userName
aRemoveFromIgnoreList->setEnabled(anotherUser); aRemoveFromIgnoreList->setEnabled(anotherUser);
aKick->setEnabled(anotherUser); aKick->setEnabled(anotherUser);
aBan->setEnabled(anotherUser); aBan->setEnabled(anotherUser);
aPromoteToMod->setEnabled(anotherUser);
aDemoteFromMod->setEnabled(anotherUser);
QAction *actionClicked = menu->exec(pos); QAction *actionClicked = menu->exec(pos);
if (actionClicked == aDetails) { if (actionClicked == aDetails) {
...@@ -186,6 +222,7 @@ void UserContextMenu::showContextMenu(const QPoint &pos, const QString &userName ...@@ -186,6 +222,7 @@ void UserContextMenu::showContextMenu(const QPoint &pos, const QString &userName
} else if (actionClicked == aKick) { } else if (actionClicked == aKick) {
Command_KickFromGame cmd; Command_KickFromGame cmd;
cmd.set_player_id(playerId); cmd.set_player_id(playerId);
game->sendGameCommand(cmd); game->sendGameCommand(cmd);
} else if (actionClicked == aBan) { } else if (actionClicked == aBan) {
Command_GetUserInfo cmd; Command_GetUserInfo cmd;
...@@ -193,7 +230,14 @@ void UserContextMenu::showContextMenu(const QPoint &pos, const QString &userName ...@@ -193,7 +230,14 @@ void UserContextMenu::showContextMenu(const QPoint &pos, const QString &userName
PendingCommand *pend = client->prepareSessionCommand(cmd); PendingCommand *pend = client->prepareSessionCommand(cmd);
connect(pend, SIGNAL(finished(Response, CommandContainer, QVariant)), this, SLOT(banUser_processUserInfoResponse(Response))); connect(pend, SIGNAL(finished(Response, CommandContainer, QVariant)), this, SLOT(banUser_processUserInfoResponse(Response)));
client->sendCommand(pend);
} else if (actionClicked == aPromoteToMod || actionClicked == aDemoteFromMod) {
Command_AdjustMod cmd;
cmd.set_user_name(userName.toStdString());
cmd.set_should_be_mod(actionClicked == aPromoteToMod);
PendingCommand *pend = client->prepareAdminCommand(cmd);
connect(pend, SIGNAL(finished(Response, CommandContainer, QVariant)), this, SLOT(adjustMod_processUserResponse(Response, CommandContainer)));
client->sendCommand(pend); client->sendCommand(pend);
} }
......
...@@ -27,10 +27,12 @@ private: ...@@ -27,10 +27,12 @@ private:
QAction *aAddToIgnoreList, *aRemoveFromIgnoreList; QAction *aAddToIgnoreList, *aRemoveFromIgnoreList;
QAction *aKick; QAction *aKick;
QAction *aBan; QAction *aBan;
QAction *aPromoteToMod, *aDemoteFromMod;
signals: signals:
void openMessageDialog(const QString &userName, bool focus); void openMessageDialog(const QString &userName, bool focus);
private slots: private slots:
void banUser_processUserInfoResponse(const Response &resp); void banUser_processUserInfoResponse(const Response &resp);
void adjustMod_processUserResponse(const Response &resp, const CommandContainer &commandContainer);
void banUser_dialogFinished(); void banUser_dialogFinished();
void gamesOfUserReceived(const Response &resp, const CommandContainer &commandContainer); void gamesOfUserReceived(const Response &resp, const CommandContainer &commandContainer);
public: public:
......
...@@ -31,8 +31,7 @@ ...@@ -31,8 +31,7 @@
#include <QSystemTrayIcon> #include <QSystemTrayIcon>
#include <QApplication> #include <QApplication>
#if QT_VERSION < 0x050000 #if QT_VERSION < 0x050000
// for Qt::escape() #include <QtGui/qtextdocument.h> // for Qt::escape()
#include <QtGui/qtextdocument.h>
#endif #endif
#include "main.h" #include "main.h"
...@@ -47,7 +46,6 @@ ...@@ -47,7 +46,6 @@
#include "localclient.h" #include "localclient.h"
#include "settingscache.h" #include "settingscache.h"
#include "tab_game.h" #include "tab_game.h"
#include "version_string.h" #include "version_string.h"
#include "pb/game_replay.pb.h" #include "pb/game_replay.pb.h"
...@@ -55,6 +53,14 @@ ...@@ -55,6 +53,14 @@
#include "pb/event_connection_closed.pb.h" #include "pb/event_connection_closed.pb.h"
#include "pb/event_server_shutdown.pb.h" #include "pb/event_server_shutdown.pb.h"
#define GITHUB_CONTRIBUTORS_URL "https://github.com/Cockatrice/Cockatrice/graphs/contributors?type=c"
#define GITHUB_CONTRIBUTE_URL "https://github.com/Cockatrice/Cockatrice#cockatrice"
#define GITHUB_TRANSLATOR_RECOGNIZE_URL "https://github.com/Cockatrice/Cockatrice/wiki/Translators"
#define GITHUB_TRANSLATOR_FAQ_URL "https://github.com/Cockatrice/Cockatrice/wiki/Translation-FAQ"
#define GITHUB_ISSUES_URL "https://github.com/Cockatrice/Cockatrice/issues"
#define GITHUB_TROUBLESHOOTING_URL "https://github.com/Cockatrice/Cockatrice/wiki/Troubleshooting"
#define GITHUB_FAQ_URL "https://github.com/Cockatrice/Cockatrice/wiki/Frequently-Asked-Questions"
const QString MainWindow::appName = "Cockatrice"; const QString MainWindow::appName = "Cockatrice";
void MainWindow::updateTabMenu(const QList<QMenu *> &newMenuList) void MainWindow::updateTabMenu(const QList<QMenu *> &newMenuList)
...@@ -71,7 +77,7 @@ void MainWindow::processConnectionClosedEvent(const Event_ConnectionClosed &even ...@@ -71,7 +77,7 @@ void MainWindow::processConnectionClosedEvent(const Event_ConnectionClosed &even
client->disconnectFromServer(); client->disconnectFromServer();
QString reasonStr; QString reasonStr;
switch (event.reason()) { switch (event.reason()) {
case Event_ConnectionClosed::USER_LIMIT_REACHED: reasonStr = tr("The server has reached its maximum user capacity, please check back later."); break; case Event_ConnectionClosed::USER_LIMIT_REACHED: reasonStr = tr("The server has reached its maximum user capacity, please check back later."); break;
case Event_ConnectionClosed::TOO_MANY_CONNECTIONS: reasonStr = tr("There are too many concurrent connections from your address."); break; case Event_ConnectionClosed::TOO_MANY_CONNECTIONS: reasonStr = tr("There are too many concurrent connections from your address."); break;
case Event_ConnectionClosed::BANNED: { case Event_ConnectionClosed::BANNED: {
reasonStr = tr("Banned by moderator"); reasonStr = tr("Banned by moderator");
...@@ -85,6 +91,7 @@ void MainWindow::processConnectionClosedEvent(const Event_ConnectionClosed &even ...@@ -85,6 +91,7 @@ void MainWindow::processConnectionClosedEvent(const Event_ConnectionClosed &even
} }
case Event_ConnectionClosed::SERVER_SHUTDOWN: reasonStr = tr("Scheduled server shutdown."); break; case Event_ConnectionClosed::SERVER_SHUTDOWN: reasonStr = tr("Scheduled server shutdown."); break;
case Event_ConnectionClosed::USERNAMEINVALID: reasonStr = tr("Invalid username."); break; case Event_ConnectionClosed::USERNAMEINVALID: reasonStr = tr("Invalid username."); break;
case Event_ConnectionClosed::LOGGEDINELSEWERE: reasonStr = tr("You have been logged out due to logging in at another location."); break;
default: reasonStr = QString::fromStdString(event.reason_str()); default: reasonStr = QString::fromStdString(event.reason_str());
} }
QMessageBox::critical(this, tr("Connection closed"), tr("The server has terminated your connection.\nReason: %1").arg(reasonStr)); QMessageBox::critical(this, tr("Connection closed"), tr("The server has terminated your connection.\nReason: %1").arg(reasonStr));
...@@ -268,15 +275,15 @@ void MainWindow::actAbout() ...@@ -268,15 +275,15 @@ void MainWindow::actAbout()
+ "<br><br><b>" + tr("Project Manager:") + "</b><br>Gavin Bisesi<br><br>" + "<br><br><b>" + tr("Project Manager:") + "</b><br>Gavin Bisesi<br><br>"
+ "<b>" + tr("Past Project Managers:") + "</b><br>Max-Wilhelm Bruker<br>Marcus Schütz<br><br>" + "<b>" + tr("Past Project Managers:") + "</b><br>Max-Wilhelm Bruker<br>Marcus Schütz<br><br>"
+ "<b>" + tr("Developers:") + "</b><br>" + "<b>" + tr("Developers:") + "</b><br>"
+ "<a href='https://github.com/Cockatrice/Cockatrice/graphs/contributors?type=c'>" + tr("Our Developers") + "</a><br>" + "<a href='" + GITHUB_CONTRIBUTORS_URL + "'>" + tr("Our Developers") + "</a><br>"
+ "<a href='https://github.com/Cockatrice/Cockatrice#cockatrice'>" + tr("Help Develop!") + "</a><br><br>" + "<a href='" + GITHUB_CONTRIBUTE_URL + "'>" + tr("Help Develop!") + "</a><br><br>"
+ "<b>" + tr("Translators:") + "</b><br>" + "<b>" + tr("Translators:") + "</b><br>"
+ "<a href='https://github.com/Cockatrice/Cockatrice/wiki/Translators'>" + tr("Recognition Page") + "</a><br>" + "<a href='" + GITHUB_TRANSLATOR_RECOGNIZE_URL + "'>" + tr("Recognition Page") + "</a><br>"
+ "<a href='https://github.com/Cockatrice/Cockatrice/wiki/Translation-FAQ'>" + tr("Help Translate!") + "</a><br><br>" + "<a href='" + GITHUB_TRANSLATOR_FAQ_URL + "'>" + tr("Help Translate!") + "</a><br><br>"
+ "<b>" + tr("Support:") + "</b><br>" + "<b>" + tr("Support:") + "</b><br>"
+ "<a href='https://github.com/Cockatrice/Cockatrice/issues'>" + tr("Report an Issue") + "</a><br>" + "<a href='" + GITHUB_ISSUES_URL + "'>" + tr("Report an Issue") + "</a><br>"
+ "<a href='https://github.com/Cockatrice/Cockatrice/wiki/Troubleshooting'>" + tr("Troubleshooting") + "</a><br>" + "<a href='" + GITHUB_TROUBLESHOOTING_URL + "'>" + tr("Troubleshooting") + "</a><br>"
+ "<a href='https://github.com/Cockatrice/Cockatrice/wiki/Frequently-Asked-Questions'>" + tr("F.A.Q.") + "</a><br>" + "<a href='" + GITHUB_FAQ_URL + "'>" + tr("F.A.Q.") + "</a><br>"
)); ));
} }
......
...@@ -4,17 +4,17 @@ ...@@ -4,17 +4,17 @@
<context> <context>
<name>AbstractCounter</name> <name>AbstractCounter</name>
<message> <message>
<location filename="../src/abstractcounter.cpp" line="61"/> <location filename="../src/abstractcounter.cpp" line="66"/>
<source>&amp;Set counter...</source> <source>&amp;Set counter...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/abstractcounter.cpp" line="144"/> <location filename="../src/abstractcounter.cpp" line="157"/>
<source>Set counter</source> <source>Set counter</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/abstractcounter.cpp" line="144"/> <location filename="../src/abstractcounter.cpp" line="157"/>
<source>New value for counter &apos;%1&apos;:</source> <source>New value for counter &apos;%1&apos;:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
...@@ -22,86 +22,86 @@ ...@@ -22,86 +22,86 @@
<context> <context>
<name>AppearanceSettingsPage</name> <name>AppearanceSettingsPage</name>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="370"/> <location filename="../src/dlg_settings.cpp" line="373"/>
<source>Zone background pictures</source> <source>Zone background pictures</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="371"/> <location filename="../src/dlg_settings.cpp" line="374"/>
<source>Hand background:</source> <source>Hand background:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="372"/> <location filename="../src/dlg_settings.cpp" line="375"/>
<source>Stack background:</source> <source>Stack background:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="373"/> <location filename="../src/dlg_settings.cpp" line="376"/>
<source>Table background:</source> <source>Table background:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="374"/> <location filename="../src/dlg_settings.cpp" line="377"/>
<source>Player info background:</source> <source>Player info background:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="375"/> <location filename="../src/dlg_settings.cpp" line="378"/>
<source>Card back:</source> <source>Card back:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="377"/> <location filename="../src/dlg_settings.cpp" line="380"/>
<source>Card rendering</source> <source>Card rendering</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="378"/> <location filename="../src/dlg_settings.cpp" line="381"/>
<source>Display card names on cards having a picture</source> <source>Display card names on cards having a picture</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="379"/> <location filename="../src/dlg_settings.cpp" line="382"/>
<source>Scale cards on mouse over</source> <source>Scale cards on mouse over</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="381"/> <location filename="../src/dlg_settings.cpp" line="384"/>
<source>Hand layout</source> <source>Hand layout</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="382"/> <location filename="../src/dlg_settings.cpp" line="385"/>
<source>Display hand horizontally (wastes space)</source> <source>Display hand horizontally (wastes space)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="383"/> <location filename="../src/dlg_settings.cpp" line="386"/>
<source>Enable left justification</source> <source>Enable left justification</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="385"/> <location filename="../src/dlg_settings.cpp" line="388"/>
<source>Table grid layout</source> <source>Table grid layout</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="386"/> <location filename="../src/dlg_settings.cpp" line="389"/>
<source>Invert vertical coordinate</source> <source>Invert vertical coordinate</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="387"/> <location filename="../src/dlg_settings.cpp" line="390"/>
<source>Minimum player count for multi-column layout:</source> <source>Minimum player count for multi-column layout:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="398"/> <location filename="../src/dlg_settings.cpp" line="401"/>
<location filename="../src/dlg_settings.cpp" line="414"/> <location filename="../src/dlg_settings.cpp" line="417"/>
<location filename="../src/dlg_settings.cpp" line="430"/> <location filename="../src/dlg_settings.cpp" line="433"/>
<location filename="../src/dlg_settings.cpp" line="446"/> <location filename="../src/dlg_settings.cpp" line="449"/>
<location filename="../src/dlg_settings.cpp" line="462"/> <location filename="../src/dlg_settings.cpp" line="465"/>
<source>Choose path</source> <source>Choose path</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
...@@ -119,86 +119,91 @@ ...@@ -119,86 +119,91 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/userlist.cpp" line="44"/> <location filename="../src/userlist.cpp" line="39"/>
<source>ban client I&amp;D</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/userlist.cpp" line="52"/>
<source>Ban type</source> <source>Ban type</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/userlist.cpp" line="47"/> <location filename="../src/userlist.cpp" line="55"/>
<source>&amp;permanent ban</source> <source>&amp;permanent ban</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/userlist.cpp" line="48"/> <location filename="../src/userlist.cpp" line="56"/>
<source>&amp;temporary ban</source> <source>&amp;temporary ban</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/userlist.cpp" line="51"/> <location filename="../src/userlist.cpp" line="59"/>
<source>&amp;Days:</source> <source>&amp;Days:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/userlist.cpp" line="57"/> <location filename="../src/userlist.cpp" line="65"/>
<source>&amp;Hours:</source> <source>&amp;Hours:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/userlist.cpp" line="63"/> <location filename="../src/userlist.cpp" line="71"/>
<source>&amp;Minutes:</source> <source>&amp;Minutes:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/userlist.cpp" line="78"/> <location filename="../src/userlist.cpp" line="86"/>
<source>Duration of the ban</source> <source>Duration of the ban</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/userlist.cpp" line="81"/> <location filename="../src/userlist.cpp" line="89"/>
<source>Please enter the reason for the ban. <source>Please enter the reason for the ban.
This is only saved for moderators and cannot be seen by the banned person.</source> This is only saved for moderators and cannot be seen by the banned person.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/userlist.cpp" line="84"/> <location filename="../src/userlist.cpp" line="92"/>
<source>Please enter the reason for the ban that will be visible to the banned person.</source> <source>Please enter the reason for the ban that will be visible to the banned person.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/userlist.cpp" line="87"/> <location filename="../src/userlist.cpp" line="95"/>
<source>&amp;OK</source> <source>&amp;OK</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/userlist.cpp" line="90"/> <location filename="../src/userlist.cpp" line="98"/>
<source>&amp;Cancel</source> <source>&amp;Cancel</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/userlist.cpp" line="108"/> <location filename="../src/userlist.cpp" line="116"/>
<source>Ban user from server</source> <source>Ban user from server</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/userlist.cpp" line="114"/> <location filename="../src/userlist.cpp" line="122"/>
<source>Error</source> <source>Error</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/userlist.cpp" line="114"/> <location filename="../src/userlist.cpp" line="122"/>
<source>You have to select a name-based or IP-based ban, or both.</source> <source>You have to select a name-based, IP-based, clientId based, or some combination of the three to place a ban.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>
<name>CardDatabase</name> <name>CardDatabase</name>
<message> <message>
<location filename="../src/carddatabase.cpp" line="1187"/> <location filename="../src/carddatabase.cpp" line="1230"/>
<source>New sets found</source> <source>New sets found</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/carddatabase.cpp" line="1187"/> <location filename="../src/carddatabase.cpp" line="1230"/>
<source>%1 new set(s) have been found in the card database. Do you want to enable them?</source> <source>%1 new set(s) have been found in the card database. Do you want to enable them?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
...@@ -234,17 +239,17 @@ This is only saved for moderators and cannot be seen by the banned person.</sour ...@@ -234,17 +239,17 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
<context> <context>
<name>CardFrame</name> <name>CardFrame</name>
<message> <message>
<location filename="../src/cardframe.cpp" line="52"/> <location filename="../src/cardframe.cpp" line="65"/>
<source>Image</source> <source>Image</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/cardframe.cpp" line="53"/> <location filename="../src/cardframe.cpp" line="66"/>
<source>Description</source> <source>Description</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/cardframe.cpp" line="54"/> <location filename="../src/cardframe.cpp" line="67"/>
<source>Both</source> <source>Both</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
...@@ -300,27 +305,32 @@ This is only saved for moderators and cannot be seen by the banned person.</sour ...@@ -300,27 +305,32 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/cardinfowidget.cpp" line="201"/> <location filename="../src/cardinfowidget.cpp" line="207"/>
<source>Name:</source> <source>Name:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/cardinfowidget.cpp" line="202"/> <location filename="../src/cardinfowidget.cpp" line="208"/>
<source>Mana cost:</source> <source>Mana cost:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/cardinfowidget.cpp" line="203"/> <location filename="../src/cardinfowidget.cpp" line="209"/>
<source>Color(s):</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/cardinfowidget.cpp" line="210"/>
<source>Card type:</source> <source>Card type:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/cardinfowidget.cpp" line="204"/> <location filename="../src/cardinfowidget.cpp" line="211"/>
<source>P / T:</source> <source>P / T:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/cardinfowidget.cpp" line="205"/> <location filename="../src/cardinfowidget.cpp" line="212"/>
<source>Loyalty:</source> <source>Loyalty:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
...@@ -584,12 +594,12 @@ This is only saved for moderators and cannot be seen by the banned person.</sour ...@@ -584,12 +594,12 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
<context> <context>
<name>DeckEditorSettingsPage</name> <name>DeckEditorSettingsPage</name>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="542"/> <location filename="../src/dlg_settings.cpp" line="545"/>
<source>Nothing is here... yet</source> <source>Nothing is here... yet</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="556"/> <location filename="../src/dlg_settings.cpp" line="559"/>
<source>General</source> <source>General</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
...@@ -597,17 +607,17 @@ This is only saved for moderators and cannot be seen by the banned person.</sour ...@@ -597,17 +607,17 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
<context> <context>
<name>DeckListModel</name> <name>DeckListModel</name>
<message> <message>
<location filename="../src/decklistmodel.cpp" line="140"/> <location filename="../src/decklistmodel.cpp" line="146"/>
<source>Number</source> <source>Number</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/decklistmodel.cpp" line="141"/> <location filename="../src/decklistmodel.cpp" line="147"/>
<source>Card</source> <source>Card</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/decklistmodel.cpp" line="142"/> <location filename="../src/decklistmodel.cpp" line="148"/>
<source>Price</source> <source>Price</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
...@@ -629,42 +639,42 @@ This is only saved for moderators and cannot be seen by the banned person.</sour ...@@ -629,42 +639,42 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
<context> <context>
<name>DeckViewContainer</name> <name>DeckViewContainer</name>
<message> <message>
<location filename="../src/tab_game.cpp" line="127"/> <location filename="../src/tab_game.cpp" line="132"/>
<source>Load local deck</source> <source>Load local deck</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_game.cpp" line="129"/> <location filename="../src/tab_game.cpp" line="133"/>
<source>Load deck from server</source> <source>Load deck from server</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_game.cpp" line="131"/> <location filename="../src/tab_game.cpp" line="134"/>
<source>Ready to s&amp;tart</source> <source>Ready to s&amp;tart</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_game.cpp" line="146"/> <location filename="../src/tab_game.cpp" line="149"/>
<source>S&amp;ideboard unlocked</source> <source>S&amp;ideboard unlocked</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_game.cpp" line="148"/> <location filename="../src/tab_game.cpp" line="151"/>
<source>S&amp;ideboard locked</source> <source>S&amp;ideboard locked</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_game.cpp" line="153"/> <location filename="../src/tab_game.cpp" line="208"/>
<source>Load deck</source> <source>Load deck</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_game.cpp" line="163"/> <location filename="../src/tab_game.cpp" line="218"/>
<source>Error</source> <source>Error</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_game.cpp" line="163"/> <location filename="../src/tab_game.cpp" line="218"/>
<source>The selected file could not be loaded.</source> <source>The selected file could not be loaded.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
...@@ -710,37 +720,52 @@ This is only saved for moderators and cannot be seen by the banned person.</sour ...@@ -710,37 +720,52 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
<context> <context>
<name>DlgConnect</name> <name>DlgConnect</name>
<message> <message>
<location filename="../src/dlg_connect.cpp" line="17"/> <location filename="../src/dlg_connect.cpp" line="21"/>
<source>Previous Host</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_connect.cpp" line="34"/>
<source>New Host</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_connect.cpp" line="36"/>
<source>&amp;Host:</source> <source>&amp;Host:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_connect.cpp" line="21"/> <location filename="../src/dlg_connect.cpp" line="38"/>
<source>Enter host name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_connect.cpp" line="41"/>
<source>&amp;Port:</source> <source>&amp;Port:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_connect.cpp" line="25"/> <location filename="../src/dlg_connect.cpp" line="45"/>
<source>Player &amp;name:</source> <source>Player &amp;name:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_connect.cpp" line="29"/> <location filename="../src/dlg_connect.cpp" line="49"/>
<source>P&amp;assword:</source> <source>P&amp;assword:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_connect.cpp" line="34"/> <location filename="../src/dlg_connect.cpp" line="54"/>
<source>&amp;Save password</source> <source>&amp;Save password</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_connect.cpp" line="37"/> <location filename="../src/dlg_connect.cpp" line="57"/>
<source>A&amp;uto connect at start</source> <source>A&amp;uto connect at start</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_connect.cpp" line="71"/> <location filename="../src/dlg_connect.cpp" line="94"/>
<source>Connect to server</source> <source>Connect to server</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
...@@ -748,82 +773,87 @@ This is only saved for moderators and cannot be seen by the banned person.</sour ...@@ -748,82 +773,87 @@ This is only saved for moderators and cannot be seen by the banned person.</sour
<context> <context>
<name>DlgCreateGame</name> <name>DlgCreateGame</name>
<message> <message>
<location filename="../src/dlg_creategame.cpp" line="23"/> <location filename="../src/dlg_creategame.cpp" line="24"/>
<source>&amp;Description:</source> <source>&amp;Description:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_creategame.cpp" line="52"/> <location filename="../src/dlg_creategame.cpp" line="54"/>
<source>&amp;Password:</source> <source>&amp;Password:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_creategame.cpp" line="28"/> <location filename="../src/dlg_creategame.cpp" line="29"/>
<source>P&amp;layers:</source> <source>P&amp;layers:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_creategame.cpp" line="49"/> <location filename="../src/dlg_creategame.cpp" line="51"/>
<source>Game type</source> <source>Game type</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_creategame.cpp" line="56"/> <location filename="../src/dlg_creategame.cpp" line="58"/>
<source>Only &amp;buddies can join</source> <source>Only &amp;buddies can join</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_creategame.cpp" line="57"/> <location filename="../src/dlg_creategame.cpp" line="59"/>
<source>Only &amp;registered users can join</source> <source>Only &amp;registered users can join</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_creategame.cpp" line="72"/> <location filename="../src/dlg_creategame.cpp" line="74"/>
<source>Joining restrictions</source> <source>Joining restrictions</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_creategame.cpp" line="75"/> <location filename="../src/dlg_creategame.cpp" line="77"/>
<source>&amp;Spectators can watch</source> <source>&amp;Spectators can watch</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_creategame.cpp" line="78"/> <location filename="../src/dlg_creategame.cpp" line="80"/>
<source>Spectators &amp;need a password to watch</source> <source>Spectators &amp;need a password to watch</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_creategame.cpp" line="80"/> <location filename="../src/dlg_creategame.cpp" line="82"/>
<source>Spectators can see &amp;hands</source> <source>Spectators can see &amp;hands</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_creategame.cpp" line="79"/> <location filename="../src/dlg_creategame.cpp" line="81"/>
<source>Spectators can &amp;chat</source> <source>Spectators can &amp;chat</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_creategame.cpp" line="86"/> <location filename="../src/dlg_creategame.cpp" line="88"/>
<source>Spectators</source> <source>Spectators</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_creategame.cpp" line="115"/> <location filename="../src/dlg_creategame.cpp" line="129"/>
<source>&amp;Clear</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_creategame.cpp" line="135"/>
<source>Create game</source> <source>Create game</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_creategame.cpp" line="157"/> <location filename="../src/dlg_creategame.cpp" line="177"/>
<source>Game information</source> <source>Game information</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_creategame.cpp" line="194"/> <location filename="../src/dlg_creategame.cpp" line="251"/>
<source>Error</source> <source>Error</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_creategame.cpp" line="194"/> <location filename="../src/dlg_creategame.cpp" line="251"/>
<source>Server error.</source> <source>Server error.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
...@@ -1188,7 +1218,7 @@ Make sure to enable the &apos;token set&apos; in the &apos;Edit sets...&apos; di ...@@ -1188,7 +1218,7 @@ Make sure to enable the &apos;token set&apos; in the &apos;Edit sets...&apos; di
<context> <context>
<name>DlgLoadDeckFromClipboard</name> <name>DlgLoadDeckFromClipboard</name>
<message> <message>
<location filename="../src/dlg_load_deck_from_clipboard.cpp" line="19"/> <location filename="../src/dlg_load_deck_from_clipboard.cpp" line="20"/>
<source>&amp;Refresh</source> <source>&amp;Refresh</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
...@@ -1198,14 +1228,14 @@ Make sure to enable the &apos;token set&apos; in the &apos;Edit sets...&apos; di ...@@ -1198,14 +1228,14 @@ Make sure to enable the &apos;token set&apos; in the &apos;Edit sets...&apos; di
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_load_deck_from_clipboard.cpp" line="60"/> <location filename="../src/dlg_load_deck_from_clipboard.cpp" line="67"/>
<location filename="../src/dlg_load_deck_from_clipboard.cpp" line="68"/> <location filename="../src/dlg_load_deck_from_clipboard.cpp" line="75"/>
<source>Error</source> <source>Error</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_load_deck_from_clipboard.cpp" line="60"/> <location filename="../src/dlg_load_deck_from_clipboard.cpp" line="67"/>
<location filename="../src/dlg_load_deck_from_clipboard.cpp" line="68"/> <location filename="../src/dlg_load_deck_from_clipboard.cpp" line="75"/>
<source>Invalid deck list.</source> <source>Invalid deck list.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
...@@ -1221,67 +1251,93 @@ Make sure to enable the &apos;token set&apos; in the &apos;Edit sets...&apos; di ...@@ -1221,67 +1251,93 @@ Make sure to enable the &apos;token set&apos; in the &apos;Edit sets...&apos; di
<context> <context>
<name>DlgRegister</name> <name>DlgRegister</name>
<message> <message>
<location filename="../src/dlg_register.cpp" line="19"/> <location filename="../src/dlg_register.cpp" line="20"/>
<source>&amp;Host:</source> <source>&amp;Host:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_register.cpp" line="23"/> <location filename="../src/dlg_register.cpp" line="24"/>
<source>&amp;Port:</source> <source>&amp;Port:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_register.cpp" line="27"/> <location filename="../src/dlg_register.cpp" line="28"/>
<source>Player &amp;name:</source> <source>Player &amp;name:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_register.cpp" line="31"/> <location filename="../src/dlg_register.cpp" line="32"/>
<source>P&amp;assword:</source> <source>P&amp;assword:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_register.cpp" line="36"/> <location filename="../src/dlg_register.cpp" line="37"/>
<source>Password (again):</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_register.cpp" line="42"/>
<source>Email:</source> <source>Email:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_register.cpp" line="40"/> <location filename="../src/dlg_register.cpp" line="46"/>
<source>Email (again):</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_register.cpp" line="50"/>
<source>Pronouns:</source> <source>Pronouns:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_register.cpp" line="43"/> <location filename="../src/dlg_register.cpp" line="53"/>
<source>Neutral</source> <source>Neutral</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_register.cpp" line="44"/> <location filename="../src/dlg_register.cpp" line="54"/>
<source>Masculine</source> <source>Masculine</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_register.cpp" line="45"/> <location filename="../src/dlg_register.cpp" line="55"/>
<source>Feminine</source> <source>Feminine</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_register.cpp" line="51"/> <location filename="../src/dlg_register.cpp" line="61"/>
<source>Undefined</source> <source>Undefined</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_register.cpp" line="48"/> <location filename="../src/dlg_register.cpp" line="111"/>
<location filename="../src/dlg_register.cpp" line="116"/>
<source>Registration Warning</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_register.cpp" line="111"/>
<source>Your passwords do not match, please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_register.cpp" line="116"/>
<source>Your email addresses do not match, please try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_register.cpp" line="58"/>
<source>Country:</source> <source>Country:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_register.cpp" line="59"/> <location filename="../src/dlg_register.cpp" line="67"/>
<source>Real name:</source> <source>Real name:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_register.cpp" line="90"/> <location filename="../src/dlg_register.cpp" line="102"/>
<source>Register to server</source> <source>Register to server</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
...@@ -1289,19 +1345,19 @@ Make sure to enable the &apos;token set&apos; in the &apos;Edit sets...&apos; di ...@@ -1289,19 +1345,19 @@ Make sure to enable the &apos;token set&apos; in the &apos;Edit sets...&apos; di
<context> <context>
<name>DlgSettings</name> <name>DlgSettings</name>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="948"/> <location filename="../src/dlg_settings.cpp" line="1007"/>
<location filename="../src/dlg_settings.cpp" line="954"/> <location filename="../src/dlg_settings.cpp" line="1013"/>
<location filename="../src/dlg_settings.cpp" line="960"/> <location filename="../src/dlg_settings.cpp" line="1019"/>
<source>Error</source> <source>Error</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="902"/> <location filename="../src/dlg_settings.cpp" line="961"/>
<source>Unknown Error loading card database</source> <source>Unknown Error loading card database</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="911"/> <location filename="../src/dlg_settings.cpp" line="970"/>
<source>Your card database is invalid. <source>Your card database is invalid.
Cockatrice may not function correctly with an invalid database Cockatrice may not function correctly with an invalid database
...@@ -1312,7 +1368,7 @@ Would you like to change your database location setting?</source> ...@@ -1312,7 +1368,7 @@ Would you like to change your database location setting?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="918"/> <location filename="../src/dlg_settings.cpp" line="977"/>
<source>Your card database version is too old. <source>Your card database version is too old.
This can cause problems loading card information or images This can cause problems loading card information or images
...@@ -1323,21 +1379,21 @@ Would you like to change your database location setting?</source> ...@@ -1323,21 +1379,21 @@ Would you like to change your database location setting?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="931"/> <location filename="../src/dlg_settings.cpp" line="990"/>
<source>File Error loading your card database. <source>File Error loading your card database.
Would you like to change your database location setting?</source> Would you like to change your database location setting?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="936"/> <location filename="../src/dlg_settings.cpp" line="995"/>
<source>Your card database was loaded but contains no cards. <source>Your card database was loaded but contains no cards.
Would you like to change your database location setting?</source> Would you like to change your database location setting?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="925"/> <location filename="../src/dlg_settings.cpp" line="984"/>
<source>Your card database did not finish loading <source>Your card database did not finish loading
Please file a ticket at http://github.com/Cockatrice/Cockatrice/issues with your cards.xml attached Please file a ticket at http://github.com/Cockatrice/Cockatrice/issues with your cards.xml attached
...@@ -1346,7 +1402,7 @@ Would you like to change your database location setting?</source> ...@@ -1346,7 +1402,7 @@ Would you like to change your database location setting?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="941"/> <location filename="../src/dlg_settings.cpp" line="1000"/>
<source>Unknown card database load status <source>Unknown card database load status
Please file a ticket at http://github.com/Cockatrice/Cockatrice/issues Please file a ticket at http://github.com/Cockatrice/Cockatrice/issues
...@@ -1355,50 +1411,55 @@ Would you like to change your database location setting?</source> ...@@ -1355,50 +1411,55 @@ Would you like to change your database location setting?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="954"/> <location filename="../src/dlg_settings.cpp" line="1013"/>
<source>The path to your deck directory is invalid. Would you like to go back and set the correct path?</source> <source>The path to your deck directory is invalid. Would you like to go back and set the correct path?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="960"/> <location filename="../src/dlg_settings.cpp" line="1019"/>
<source>The path to your card pictures directory is invalid. Would you like to go back and set the correct path?</source> <source>The path to your card pictures directory is invalid. Would you like to go back and set the correct path?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="969"/> <location filename="../src/dlg_settings.cpp" line="1028"/>
<source>Settings</source> <source>Settings</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="971"/> <location filename="../src/dlg_settings.cpp" line="1030"/>
<source>General</source> <source>General</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="972"/> <location filename="../src/dlg_settings.cpp" line="1031"/>
<source>Appearance</source> <source>Appearance</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="973"/> <location filename="../src/dlg_settings.cpp" line="1032"/>
<source>User Interface</source> <source>User Interface</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="974"/> <location filename="../src/dlg_settings.cpp" line="1033"/>
<source>Deck Editor</source> <source>Deck Editor</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="975"/> <location filename="../src/dlg_settings.cpp" line="1034"/>
<source>Chat</source> <source>Chat</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="976"/> <location filename="../src/dlg_settings.cpp" line="1035"/>
<source>Sound</source> <source>Sound</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../src/dlg_settings.cpp" line="1036"/>
<source>Shortcuts</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>GameSelector</name> <name>GameSelector</name>
...@@ -1411,7 +1472,7 @@ Would you like to change your database location setting?</source> ...@@ -1411,7 +1472,7 @@ Would you like to change your database location setting?</source>
<location filename="../src/gameselector.cpp" line="151"/> <location filename="../src/gameselector.cpp" line="151"/>
<location filename="../src/gameselector.cpp" line="152"/> <location filename="../src/gameselector.cpp" line="152"/>
<location filename="../src/gameselector.cpp" line="153"/> <location filename="../src/gameselector.cpp" line="153"/>
<location filename="../src/gameselector.cpp" line="183"/> <location filename="../src/gameselector.cpp" line="182"/>
<source>Error</source> <source>Error</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
...@@ -1456,47 +1517,47 @@ Would you like to change your database location setting?</source> ...@@ -1456,47 +1517,47 @@ Would you like to change your database location setting?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/gameselector.cpp" line="170"/> <location filename="../src/gameselector.cpp" line="169"/>
<source>Join game</source> <source>Join game</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/gameselector.cpp" line="170"/> <location filename="../src/gameselector.cpp" line="169"/>
<source>Password:</source> <source>Password:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/gameselector.cpp" line="183"/> <location filename="../src/gameselector.cpp" line="182"/>
<source>Please join the respective room first.</source> <source>Please join the respective room first.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/gameselector.cpp" line="199"/> <location filename="../src/gameselector.cpp" line="198"/>
<source>Games</source> <source>Games</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/gameselector.cpp" line="200"/> <location filename="../src/gameselector.cpp" line="199"/>
<source>Filter games</source> <source>&amp;Filter games</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/gameselector.cpp" line="202"/> <location filename="../src/gameselector.cpp" line="200"/>
<source>Clear filter</source> <source>C&amp;lear filter</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/gameselector.cpp" line="206"/> <location filename="../src/gameselector.cpp" line="202"/>
<source>Create</source> <source>C&amp;reate</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/gameselector.cpp" line="210"/> <location filename="../src/gameselector.cpp" line="203"/>
<source>Join</source> <source>&amp;Join</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/gameselector.cpp" line="212"/> <location filename="../src/gameselector.cpp" line="204"/>
<source>J&amp;oin as spectator</source> <source>J&amp;oin as spectator</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
...@@ -1613,107 +1674,107 @@ Would you like to change your database location setting?</source> ...@@ -1613,107 +1674,107 @@ Would you like to change your database location setting?</source>
<context> <context>
<name>GeneralSettingsPage</name> <name>GeneralSettingsPage</name>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="245"/> <location filename="../src/dlg_settings.cpp" line="248"/>
<source>Reset/Clear Downloaded Pictures</source> <source>Reset/Clear Downloaded Pictures</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="153"/> <location filename="../src/dlg_settings.cpp" line="156"/>
<location filename="../src/dlg_settings.cpp" line="163"/> <location filename="../src/dlg_settings.cpp" line="166"/>
<location filename="../src/dlg_settings.cpp" line="173"/> <location filename="../src/dlg_settings.cpp" line="176"/>
<location filename="../src/dlg_settings.cpp" line="207"/> <location filename="../src/dlg_settings.cpp" line="210"/>
<location filename="../src/dlg_settings.cpp" line="217"/> <location filename="../src/dlg_settings.cpp" line="220"/>
<source>Choose path</source> <source>Choose path</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="200"/> <location filename="../src/dlg_settings.cpp" line="203"/>
<source>Success</source> <source>Success</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="200"/> <location filename="../src/dlg_settings.cpp" line="203"/>
<source>Downloaded card pictures have been reset.</source> <source>Downloaded card pictures have been reset.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="202"/> <location filename="../src/dlg_settings.cpp" line="205"/>
<source>Error</source> <source>Error</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="202"/> <location filename="../src/dlg_settings.cpp" line="205"/>
<source>One or more downloaded card pictures could not be cleared.</source> <source>One or more downloaded card pictures could not be cleared.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="232"/> <location filename="../src/dlg_settings.cpp" line="235"/>
<source>Personal settings</source> <source>Personal settings</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="233"/> <location filename="../src/dlg_settings.cpp" line="236"/>
<source>Language:</source> <source>Language:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="234"/> <location filename="../src/dlg_settings.cpp" line="237"/>
<source>Download card pictures on the fly</source> <source>Download card pictures on the fly</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="235"/> <location filename="../src/dlg_settings.cpp" line="238"/>
<source>Download card pictures from a custom URL</source> <source>Download card pictures from a custom URL</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="243"/> <location filename="../src/dlg_settings.cpp" line="246"/>
<source>Custom Card Download URL:</source> <source>Custom Card Download URL:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="244"/> <location filename="../src/dlg_settings.cpp" line="247"/>
<source>Linking FAQ</source> <source>Linking FAQ</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="236"/> <location filename="../src/dlg_settings.cpp" line="239"/>
<source>Paths</source> <source>Paths</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="237"/> <location filename="../src/dlg_settings.cpp" line="240"/>
<source>Decks directory:</source> <source>Decks directory:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="238"/> <location filename="../src/dlg_settings.cpp" line="241"/>
<source>Replays directory:</source> <source>Replays directory:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="239"/> <location filename="../src/dlg_settings.cpp" line="242"/>
<source>Pictures directory:</source> <source>Pictures directory:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="240"/> <location filename="../src/dlg_settings.cpp" line="243"/>
<source>Card database:</source> <source>Card database:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="241"/> <location filename="../src/dlg_settings.cpp" line="244"/>
<source>Token database:</source> <source>Token database:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="242"/> <location filename="../src/dlg_settings.cpp" line="245"/>
<source>Picture cache size:</source> <source>Picture cache size:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="39"/> <location filename="../src/dlg_settings.cpp" line="42"/>
<location filename="../src/dlg_settings.cpp" line="148"/> <location filename="../src/dlg_settings.cpp" line="151"/>
<source>English</source> <source>English</source>
<translation>English</translation> <translation>English</translation>
</message> </message>
...@@ -1721,48 +1782,48 @@ Would you like to change your database location setting?</source> ...@@ -1721,48 +1782,48 @@ Would you like to change your database location setting?</source>
<context> <context>
<name>MainWindow</name> <name>MainWindow</name>
<message> <message>
<location filename="../src/window_main.cpp" line="74"/> <location filename="../src/window_main.cpp" line="75"/>
<source>There are too many concurrent connections from your address.</source> <source>There are too many concurrent connections from your address.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="85"/> <location filename="../src/window_main.cpp" line="86"/>
<source>Scheduled server shutdown.</source> <source>Scheduled server shutdown.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="76"/> <location filename="../src/window_main.cpp" line="77"/>
<source>Banned by moderator</source> <source>Banned by moderator</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="78"/> <location filename="../src/window_main.cpp" line="79"/>
<source>Expected end time: %1</source> <source>Expected end time: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="80"/> <location filename="../src/window_main.cpp" line="81"/>
<source>This ban lasts indefinitely.</source> <source>This ban lasts indefinitely.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="89"/> <location filename="../src/window_main.cpp" line="90"/>
<source>Connection closed</source> <source>Connection closed</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="89"/> <location filename="../src/window_main.cpp" line="90"/>
<source>The server has terminated your connection. <source>The server has terminated your connection.
Reason: %1</source> Reason: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="96"/> <location filename="../src/window_main.cpp" line="97"/>
<source>Scheduled server shutdown</source> <source>Scheduled server shutdown</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../src/window_main.cpp" line="94"/> <location filename="../src/window_main.cpp" line="95"/>
<source>The server is going to be restarted in %n minute(s). <source>The server is going to be restarted in %n minute(s).
All running games will be lost. All running games will be lost.
Reason for shutdown: %1</source> Reason for shutdown: %1</source>
...@@ -1772,449 +1833,473 @@ Reason for shutdown: %1</source> ...@@ -1772,449 +1833,473 @@ Reason for shutdown: %1</source>
</translation> </translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="181"/> <location filename="../src/window_main.cpp" line="182"/>
<source>Number of players</source> <source>Number of players</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="181"/> <location filename="../src/window_main.cpp" line="182"/>
<source>Please enter the number of players.</source> <source>Please enter the number of players.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="191"/> <location filename="../src/window_main.cpp" line="192"/>
<location filename="../src/window_main.cpp" line="197"/> <location filename="../src/window_main.cpp" line="198"/>
<source>Player %1</source> <source>Player %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="209"/> <location filename="../src/window_main.cpp" line="210"/>
<source>Load replay</source> <source>Load replay</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="264"/> <location filename="../src/window_main.cpp" line="265"/>
<source>About Cockatrice</source> <source>About Cockatrice</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="266"/> <location filename="../src/window_main.cpp" line="267"/>
<source>Version %1</source> <source>Version %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="272"/> <location filename="../src/window_main.cpp" line="273"/>
<source>Translators:</source> <source>Translators:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="267"/> <location filename="../src/window_main.cpp" line="268"/>
<source>Project Manager:</source> <source>Project Manager:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="86"/> <location filename="../src/window_main.cpp" line="74"/>
<location filename="../src/window_main.cpp" line="338"/> <source>The server has reached its maximum user capacity, please check back later.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="87"/>
<location filename="../src/window_main.cpp" line="345"/>
<source>Invalid username.</source> <source>Invalid username.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="133"/> <location filename="../src/window_main.cpp" line="134"/>
<location filename="../src/window_main.cpp" line="143"/> <location filename="../src/window_main.cpp" line="144"/>
<source>Success</source> <source>Success</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="133"/> <location filename="../src/window_main.cpp" line="134"/>
<source>Registration accepted. <source>Registration accepted.
Will now login.</source> Will now login.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="143"/> <location filename="../src/window_main.cpp" line="144"/>
<source>Account activation accepted. <source>Account activation accepted.
Will now login.</source> Will now login.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="268"/> <location filename="../src/window_main.cpp" line="269"/>
<source>Past Project Managers:</source> <source>Past Project Managers:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="269"/> <location filename="../src/window_main.cpp" line="270"/>
<source>Developers:</source> <source>Developers:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="270"/> <location filename="../src/window_main.cpp" line="271"/>
<source>Our Developers</source> <source>Our Developers</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="271"/> <location filename="../src/window_main.cpp" line="272"/>
<source>Help Develop!</source> <source>Help Develop!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="273"/> <location filename="../src/window_main.cpp" line="274"/>
<source>Recognition Page</source> <source>Recognition Page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="274"/> <location filename="../src/window_main.cpp" line="275"/>
<source>Help Translate!</source> <source>Help Translate!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="275"/> <location filename="../src/window_main.cpp" line="276"/>
<source>Support:</source> <source>Support:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="276"/> <location filename="../src/window_main.cpp" line="277"/>
<source>Report an Issue</source> <source>Report an Issue</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="284"/> <location filename="../src/window_main.cpp" line="285"/>
<location filename="../src/window_main.cpp" line="292"/> <location filename="../src/window_main.cpp" line="293"/>
<location filename="../src/window_main.cpp" line="295"/> <location filename="../src/window_main.cpp" line="296"/>
<location filename="../src/window_main.cpp" line="306"/> <location filename="../src/window_main.cpp" line="307"/>
<location filename="../src/window_main.cpp" line="310"/> <location filename="../src/window_main.cpp" line="311"/>
<location filename="../src/window_main.cpp" line="314"/> <location filename="../src/window_main.cpp" line="315"/>
<location filename="../src/window_main.cpp" line="330"/> <location filename="../src/window_main.cpp" line="320"/>
<location filename="../src/window_main.cpp" line="398"/> <location filename="../src/window_main.cpp" line="323"/>
<location filename="../src/window_main.cpp" line="402"/> <location filename="../src/window_main.cpp" line="337"/>
<location filename="../src/window_main.cpp" line="406"/> <location filename="../src/window_main.cpp" line="405"/>
<location filename="../src/window_main.cpp" line="409"/> <location filename="../src/window_main.cpp" line="409"/>
<location filename="../src/window_main.cpp" line="413"/>
<location filename="../src/window_main.cpp" line="416"/> <location filename="../src/window_main.cpp" line="416"/>
<location filename="../src/window_main.cpp" line="423"/> <location filename="../src/window_main.cpp" line="423"/>
<location filename="../src/window_main.cpp" line="430"/> <location filename="../src/window_main.cpp" line="430"/>
<location filename="../src/window_main.cpp" line="432"/> <location filename="../src/window_main.cpp" line="437"/>
<location filename="../src/window_main.cpp" line="719"/> <location filename="../src/window_main.cpp" line="439"/>
<location filename="../src/window_main.cpp" line="755"/> <location filename="../src/window_main.cpp" line="728"/>
<location filename="../src/window_main.cpp" line="764"/>
<source>Error</source> <source>Error</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="284"/> <location filename="../src/window_main.cpp" line="285"/>
<source>Server timeout</source> <source>Server timeout</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="292"/> <location filename="../src/window_main.cpp" line="293"/>
<source>Incorrect username or password. Please check your authentication information and try again.</source> <source>Incorrect username or password. Please check your authentication information and try again.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="295"/> <location filename="../src/window_main.cpp" line="296"/>
<source>There is already an active session using this user name. <source>There is already an active session using this user name.
Please close that session first and re-login.</source> Please close that session first and re-login.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="300"/> <location filename="../src/window_main.cpp" line="301"/>
<location filename="../src/window_main.cpp" line="392"/> <location filename="../src/window_main.cpp" line="399"/>
<source>You are banned until %1.</source> <source>You are banned until %1.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="302"/> <location filename="../src/window_main.cpp" line="303"/>
<location filename="../src/window_main.cpp" line="394"/> <location filename="../src/window_main.cpp" line="401"/>
<source>You are banned indefinitely.</source> <source>You are banned indefinitely.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="314"/> <location filename="../src/window_main.cpp" line="315"/>
<source>This server requires user registration. Do you want to register now?</source> <source>This server requires user registration. Do you want to register now?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="320"/> <location filename="../src/window_main.cpp" line="320"/>
<source>Account activation</source> <source>This server requires client ID&apos;s. Your client is either failing to generate an ID or you are running a modified client.
Please close and reopen your client to try again.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="320"/> <location filename="../src/window_main.cpp" line="323"/>
<source>Your account has not been activated yet. <source>An internal error has occurred, please try closing and reopening your client and try again. If the error persists try updating your client to the most recent build and if need be contact your software provider.</source>
You need to provide the activation token received in the activation email</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="330"/> <location filename="../src/window_main.cpp" line="327"/>
<location filename="../src/window_main.cpp" line="409"/> <source>Account activation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="337"/>
<source>Unknown login error: %1</source> <source>Unknown login error: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="342"/> <location filename="../src/window_main.cpp" line="337"/>
<location filename="../src/window_main.cpp" line="416"/>
<source>
This usually means that your client version is out of date, and the server sent a reply your client doesn&apos;t understand.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="349"/>
<source>Your username must respect these rules:</source> <source>Your username must respect these rules:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="344"/> <location filename="../src/window_main.cpp" line="351"/>
<source>is %1 - %2 characters long</source> <source>is %1 - %2 characters long</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="345"/> <location filename="../src/window_main.cpp" line="352"/>
<source>can %1 contain lowercase characters</source> <source>can %1 contain lowercase characters</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="345"/> <location filename="../src/window_main.cpp" line="352"/>
<location filename="../src/window_main.cpp" line="346"/> <location filename="../src/window_main.cpp" line="353"/>
<location filename="../src/window_main.cpp" line="347"/> <location filename="../src/window_main.cpp" line="354"/>
<location filename="../src/window_main.cpp" line="360"/> <location filename="../src/window_main.cpp" line="367"/>
<source>NOT</source> <source>NOT</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="346"/> <location filename="../src/window_main.cpp" line="353"/>
<source>can %1 contain uppercase characters</source> <source>can %1 contain uppercase characters</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="347"/> <location filename="../src/window_main.cpp" line="354"/>
<source>can %1 contain numeric characters</source> <source>can %1 contain numeric characters</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="351"/> <location filename="../src/window_main.cpp" line="358"/>
<source>can contain the following punctuation: %1</source> <source>can contain the following punctuation: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="360"/> <location filename="../src/window_main.cpp" line="367"/>
<source>first character can %1 be a punctuation mark</source> <source>first character can %1 be a punctuation mark</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="365"/> <location filename="../src/window_main.cpp" line="372"/>
<source>You may only use A-Z, a-z, 0-9, _, ., and - in your username.</source> <source>You may only use A-Z, a-z, 0-9, _, ., and - in your username.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="375"/> <location filename="../src/window_main.cpp" line="382"/>
<location filename="../src/window_main.cpp" line="378"/> <location filename="../src/window_main.cpp" line="385"/>
<location filename="../src/window_main.cpp" line="381"/> <location filename="../src/window_main.cpp" line="388"/>
<location filename="../src/window_main.cpp" line="384"/> <location filename="../src/window_main.cpp" line="391"/>
<location filename="../src/window_main.cpp" line="387"/> <location filename="../src/window_main.cpp" line="394"/>
<source>Registration denied</source> <source>Registration denied</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="375"/> <location filename="../src/window_main.cpp" line="382"/>
<source>Registration is currently disabled on this server</source> <source>Registration is currently disabled on this server</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="378"/> <location filename="../src/window_main.cpp" line="385"/>
<source>There is already an existing account with the same user name.</source> <source>There is already an existing account with the same user name.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="381"/> <location filename="../src/window_main.cpp" line="388"/>
<source>It&apos;s mandatory to specify a valid email address when registering.</source> <source>It&apos;s mandatory to specify a valid email address when registering.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="384"/> <location filename="../src/window_main.cpp" line="391"/>
<source>Too many registration attempts from your IP address.</source> <source>Too many registration attempts from your IP address.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="387"/> <location filename="../src/window_main.cpp" line="394"/>
<source>Password too short.</source> <source>Password too short.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="406"/> <location filename="../src/window_main.cpp" line="413"/>
<source>Registration failed for a technical problem on the server.</source> <source>Registration failed for a technical problem on the server.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="416"/> <location filename="../src/window_main.cpp" line="416"/>
<source>Account activation failed</source> <source>Unknown registration error: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="423"/> <location filename="../src/window_main.cpp" line="423"/>
<source>Socket error: %1</source> <source>Account activation failed</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="430"/> <location filename="../src/window_main.cpp" line="430"/>
<source>Socket error: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="437"/>
<source>You are trying to connect to an obsolete server. Please downgrade your Cockatrice version or connect to a suitable server. <source>You are trying to connect to an obsolete server. Please downgrade your Cockatrice version or connect to a suitable server.
Local version is %1, remote version is %2.</source> Local version is %1, remote version is %2.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="432"/> <location filename="../src/window_main.cpp" line="439"/>
<source>Your Cockatrice client is obsolete. Please update your Cockatrice version. <source>Your Cockatrice client is obsolete. Please update your Cockatrice version.
Local version is %1, remote version is %2.</source> Local version is %1, remote version is %2.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="438"/> <location filename="../src/window_main.cpp" line="445"/>
<source>Connecting to %1...</source> <source>Connecting to %1...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="439"/> <location filename="../src/window_main.cpp" line="446"/>
<source>Registering to %1 as %2...</source> <source>Registering to %1 as %2...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="440"/> <location filename="../src/window_main.cpp" line="447"/>
<source>Disconnected</source> <source>Disconnected</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="441"/> <location filename="../src/window_main.cpp" line="448"/>
<source>Connected, logging in at %1</source> <source>Connected, logging in at %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="442"/> <location filename="../src/window_main.cpp" line="458"/>
<source>Logged in as %1 at %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="451"/>
<source>&amp;Connect...</source> <source>&amp;Connect...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="452"/> <location filename="../src/window_main.cpp" line="459"/>
<source>&amp;Disconnect</source> <source>&amp;Disconnect</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="453"/> <location filename="../src/window_main.cpp" line="460"/>
<source>Start &amp;local game...</source> <source>Start &amp;local game...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="454"/> <location filename="../src/window_main.cpp" line="461"/>
<source>&amp;Watch replay...</source> <source>&amp;Watch replay...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="455"/> <location filename="../src/window_main.cpp" line="462"/>
<source>&amp;Deck editor</source> <source>&amp;Deck editor</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="456"/> <location filename="../src/window_main.cpp" line="463"/>
<source>&amp;Full screen</source> <source>&amp;Full screen</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="458"/> <location filename="../src/window_main.cpp" line="464"/>
<source>&amp;Register to server...</source> <source>&amp;Register to server...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="459"/> <location filename="../src/window_main.cpp" line="465"/>
<source>&amp;Settings...</source> <source>&amp;Settings...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="460"/> <location filename="../src/window_main.cpp" line="466"/>
<location filename="../src/window_main.cpp" line="625"/> <location filename="../src/window_main.cpp" line="634"/>
<source>&amp;Exit</source> <source>&amp;Exit</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="463"/> <location filename="../src/window_main.cpp" line="469"/>
<source>A&amp;ctions</source> <source>A&amp;ctions</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="465"/> <location filename="../src/window_main.cpp" line="471"/>
<source>&amp;Cockatrice</source> <source>&amp;Cockatrice</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="467"/> <location filename="../src/window_main.cpp" line="474"/>
<source>&amp;About Cockatrice</source> <source>&amp;About Cockatrice</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="468"/> <location filename="../src/window_main.cpp" line="475"/>
<source>&amp;Help</source> <source>&amp;Help</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="469"/> <location filename="../src/window_main.cpp" line="476"/>
<source>Check for card updates...</source> <source>Check for card updates...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="685"/> <location filename="../src/window_main.cpp" line="694"/>
<source>A card database update is already running.</source> <source>A card database update is already running.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="719"/> <location filename="../src/window_main.cpp" line="728"/>
<source>Unable to run the card database updater: </source> <source>Unable to run the card database updater: </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="755"/> <location filename="../src/window_main.cpp" line="764"/>
<source>The card database updater exited with an error: %1</source> <source>The card database updater exited with an error: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="763"/> <location filename="../src/window_main.cpp" line="772"/>
<source>Update completed successfully. Cockatrice will now reload the card database.</source> <source>Update completed successfully. Cockatrice will now reload the card database.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="685"/> <location filename="../src/window_main.cpp" line="694"/>
<location filename="../src/window_main.cpp" line="763"/> <location filename="../src/window_main.cpp" line="772"/>
<source>Information</source> <source>Information</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="277"/> <location filename="../src/window_main.cpp" line="278"/>
<source>Troubleshooting</source> <source>Troubleshooting</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="278"/> <location filename="../src/window_main.cpp" line="279"/>
<source>F.A.Q.</source> <source>F.A.Q.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="732"/> <location filename="../src/window_main.cpp" line="327"/>
<source>Your account has not been activated yet.
You need to provide the activation token received in the activation email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/window_main.cpp" line="741"/>
<source>failed to start.</source> <source>failed to start.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="735"/> <location filename="../src/window_main.cpp" line="744"/>
<source>crashed.</source> <source>crashed.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="738"/> <location filename="../src/window_main.cpp" line="747"/>
<source>timed out.</source> <source>timed out.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="741"/> <location filename="../src/window_main.cpp" line="750"/>
<source>write error.</source> <source>write error.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="744"/> <location filename="../src/window_main.cpp" line="753"/>
<source>read error.</source> <source>read error.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="748"/> <location filename="../src/window_main.cpp" line="757"/>
<source>unknown error.</source> <source>unknown error.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
...@@ -3487,62 +3572,74 @@ Local version is %1, remote version is %2.</source> ...@@ -3487,62 +3572,74 @@ Local version is %1, remote version is %2.</source>
<context> <context>
<name>MessagesSettingsPage</name> <name>MessagesSettingsPage</name>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="690"/> <location filename="../src/dlg_settings.cpp" line="739"/>
<source>Chat settings</source> <source>Chat settings</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="691"/> <location filename="../src/dlg_settings.cpp" line="740"/>
<source>Custom alert words</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="741"/>
<source>Enable chat mentions</source> <source>Enable chat mentions</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="692"/> <location filename="../src/dlg_settings.cpp" line="742"/>
<source>Enable mention completer</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="743"/>
<source>In-game message macros</source> <source>In-game message macros</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="693"/> <location filename="../src/dlg_settings.cpp" line="744"/>
<source>Ignore unregistered users in main chat</source> <source>Ignore chat room messages sent by unregistered users</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="694"/> <location filename="../src/dlg_settings.cpp" line="745"/>
<source>Ignore chat room messages sent by unregistered users.</source> <source>Ignore private messages sent by unregistered users</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="695"/> <location filename="../src/dlg_settings.cpp" line="748"/>
<source>Ignore private messages sent by unregistered users.</source> <source>Enable desktop notifications for private messages</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="696"/> <location filename="../src/dlg_settings.cpp" line="752"/>
<source>Invert text color</source> <source>Separate words with a space, alphanumeric characters only</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="697"/> <location filename="../src/dlg_settings.cpp" line="746"/>
<source>Enable desktop notifications for private messages.</source> <location filename="../src/dlg_settings.cpp" line="747"/>
<source>Invert text color</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="698"/> <location filename="../src/dlg_settings.cpp" line="749"/>
<source>Enable desktop notification for mentions.</source> <source>Enable desktop notification for mentions.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="699"/> <location filename="../src/dlg_settings.cpp" line="750"/>
<location filename="../src/dlg_settings.cpp" line="751"/>
<source>(Color is hexadecimal)</source> <source>(Color is hexadecimal)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="673"/> <location filename="../src/dlg_settings.cpp" line="722"/>
<source>Add message</source> <source>Add message</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="673"/> <location filename="../src/dlg_settings.cpp" line="722"/>
<source>Message:</source> <source>Message:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
...@@ -3608,307 +3705,307 @@ Local version is %1, remote version is %2.</source> ...@@ -3608,307 +3705,307 @@ Local version is %1, remote version is %2.</source>
<context> <context>
<name>Player</name> <name>Player</name>
<message> <message>
<location filename="../src/player.cpp" line="642"/> <location filename="../src/player.cpp" line="645"/>
<source>&amp;View library</source> <source>&amp;View library</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="655"/> <location filename="../src/player.cpp" line="658"/>
<source>Move top cards to &amp;graveyard...</source> <source>Move top cards to &amp;graveyard...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="643"/> <location filename="../src/player.cpp" line="646"/>
<source>View &amp;top cards of library...</source> <source>View &amp;top cards of library...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="617"/> <location filename="../src/player.cpp" line="619"/>
<source>&amp;View graveyard</source> <source>&amp;View graveyard</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="648"/> <location filename="../src/player.cpp" line="651"/>
<source>&amp;View sideboard</source> <source>&amp;View sideboard</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="619"/> <location filename="../src/player.cpp" line="622"/>
<source>Player &quot;%1&quot;</source> <source>Player &quot;%1&quot;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="633"/> <location filename="../src/player.cpp" line="636"/>
<location filename="../src/player.cpp" line="639"/> <location filename="../src/player.cpp" line="642"/>
<location filename="../src/player.cpp" line="660"/> <location filename="../src/player.cpp" line="663"/>
<location filename="../src/player.cpp" line="726"/> <location filename="../src/player.cpp" line="725"/>
<source>&amp;Hand</source> <source>&amp;Hand</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="661"/> <location filename="../src/player.cpp" line="664"/>
<source>&amp;Reveal hand to...</source> <source>&amp;Reveal hand to...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="662"/> <location filename="../src/player.cpp" line="665"/>
<source>Reveal r&amp;andom card to...</source> <source>Reveal r&amp;andom card to...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="664"/> <location filename="../src/player.cpp" line="667"/>
<source>&amp;Library</source> <source>&amp;Library</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="620"/> <location filename="../src/player.cpp" line="623"/>
<location filename="../src/player.cpp" line="627"/> <location filename="../src/player.cpp" line="630"/>
<location filename="../src/player.cpp" line="640"/> <location filename="../src/player.cpp" line="643"/>
<location filename="../src/player.cpp" line="727"/> <location filename="../src/player.cpp" line="726"/>
<source>&amp;Graveyard</source> <source>&amp;Graveyard</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="663"/> <location filename="../src/player.cpp" line="666"/>
<source>&amp;Sideboard</source> <source>&amp;Sideboard</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="715"/> <location filename="../src/player.cpp" line="709"/>
<source>Red</source> <source>Red</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="716"/> <location filename="../src/player.cpp" line="710"/>
<source>Yellow</source> <source>Yellow</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="717"/> <location filename="../src/player.cpp" line="711"/>
<source>Green</source> <source>Green</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="833"/> <location filename="../src/player.cpp" line="885"/>
<source>View top cards of library</source> <source>View top cards of library</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="833"/> <location filename="../src/player.cpp" line="885"/>
<source>Number of cards:</source> <source>Number of cards:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="649"/> <location filename="../src/player.cpp" line="652"/>
<source>&amp;Draw card</source> <source>&amp;Draw card</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="530"/> <location filename="../src/player.cpp" line="532"/>
<source>Reveal top cards of library</source> <source>Reveal top cards of library</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="530"/> <location filename="../src/player.cpp" line="532"/>
<source>Number of cards: (max. %1)</source> <source>Number of cards: (max. %1)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="618"/> <location filename="../src/player.cpp" line="620"/>
<source>&amp;View exile</source> <source>&amp;View exile</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="621"/> <location filename="../src/player.cpp" line="624"/>
<location filename="../src/player.cpp" line="628"/> <location filename="../src/player.cpp" line="631"/>
<location filename="../src/player.cpp" line="634"/> <location filename="../src/player.cpp" line="637"/>
<location filename="../src/player.cpp" line="729"/> <location filename="../src/player.cpp" line="727"/>
<source>&amp;Exile</source> <source>&amp;Exile</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="645"/> <location filename="../src/player.cpp" line="648"/>
<source>Reveal t&amp;op cards to...</source> <source>Reveal t&amp;op cards to...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="650"/> <location filename="../src/player.cpp" line="653"/>
<source>D&amp;raw cards...</source> <source>D&amp;raw cards...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="652"/> <location filename="../src/player.cpp" line="655"/>
<source>Take &amp;mulligan</source> <source>Take &amp;mulligan</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="653"/> <location filename="../src/player.cpp" line="656"/>
<source>&amp;Shuffle</source> <source>&amp;Shuffle</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="665"/> <location filename="../src/player.cpp" line="668"/>
<source>&amp;Counters</source> <source>&amp;Counters</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="667"/> <location filename="../src/player.cpp" line="670"/>
<source>&amp;Untap all permanents</source> <source>&amp;Untap all permanents</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="668"/> <location filename="../src/player.cpp" line="671"/>
<source>R&amp;oll die...</source> <source>R&amp;oll die...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="669"/> <location filename="../src/player.cpp" line="672"/>
<source>&amp;Create token...</source> <source>&amp;Create token...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="670"/> <location filename="../src/player.cpp" line="673"/>
<source>C&amp;reate another token</source> <source>C&amp;reate another token</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="672"/> <location filename="../src/player.cpp" line="675"/>
<source>S&amp;ay</source> <source>S&amp;ay</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="624"/> <location filename="../src/player.cpp" line="627"/>
<source>&amp;Move hand to...</source> <source>&amp;Move hand to...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="625"/> <location filename="../src/player.cpp" line="628"/>
<location filename="../src/player.cpp" line="631"/> <location filename="../src/player.cpp" line="634"/>
<location filename="../src/player.cpp" line="637"/> <location filename="../src/player.cpp" line="640"/>
<location filename="../src/player.cpp" line="724"/> <location filename="../src/player.cpp" line="723"/>
<source>&amp;Top of library</source> <source>&amp;Top of library</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="626"/> <location filename="../src/player.cpp" line="629"/>
<location filename="../src/player.cpp" line="632"/> <location filename="../src/player.cpp" line="635"/>
<location filename="../src/player.cpp" line="638"/> <location filename="../src/player.cpp" line="641"/>
<location filename="../src/player.cpp" line="725"/> <location filename="../src/player.cpp" line="724"/>
<source>&amp;Bottom of library</source> <source>&amp;Bottom of library</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="630"/> <location filename="../src/player.cpp" line="633"/>
<source>&amp;Move graveyard to...</source> <source>&amp;Move graveyard to...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="636"/> <location filename="../src/player.cpp" line="639"/>
<source>&amp;Move exile to...</source> <source>&amp;Move exile to...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="644"/> <location filename="../src/player.cpp" line="647"/>
<source>Reveal &amp;library to...</source> <source>Reveal &amp;library to...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="646"/> <location filename="../src/player.cpp" line="649"/>
<source>&amp;Always reveal top card</source> <source>&amp;Always reveal top card</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="647"/> <location filename="../src/player.cpp" line="650"/>
<source>O&amp;pen deck in deck editor</source> <source>O&amp;pen deck in deck editor</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="651"/> <location filename="../src/player.cpp" line="654"/>
<source>&amp;Undo last draw</source> <source>&amp;Undo last draw</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="654"/> <location filename="../src/player.cpp" line="657"/>
<source>Play top card &amp;face down</source> <source>Play top card &amp;face down</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="656"/> <location filename="../src/player.cpp" line="659"/>
<source>Move top cards to &amp;exile...</source> <source>Move top cards to &amp;exile...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="657"/> <location filename="../src/player.cpp" line="660"/>
<source>Put top card on &amp;bottom</source> <source>Put top card on &amp;bottom</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="658"/> <location filename="../src/player.cpp" line="661"/>
<source>Put bottom card &amp;in graveyard</source> <source>Put bottom card &amp;in graveyard</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="671"/> <location filename="../src/player.cpp" line="674"/>
<source>Cr&amp;eate predefined token</source> <source>Cr&amp;eate predefined token</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="678"/> <location filename="../src/player.cpp" line="681"/>
<source>C&amp;ard</source> <source>C&amp;ard</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="681"/> <location filename="../src/player.cpp" line="684"/>
<source>&amp;All players</source> <source>&amp;All players</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="684"/> <location filename="../src/player.cpp" line="687"/>
<source>&amp;Play</source> <source>&amp;Play</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="685"/> <location filename="../src/player.cpp" line="688"/>
<source>&amp;Hide</source> <source>&amp;Hide</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="686"/> <location filename="../src/player.cpp" line="689"/>
<source>Play &amp;Face Down</source> <source>Play &amp;Face Down</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="688"/> <location filename="../src/player.cpp" line="690"/>
<source>&amp;Tap</source> <source>&amp;Tap</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="689"/> <location filename="../src/player.cpp" line="691"/>
<source>&amp;Untap</source> <source>&amp;Untap</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="690"/> <location filename="../src/player.cpp" line="692"/>
<source>Toggle &amp;normal untapping</source> <source>Toggle &amp;normal untapping</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="691"/> <location filename="../src/player.cpp" line="693"/>
<source>&amp;Flip</source> <source>&amp;Flip</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="692"/> <location filename="../src/player.cpp" line="694"/>
<source>&amp;Peek at card face</source> <source>&amp;Peek at card face</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="693"/> <location filename="../src/player.cpp" line="695"/>
<source>&amp;Clone</source> <source>&amp;Clone</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="695"/> <location filename="../src/player.cpp" line="696"/>
<source>Attac&amp;h to card...</source> <source>Attac&amp;h to card...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
...@@ -3928,115 +4025,115 @@ Local version is %1, remote version is %2.</source> ...@@ -3928,115 +4025,115 @@ Local version is %1, remote version is %2.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="701"/> <location filename="../src/player.cpp" line="700"/>
<source>&amp;Decrease power</source> <source>&amp;Decrease power</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="703"/> <location filename="../src/player.cpp" line="701"/>
<source>I&amp;ncrease toughness</source> <source>I&amp;ncrease toughness</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="705"/> <location filename="../src/player.cpp" line="702"/>
<source>D&amp;ecrease toughness</source> <source>D&amp;ecrease toughness</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="707"/> <location filename="../src/player.cpp" line="703"/>
<source>In&amp;crease power and toughness</source> <source>In&amp;crease power and toughness</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="709"/> <location filename="../src/player.cpp" line="704"/>
<source>Dec&amp;rease power and toughness</source> <source>Dec&amp;rease power and toughness</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="711"/> <location filename="../src/player.cpp" line="705"/>
<source>Set &amp;power and toughness...</source> <source>Set &amp;power and toughness...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="713"/> <location filename="../src/player.cpp" line="706"/>
<source>&amp;Set annotation...</source> <source>&amp;Set annotation...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="719"/> <location filename="../src/player.cpp" line="714"/>
<source>&amp;Add counter (%1)</source> <source>&amp;Add counter (%1)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="721"/> <location filename="../src/player.cpp" line="717"/>
<source>&amp;Remove counter (%1)</source> <source>&amp;Remove counter (%1)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="723"/> <location filename="../src/player.cpp" line="720"/>
<source>&amp;Set counters (%1)...</source> <source>&amp;Set counters (%1)...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="894"/> <location filename="../src/player.cpp" line="946"/>
<source>Draw cards</source> <source>Draw cards</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="894"/> <location filename="../src/player.cpp" line="946"/>
<location filename="../src/player.cpp" line="915"/> <location filename="../src/player.cpp" line="967"/>
<location filename="../src/player.cpp" line="944"/> <location filename="../src/player.cpp" line="996"/>
<location filename="../src/player.cpp" line="2202"/> <location filename="../src/player.cpp" line="2254"/>
<source>Number:</source> <source>Number:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="915"/> <location filename="../src/player.cpp" line="967"/>
<source>Move top cards to grave</source> <source>Move top cards to grave</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="944"/> <location filename="../src/player.cpp" line="996"/>
<source>Move top cards to exile</source> <source>Move top cards to exile</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="1025"/> <location filename="../src/player.cpp" line="1077"/>
<source>Roll die</source> <source>Roll die</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="1025"/> <location filename="../src/player.cpp" line="1077"/>
<source>Number of sides:</source> <source>Number of sides:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="2048"/> <location filename="../src/player.cpp" line="2100"/>
<source>Set power/toughness</source> <source>Set power/toughness</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="2048"/> <location filename="../src/player.cpp" line="2100"/>
<source>Please enter the new PT:</source> <source>Please enter the new PT:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="2120"/> <location filename="../src/player.cpp" line="2172"/>
<source>Set annotation</source> <source>Set annotation</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="2120"/> <location filename="../src/player.cpp" line="2172"/>
<source>Please enter the new annotation:</source> <source>Please enter the new annotation:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="2202"/> <location filename="../src/player.cpp" line="2254"/>
<source>Set counters</source> <source>Set counters</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/player.cpp" line="2300"/> <location filename="../src/player.cpp" line="2358"/>
<source>Cr&amp;eate related card</source> <source>Cr&amp;eate related card</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
...@@ -4044,37 +4141,37 @@ Local version is %1, remote version is %2.</source> ...@@ -4044,37 +4141,37 @@ Local version is %1, remote version is %2.</source>
<context> <context>
<name>QMenuBar</name> <name>QMenuBar</name>
<message> <message>
<location filename="../src/window_main.cpp" line="509"/> <location filename="../src/window_main.cpp" line="515"/>
<source>Services</source> <source>Services</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="510"/> <location filename="../src/window_main.cpp" line="516"/>
<source>Hide %1</source> <source>Hide %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="511"/> <location filename="../src/window_main.cpp" line="517"/>
<source>Hide Others</source> <source>Hide Others</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="512"/> <location filename="../src/window_main.cpp" line="518"/>
<source>Show All</source> <source>Show All</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="513"/> <location filename="../src/window_main.cpp" line="519"/>
<source>Preferences...</source> <source>Preferences...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="514"/> <location filename="../src/window_main.cpp" line="520"/>
<source>Quit %1</source> <source>Quit %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="515"/> <location filename="../src/window_main.cpp" line="521"/>
<source>About %1</source> <source>About %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
...@@ -4082,7 +4179,7 @@ Local version is %1, remote version is %2.</source> ...@@ -4082,7 +4179,7 @@ Local version is %1, remote version is %2.</source>
<context> <context>
<name>QObject</name> <name>QObject</name>
<message> <message>
<location filename="../src/window_main.cpp" line="211"/> <location filename="../src/window_main.cpp" line="212"/>
<source>Cockatrice replays (*.cor)</source> <source>Cockatrice replays (*.cor)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
...@@ -4151,35 +4248,64 @@ Local version is %1, remote version is %2.</source> ...@@ -4151,35 +4248,64 @@ Local version is %1, remote version is %2.</source>
<context> <context>
<name>RoomSelector</name> <name>RoomSelector</name>
<message> <message>
<location filename="../src/tab_server.cpp" line="60"/> <location filename="../src/tab_server.cpp" line="61"/>
<source>Rooms</source> <source>Rooms</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_server.cpp" line="61"/> <location filename="../src/tab_server.cpp" line="62"/>
<source>Joi&amp;n</source> <source>Joi&amp;n</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_server.cpp" line="64"/> <location filename="../src/tab_server.cpp" line="65"/>
<source>Room</source> <source>Room</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_server.cpp" line="65"/> <location filename="../src/tab_server.cpp" line="66"/>
<source>Description</source> <source>Description</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_server.cpp" line="66"/> <location filename="../src/tab_server.cpp" line="67"/>
<source>Permissions</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="68"/>
<source>Players</source> <source>Players</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_server.cpp" line="67"/> <location filename="../src/tab_server.cpp" line="69"/>
<source>Games</source> <source>Games</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../src/tab_server.cpp" line="143"/>
<location filename="../src/tab_server.cpp" line="145"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="143"/>
<source>You do not have the proper permission to join this room.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_server.cpp" line="145"/>
<source>Failed to join the room due to an unknown error.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SequenceEdit</name>
<message>
<location filename="../src/sequenceEdit/sequenceedit.cpp" line="142"/>
<source>Shortcut already in use</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>SetsModel</name> <name>SetsModel</name>
...@@ -4230,37 +4356,37 @@ Local version is %1, remote version is %2.</source> ...@@ -4230,37 +4356,37 @@ Local version is %1, remote version is %2.</source>
<context> <context>
<name>SoundSettingsPage</name> <name>SoundSettingsPage</name>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="773"/> <location filename="../src/dlg_settings.cpp" line="826"/>
<source>Choose path</source> <source>Choose path</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="782"/> <location filename="../src/dlg_settings.cpp" line="835"/>
<source>Enable &amp;sounds</source> <source>Enable &amp;sounds</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="783"/> <location filename="../src/dlg_settings.cpp" line="836"/>
<source>Path to sounds directory:</source> <source>Path to sounds directory:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="784"/> <location filename="../src/dlg_settings.cpp" line="837"/>
<source>Test system sound engine</source> <source>Test system sound engine</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="785"/> <location filename="../src/dlg_settings.cpp" line="838"/>
<source>Sound settings</source> <source>Sound settings</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="787"/> <location filename="../src/dlg_settings.cpp" line="840"/>
<source>Master volume requires QT5</source> <source>Master volume requires QT5</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="789"/> <location filename="../src/dlg_settings.cpp" line="842"/>
<source>Master volume</source> <source>Master volume</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
...@@ -4316,184 +4442,219 @@ Local version is %1, remote version is %2.</source> ...@@ -4316,184 +4442,219 @@ Local version is %1, remote version is %2.</source>
<context> <context>
<name>TabDeckEditor</name> <name>TabDeckEditor</name>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="341"/> <location filename="../src/tab_deck_editor.cpp" line="567"/>
<source>&amp;Print deck...</source> <source>&amp;Print deck...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="344"/> <location filename="../src/tab_deck_editor.cpp" line="571"/>
<source>&amp;Close</source> <source>&amp;Close</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="360"/> <location filename="../src/tab_deck_editor.cpp" line="585"/>
<source>&amp;Edit sets...</source> <source>&amp;Edit sets...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="323"/> <location filename="../src/tab_deck_editor.cpp" line="594"/>
<source>Filters</source> <source>Filters</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="324"/> <location filename="../src/tab_deck_editor.cpp" line="551"/>
<source>&amp;Clear all filters</source> <source>&amp;Clear all filters</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="325"/> <location filename="../src/tab_deck_editor.cpp" line="552"/>
<source>Delete selected</source> <source>Delete selected</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="328"/> <location filename="../src/tab_deck_editor.cpp" line="554"/>
<source>Deck &amp;name:</source> <source>Deck &amp;name:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="329"/> <location filename="../src/tab_deck_editor.cpp" line="555"/>
<source>&amp;Comments:</source> <source>&amp;Comments:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="330"/> <location filename="../src/tab_deck_editor.cpp" line="556"/>
<source>Hash:</source> <source>Hash:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="335"/> <location filename="../src/tab_deck_editor.cpp" line="561"/>
<source>&amp;New deck</source> <source>&amp;New deck</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="336"/> <location filename="../src/tab_deck_editor.cpp" line="562"/>
<source>&amp;Load deck...</source> <source>&amp;Load deck...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="337"/> <location filename="../src/tab_deck_editor.cpp" line="563"/>
<source>&amp;Save deck</source> <source>&amp;Save deck</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="338"/> <location filename="../src/tab_deck_editor.cpp" line="564"/>
<source>Save deck &amp;as...</source> <source>Save deck &amp;as...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="339"/> <location filename="../src/tab_deck_editor.cpp" line="565"/>
<source>Load deck from cl&amp;ipboard...</source> <source>Load deck from cl&amp;ipboard...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="340"/> <location filename="../src/tab_deck_editor.cpp" line="566"/>
<source>Save deck to clip&amp;board</source> <source>Save deck to clip&amp;board</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="342"/> <location filename="../src/tab_deck_editor.cpp" line="568"/>
<source>&amp;Analyze deck on deckstats.net</source> <source>&amp;Analyze deck on deckstats.net</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="343"/> <location filename="../src/tab_deck_editor.cpp" line="569"/>
<source>Open custom image folder</source> <source>Open custom image folder</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="347"/> <location filename="../src/tab_deck_editor.cpp" line="570"/>
<source>Open custom sets folder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_deck_editor.cpp" line="573"/>
<source>Add card to &amp;maindeck</source> <source>Add card to &amp;maindeck</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="348"/> <location filename="../src/tab_deck_editor.cpp" line="574"/>
<source>Add card to &amp;sideboard</source> <source>Add card to &amp;sideboard</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="357"/> <location filename="../src/tab_deck_editor.cpp" line="582"/>
<source>&amp;Deck Editor</source> <source>&amp;Deck Editor</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="358"/> <location filename="../src/tab_deck_editor.cpp" line="583"/>
<source>C&amp;ard Database</source> <source>C&amp;ard Database</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="819"/> <location filename="../src/tab_deck_editor.cpp" line="588"/>
<source>Show/Hide card information</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_deck_editor.cpp" line="589"/>
<source>Show/Hide deck</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_deck_editor.cpp" line="590"/>
<source>Show/Hide filters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_deck_editor.cpp" line="591"/>
<source>Reset layout</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_deck_editor.cpp" line="592"/>
<source>Card Info</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_deck_editor.cpp" line="593"/>
<source>Deck</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_deck_editor.cpp" line="1103"/>
<source>Welcome</source> <source>Welcome</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="819"/> <location filename="../src/tab_deck_editor.cpp" line="1103"/>
<source>Hi! It seems like you&apos;re running this version of Cockatrice for the first time. <source>Hi! It seems like you&apos;re running this version of Cockatrice for the first time.
All the sets in the card database have been enabled. All the sets in the card database have been enabled.
Read more about changing the set order or disabling specific sets and consequent effects in the &quot;Edit Sets&quot; window.</source> Read more about changing the set order or disabling specific sets and consequent effects in the &quot;Edit Sets&quot; window.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="350"/> <location filename="../src/tab_deck_editor.cpp" line="576"/>
<source>&amp;Remove row</source> <source>&amp;Remove row</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="352"/> <location filename="../src/tab_deck_editor.cpp" line="578"/>
<source>&amp;Increment number</source> <source>&amp;Increment number</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="354"/> <location filename="../src/tab_deck_editor.cpp" line="580"/>
<source>&amp;Decrement number</source> <source>&amp;Decrement number</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="361"/> <location filename="../src/tab_deck_editor.cpp" line="586"/>
<source>Edit &amp;tokens...</source> <source>Edit &amp;tokens...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="366"/> <location filename="../src/tab_deck_editor.cpp" line="599"/>
<source>Deck: %1</source> <source>Deck: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="414"/> <location filename="../src/tab_deck_editor.cpp" line="647"/>
<source>Are you sure?</source> <source>Are you sure?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="415"/> <location filename="../src/tab_deck_editor.cpp" line="648"/>
<source>The decklist has been modified. <source>The decklist has been modified.
Do you want to save the changes?</source> Do you want to save the changes?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="448"/> <location filename="../src/tab_deck_editor.cpp" line="681"/>
<source>Load deck</source> <source>Load deck</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="467"/> <location filename="../src/tab_deck_editor.cpp" line="700"/>
<location filename="../src/tab_deck_editor.cpp" line="491"/> <location filename="../src/tab_deck_editor.cpp" line="724"/>
<location filename="../src/tab_deck_editor.cpp" line="511"/> <location filename="../src/tab_deck_editor.cpp" line="744"/>
<source>Error</source> <source>Error</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="467"/> <location filename="../src/tab_deck_editor.cpp" line="700"/>
<source>The deck could not be saved.</source> <source>The deck could not be saved.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="491"/> <location filename="../src/tab_deck_editor.cpp" line="724"/>
<location filename="../src/tab_deck_editor.cpp" line="511"/> <location filename="../src/tab_deck_editor.cpp" line="744"/>
<source>The deck could not be saved. <source>The deck could not be saved.
Please check that the directory is writable and try again.</source> Please check that the directory is writable and try again.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_deck_editor.cpp" line="497"/> <location filename="../src/tab_deck_editor.cpp" line="730"/>
<source>Save deck</source> <source>Save deck</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
...@@ -4590,97 +4751,97 @@ Please enter a name:</source> ...@@ -4590,97 +4751,97 @@ Please enter a name:</source>
<context> <context>
<name>TabGame</name> <name>TabGame</name>
<message> <message>
<location filename="../src/tab_game.cpp" line="542"/> <location filename="../src/tab_game.cpp" line="605"/>
<source>&amp;Phases</source> <source>&amp;Phases</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_game.cpp" line="545"/> <location filename="../src/tab_game.cpp" line="608"/>
<source>&amp;Game</source> <source>&amp;Game</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_game.cpp" line="547"/> <location filename="../src/tab_game.cpp" line="610"/>
<source>Next &amp;phase</source> <source>Next &amp;phase</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_game.cpp" line="551"/> <location filename="../src/tab_game.cpp" line="613"/>
<source>Next &amp;turn</source> <source>Next &amp;turn</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_game.cpp" line="555"/> <location filename="../src/tab_game.cpp" line="616"/>
<source>&amp;Remove all local arrows</source> <source>&amp;Remove all local arrows</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_game.cpp" line="559"/> <location filename="../src/tab_game.cpp" line="619"/>
<source>Rotate View Cl&amp;ockwise</source> <source>Rotate View Cl&amp;ockwise</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_game.cpp" line="563"/> <location filename="../src/tab_game.cpp" line="622"/>
<source>Rotate View Co&amp;unterclockwise</source> <source>Rotate View Co&amp;unterclockwise</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_game.cpp" line="567"/> <location filename="../src/tab_game.cpp" line="625"/>
<source>Game &amp;information</source> <source>Game &amp;information</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_game.cpp" line="569"/> <location filename="../src/tab_game.cpp" line="627"/>
<source>&amp;Concede</source> <source>&amp;Concede</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_game.cpp" line="573"/> <location filename="../src/tab_game.cpp" line="630"/>
<source>&amp;Leave game</source> <source>&amp;Leave game</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_game.cpp" line="577"/> <location filename="../src/tab_game.cpp" line="633"/>
<source>C&amp;lose replay</source> <source>C&amp;lose replay</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_game.cpp" line="582"/> <location filename="../src/tab_game.cpp" line="637"/>
<source>&amp;Say:</source> <source>&amp;Say:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_game.cpp" line="662"/> <location filename="../src/tab_game.cpp" line="717"/>
<source>Concede</source> <source>Concede</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_game.cpp" line="662"/> <location filename="../src/tab_game.cpp" line="717"/>
<source>Are you sure you want to concede this game?</source> <source>Are you sure you want to concede this game?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_game.cpp" line="672"/> <location filename="../src/tab_game.cpp" line="727"/>
<source>Leave game</source> <source>Leave game</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_game.cpp" line="672"/> <location filename="../src/tab_game.cpp" line="727"/>
<source>Are you sure you want to leave this game?</source> <source>Are you sure you want to leave this game?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_game.cpp" line="856"/> <location filename="../src/tab_game.cpp" line="923"/>
<source>You are flooding the game. Please wait a couple of seconds.</source> <source>You are flooding the game. Please wait a couple of seconds.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_game.cpp" line="1104"/> <location filename="../src/tab_game.cpp" line="1190"/>
<source>You have been kicked out of the game.</source> <source>You have been kicked out of the game.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_game.cpp" line="1209"/> <location filename="../src/tab_game.cpp" line="1295"/>
<source>REPLAY </source> <source>REPLAY </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
...@@ -4786,47 +4947,47 @@ Please enter a name:</source> ...@@ -4786,47 +4947,47 @@ Please enter a name:</source>
<context> <context>
<name>TabRoom</name> <name>TabRoom</name>
<message> <message>
<location filename="../src/tab_room.cpp" line="125"/> <location filename="../src/tab_room.cpp" line="143"/>
<source>&amp;Say:</source> <source>&amp;Say:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_room.cpp" line="126"/> <location filename="../src/tab_room.cpp" line="144"/>
<source>Chat</source> <source>Chat</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_room.cpp" line="127"/> <location filename="../src/tab_room.cpp" line="145"/>
<source>&amp;Room</source> <source>&amp;Room</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_room.cpp" line="128"/> <location filename="../src/tab_room.cpp" line="146"/>
<source>&amp;Leave room</source> <source>&amp;Leave room</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_room.cpp" line="129"/> <location filename="../src/tab_room.cpp" line="147"/>
<source>&amp;Clear chat</source> <source>&amp;Clear chat</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_room.cpp" line="130"/> <location filename="../src/tab_room.cpp" line="148"/>
<source>Chat Settings...</source> <source>Chat Settings...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_room.cpp" line="143"/> <location filename="../src/tab_room.cpp" line="161"/>
<source> mentioned you.</source> <source> mentioned you.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_room.cpp" line="143"/> <location filename="../src/tab_room.cpp" line="161"/>
<source>Click to view</source> <source>Click to view</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_room.cpp" line="184"/> <location filename="../src/tab_room.cpp" line="206"/>
<source>You are flooding the chat. Please wait a couple of seconds.</source> <source>You are flooding the chat. Please wait a couple of seconds.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
...@@ -4842,15 +5003,25 @@ Please enter a name:</source> ...@@ -4842,15 +5003,25 @@ Please enter a name:</source>
<context> <context>
<name>TabSupervisor</name> <name>TabSupervisor</name>
<message> <message>
<location filename="../src/tab_supervisor.cpp" line="140"/> <location filename="../src/tab_supervisor.cpp" line="142"/>
<source>Are you sure?</source> <source>Are you sure?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tab_supervisor.cpp" line="140"/> <location filename="../src/tab_supervisor.cpp" line="142"/>
<source>There are still open games. Are you sure you want to quit?</source> <source>There are still open games. Are you sure you want to quit?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../src/tab_supervisor.cpp" line="568"/>
<source>Promotion</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tab_supervisor.cpp" line="568"/>
<source>You have been promoted to moderator. Please log out and back in for changes to take effect.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>TabUserLists</name> <name>TabUserLists</name>
...@@ -4873,55 +5044,97 @@ Please enter a name:</source> ...@@ -4873,55 +5044,97 @@ Please enter a name:</source>
<context> <context>
<name>UserContextMenu</name> <name>UserContextMenu</name>
<message> <message>
<location filename="../src/user_context_menu.cpp" line="40"/> <location filename="../src/user_context_menu.cpp" line="43"/>
<source>User &amp;details</source> <source>User &amp;details</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/user_context_menu.cpp" line="41"/> <location filename="../src/user_context_menu.cpp" line="44"/>
<source>Private &amp;chat</source> <source>Private &amp;chat</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/user_context_menu.cpp" line="42"/> <location filename="../src/user_context_menu.cpp" line="45"/>
<source>Show this user&apos;s &amp;games</source> <source>Show this user&apos;s &amp;games</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/user_context_menu.cpp" line="43"/> <location filename="../src/user_context_menu.cpp" line="46"/>
<source>Add to &amp;buddy list</source> <source>Add to &amp;buddy list</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/user_context_menu.cpp" line="44"/> <location filename="../src/user_context_menu.cpp" line="47"/>
<source>Remove from &amp;buddy list</source> <source>Remove from &amp;buddy list</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/user_context_menu.cpp" line="45"/> <location filename="../src/user_context_menu.cpp" line="48"/>
<source>Add to &amp;ignore list</source> <source>Add to &amp;ignore list</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/user_context_menu.cpp" line="46"/> <location filename="../src/user_context_menu.cpp" line="49"/>
<source>Remove from &amp;ignore list</source> <source>Remove from &amp;ignore list</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/user_context_menu.cpp" line="47"/> <location filename="../src/user_context_menu.cpp" line="50"/>
<source>Kick from &amp;game</source> <source>Kick from &amp;game</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/user_context_menu.cpp" line="48"/> <location filename="../src/user_context_menu.cpp" line="51"/>
<source>Ban from &amp;server</source> <source>Ban from &amp;server</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/user_context_menu.cpp" line="76"/> <location filename="../src/user_context_menu.cpp" line="52"/>
<source>&amp;Promote user to moderator</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/user_context_menu.cpp" line="53"/>
<source>Dem&amp;ote user from moderator</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/user_context_menu.cpp" line="81"/>
<source>%1&apos;s games</source> <source>%1&apos;s games</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../src/user_context_menu.cpp" line="104"/>
<location filename="../src/user_context_menu.cpp" line="106"/>
<source>Success</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/user_context_menu.cpp" line="104"/>
<source>Successfully promoted user.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/user_context_menu.cpp" line="106"/>
<source>Successfully demoted user.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/user_context_menu.cpp" line="111"/>
<location filename="../src/user_context_menu.cpp" line="113"/>
<source>Failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/user_context_menu.cpp" line="111"/>
<source>Failed to promote user.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/user_context_menu.cpp" line="113"/>
<source>Failed to demote user.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UserInfoBox</name> <name>UserInfoBox</name>
...@@ -5090,42 +5303,42 @@ Please enter a name:</source> ...@@ -5090,42 +5303,42 @@ Please enter a name:</source>
<context> <context>
<name>UserInterfaceSettingsPage</name> <name>UserInterfaceSettingsPage</name>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="521"/> <location filename="../src/dlg_settings.cpp" line="524"/>
<source>General interface settings</source> <source>General interface settings</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="522"/> <location filename="../src/dlg_settings.cpp" line="525"/>
<source>Enable notifications in taskbar</source> <source>Enable notifications in taskbar</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="523"/> <location filename="../src/dlg_settings.cpp" line="526"/>
<source>Notify in the taskbar for game events while you are spectating</source> <source>Notify in the taskbar for game events while you are spectating</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="524"/> <location filename="../src/dlg_settings.cpp" line="527"/>
<source>&amp;Double-click cards to play them (instead of single-click)</source> <source>&amp;Double-click cards to play them (instead of single-click)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="525"/> <location filename="../src/dlg_settings.cpp" line="528"/>
<source>&amp;Play all nonlands onto the stack (not the battlefield) by default</source> <source>&amp;Play all nonlands onto the stack (not the battlefield) by default</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="526"/> <location filename="../src/dlg_settings.cpp" line="529"/>
<source>Annotate card text on tokens</source> <source>Annotate card text on tokens</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="527"/> <location filename="../src/dlg_settings.cpp" line="530"/>
<source>Animation settings</source> <source>Animation settings</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="528"/> <location filename="../src/dlg_settings.cpp" line="531"/>
<source>&amp;Tap/untap animation</source> <source>&amp;Tap/untap animation</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
...@@ -5133,22 +5346,22 @@ Please enter a name:</source> ...@@ -5133,22 +5346,22 @@ Please enter a name:</source>
<context> <context>
<name>UserList</name> <name>UserList</name>
<message> <message>
<location filename="../src/userlist.cpp" line="242"/> <location filename="../src/userlist.cpp" line="255"/>
<source>Users connected to server: %1</source> <source>Users connected to server: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/userlist.cpp" line="243"/> <location filename="../src/userlist.cpp" line="256"/>
<source>Users in this room: %1</source> <source>Users in this room: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/userlist.cpp" line="244"/> <location filename="../src/userlist.cpp" line="257"/>
<source>Buddies online: %1 / %2</source> <source>Buddies online: %1 / %2</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/userlist.cpp" line="245"/> <location filename="../src/userlist.cpp" line="258"/>
<source>Ignored users online: %1 / %2</source> <source>Ignored users online: %1 / %2</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
...@@ -5207,7 +5420,7 @@ Please enter a name:</source> ...@@ -5207,7 +5420,7 @@ Please enter a name:</source>
</message> </message>
<message> <message>
<location filename="../src/window_sets.cpp" line="95"/> <location filename="../src/window_sets.cpp" line="95"/>
<source>Disabled sets will still be used for loading images</source> <source>Disabled sets will be used for loading images only if all the enabled sets failed</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
...@@ -5216,12 +5429,12 @@ Please enter a name:</source> ...@@ -5216,12 +5429,12 @@ Please enter a name:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_sets.cpp" line="126"/> <location filename="../src/window_sets.cpp" line="127"/>
<source>Success</source> <source>Success</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_sets.cpp" line="126"/> <location filename="../src/window_sets.cpp" line="127"/>
<source>The sets database has been saved successfully.</source> <source>The sets database has been saved successfully.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
...@@ -5249,4 +5462,561 @@ Please enter a name:</source> ...@@ -5249,4 +5462,561 @@ Please enter a name:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>shortcutsTab</name>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1438"/>
<source>Form</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1439"/>
<source>Main Window</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1440"/>
<source>Deck editor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1441"/>
<source>Local gameplay</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1442"/>
<source>Watch replay</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1443"/>
<source>Connect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1444"/>
<source>Register</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1445"/>
<source>Full screen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1446"/>
<source>Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1447"/>
<source>Check for card updates</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1448"/>
<source>Diconnect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1449"/>
<source>Exit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1450"/>
<source>Deck Editor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1451"/>
<source>Analyze deck</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1452"/>
<source>Load deck (clipboard)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1453"/>
<source>Clerar all filters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1454"/>
<source>New deck</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1455"/>
<source>Clear one filter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1456"/>
<source>Open custom folder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1457"/>
<source>Close</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1458"/>
<source>Print deck</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1459"/>
<source>Edit sets</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1460"/>
<source>Delete card</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1461"/>
<source>Edit tokens</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1462"/>
<source>Reset layout</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1463"/>
<source>Add card</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1464"/>
<source>Save deck</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1465"/>
<source>Remove card</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1466"/>
<source>Save deck as</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1467"/>
<source>Load deck</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1468"/>
<source>Save deck (clipboard)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1469"/>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1559"/>
<source>Counters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1470"/>
<source>Life</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1471"/>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1475"/>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1479"/>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1483"/>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1491"/>
<source>Set</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1472"/>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1476"/>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1480"/>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1484"/>
<source>Add</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1473"/>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1477"/>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1481"/>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1485"/>
<source>Remove</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1474"/>
<source>Red</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1478"/>
<source>Green</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1482"/>
<source>Yellow</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1486"/>
<source>Mainwindow / Deck editor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1487"/>
<source>Power / toughness</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1488"/>
<source>Power and toughness</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1489"/>
<source>Add (+1/+1)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1490"/>
<source>Remove (-1/-1)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1492"/>
<source>Toughness</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1493"/>
<source>Remove (-0/-1)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1494"/>
<source>Add (+0/+1)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1495"/>
<source>Power</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1496"/>
<source>Remove (-1/-0)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1497"/>
<source>Add (+1/+0)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1498"/>
<source>Game Phases</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1499"/>
<source>Untap</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1500"/>
<source>Unkeep</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1501"/>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1552"/>
<source>Draw</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1502"/>
<source>Main 1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1503"/>
<source>Start combat</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1504"/>
<source>Attack</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1505"/>
<source>Block</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1506"/>
<source>Damage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1507"/>
<source>End combat</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1508"/>
<source>Main 2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1509"/>
<source>End</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1510"/>
<source>Next phase</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1511"/>
<source>Next turn</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1512"/>
<source>Player</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1513"/>
<source>Tap Card</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1514"/>
<source>Untap Card</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1515"/>
<source>Untap all</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1516"/>
<source>Toogle untap</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1517"/>
<source>Flip card</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1518"/>
<source>Peek card</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1519"/>
<source>Play card</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1520"/>
<source>Attach card</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1521"/>
<source>Unattach card</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1522"/>
<source>Clone card</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1523"/>
<source>Create token</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1524"/>
<source>Create another token</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1525"/>
<source>Set annotation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1526"/>
<source>Phases / P/T / Player</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1527"/>
<source>Move card to</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1528"/>
<source>Bottom library</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1529"/>
<source>Top library</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1530"/>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1534"/>
<source>Graveyard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1531"/>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1538"/>
<source>Exile</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1532"/>
<source>Hand</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1533"/>
<source>View</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1535"/>
<source>Library</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1536"/>
<source>Tops card of library</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1537"/>
<source>Sideboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1539"/>
<source>Close recent view</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1540"/>
<source>Pre-play</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1541"/>
<source>Load remote deck</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1542"/>
<source>Load local deck</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1543"/>
<source>Game play</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1544"/>
<source>Draw arrow</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1545"/>
<source>Leave game</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1546"/>
<source>Remove local arrows</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1547"/>
<source>Concede</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1548"/>
<source>Roll dice</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1549"/>
<source>Rotate view CW</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1550"/>
<source>Shuffle library</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1551"/>
<source>Rotate view CCW</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1553"/>
<source>Mulligan</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1554"/>
<source>Draw card</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1555"/>
<source>Draw cards</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1556"/>
<source>Undo draw</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1557"/>
<source>Always reveal top card</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/sequenceEdit/ui_shortcutstab.h" line="1558"/>
<source>Draw / Move / View / Game play</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS> </TS>
...@@ -106,6 +106,7 @@ SET(PROTO_FILES ...@@ -106,6 +106,7 @@ SET(PROTO_FILES
event_user_joined.proto event_user_joined.proto
event_user_left.proto event_user_left.proto
event_user_message.proto event_user_message.proto
event_notify_user.proto
game_commands.proto game_commands.proto
game_event_container.proto game_event_container.proto
game_event_context.proto game_event_context.proto
...@@ -127,6 +128,7 @@ SET(PROTO_FILES ...@@ -127,6 +128,7 @@ SET(PROTO_FILES
response_register.proto response_register.proto
response_replay_download.proto response_replay_download.proto
response_replay_list.proto response_replay_list.proto
response_adjust_mod.proto
response.proto response.proto
room_commands.proto room_commands.proto
room_event.proto room_event.proto
......
...@@ -3,6 +3,7 @@ message AdminCommand { ...@@ -3,6 +3,7 @@ message AdminCommand {
UPDATE_SERVER_MESSAGE = 1000; UPDATE_SERVER_MESSAGE = 1000;
SHUTDOWN_SERVER = 1001; SHUTDOWN_SERVER = 1001;
RELOAD_CONFIG = 1002; RELOAD_CONFIG = 1002;
ADJUST_MOD = 1003;
} }
extensions 100 to max; extensions 100 to max;
} }
...@@ -26,3 +27,12 @@ message Command_ReloadConfig { ...@@ -26,3 +27,12 @@ message Command_ReloadConfig {
optional Command_ReloadConfig ext = 1002; optional Command_ReloadConfig ext = 1002;
} }
} }
message Command_AdjustMod {
extend AdminCommand {
optional Command_AdjustMod ext = 1003;
}
required string user_name = 1;
required bool should_be_mod = 2;
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment