summaryrefslogtreecommitdiffhomepage
path: root/facetracknoir
diff options
context:
space:
mode:
authorFabian Wickborn <fabian@wickborn.net>2015-05-20 15:02:47 +0200
committerFabian Wickborn <fabian@wickborn.net>2015-05-20 15:05:23 +0200
commit2bb80e1cc1f7755d44a99d19bf9b15f03f7bbbae (patch)
tree45c9b0369545887e2acef53abf45a54ba35842b3 /facetracknoir
parent2426dcefc8a2f6b0209a0eeafc8499aa4a7551c3 (diff)
Added command line option for automatic starts
Diffstat (limited to 'facetracknoir')
-rw-r--r--facetracknoir/main.cpp14
-rw-r--r--facetracknoir/ui.cpp13
-rw-r--r--facetracknoir/ui.h1
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();