diff options
-rw-r--r-- | facetracknoir/main.cpp | 14 | ||||
-rw-r--r-- | facetracknoir/ui.cpp | 13 | ||||
-rw-r--r-- | facetracknoir/ui.h | 1 |
3 files changed, 28 insertions, 0 deletions
diff --git a/facetracknoir/main.cpp b/facetracknoir/main.cpp index ae237b61..bbdfbc70 100644 --- a/facetracknoir/main.cpp +++ b/facetracknoir/main.cpp @@ -1,5 +1,6 @@ #include "ui.h" #include <QApplication> +#include <QCommandLineParser> #include <QStyleFactory> #include <QStringList> #include <memory> @@ -28,8 +29,21 @@ int main(int argc, char** argv) QApplication::setAttribute(Qt::AA_X11InitThreads, true); QApplication app(argc, argv); + QCommandLineParser p; + p.setApplicationDescription("opentrack - Head tracking software for MS Windows, Linux, and Apple OSX"); + p.addHelpOption(); + QCommandLineOption autostartOption(QStringList() << "a" << "autostart", "Load <profile> and start tracking", "profile"); + p.addOption(autostartOption); + p.process(app); + MainWindow w; + QString profile = p.value(autostartOption); + if (! profile.isEmpty() ) + { + w.open_and_run(profile); + } + w.show(); app.exec(); diff --git a/facetracknoir/ui.cpp b/facetracknoir/ui.cpp index c9a0b7b3..071a4126 100644 --- a/facetracknoir/ui.cpp +++ b/facetracknoir/ui.cpp @@ -25,6 +25,7 @@ #include "opentrack/tracker.h" #include "opentrack/options.hpp" #include <QFileDialog> +#include <QFileInfo> #ifndef _WIN32 # include <unistd.h> @@ -211,6 +212,18 @@ void MainWindow::bindKeyboardShortcuts() ensure_tray(); } +void MainWindow::open_and_run(const QString &fileName) { + if (! fileName.isEmpty() && QFileInfo(fileName).exists()) { + { + QSettings settings(group::org); + settings.setValue(group::filename_key, remove_app_path(fileName)); + } + fill_profile_combobox(); + load_settings(); + QTimer::singleShot(0, this, SLOT(startTracker())); + } +} + void MainWindow::startTracker( ) { s.b->save(); load_settings(); diff --git a/facetracknoir/ui.h b/facetracknoir/ui.h index cc7af1bf..92be8071 100644 --- a/facetracknoir/ui.h +++ b/facetracknoir/ui.h @@ -101,6 +101,7 @@ public slots: void shortcutToggled(); void shortcutZeroed(); void bindKeyboardShortcuts(); + void open_and_run(const QString &profile); private slots: void open(); void save(); |