Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
FEAT(client): Add --hidden cli option to start Mumble hidden in tray
Browse files Browse the repository at this point in the history
This commit introduces the "--hidden" cli option which prevents
Mumble and the ConnectDialog to show up on startup.
This is especially useful for users who want to automate the
startup process without human interaction.

Fixes mumble-voip#3879
Hartmnt committed Jun 24, 2024
1 parent 317d59f commit f925add
Showing 1 changed file with 16 additions and 3 deletions.
19 changes: 16 additions & 3 deletions src/mumble/main.cpp
Original file line number Diff line number Diff line change
@@ -212,6 +212,7 @@ int main(int argc, char **argv) {
bool customJackClientName = false;
bool bRpcMode = false;
bool printTranslationDirs = false;
bool startHiddenInTray = false;
QString rpcCommand;
QUrl url;
QDir qdCert(QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation));
@@ -288,7 +289,9 @@ int main(int argc, char **argv) {
" locale that corresponds to the given locale string.\n"
" If the format is invalid, Mumble will error.\n"
" Otherwise the locale will be permanently saved to\n"
" Mumble's settings."
" Mumble's settings.\n"
" --hidden\n"
" Start Mumble hidden in the system tray."
"\n");
QString rpcHelpBanner = MainWindow::tr("Remote controlling Mumble:\n"
"\n");
@@ -415,6 +418,14 @@ int main(int argc, char **argv) {
qCritical("Missing argument for --locale!");
return 1;
}
} else if (args.at(i) == "--hidden") {
#ifndef Q_OS_MAC
startHiddenInTray = true;
qInfo("Starting hidden in system tray");
#else
// When Qt addresses hide() on macOS to use native hiding, this can be fixed.
qWarning("Can not start Mumble hidden in system tray on macOS");
#endif
} else if (args.at(i) == "--version") {
// Print version and exit (print to regular std::cout to avoid adding any useless meta-information from
// using e.g. qWarning
@@ -684,7 +695,9 @@ int main(int argc, char **argv) {

// Main Window
Global::get().mw = new MainWindow(nullptr);
Global::get().mw->show();
if (!startHiddenInTray) {
Global::get().mw->showRaiseWindow();
}

Global::get().trayIcon = new TrayIcon();

@@ -799,7 +812,7 @@ int main(int argc, char **argv) {
OpenURLEvent *oue = new OpenURLEvent(a.quLaunchURL);
qApp->postEvent(Global::get().mw, oue);
#endif
} else {
} else if (!startHiddenInTray || Global::get().s.bAutoConnect) {
Global::get().mw->on_qaServerConnect_triggered(true);
}

0 comments on commit f925add

Please sign in to comment.