Connect from commandline (#3556)
* - Use Qt argument parser - Add --connect command line option. * Better version info
This commit is contained in:
parent
9118871afb
commit
073c531855
3 changed files with 29 additions and 4 deletions
|
@ -30,6 +30,7 @@
|
||||||
#include "soundengine.h"
|
#include "soundengine.h"
|
||||||
#include "spoilerbackgroundupdater.h"
|
#include "spoilerbackgroundupdater.h"
|
||||||
#include "thememanager.h"
|
#include "thememanager.h"
|
||||||
|
#include "version_string.h"
|
||||||
#include "window_main.h"
|
#include "window_main.h"
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
#include <QCryptographicHash>
|
#include <QCryptographicHash>
|
||||||
|
@ -91,9 +92,6 @@ int main(int argc, char *argv[])
|
||||||
QObject::connect(&app, SIGNAL(lastWindowClosed()), &app, SLOT(quit()));
|
QObject::connect(&app, SIGNAL(lastWindowClosed()), &app, SLOT(quit()));
|
||||||
|
|
||||||
qInstallMessageHandler(CockatriceLogger);
|
qInstallMessageHandler(CockatriceLogger);
|
||||||
if (app.arguments().contains("--debug-output"))
|
|
||||||
Logger::getInstance().logToFile(true);
|
|
||||||
|
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
app.addLibraryPath(app.applicationDirPath() + "/plugins");
|
app.addLibraryPath(app.applicationDirPath() + "/plugins");
|
||||||
#endif
|
#endif
|
||||||
|
@ -103,6 +101,7 @@ int main(int argc, char *argv[])
|
||||||
QCoreApplication::setOrganizationName("Cockatrice");
|
QCoreApplication::setOrganizationName("Cockatrice");
|
||||||
QCoreApplication::setOrganizationDomain("cockatrice.de");
|
QCoreApplication::setOrganizationDomain("cockatrice.de");
|
||||||
QCoreApplication::setApplicationName("Cockatrice");
|
QCoreApplication::setApplicationName("Cockatrice");
|
||||||
|
QCoreApplication::setApplicationVersion(VERSION_STRING);
|
||||||
|
|
||||||
#ifdef Q_OS_MAC
|
#ifdef Q_OS_MAC
|
||||||
qApp->setAttribute(Qt::AA_DontShowIconsInMenus, true);
|
qApp->setAttribute(Qt::AA_DontShowIconsInMenus, true);
|
||||||
|
@ -116,6 +115,21 @@ int main(int argc, char *argv[])
|
||||||
translationPath = qApp->applicationDirPath() + "/../share/cockatrice/translations";
|
translationPath = qApp->applicationDirPath() + "/../share/cockatrice/translations";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
QCommandLineParser parser;
|
||||||
|
parser.setApplicationDescription("Cockatrice");
|
||||||
|
parser.addHelpOption();
|
||||||
|
parser.addVersionOption();
|
||||||
|
|
||||||
|
parser.addOptions(
|
||||||
|
{{{"c", "connect"}, QCoreApplication::translate("main", "Connect on startup"), "user:pass@host:port"},
|
||||||
|
{{"d", "debug-output"}, QCoreApplication::translate("main", "Debug to file")}});
|
||||||
|
|
||||||
|
parser.process(app);
|
||||||
|
|
||||||
|
if (parser.isSet("debug-output")) {
|
||||||
|
Logger::getInstance().logToFile(true);
|
||||||
|
}
|
||||||
|
|
||||||
rng = new RNG_SFMT;
|
rng = new RNG_SFMT;
|
||||||
settingsCache = new SettingsCache;
|
settingsCache = new SettingsCache;
|
||||||
themeManager = new ThemeManager;
|
themeManager = new ThemeManager;
|
||||||
|
@ -132,6 +146,9 @@ int main(int argc, char *argv[])
|
||||||
qDebug("main(): starting main program");
|
qDebug("main(): starting main program");
|
||||||
|
|
||||||
MainWindow ui;
|
MainWindow ui;
|
||||||
|
if (parser.isSet("connect")) {
|
||||||
|
ui.setConnectTo(parser.value("connect"));
|
||||||
|
}
|
||||||
qDebug("main(): MainWindow constructor finished");
|
qDebug("main(): MainWindow constructor finished");
|
||||||
|
|
||||||
ui.setWindowIcon(QPixmap("theme:cockatrice"));
|
ui.setWindowIcon(QPixmap("theme:cockatrice"));
|
||||||
|
|
|
@ -948,7 +948,10 @@ void MainWindow::changeEvent(QEvent *event)
|
||||||
else if (event->type() == QEvent::ActivationChange) {
|
else if (event->type() == QEvent::ActivationChange) {
|
||||||
if (isActiveWindow() && !bHasActivated) {
|
if (isActiveWindow() && !bHasActivated) {
|
||||||
bHasActivated = true;
|
bHasActivated = true;
|
||||||
if (settingsCache->servers().getAutoConnect()) {
|
if (!connectTo.isEmpty()) {
|
||||||
|
qDebug() << "Command line connect to " << connectTo;
|
||||||
|
client->connectToServer(connectTo.host(), connectTo.port(), connectTo.userName(), connectTo.password());
|
||||||
|
} else if (settingsCache->servers().getAutoConnect()) {
|
||||||
qDebug() << "Attempting auto-connect...";
|
qDebug() << "Attempting auto-connect...";
|
||||||
DlgConnect dlg(this);
|
DlgConnect dlg(this);
|
||||||
client->connectToServer(dlg.getHost(), static_cast<unsigned int>(dlg.getPort()), dlg.getPlayerName(),
|
client->connectToServer(dlg.getHost(), static_cast<unsigned int>(dlg.getPort()), dlg.getPlayerName(),
|
||||||
|
|
|
@ -137,9 +137,14 @@ private:
|
||||||
DlgConnect *dlgConnect;
|
DlgConnect *dlgConnect;
|
||||||
GameReplay *replay;
|
GameReplay *replay;
|
||||||
DlgTipOfTheDay *tip;
|
DlgTipOfTheDay *tip;
|
||||||
|
QUrl connectTo;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit MainWindow(QWidget *parent = nullptr);
|
explicit MainWindow(QWidget *parent = nullptr);
|
||||||
|
void setConnectTo(QString url)
|
||||||
|
{
|
||||||
|
connectTo = QUrl(QString("cockatrice://%1").arg(url));
|
||||||
|
}
|
||||||
~MainWindow() override;
|
~MainWindow() override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
Loading…
Reference in a new issue