Skip to content

Commit 099aa1f

Browse files
committed
feat: add cmdline option to hide system tray icon
1 parent e93343a commit 099aa1f

File tree

3 files changed

+11
-4
lines changed

3 files changed

+11
-4
lines changed

src/main.cc

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,7 @@ namespace {
201201
const QCommandLineOption logLvlOption_ = {QStringList{ "l", "log-level" }, Main::tr("Set log level (dbg,inf,wrn,err)."), "lvl"};
202202
const QCommandLineOption disableUInputOption_ = {QStringList{ "disable-uinput" }, Main::tr("Disable uinput support.")};
203203
const QCommandLineOption showDlgOnStartOption_ = {QStringList{ "show-dialog" }, Main::tr("Show preferences dialog on start.")};
204+
const QCommandLineOption hideSysTrayOption_ = {QStringList{ "hide-systray-icon"}, Main::tr("Hide the system tray icon.")};
204205
const QCommandLineOption dialogMinOnlyOption_ = {QStringList{ "m", "minimize-only" }, Main::tr("Only allow minimizing the dialog.")};
205206
const QCommandLineOption disableOverlayOption_ = {QStringList{ "disable-overlay" }, Main::tr("Disable spotlight overlay completely.")};
206207
const QCommandLineOption additionalDeviceOption_ = {QStringList{ "D", "additional-device"},
@@ -215,7 +216,7 @@ namespace {
215216
parser.addOptions({versionOption_, helpOption_, fullHelpOption_, commandOption_,
216217
cfgFileOption_, fullVersionOption_, deviceInfoOption_, logLvlOption_,
217218
disableUInputOption_, showDlgOnStartOption_, dialogMinOnlyOption_,
218-
disableOverlayOption_, additionalDeviceOption_});
219+
disableOverlayOption_, additionalDeviceOption_, hideSysTrayOption_});
219220
}
220221

221222
// ---------------------------------------------------------------------------------------------
@@ -236,6 +237,7 @@ namespace {
236237
auto cfgFileOptionValue() const { return parser.value(cfgFileOption_); }
237238
bool logLvlOptionSet() const { return parser.isSet(logLvlOption_); }
238239
auto logLvlOptionValue() const { return parser.value(logLvlOption_); }
240+
bool hideSysTrayOptionSet() const { return parser.isSet(hideSysTrayOption_); }
239241

240242
// ---------------------------------------------------------------------------------------------
241243
void processArgs(int argc, char** argv)
@@ -282,6 +284,7 @@ namespace {
282284
if (fullHelp) {
283285
print() << " --disable-uinput " << disableUInputOption_.description();
284286
print() << " --show-dialog " << showDlgOnStartOption_.description();
287+
print() << " --hide-systray-icon " << hideSysTrayOption_.description();
285288
print() << " -m, --minimize-only " << dialogMinOnlyOption_.description();
286289
}
287290
print() << " -c COMMAND|PROPERTY " << commandOption_.description() << std::endl;
@@ -388,6 +391,7 @@ int main(int argc, char *argv[])
388391
options.showPreferencesOnStart = parser.showDlgOnStartOptionSet();
389392
options.dialogMinimizeOnly = parser.dialogMinOnlyOptionSet();
390393
options.disableOverlay = parser.disableOverlayOptionSet();
394+
options.hideSysTrayIcon = parser.hideSysTrayOptionSet();
391395

392396
if (parser.logLvlOptionSet()) {
393397
const auto lvl = logging::levelFromName(parser.logLvlOptionValue());

src/projecteurapp.cc

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ ProjecteurApplication::ProjecteurApplication(int &argc, char **argv, const Optio
148148
connect(this, &ProjecteurApplication::screenRemoved, this, [this](){ setupScreenOverlays(); });
149149

150150
// Setup the tray icon and menu
151-
setupTrayIcon();
151+
setupTrayIcon(options);
152152

153153
connect(this, &ProjecteurApplication::aboutToQuit, this, [this](){
154154
for (const auto window : m_overlayWindows) { window->close(); }
@@ -275,7 +275,7 @@ void ProjecteurApplication::setupSpotlight()
275275
}
276276

277277
// -------------------------------------------------------------------------------------------------
278-
void ProjecteurApplication::setupTrayIcon()
278+
void ProjecteurApplication::setupTrayIcon(Options const& options)
279279
{
280280
// add and connect 'Preferences' tray menu action
281281
const auto actionPref = m_trayMenu->addAction(tr("&Preferences..."));
@@ -341,6 +341,8 @@ void ProjecteurApplication::setupTrayIcon()
341341
logDebug(mainapp) << tr("Exit request from preferences dialog.");
342342
actionQuit->trigger();
343343
});
344+
345+
m_trayIcon->setVisible(!options.hideSysTrayIcon);
344346
}
345347

346348
// -------------------------------------------------------------------------------------------------

src/projecteurapp.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ class ProjecteurApplication : public QApplication
3737
bool showPreferencesOnStart = false;
3838
bool dialogMinimizeOnly = false;
3939
bool disableOverlay = false;
40+
bool hideSysTrayIcon = false;
4041
std::vector<SupportedDevice> additionalDevices;
4142
};
4243

@@ -71,7 +72,7 @@ private slots:
7172
QPoint currentCursorPos() const;
7273
void setCurrentCursorPos(const QPoint& pos);
7374

74-
void setupTrayIcon();
75+
void setupTrayIcon(Options const& options);
7576
void setupSpotlight();
7677

7778
private:

0 commit comments

Comments
 (0)