diff --git a/src/config.cpp b/src/config.cpp index 735ff35..706ad19 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -6,6 +6,13 @@ #include #include +int Config::s_cliUiMode = -1; + +void Config::setCliUiMode(UiMode mode) +{ + s_cliUiMode = static_cast(mode); +} + Config::Config(QObject *parent) : QObject(parent) { @@ -28,6 +35,8 @@ void Config::setViewMode(ViewMode mode) Config::UiMode Config::uiMode() const { + if (s_cliUiMode >= 0) + return static_cast(s_cliUiMode); return m_uiMode; } diff --git a/src/config.h b/src/config.h index 1911b1d..9f95631 100644 --- a/src/config.h +++ b/src/config.h @@ -125,6 +125,8 @@ public: bool mirrorNotifications() const; void setMirrorNotifications(bool mirror); + static void setCliUiMode(UiMode mode); + Q_INVOKABLE void save(); Q_INVOKABLE void load(); Q_INVOKABLE void resetToDefaults(); @@ -158,6 +160,8 @@ Q_SIGNALS: void mirrorNotificationsChanged(); private: + static int s_cliUiMode; + ViewMode m_viewMode = GridView; UiMode m_uiMode = Auto; int m_gridSize = 180; diff --git a/src/main.cpp b/src/main.cpp index 2512db5..75bd90b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -66,12 +66,22 @@ int main(int argc, char *argv[]) const QCommandLineOption quitOnCloseOption(QStringLiteral("quit-on-close"), i18n("Quit when the main window is closed")); const QCommandLineOption closeToTrayOption(QStringLiteral("close-to-tray"), i18n("Hide the main window to the system tray when closed")); + const QCommandLineOption couchModeOption(QStringLiteral("couch-mode"), i18n("Start in couch/TV mode (full-screen console UI)")); + const QCommandLineOption desktopModeOption(QStringLiteral("desktop-mode"), i18n("Start in desktop mode (windowed UI with sidebar)")); parser.addOption(quitOnCloseOption); parser.addOption(closeToTrayOption); + parser.addOption(couchModeOption); + parser.addOption(desktopModeOption); parser.process(app); aboutData.processCommandLine(&parser); + if (parser.isSet(couchModeOption)) { + Config::setCliUiMode(Config::Couch); + } else if (parser.isSet(desktopModeOption)) { + Config::setCliUiMode(Config::Desktop); + } + bool terminalLaunched = false; #if defined(Q_OS_UNIX) terminalLaunched = (isatty(STDIN_FILENO) || isatty(STDOUT_FILENO) || isatty(STDERR_FILENO));