Merge remote-tracking branch 'refs/remotes/origin/master' into mod_notify_onbanwarn
This commit is contained in:
commit
4e78d6ec95
14 changed files with 252 additions and 83 deletions
0
CONTRIBUTING.md → .github/CONTRIBUTING.md
vendored
0
CONTRIBUTING.md → .github/CONTRIBUTING.md
vendored
11
.github/ISSUE_TEMPLATE.md
vendored
Normal file
11
.github/ISSUE_TEMPLATE.md
vendored
Normal file
|
@ -0,0 +1,11 @@
|
|||
<b>OS:</b>
|
||||
*Override this line with the exact operating system you are running! (e.g. "Win 7 SP1", "OS X 10.8.5", "Ubuntu 15.10" ...)*
|
||||
|
||||
<b>Cockatrice version:</b>
|
||||
*Put your Cockatrice version number & build date here! You find them inside the app: `Help` --> `About Cockatrice` (e.g. "2d53ce9 (2016-02-18)")*
|
||||
|
||||
___
|
||||
<br>
|
||||
|
||||
|
||||
*Explain your Issue/Request/Suggestion in detail here!*
|
|
@ -74,6 +74,8 @@ endif()
|
|||
# Define proper compilation flags
|
||||
IF(MSVC)
|
||||
# Visual Studio:
|
||||
# Support from Windows XP
|
||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:WINDOWS,5.01")
|
||||
# Maximum optimization
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "/Ox /MD")
|
||||
# Generate complete debugging information
|
||||
|
|
7
TODO.md
7
TODO.md
|
@ -10,13 +10,6 @@ Note that "improve" and "write" always also means: "document and comment"
|
|||
##Scripts
|
||||
* Write example init script for servatrice.
|
||||
|
||||
##Improve usermanual:
|
||||
* Improve Layout, Text, Screenshots; nearly everything is still quick n dirty copy and paste.
|
||||
* Add missing TODOs
|
||||
* Translate the Documentation
|
||||
* Rename the picture filenames to something more meaningful.
|
||||
* Create an index, lists of tables/figures/...
|
||||
|
||||
##Create developer documentation:
|
||||
* Create developer manual
|
||||
* Add comments to code
|
||||
|
|
|
@ -116,9 +116,9 @@ DlgCreateGame::DlgCreateGame(TabRoom *_room, const QMap<int, QString> &_gameType
|
|||
rememberGameSettings->setChecked(settingsCache->getRememberGameSettings());
|
||||
descriptionEdit->setText(settingsCache->getGameDescription());
|
||||
maxPlayersEdit->setValue(settingsCache->getMaxPlayers());
|
||||
onlyBuddiesCheckBox->setChecked(settingsCache->getOnlyBuddies());
|
||||
if (room && room->getUserInfo()->user_level() & ServerInfo_User::IsRegistered)
|
||||
{
|
||||
onlyBuddiesCheckBox->setChecked(settingsCache->getOnlyBuddies());
|
||||
onlyRegisteredCheckBox->setChecked(settingsCache->getOnlyRegistered());
|
||||
} else {
|
||||
onlyBuddiesCheckBox->setEnabled(false);
|
||||
|
@ -193,7 +193,7 @@ void DlgCreateGame::actReset()
|
|||
|
||||
passwordEdit->setText("");
|
||||
onlyBuddiesCheckBox->setChecked(false);
|
||||
onlyRegisteredCheckBox->setChecked(true);
|
||||
onlyRegisteredCheckBox->setChecked(room && room->getUserInfo()->user_level() & ServerInfo_User::IsRegistered);
|
||||
|
||||
spectatorsAllowedCheckBox->setChecked(true);
|
||||
spectatorsNeedPasswordCheckBox->setChecked(false);
|
||||
|
|
|
@ -1473,10 +1473,10 @@ public:
|
|||
groupBox_2->setTitle(QApplication::translate("shortcutsTab", "Deck Editor", 0));
|
||||
lbl_TabDeckEditor_aAnalyzeDeck->setText(QApplication::translate("shortcutsTab", "Analyze deck", 0));
|
||||
lbl_TabDeckEditor_aLoadDeckFromClipboard->setText(QApplication::translate("shortcutsTab", "Load deck (clipboard)", 0));
|
||||
lbl_TabDeckEditor_aClearFilterAll->setText(QApplication::translate("shortcutsTab", "Clerar all filters", 0));
|
||||
lbl_TabDeckEditor_aClearFilterAll->setText(QApplication::translate("shortcutsTab", "Clear all filters", 0));
|
||||
lbl_TabDeckEditor_aNewDeck->setText(QApplication::translate("shortcutsTab", "New deck", 0));
|
||||
lbl_TabDeckEditor_aClearFilterOne->setText(QApplication::translate("shortcutsTab", "Clear one filter", 0));
|
||||
lbl_TabDeckEditor_aOpenCustomFolder->setText(QApplication::translate("shortcutsTab", "Open custom folder", 0));
|
||||
lbl_TabDeckEditor_aClearFilterOne->setText(QApplication::translate("shortcutsTab", "Clear selected filter", 0));
|
||||
lbl_TabDeckEditor_aOpenCustomFolder->setText(QApplication::translate("shortcutsTab", "Open custom pic folder", 0));
|
||||
lbl_TabDeckEditor_aClose->setText(QApplication::translate("shortcutsTab", "Close", 0));
|
||||
lbl_TabDeckEditor_aPrintDeck->setText(QApplication::translate("shortcutsTab", "Print deck", 0));
|
||||
lbl_TabDeckEditor_aEditSets->setText(QApplication::translate("shortcutsTab", "Edit sets", 0));
|
||||
|
|
|
@ -78,6 +78,39 @@ const QByteArray LayoutsSettings::getGamePlayAreaGeometry()
|
|||
return getValue("layouts/gameplayarea_geometry").toByteArray();
|
||||
}
|
||||
|
||||
const QSize LayoutsSettings::getGameCardInfoSize()
|
||||
{
|
||||
QVariant previous = getValue("layouts/gameplayarea_CardInfoSize");
|
||||
return previous == QVariant() ? QSize(250,360) : previous.toSize();
|
||||
}
|
||||
|
||||
void LayoutsSettings::setGameCardInfoSize(const QSize &value)
|
||||
{
|
||||
setValue(value,"layouts/gameplayarea_CardInfoSize");
|
||||
}
|
||||
|
||||
const QSize LayoutsSettings::getGameMessageLayoutSize()
|
||||
{
|
||||
QVariant previous = getValue("layouts/gameplayarea_MessageLayoutSize");
|
||||
return previous == QVariant() ? QSize(250,250) : previous.toSize();
|
||||
}
|
||||
|
||||
void LayoutsSettings::setGameMessageLayoutSize(const QSize &value)
|
||||
{
|
||||
setValue(value,"layouts/gameplayarea_MessageLayoutSize");
|
||||
}
|
||||
|
||||
const QSize LayoutsSettings::getGamePlayerListSize()
|
||||
{
|
||||
QVariant previous = getValue("layouts/gameplayarea_PlayerListSize");
|
||||
return previous == QVariant() ? QSize(250,50) : previous.toSize();
|
||||
}
|
||||
|
||||
void LayoutsSettings::setGamePlayerListSize(const QSize &value)
|
||||
{
|
||||
setValue(value,"layouts/gameplayarea_PlayerListSize");
|
||||
}
|
||||
|
||||
void LayoutsSettings::setReplayPlayAreaGeometry(const QByteArray &value)
|
||||
{
|
||||
setValue(value,"layouts/replayplayarea_geometry");
|
||||
|
@ -97,3 +130,47 @@ const QByteArray LayoutsSettings::getReplayPlayAreaGeometry()
|
|||
{
|
||||
return getValue("layouts/replayplayarea_geometry").toByteArray();
|
||||
}
|
||||
|
||||
const QSize LayoutsSettings::getReplayCardInfoSize()
|
||||
{
|
||||
QVariant previous = getValue("layouts/replayplayarea_CardInfoSize");
|
||||
return previous == QVariant() ? QSize(250,360) : previous.toSize();
|
||||
}
|
||||
|
||||
void LayoutsSettings::setReplayCardInfoSize(const QSize &value)
|
||||
{
|
||||
setValue(value,"layouts/replayplayarea_CardInfoSize");
|
||||
}
|
||||
|
||||
const QSize LayoutsSettings::getReplayMessageLayoutSize()
|
||||
{
|
||||
QVariant previous = getValue("layouts/replayplayarea_MessageLayoutSize");
|
||||
return previous == QVariant() ? QSize(250,200) : previous.toSize();
|
||||
}
|
||||
|
||||
void LayoutsSettings::setReplayMessageLayoutSize(const QSize &value)
|
||||
{
|
||||
setValue(value,"layouts/replayplayarea_MessageLayoutSize");
|
||||
}
|
||||
|
||||
const QSize LayoutsSettings::getReplayPlayerListSize()
|
||||
{
|
||||
QVariant previous = getValue("layouts/replayplayarea_PlayerListSize");
|
||||
return previous == QVariant() ? QSize(250,50) : previous.toSize();
|
||||
}
|
||||
|
||||
void LayoutsSettings::setReplayPlayerListSize(const QSize &value)
|
||||
{
|
||||
setValue(value,"layouts/replayplayarea_PlayerListSize");
|
||||
}
|
||||
|
||||
const QSize LayoutsSettings::getReplayReplaySize()
|
||||
{
|
||||
QVariant previous = getValue("layouts/replayplayarea_ReplaySize");
|
||||
return previous == QVariant() ? QSize(900,100) : previous.toSize();
|
||||
}
|
||||
|
||||
void LayoutsSettings::setReplayReplaySize(const QSize &value)
|
||||
{
|
||||
setValue(value,"layouts/replayplayarea_ReplaySize");
|
||||
}
|
|
@ -15,20 +15,38 @@ public:
|
|||
void setDeckEditorCardSize(const QSize &value);
|
||||
void setDeckEditorDeckSize(const QSize &value);
|
||||
void setDeckEditorFilterSize(const QSize &value);
|
||||
|
||||
void setGamePlayAreaGeometry(const QByteArray &value);
|
||||
void setGamePlayAreaState(const QByteArray &value);
|
||||
void setGameCardInfoSize(const QSize &value);
|
||||
void setGameMessageLayoutSize(const QSize &value);
|
||||
void setGamePlayerListSize(const QSize &value);
|
||||
|
||||
void setReplayPlayAreaGeometry(const QByteArray &value);
|
||||
void setReplayPlayAreaState(const QByteArray &value);
|
||||
void setReplayCardInfoSize(const QSize &value);
|
||||
void setReplayMessageLayoutSize(const QSize &value);
|
||||
void setReplayPlayerListSize(const QSize &value);
|
||||
void setReplayReplaySize(const QSize &value);
|
||||
|
||||
const QByteArray getDeckEditorLayoutState();
|
||||
const QByteArray getDeckEditorGeometry();
|
||||
const QSize getDeckEditorCardSize();
|
||||
const QSize getDeckEditorDeckSize();
|
||||
const QSize getDeckEditorFilterSize();
|
||||
|
||||
const QByteArray getGamePlayAreaLayoutState();
|
||||
const QByteArray getGamePlayAreaGeometry();
|
||||
const QSize getGameCardInfoSize();
|
||||
const QSize getGameMessageLayoutSize();
|
||||
const QSize getGamePlayerListSize();
|
||||
|
||||
const QByteArray getReplayPlayAreaLayoutState();
|
||||
const QByteArray getReplayPlayAreaGeometry();
|
||||
const QSize getReplayCardInfoSize();
|
||||
const QSize getReplayMessageLayoutSize();
|
||||
const QSize getReplayPlayerListSize();
|
||||
const QSize getReplayReplaySize();
|
||||
signals:
|
||||
|
||||
public slots:
|
||||
|
|
|
@ -362,6 +362,7 @@ TabGame::TabGame(TabSupervisor *_tabSupervisor, GameReplay *_replay)
|
|||
refreshShortcuts();
|
||||
messageLog->logReplayStarted(gameInfo.game_id());
|
||||
|
||||
this->installEventFilter(this);
|
||||
QTimer::singleShot(0, this, SLOT(loadLayout()));
|
||||
}
|
||||
|
||||
|
@ -410,6 +411,7 @@ TabGame::TabGame(TabSupervisor *_tabSupervisor, QList<AbstractClient *> &_client
|
|||
for (int i = gameInfo.game_types_size() - 1; i >= 0; i--)
|
||||
gameTypes.append(roomGameTypes.find(gameInfo.game_types(i)).value());
|
||||
|
||||
this->installEventFilter(this);
|
||||
QTimer::singleShot(0, this, SLOT(loadLayout()));
|
||||
}
|
||||
|
||||
|
@ -426,14 +428,7 @@ void TabGame::emitUserEvent() {
|
|||
TabGame::~TabGame()
|
||||
{
|
||||
if(replay)
|
||||
{
|
||||
settingsCache->layouts().setReplayPlayAreaState(saveState());
|
||||
settingsCache->layouts().setReplayPlayAreaGeometry(saveGeometry());
|
||||
delete replay;
|
||||
} else {
|
||||
settingsCache->layouts().setGamePlayAreaState(saveState());
|
||||
settingsCache->layouts().setGamePlayAreaGeometry(saveGeometry());
|
||||
}
|
||||
|
||||
QMapIterator<int, Player *> i(players);
|
||||
while (i.hasNext())
|
||||
|
@ -445,13 +440,13 @@ TabGame::~TabGame()
|
|||
|
||||
void TabGame::retranslateUi()
|
||||
{
|
||||
QString tabText = getTabText() + " - ";
|
||||
QString tabText = " | " + (replay ? tr("Replay") : tr("Game")) + " #" + QString::number(gameInfo.game_id());
|
||||
|
||||
cardInfoDock->setWindowTitle((cardInfoDock->isWindow() ? tabText : QString()) + tr("Card Info"));
|
||||
playerListDock->setWindowTitle((playerListDock->isWindow() ? tabText : QString()) + tr("Player List"));
|
||||
messageLayoutDock->setWindowTitle((messageLayoutDock->isWindow() ? tabText : QString()) + tr("Messages"));
|
||||
cardInfoDock->setWindowTitle(tr("Card Info") + (cardInfoDock->isWindow() ? tabText : QString()));
|
||||
playerListDock->setWindowTitle(tr("Player List") + (playerListDock->isWindow() ? tabText : QString()));
|
||||
messageLayoutDock->setWindowTitle(tr("Messages") + (messageLayoutDock->isWindow() ? tabText : QString()));
|
||||
if(replayDock)
|
||||
replayDock->setWindowTitle((replayDock->isWindow() ? tabText : QString()) + tr("Replay Timeline"));
|
||||
replayDock->setWindowTitle(tr("Replay Timeline") + (replayDock->isWindow() ? tabText : QString()));
|
||||
|
||||
if (phasesMenu) {
|
||||
for (int i = 0; i < phaseActions.size(); ++i)
|
||||
|
@ -1170,7 +1165,7 @@ QString TabGame::getTabText() const
|
|||
|
||||
QString tabText;
|
||||
if (replay)
|
||||
tabText.append(tr("REPLAY "));
|
||||
tabText.append(tr("Replay") + " ");
|
||||
if (!gameTypeInfo.isEmpty())
|
||||
tabText.append(gameTypeInfo + " ");
|
||||
if (!gameDesc.isEmpty()) {
|
||||
|
@ -1335,9 +1330,25 @@ void TabGame::loadLayout()
|
|||
{
|
||||
restoreGeometry(settingsCache->layouts().getReplayPlayAreaGeometry());
|
||||
restoreState(settingsCache->layouts().getReplayPlayAreaLayoutState());
|
||||
|
||||
cardInfoDock->setMinimumSize(settingsCache->layouts().getReplayCardInfoSize());
|
||||
cardInfoDock->setMaximumSize(settingsCache->layouts().getReplayCardInfoSize());
|
||||
messageLayoutDock->setMinimumSize(settingsCache->layouts().getReplayMessageLayoutSize());
|
||||
messageLayoutDock->setMaximumSize(settingsCache->layouts().getReplayMessageLayoutSize());
|
||||
playerListDock->setMinimumSize(settingsCache->layouts().getReplayPlayerListSize());
|
||||
playerListDock->setMaximumSize(settingsCache->layouts().getReplayPlayerListSize());
|
||||
replayDock->setMinimumSize(settingsCache->layouts().getReplayReplaySize());
|
||||
replayDock->setMaximumSize(settingsCache->layouts().getReplayReplaySize());
|
||||
} else {
|
||||
restoreGeometry(settingsCache->layouts().getGamePlayAreaGeometry());
|
||||
restoreState(settingsCache->layouts().getGamePlayAreaLayoutState());
|
||||
|
||||
cardInfoDock->setMinimumSize(settingsCache->layouts().getGameCardInfoSize());
|
||||
cardInfoDock->setMaximumSize(settingsCache->layouts().getGameCardInfoSize());
|
||||
messageLayoutDock->setMinimumSize(settingsCache->layouts().getGameMessageLayoutSize());
|
||||
messageLayoutDock->setMaximumSize(settingsCache->layouts().getGameMessageLayoutSize());
|
||||
playerListDock->setMinimumSize(settingsCache->layouts().getGamePlayerListSize());
|
||||
playerListDock->setMaximumSize(settingsCache->layouts().getGamePlayerListSize());
|
||||
}
|
||||
|
||||
aCardInfoDockVisible->setChecked(cardInfoDock->isVisible());
|
||||
|
@ -1358,6 +1369,26 @@ void TabGame::loadLayout()
|
|||
aReplayDockFloating->setEnabled(aReplayDockVisible->isChecked());
|
||||
aReplayDockFloating->setChecked(replayDock->isFloating());
|
||||
}
|
||||
|
||||
QTimer::singleShot(100, this, SLOT(freeDocksSize()));
|
||||
}
|
||||
|
||||
void TabGame::freeDocksSize()
|
||||
{
|
||||
cardInfoDock->setMinimumSize(100, 100);
|
||||
cardInfoDock->setMaximumSize(5000, 5000);
|
||||
|
||||
messageLayoutDock->setMinimumSize(100, 100);
|
||||
messageLayoutDock->setMaximumSize(5000, 5000);
|
||||
|
||||
playerListDock->setMinimumSize(100,100);
|
||||
playerListDock->setMaximumSize(5000,5000);
|
||||
|
||||
if(replayDock)
|
||||
{
|
||||
replayDock->setMinimumSize(100,100);
|
||||
replayDock->setMaximumSize(5000,5000);
|
||||
}
|
||||
}
|
||||
|
||||
void TabGame::actResetLayout()
|
||||
|
@ -1389,7 +1420,25 @@ void TabGame::actResetLayout()
|
|||
addDockWidget(Qt::BottomDockWidgetArea, replayDock);
|
||||
aReplayDockVisible->setChecked(true);
|
||||
aReplayDockFloating->setChecked(false);
|
||||
|
||||
cardInfoDock->setMinimumSize(250,360);
|
||||
cardInfoDock->setMaximumSize(250,360);
|
||||
messageLayoutDock->setMinimumSize(250,200);
|
||||
messageLayoutDock->setMaximumSize(250,200);
|
||||
playerListDock->setMinimumSize(250,50);
|
||||
playerListDock->setMaximumSize(250,50);
|
||||
replayDock->setMinimumSize(900,100);
|
||||
replayDock->setMaximumSize(900,100);
|
||||
} else {
|
||||
cardInfoDock->setMinimumSize(250,360);
|
||||
cardInfoDock->setMaximumSize(250,360);
|
||||
messageLayoutDock->setMinimumSize(250,250);
|
||||
messageLayoutDock->setMaximumSize(250,250);
|
||||
playerListDock->setMinimumSize(250,50);
|
||||
playerListDock->setMaximumSize(250,50);
|
||||
}
|
||||
|
||||
QTimer::singleShot(100, this, SLOT(freeDocksSize()));
|
||||
}
|
||||
|
||||
void TabGame::createPlayAreaWidget(bool bReplay)
|
||||
|
@ -1595,6 +1644,23 @@ bool TabGame::eventFilter(QObject * o, QEvent * e)
|
|||
}
|
||||
}
|
||||
|
||||
if( o == this && e->type() == QEvent::Hide){
|
||||
if(replay)
|
||||
{
|
||||
settingsCache->layouts().setReplayPlayAreaState(saveState());
|
||||
settingsCache->layouts().setReplayPlayAreaGeometry(saveGeometry());
|
||||
settingsCache->layouts().setReplayCardInfoSize(cardInfoDock->size());
|
||||
settingsCache->layouts().setReplayMessageLayoutSize(messageLayoutDock->size());
|
||||
settingsCache->layouts().setReplayPlayerListSize(playerListDock->size());
|
||||
settingsCache->layouts().setReplayReplaySize(replayDock->size());
|
||||
} else {
|
||||
settingsCache->layouts().setGamePlayAreaState(saveState());
|
||||
settingsCache->layouts().setGamePlayAreaGeometry(saveGeometry());
|
||||
settingsCache->layouts().setGameCardInfoSize(cardInfoDock->size());
|
||||
settingsCache->layouts().setGameMessageLayoutSize(messageLayoutDock->size());
|
||||
settingsCache->layouts().setGamePlayerListSize(playerListDock->size());
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -223,6 +223,7 @@ private slots:
|
|||
void loadLayout();
|
||||
void actCompleterChanged();
|
||||
void actResetLayout();
|
||||
void freeDocksSize();
|
||||
|
||||
bool eventFilter(QObject *o, QEvent *e);
|
||||
void dockVisibleTriggered();
|
||||
|
|
|
@ -1501,34 +1501,34 @@ Möchten Sie Ihren Speicherort der Datenbank aktualisieren?</translation>
|
|||
<message>
|
||||
<location filename="../src/dlg_update.cpp" line="52"/>
|
||||
<source>Error</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Fehler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_update.cpp" line="53"/>
|
||||
<source>Cockatrice was not built with SSL support, so cannot download updates! Please visit the download page and update manually.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Ihre Version von Cockatrice hat keine SSL-Unterstützung, dadurch ist das Herunterladen von Aktualisierungen nicht möglich! Bitte besuchen Sie die Downloadseite und aktualisieren Sie manuell.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_update.cpp" line="132"/>
|
||||
<source>Your version of Cockatrice is out of date, but there are no packages available for your operating system. You may have to use a developer build or build from source yourself. Please visit the download page.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Ihre Cockatrice Version ist nicht mehr aktuell, jedoch sind keine Installationspakete für Ihr Betriebssystem erhältlich. Sie müssen eventuell einen Entwicklungsbuild verwenden, oder den Quellcode für einen eigenen Build verwenden. Bitte besuchen Sie die Downloadseite.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_update.cpp" line="140"/>
|
||||
<source>Cockatrice Update</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Cockatrice Aktualisierung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_update.cpp" line="140"/>
|
||||
<source>Your version of Cockatrice is up to date.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Ihre Version von Cockatrice ist aktuell.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_update.cpp" line="155"/>
|
||||
<location filename="../src/dlg_update.cpp" line="161"/>
|
||||
<location filename="../src/dlg_update.cpp" line="173"/>
|
||||
<source>Update Error</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Aktualisierungsfehler</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -1795,18 +1795,18 @@ Möchten Sie Ihren Speicherort der Datenbank aktualisieren?</translation>
|
|||
<message>
|
||||
<location filename="../src/dlg_settings.cpp" line="266"/>
|
||||
<source>Primary download URL:</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Primäre URL zum Herunterladen:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_settings.cpp" line="267"/>
|
||||
<source>Fallback download URL:</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Ersatz-URL zum Herunterladen:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_settings.cpp" line="271"/>
|
||||
<location filename="../src/dlg_settings.cpp" line="272"/>
|
||||
<source>Reset</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Zurücksetzen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_settings.cpp" line="268"/>
|
||||
|
@ -1995,7 +1995,7 @@ Login läuft.</translation>
|
|||
<message>
|
||||
<location filename="../src/window_main.cpp" line="282"/>
|
||||
<source>Cockatrice Webpage</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Cockatrice Webseite</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="284"/>
|
||||
|
@ -2334,7 +2334,7 @@ Lokale Version ist %1, Serverversion ist %2.</translation>
|
|||
<message>
|
||||
<location filename="../src/window_main.cpp" line="511"/>
|
||||
<source>&Update Cockatrice</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Cockatrice akt&ualisieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/window_main.cpp" line="512"/>
|
||||
|
@ -2702,24 +2702,24 @@ Sie müssen den Aktivierungstoken aus der Aktivierungsemail verwenden</translati
|
|||
<message>
|
||||
<location filename="../src/messagelogwidget.cpp" line="193"/>
|
||||
<source>Heads (1)</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Kopf (1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/messagelogwidget.cpp" line="193"/>
|
||||
<source>Tails (2)</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Zahl (2)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/messagelogwidget.cpp" line="198"/>
|
||||
<source>%1 flipped a coin. It landed as %2.</source>
|
||||
<comment>female</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>%1 warf eine Münze. Es fiel %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/messagelogwidget.cpp" line="200"/>
|
||||
<source>%1 flipped a coin. It landed as %2.</source>
|
||||
<comment>male</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>%1 warf eine Münze. Es fiel %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/messagelogwidget.cpp" line="248"/>
|
||||
|
@ -4727,21 +4727,21 @@ Lesen Sie mehr über das Ändern der Editionsreihenfolge oder die Deaktivierung
|
|||
<message>
|
||||
<location filename="../src/tab_deck_editor.cpp" line="609"/>
|
||||
<source>&View</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Ansicht</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/tab_deck_editor.cpp" line="614"/>
|
||||
<location filename="../src/tab_deck_editor.cpp" line="617"/>
|
||||
<location filename="../src/tab_deck_editor.cpp" line="620"/>
|
||||
<source>Visible</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Sichtbar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/tab_deck_editor.cpp" line="615"/>
|
||||
<location filename="../src/tab_deck_editor.cpp" line="618"/>
|
||||
<location filename="../src/tab_deck_editor.cpp" line="621"/>
|
||||
<source>Floating</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Schwebend</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/tab_deck_editor.cpp" line="628"/>
|
||||
|
@ -4887,25 +4887,25 @@ Bitte geben Sie einen Namen ein:</translation>
|
|||
<location filename="../src/tab_game.cpp" line="450"/>
|
||||
<location filename="../src/tab_game.cpp" line="494"/>
|
||||
<source>Card Info</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Karteninformationen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/tab_game.cpp" line="451"/>
|
||||
<location filename="../src/tab_game.cpp" line="496"/>
|
||||
<source>Player List</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Spielerliste</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/tab_game.cpp" line="452"/>
|
||||
<location filename="../src/tab_game.cpp" line="495"/>
|
||||
<source>Messages</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Nachrichten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/tab_game.cpp" line="454"/>
|
||||
<location filename="../src/tab_game.cpp" line="509"/>
|
||||
<source>Replay Timeline</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Zeitleiste der Aufzeichnung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/tab_game.cpp" line="459"/>
|
||||
|
@ -4970,7 +4970,7 @@ Bitte geben Sie einen Namen ein:</translation>
|
|||
<message>
|
||||
<location filename="../src/tab_game.cpp" line="493"/>
|
||||
<source>&View</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Ansicht</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/tab_game.cpp" line="498"/>
|
||||
|
@ -4978,7 +4978,7 @@ Bitte geben Sie einen Namen ein:</translation>
|
|||
<location filename="../src/tab_game.cpp" line="504"/>
|
||||
<location filename="../src/tab_game.cpp" line="510"/>
|
||||
<source>Visible</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Sichtbar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/tab_game.cpp" line="499"/>
|
||||
|
@ -4986,12 +4986,12 @@ Bitte geben Sie einen Namen ein:</translation>
|
|||
<location filename="../src/tab_game.cpp" line="505"/>
|
||||
<location filename="../src/tab_game.cpp" line="511"/>
|
||||
<source>Floating</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Schwebend</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/tab_game.cpp" line="514"/>
|
||||
<source>Reset layout</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Darstellung zurücksetzen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/tab_game.cpp" line="595"/>
|
||||
|
|
|
@ -22,12 +22,12 @@
|
|||
<message>
|
||||
<location filename="../src/dlg_settings.cpp" line="363"/>
|
||||
<source>Theme settings</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Ustawienia motywu użytkownika</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_settings.cpp" line="364"/>
|
||||
<source>Current theme:</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Bieżący motyw:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_settings.cpp" line="366"/>
|
||||
|
@ -257,7 +257,7 @@ Informacja ta zachowywana jest dla moderatorów i nie jest widoczna dla zbanowan
|
|||
<message>
|
||||
<location filename="../src/cardinfotext.cpp" line="69"/>
|
||||
<source>Color(s):</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Kolor(y):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/cardinfotext.cpp" line="70"/>
|
||||
|
@ -305,7 +305,7 @@ Informacja ta zachowywana jest dla moderatorów i nie jest widoczna dla zbanowan
|
|||
<message>
|
||||
<location filename="../src/cardinfowidget.cpp" line="210"/>
|
||||
<source>Color(s):</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Kolor(y):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/cardinfowidget.cpp" line="211"/>
|
||||
|
@ -710,12 +710,12 @@ Informacja ta zachowywana jest dla moderatorów i nie jest widoczna dla zbanowan
|
|||
<message>
|
||||
<location filename="../src/dlg_connect.cpp" line="19"/>
|
||||
<source>Previous Host</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Poprzedni Host</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_connect.cpp" line="32"/>
|
||||
<source>New Host</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Nowy Host</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_connect.cpp" line="34"/>
|
||||
|
@ -725,7 +725,7 @@ Informacja ta zachowywana jest dla moderatorów i nie jest widoczna dla zbanowan
|
|||
<message>
|
||||
<location filename="../src/dlg_connect.cpp" line="36"/>
|
||||
<source>Enter host name</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Wprowadź nazwę Hosta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_connect.cpp" line="39"/>
|
||||
|
@ -765,7 +765,7 @@ Informacja ta zachowywana jest dla moderatorów i nie jest widoczna dla zbanowan
|
|||
<message>
|
||||
<location filename="../src/dlg_connect.cpp" line="155"/>
|
||||
<source>The player name can't be empty.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Nazwa użytkownika nie może być pusta</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -971,17 +971,17 @@ To remove your current avatar, confirm without choosing a new image.</source>
|
|||
<message>
|
||||
<location filename="../src/dlg_edit_avatar.cpp" line="22"/>
|
||||
<source>Browse...</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Przeglądaj...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_edit_avatar.cpp" line="39"/>
|
||||
<source>Change avatar</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Zmień awatar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_edit_avatar.cpp" line="56"/>
|
||||
<source>Open Image</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Otwórz plik obrazu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_edit_avatar.cpp" line="56"/>
|
||||
|
@ -999,27 +999,27 @@ To remove your current avatar, confirm without choosing a new image.</source>
|
|||
<message>
|
||||
<location filename="../src/dlg_edit_password.cpp" line="14"/>
|
||||
<source>Old password:</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Bieżące hasło:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_edit_password.cpp" line="23"/>
|
||||
<source>New password:</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Nowe hasło:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_edit_password.cpp" line="28"/>
|
||||
<source>Confirm new password:</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Potwierdź nowe hasło:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_edit_password.cpp" line="50"/>
|
||||
<source>Change password</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Zmień hasło</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_edit_password.cpp" line="59"/>
|
||||
<source>Error</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Błąd</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_edit_password.cpp" line="59"/>
|
||||
|
@ -1277,7 +1277,7 @@ Upewnij się, że 'Dodatek zawierający tokeny' jest włączony w okni
|
|||
<message>
|
||||
<location filename="../src/dlg_register.cpp" line="33"/>
|
||||
<source>Password (again):</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Hasło (ponownie):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_register.cpp" line="38"/>
|
||||
|
@ -1287,7 +1287,7 @@ Upewnij się, że 'Dodatek zawierający tokeny' jest włączony w okni
|
|||
<message>
|
||||
<location filename="../src/dlg_register.cpp" line="42"/>
|
||||
<source>Email (again):</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Email (ponownie):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_register.cpp" line="46"/>
|
||||
|
@ -1334,7 +1334,7 @@ Upewnij się, że 'Dodatek zawierający tokeny' jest włączony w okni
|
|||
<message>
|
||||
<location filename="../src/dlg_register.cpp" line="366"/>
|
||||
<source>The player name can't be empty.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Nazwa użytkownika nie może być pusta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_register.cpp" line="54"/>
|
||||
|
@ -1484,7 +1484,7 @@ Would you like to change your database location setting?</source>
|
|||
<message>
|
||||
<location filename="../src/dlg_settings.cpp" line="933"/>
|
||||
<source>Shortcuts</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Skróty</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -1492,7 +1492,7 @@ Would you like to change your database location setting?</source>
|
|||
<message>
|
||||
<location filename="../src/dlg_update.cpp" line="52"/>
|
||||
<source>Error</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Błąd</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/dlg_update.cpp" line="53"/>
|
||||
|
@ -5027,7 +5027,7 @@ Wprowadź nazwę:</translation>
|
|||
<location filename="../src/tab_logs.cpp" line="67"/>
|
||||
<location filename="../src/tab_logs.cpp" line="77"/>
|
||||
<source>Error</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Błąd</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/tab_logs.cpp" line="67"/>
|
||||
|
@ -5333,7 +5333,7 @@ The more information you put in, the more specific your results will be.</source
|
|||
<location filename="../src/tab_server.cpp" line="195"/>
|
||||
<location filename="../src/tab_server.cpp" line="198"/>
|
||||
<source>Error</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Błąd</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/tab_server.cpp" line="189"/>
|
||||
|
@ -5602,12 +5602,12 @@ Please refrain from engaging in this activity or further actions may be taken ag
|
|||
<message>
|
||||
<location filename="../src/userinfobox.cpp" line="77"/>
|
||||
<source>Change password</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Zmień hasło</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/userinfobox.cpp" line="78"/>
|
||||
<source>Change avatar</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Zmień awatar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/userinfobox.cpp" line="110"/>
|
||||
|
@ -5677,7 +5677,7 @@ Please refrain from engaging in this activity or further actions may be taken ag
|
|||
<location filename="../src/userinfobox.cpp" line="280"/>
|
||||
<location filename="../src/userinfobox.cpp" line="284"/>
|
||||
<source>Error</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Błąd</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/userinfobox.cpp" line="241"/>
|
||||
|
@ -5818,7 +5818,7 @@ Please refrain from engaging in this activity or further actions may be taken ag
|
|||
<location filename="../src/userlist.cpp" line="151"/>
|
||||
<location filename="../src/userlist.cpp" line="156"/>
|
||||
<source>Error</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Błąd</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/userlist.cpp" line="151"/>
|
||||
|
|
|
@ -122,7 +122,7 @@ You will need to specify a URL or a filename that will be used as a source.</sou
|
|||
</message>
|
||||
<message>
|
||||
<source>Error</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Błąd</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Downloading (0MB)</source>
|
||||
|
@ -257,7 +257,7 @@ You will need to specify a URL or a filename that will be used as a source.</sou
|
|||
</message>
|
||||
<message>
|
||||
<source>Error</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Błąd</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The file could not be saved to %1</source>
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SCHEDULE WITH CRONTAB BASED ON TIME PERIOD REPLAYS SHOULD BE SAVED UNTIL (EX: SCHEDULE ONCE A WEEK TO KEEP A WEEKS WORTH OF REPLAYS IN THE DB)
|
||||
|
||||
# SCHEDULE WITH CRONTAB DAILY
|
||||
DBNAME="servatrice" #set this to the database name used
|
||||
TABLEPREFIX="cockatrice" #set this to the prefix used for the table names in the database (do not inclue the _)
|
||||
SQLCONFFILE="./mysql.cnf" #set this to the path that contains the mysql.cnf file
|
||||
mysql --defaults-file=$SQLCONFFILE -h localhost -e 'truncate table ""$DBNAME"".""$TABLEPREFIX""_replays;truncate table ""$DBNAME"".""$TABLEPREFIX""_replays_access'
|
||||
mysql --defaults-file=$SQLCONFFILE -h localhost -e 'delete from servatrice.cockatrice_games where time_finished < DATE_SUB(now(), INTERVAL 8 DAY)'
|
||||
mysql --defaults-file=$SQLCONFFILE -h localhost -e 'delete from servatrice.cockatrice_replays where id_game NOT IN (select id from servatrice.cockatrice_games)'
|
||||
mysql --defaults-file=$SQLCONFFILE -h localhost -e 'delete from servatrice.cockatrice_replays_access where id_game NOT IN (select id from servatrice.cockatrice_games)'
|
||||
|
|
Loading…
Reference in a new issue