mirror of
https://github.com/qTox/qTox.git
synced 2024-03-22 14:00:36 +08:00
Merge pull request #4675
anthony.bilinski (1): feat(login): Add command line argument to open login screen
This commit is contained in:
commit
ce0c102011
22
src/main.cpp
22
src/main.cpp
|
@ -191,8 +191,10 @@ int main(int argc, char* argv[])
|
||||||
parser.addVersionOption();
|
parser.addVersionOption();
|
||||||
parser.addPositionalArgument("uri", QObject::tr("Tox URI to parse"));
|
parser.addPositionalArgument("uri", QObject::tr("Tox URI to parse"));
|
||||||
parser.addOption(
|
parser.addOption(
|
||||||
QCommandLineOption("p", QObject::tr("Starts new instance and loads specified profile."),
|
QCommandLineOption(QStringList() << "p" << "profile", QObject::tr("Starts new instance and loads specified profile."),
|
||||||
QObject::tr("profile")));
|
QObject::tr("profile")));
|
||||||
|
parser.addOption(
|
||||||
|
QCommandLineOption(QStringList() << "l" << "login", QObject::tr("Starts new instance and opens the login screen.")));
|
||||||
parser.process(*a);
|
parser.process(*a);
|
||||||
|
|
||||||
uint32_t profileId = Settings::getInstance().getCurrentProfileId();
|
uint32_t profileId = Settings::getInstance().getCurrentProfileId();
|
||||||
|
@ -265,16 +267,22 @@ int main(int argc, char* argv[])
|
||||||
ipc.registerEventHandler("activate", &toxActivateEventHandler);
|
ipc.registerEventHandler("activate", &toxActivateEventHandler);
|
||||||
|
|
||||||
uint32_t ipcDest = 0;
|
uint32_t ipcDest = 0;
|
||||||
|
bool doIpc = true;
|
||||||
QString eventType, firstParam;
|
QString eventType, firstParam;
|
||||||
if (parser.isSet("p")) {
|
if (parser.isSet("p")) {
|
||||||
profileName = parser.value("p");
|
profileName = parser.value("p");
|
||||||
if (!Profile::exists(profileName)) {
|
if (!Profile::exists(profileName)) {
|
||||||
qCritical() << "-p profile" << profileName + ".tox"
|
qWarning() << "-p profile" << profileName + ".tox"
|
||||||
<< "doesn't exist";
|
<< "doesn't exist, opening login screen";
|
||||||
return EXIT_FAILURE;
|
doIpc = false;
|
||||||
}
|
autoLogin = false;
|
||||||
|
} else {
|
||||||
ipcDest = Settings::makeProfileId(profileName);
|
ipcDest = Settings::makeProfileId(profileName);
|
||||||
autoLogin = true;
|
autoLogin = true;
|
||||||
|
}
|
||||||
|
} else if (parser.isSet("l")) {
|
||||||
|
doIpc = false;
|
||||||
|
autoLogin = false;
|
||||||
} else {
|
} else {
|
||||||
profileName = Settings::getInstance().getCurrentProfile();
|
profileName = Settings::getInstance().getCurrentProfile();
|
||||||
}
|
}
|
||||||
|
@ -296,13 +304,13 @@ int main(int argc, char* argv[])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ipc.isCurrentOwner()) {
|
if (doIpc && !ipc.isCurrentOwner()) {
|
||||||
time_t event = ipc.postEvent(eventType, firstParam.toUtf8(), ipcDest);
|
time_t event = ipc.postEvent(eventType, firstParam.toUtf8(), ipcDest);
|
||||||
// If someone else processed it, we're done here, no need to actually start qTox
|
// If someone else processed it, we're done here, no need to actually start qTox
|
||||||
if (ipc.waitUntilAccepted(event, 2)) {
|
if (ipc.waitUntilAccepted(event, 2)) {
|
||||||
if (eventType == "activate") {
|
if (eventType == "activate") {
|
||||||
qDebug() << "Another qTox instance is already running. If you want to start a second "
|
qDebug() << "Another qTox instance is already running. If you want to start a second "
|
||||||
"instance, please start with a profile (qtox -p <profile name>).";
|
"instance, please open login screen (qtox -l) or start with a profile (qtox -p <profile name>).";
|
||||||
} else {
|
} else {
|
||||||
qDebug() << "Event" << eventType << "was handled by other client.";
|
qDebug() << "Event" << eventType << "was handled by other client.";
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user