summaryrefslogtreecommitdiffhomepage
path: root/FaceTrackNoIR
diff options
context:
space:
mode:
authorWim Vriend <facetracknoir@gmail.com>2010-11-19 14:55:47 +0000
committerWim Vriend <facetracknoir@gmail.com>2010-11-19 14:55:47 +0000
commitab77b86507c65c56ec8aeda181bb43cc96cebc18 (patch)
tree2dfebccb04ffd4bc8687e6101840f03a488d3bb4 /FaceTrackNoIR
parent04ec6d036899a126e2d7fad1523c1c262442423d (diff)
Donation buttons and layout improved
git-svn-id: svn+ssh://svn.code.sf.net/p/facetracknoir/code@28 19e81ba0-9b1a-49c3-bd6c-561e1906d5fb
Diffstat (limited to 'FaceTrackNoIR')
-rw-r--r--FaceTrackNoIR/FGServer.cpp188
-rw-r--r--FaceTrackNoIR/FGServer.h34
-rw-r--r--FaceTrackNoIR/FaceTrackNoIR.cpp25
-rw-r--r--FaceTrackNoIR/FaceTrackNoIR.h9
-rw-r--r--FaceTrackNoIR/FaceTrackNoIR.qrc1
-rw-r--r--FaceTrackNoIR/FaceTrackNoIR.ui998
-rw-r--r--FaceTrackNoIR/FaceTrackNoIR.vcproj30
-rw-r--r--FaceTrackNoIR/UIElements/aboutFaceTrackNoIR.pngbin20682 -> 28784 bytes
8 files changed, 798 insertions, 487 deletions
diff --git a/FaceTrackNoIR/FGServer.cpp b/FaceTrackNoIR/FGServer.cpp
index ef6987aa..6b96d249 100644
--- a/FaceTrackNoIR/FGServer.cpp
+++ b/FaceTrackNoIR/FGServer.cpp
@@ -40,6 +40,8 @@ FGServer::FGServer( Tracker *parent ) {
// Create events
m_StopThread = CreateEvent(0, TRUE, FALSE, 0);
m_WaitThread = CreateEvent(0, TRUE, FALSE, 0);
+
+ loadSettings();
}
//
@@ -87,8 +89,8 @@ int no_bytes;
//
//! [1]
- no_bytes = outSocket->writeDatagram((const char *) &TestData, sizeof( TestData ),
- QHostAddress::LocalHost, 5550);
+// no_bytes = outSocket->writeDatagram((const char *) &TestData, sizeof( TestData ), QHostAddress::LocalHost, 5550);
+ no_bytes = outSocket->writeDatagram((const char *) &TestData, sizeof( TestData ), destIP, destPort);
if ( no_bytes > 0) {
// qDebug() << "FGServer::writePendingDatagrams says: bytes send =" << no_bytes << sizeof( double );
}
@@ -116,7 +118,8 @@ void FGServer::run() {
outSocket = new QUdpSocket();
// Connect the inSocket to the port, to receive readyRead messages
- inSocket->bind(QHostAddress::LocalHost, 5551);
+// inSocket->bind(QHostAddress::LocalHost, 5551);
+ inSocket->bind(QHostAddress::Any, destPort+1);
// Connect the inSocket to the member-function, to read FlightGear commands
connect(inSocket, SIGNAL(readyRead()), this, SLOT(readPendingDatagrams()), Qt::DirectConnection);
@@ -135,4 +138,183 @@ void FGServer::terminate() {
delete outSocket;
}
+//
+// Load the current Settings from the currently 'active' INI-file.
+//
+void FGServer::loadSettings() {
+
+ QSettings settings("Abbequerque Inc.", "FaceTrackNoIR"); // Registry settings (in HK_USER)
+
+ QString currentFile = settings.value ( "SettingsFile", QCoreApplication::applicationDirPath() + "/Settings/default.ini" ).toString();
+ QSettings iniFile( currentFile, QSettings::IniFormat ); // Application settings (in INI-file)
+
+ iniFile.beginGroup ( "FG" );
+
+ bool blnLocalPC = iniFile.value ( "LocalPCOnly", 1 ).toBool();
+ if (blnLocalPC) {
+ destIP = QHostAddress::LocalHost;
+ }
+ else {
+ QString destAddr = iniFile.value ( "IP-1", 192 ).toString() + "." + iniFile.value ( "IP-2", 168 ).toString() + "." + iniFile.value ( "IP-3", 2 ).toString() + "." + iniFile.value ( "IP-4", 1 ).toString();
+ destIP = QHostAddress( destAddr );
+ }
+ destPort = iniFile.value ( "PortNumber", 5550 ).toInt();
+
+ iniFile.endGroup ();
+}
+
+//
+// Constructor for server-settings-dialog
+//
+FGControls::FGControls( QWidget *parent, Qt::WindowFlags f ) :
+QWidget( parent , f)
+{
+ ui.setupUi( this );
+
+ QPoint offsetpos(100, 100);
+ this->move(parent->pos() + offsetpos);
+
+ // Connect Qt signals to member-functions
+ connect(ui.btnOK, SIGNAL(clicked()), this, SLOT(doOK()));
+ connect(ui.btnCancel, SIGNAL(clicked()), this, SLOT(doCancel()));
+ connect(ui.chkLocalPC, SIGNAL(stateChanged(int)), this, SLOT(chkLocalPCOnlyChanged()));
+ connect(ui.spinIPFirstNibble, SIGNAL(valueChanged(int)), this, SLOT(settingChanged()));
+ connect(ui.spinIPSecondNibble, SIGNAL(valueChanged(int)), this, SLOT(settingChanged()));
+ connect(ui.spinIPThirdNibble, SIGNAL(valueChanged(int)), this, SLOT(settingChanged()));
+ connect(ui.spinIPFourthNibble, SIGNAL(valueChanged(int)), this, SLOT(settingChanged()));
+ connect(ui.spinPortNumber, SIGNAL(valueChanged(int)), this, SLOT(settingChanged()));
+
+ // Load the settings from the current .INI-file
+ loadSettings();
+}
+
+//
+// Destructor for server-dialog
+//
+FGControls::~FGControls() {
+ qDebug() << "~FGControls() says: started";
+}
+
+//
+// OK clicked on server-dialog
+//
+void FGControls::doOK() {
+ save();
+ this->close();
+}
+
+// override show event
+void FGControls::showEvent ( QShowEvent * event ) {
+ loadSettings();
+}
+
+//
+// Cancel clicked on server-dialog
+//
+void FGControls::doCancel() {
+ //
+ // Ask if changed Settings should be saved
+ //
+ if (settingsDirty) {
+ int ret = QMessageBox::question ( this, "Settings have changed", "Do you want to save the settings?", QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel, QMessageBox::Discard );
+
+ qDebug() << "doCancel says: answer =" << ret;
+
+ switch (ret) {
+ case QMessageBox::Save:
+ save();
+ this->close();
+ break;
+ case QMessageBox::Discard:
+ this->close();
+ break;
+ case QMessageBox::Cancel:
+ // Cancel was clicked
+ break;
+ default:
+ // should never be reached
+ break;
+ }
+ }
+ else {
+ this->close();
+ }
+}
+
+//
+// Load the current Settings from the currently 'active' INI-file.
+//
+void FGControls::loadSettings() {
+
+// qDebug() << "loadSettings says: Starting ";
+ QSettings settings("Abbequerque Inc.", "FaceTrackNoIR"); // Registry settings (in HK_USER)
+
+ QString currentFile = settings.value ( "SettingsFile", QCoreApplication::applicationDirPath() + "/Settings/default.ini" ).toString();
+ QSettings iniFile( currentFile, QSettings::IniFormat ); // Application settings (in INI-file)
+
+// qDebug() << "loadSettings says: iniFile = " << currentFile;
+
+ iniFile.beginGroup ( "FG" );
+ ui.chkLocalPC->setChecked (iniFile.value ( "LocalPCOnly", 1 ).toBool());
+
+ ui.spinIPFirstNibble->setValue( iniFile.value ( "IP-1", 192 ).toInt() );
+ ui.spinIPSecondNibble->setValue( iniFile.value ( "IP-2", 168 ).toInt() );
+ ui.spinIPThirdNibble->setValue( iniFile.value ( "IP-3", 2 ).toInt() );
+ ui.spinIPFourthNibble->setValue( iniFile.value ( "IP-4", 1 ).toInt() );
+
+ ui.spinPortNumber->setValue( iniFile.value ( "PortNumber", 5550 ).toInt() );
+ iniFile.endGroup ();
+
+ chkLocalPCOnlyChanged();
+ settingsDirty = false;
+
+}
+
+//
+// Save the current Settings to the currently 'active' INI-file.
+//
+void FGControls::save() {
+
+ QSettings settings("Abbequerque Inc.", "FaceTrackNoIR"); // Registry settings (in HK_USER)
+
+ QString currentFile = settings.value ( "SettingsFile", QCoreApplication::applicationDirPath() + "/Settings/default.ini" ).toString();
+ QSettings iniFile( currentFile, QSettings::IniFormat ); // Application settings (in INI-file)
+
+ iniFile.beginGroup ( "FG" );
+ iniFile.setValue ( "LocalPCOnly", ui.chkLocalPC->isChecked() );
+ iniFile.setValue ( "IP-1", ui.spinIPFirstNibble->value() );
+ iniFile.setValue ( "IP-2", ui.spinIPSecondNibble->value() );
+ iniFile.setValue ( "IP-3", ui.spinIPThirdNibble->value() );
+ iniFile.setValue ( "IP-4", ui.spinIPFourthNibble->value() );
+ iniFile.setValue ( "PortNumber", ui.spinPortNumber->value() );
+ iniFile.endGroup ();
+
+ settingsDirty = false;
+}
+
+//
+// Handle change of the checkbox.
+//
+void FGControls::chkLocalPCOnlyChanged() {
+
+ if ( ui.chkLocalPC->isChecked() ) {
+ ui.spinIPFirstNibble->setValue( 127 );
+ ui.spinIPFirstNibble->setEnabled ( false );
+ ui.spinIPSecondNibble->setValue( 0 );
+ ui.spinIPSecondNibble->setEnabled ( false );
+ ui.spinIPThirdNibble->setValue( 0 );
+ ui.spinIPThirdNibble->setEnabled ( false );
+ ui.spinIPFourthNibble->setValue( 1 );
+ ui.spinIPFourthNibble->setEnabled ( false );
+ }
+ else {
+ ui.spinIPFirstNibble->setEnabled ( true );
+ ui.spinIPSecondNibble->setEnabled ( true );
+ ui.spinIPThirdNibble->setEnabled ( true );
+ ui.spinIPFourthNibble->setEnabled ( true );
+ }
+
+ settingsDirty = true;
+}
+
//END
diff --git a/FaceTrackNoIR/FGServer.h b/FaceTrackNoIR/FGServer.h
index bd849c80..c4d8d516 100644
--- a/FaceTrackNoIR/FGServer.h
+++ b/FaceTrackNoIR/FGServer.h
@@ -43,6 +43,8 @@
using namespace std;
+#include "ui_FTNoIR_FGcontrols.h"
+
class Tracker; // pre-define parent-class to avoid circular includes
class FGServer : public QThread {
@@ -72,7 +74,9 @@ private:
QUdpSocket *inSocket; // Receive from FligthGear
QUdpSocket *outSocket; // Send to FligthGear
qint32 fg_cmd; // Command from FlightGear
-
+ QHostAddress destIP; // Destination IP-address
+ int destPort; // Destination port-number
+
/** member variables for saving the head pose **/
float virtPosX;
float virtPosY;
@@ -82,6 +86,8 @@ private:
float virtRotY;
float virtRotZ;
+ void loadSettings();
+
public:
void setVirtRotX(float rot) { virtRotX = rot; }
void setVirtRotY(float rot) { virtRotY = rot; }
@@ -92,6 +98,32 @@ public:
};
+// Widget that has controls for FG server-settings.
+class FGControls: public QWidget, public Ui::UICFGControls
+{
+ Q_OBJECT
+public:
+
+ explicit FGControls( QWidget *parent=0, Qt::WindowFlags f=0 );
+ virtual ~FGControls();
+ void showEvent ( QShowEvent * event );
+
+private:
+ Ui::UICFGControls ui;
+ void loadSettings();
+ void save();
+
+ /** helper **/
+ bool settingsDirty;
+
+private slots:
+ void doOK();
+ void doCancel();
+ void chkLocalPCOnlyChanged();
+ void settingChanged() { settingsDirty = true; };
+};
+
+
#endif//INCLUDED_FGSERVER_H
//END
diff --git a/FaceTrackNoIR/FaceTrackNoIR.cpp b/FaceTrackNoIR/FaceTrackNoIR.cpp
index 3a259cba..cbed2ffd 100644
--- a/FaceTrackNoIR/FaceTrackNoIR.cpp
+++ b/FaceTrackNoIR/FaceTrackNoIR.cpp
@@ -27,6 +27,7 @@
#include "PPJoyServer.h"
#include "FSUIPCServer.h"
#include "FTIRServer.h"
+#include "FGServer.h"
using namespace sm::faceapi;
using namespace sm::faceapi::qt;
@@ -85,6 +86,9 @@ void FaceTrackNoIR::setupFaceTrackNoIR() {
connect(ui.actionCurve_Configuration, SIGNAL(triggered()), this, SLOT(showCurveConfiguration()));
connect(ui.btnEditCurves, SIGNAL(clicked()), this, SLOT(showCurveConfiguration()));
+ connect(ui.actionSupport, SIGNAL(triggered()), this, SLOT(openurl_support()));
+ connect(ui.actionYour_Support, SIGNAL(triggered()), this, SLOT(openurl_donation()));
+ connect(ui.btnDonate, SIGNAL(clicked()), this, SLOT(openurl_donation()));
connect(ui.actionAbout, SIGNAL(triggered()), this, SLOT(about()));
connect(ui.actionVideoWidget, SIGNAL(triggered()), this, SLOT(showVideoWidget()));
@@ -359,7 +363,7 @@ void FaceTrackNoIR::saveAs()
save();
// Put the filename in the window-title
- setWindowTitle ( "FaceTrackNoIR (1.4) - " + newFileInfo.fileName() );
+ setWindowTitle ( "FaceTrackNoIR (1.5) - " + newFileInfo.fileName() );
}
}
@@ -402,10 +406,21 @@ void FaceTrackNoIR::loadSettings() {
// Put the filename in the window-title
QFileInfo pathInfo ( currentFile );
- setWindowTitle ( "FaceTrackNoIR (1.4) - " + pathInfo.fileName() );
+ setWindowTitle ( "FaceTrackNoIR (1.5) - " + pathInfo.fileName() );
}
+/** show support page in web-browser **/
+void FaceTrackNoIR::openurl_support() {
+ QDesktopServices::openUrl(QUrl("http://facetracknoir.sourceforge.net/manual/manual.htm", QUrl::TolerantMode));
+}
+
+/** show donations page in web-browser **/
+void FaceTrackNoIR::openurl_donation() {
+ QDesktopServices::openUrl(QUrl("http://facetracknoir.sourceforge.net/information_links/donate.htm", QUrl::TolerantMode));
+}
+
+
/** show about dialog **/
void FaceTrackNoIR::about() {
aboutDialog.move(this->width()/2-135,
@@ -669,7 +684,6 @@ void FaceTrackNoIR::showServerControls() {
// Show the appropriate Protocol-server Settings
switch (ui.iconcomboBox->currentIndex()) {
case FREE_TRACK:
- case FLIGHTGEAR:
case FTNOIR:
case SIMCONNECT:
break;
@@ -682,6 +696,9 @@ void FaceTrackNoIR::showServerControls() {
case TRACKIR:
_server_controls = new FTIRControls( this, Qt::Dialog );
break;
+ case FLIGHTGEAR:
+ _server_controls = new FGControls( this, Qt::Dialog );
+ break;
default:
break;
}
@@ -821,7 +838,6 @@ void FaceTrackNoIR::setIcon(int index)
// Enable/disable Protocol-server Settings
switch (ui.iconcomboBox->currentIndex()) {
case FREE_TRACK:
- case FLIGHTGEAR:
case FTNOIR:
case SIMCONNECT:
ui.btnShowServerControls->hide();
@@ -829,6 +845,7 @@ void FaceTrackNoIR::setIcon(int index)
case PPJOY:
case FSUIPC:
case TRACKIR:
+ case FLIGHTGEAR:
ui.btnShowServerControls->show();
ui.btnShowServerControls->setEnabled ( true );
break;
diff --git a/FaceTrackNoIR/FaceTrackNoIR.h b/FaceTrackNoIR/FaceTrackNoIR.h
index 923517a4..e4382cd6 100644
--- a/FaceTrackNoIR/FaceTrackNoIR.h
+++ b/FaceTrackNoIR/FaceTrackNoIR.h
@@ -33,6 +33,7 @@
#include <QPainter>
#include <QWidget>
#include <QDialog>
+#include <QUrl>
#include "ui_FaceTrackNoIR.h"
#include "ui_FTNoIR_KeyboardShortcuts.h"
@@ -99,12 +100,17 @@ private:
void setupFaceTrackNoIR();
private slots:
- //file
+ //file menu
void open();
void save();
void saveAs();
void exit();
+ //about menu
+ void openurl_support();
+ void openurl_donation();
+ void about();
+
void setIcon(int index);
void iconActivated(QSystemTrayIcon::ActivationReason reason);
void trackingSourceSelected(int index);
@@ -140,7 +146,6 @@ private:
void startTracker();
void stopTracker();
- void about();
};
// Widget that has controls for FaceTrackNoIR Preferences.
diff --git a/FaceTrackNoIR/FaceTrackNoIR.qrc b/FaceTrackNoIR/FaceTrackNoIR.qrc
index 89899a37..1093f7ec 100644
--- a/FaceTrackNoIR/FaceTrackNoIR.qrc
+++ b/FaceTrackNoIR/FaceTrackNoIR.qrc
@@ -1,5 +1,6 @@
<RCC>
<qresource prefix="/">
+ <file>UIElements/Donate.png</file>
<file>UIElements/Curves.png</file>
<file>images/rotation_DOFs.png</file>
<file>images/translation_DOFs.png</file>
diff --git a/FaceTrackNoIR/FaceTrackNoIR.ui b/FaceTrackNoIR/FaceTrackNoIR.ui
index 74201bb0..d723c0df 100644
--- a/FaceTrackNoIR/FaceTrackNoIR.ui
+++ b/FaceTrackNoIR/FaceTrackNoIR.ui
@@ -789,184 +789,9 @@ color:#000;</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
- <layout class="QHBoxLayout" name="horizontalLayout_3">
- <item>
- <widget class="QGroupBox" name="groupTrackerSource">
- <property name="minimumSize">
- <size>
- <width>200</width>
- <height>120</height>
- </size>
- </property>
- <property name="styleSheet">
- <string notr="true"/>
- </property>
- <property name="title">
- <string>Tracker Source</string>
- </property>
- <widget class="QComboBox" name="iconcomboTrackerSource">
- <property name="geometry">
- <rect>
- <x>10</x>
- <y>20</y>
- <width>161</width>
- <height>22</height>
- </rect>
- </property>
- <property name="styleSheet">
- <string notr="true"/>
- </property>
- <property name="currentIndex">
- <number>-1</number>
- </property>
- <property name="maxVisibleItems">
- <number>3</number>
- </property>
- </widget>
- <widget class="QPushButton" name="btnShowEngineControls">
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="geometry">
- <rect>
- <x>10</x>
- <y>80</y>
- <width>161</width>
- <height>23</height>
- </rect>
- </property>
- <property name="toolTip">
- <string>Change tracker settings</string>
- </property>
- <property name="styleSheet">
- <string notr="true"/>
- </property>
- <property name="text">
- <string>Settings</string>
- </property>
- </widget>
- <widget class="QPushButton" name="btnStartTracker">
- <property name="geometry">
- <rect>
- <x>10</x>
- <y>50</y>
- <width>75</width>
- <height>23</height>
- </rect>
- </property>
- <property name="toolTip">
- <string>Start the Tracker</string>
- </property>
- <property name="styleSheet">
- <string notr="true"/>
- </property>
- <property name="text">
- <string>Start</string>
- </property>
- </widget>
- <widget class="QPushButton" name="btnStopTracker">
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="geometry">
- <rect>
- <x>96</x>
- <y>50</y>
- <width>75</width>
- <height>23</height>
- </rect>
- </property>
- <property name="toolTip">
- <string>Stop the Tracker</string>
- </property>
- <property name="styleSheet">
- <string notr="true"/>
- </property>
- <property name="text">
- <string>Stop</string>
- </property>
- </widget>
- </widget>
- </item>
- <item>
- <widget class="QGroupBox" name="groupGameProtocol">
- <property name="minimumSize">
- <size>
- <width>190</width>
- <height>100</height>
- </size>
- </property>
- <property name="styleSheet">
- <string notr="true"/>
- </property>
- <property name="title">
- <string>Game protocol</string>
- </property>
- <widget class="QComboBox" name="iconcomboBox">
- <property name="geometry">
- <rect>
- <x>10</x>
- <y>20</y>
- <width>151</width>
- <height>22</height>
- </rect>
- </property>
- <property name="styleSheet">
- <string notr="true"/>
- </property>
- <property name="currentIndex">
- <number>-1</number>
- </property>
- <property name="maxVisibleItems">
- <number>6</number>
- </property>
- </widget>
- <widget class="QPushButton" name="btnShowServerControls">
- <property name="enabled">
- <bool>true</bool>
- </property>
- <property name="geometry">
- <rect>
- <x>10</x>
- <y>80</y>
- <width>151</width>
- <height>23</height>
- </rect>
- </property>
- <property name="toolTip">
- <string>Change game protocol settings</string>
- </property>
- <property name="styleSheet">
- <string notr="true"/>
- </property>
- <property name="text">
- <string>Settings</string>
- </property>
- </widget>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="btnEditCurves">
- <property name="toolTip">
- <string>Edit the Curve settings</string>
- </property>
- <property name="text">
- <string>Curves</string>
- </property>
- <property name="icon">
- <iconset resource="FaceTrackNoIR.qrc">
- <normaloff>:/UIElements/Curves.png</normaloff>:/UIElements/Curves.png</iconset>
- </property>
- <property name="iconSize">
- <size>
- <width>150</width>
- <height>32</height>
- </size>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="horizontalSpacer_3">
+ <layout class="QGridLayout" name="gridLayout_2">
+ <item row="1" column="2">
+ <spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@@ -978,124 +803,246 @@ color:#000;</string>
</property>
</spacer>
</item>
- </layout>
- </item>
- <item>
- <spacer name="verticalSpacer">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>50</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_11">
- <item>
- <spacer name="horizontalSpacer_9">
+ <item row="1" column="0">
+ <spacer name="horizontalSpacer_6">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
- <width>0</width>
+ <width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
- <item>
- <widget class="QWidget" name="bubbleSmallWidget_2" native="true">
- <property name="minimumSize">
- <size>
- <width>667</width>
- <height>67</height>
- </size>
- </property>
- <property name="maximumSize">
- <size>
- <width>667</width>
- <height>67</height>
- </size>
- </property>
- <property name="acceptDrops">
- <bool>true</bool>
+ <item row="1" column="1">
+ <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <property name="leftMargin">
+ <number>10</number>
</property>
- <property name="styleSheet">
- <string notr="true">background: url(&quot;UIElements/bubble_1_small.png&quot;) no-repeat;
-opacity:100;</string>
+ <property name="rightMargin">
+ <number>10</number>
</property>
- <layout class="QVBoxLayout" name="verticalLayout_6">
- <property name="spacing">
- <number>0</number>
- </property>
- <property name="leftMargin">
- <number>15</number>
- </property>
- <property name="topMargin">
- <number>10</number>
- </property>
- <property name="rightMargin">
- <number>10</number>
- </property>
- <property name="bottomMargin">
- <number>10</number>
- </property>
- <item>
- <widget class="QLabel" name="cameraName">
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>30</height>
- </size>
+ <item>
+ <widget class="QGroupBox" name="groupTrackerSource">
+ <property name="minimumSize">
+ <size>
+ <width>200</width>
+ <height>120</height>
+ </size>
+ </property>
+ <property name="styleSheet">
+ <string notr="true"/>
+ </property>
+ <property name="title">
+ <string>Tracker Source</string>
+ </property>
+ <widget class="QComboBox" name="iconcomboTrackerSource">
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>161</width>
+ <height>22</height>
+ </rect>
</property>
- <property name="maximumSize">
- <size>
- <width>16777215</width>
- <height>30</height>
- </size>
+ <property name="styleSheet">
+ <string notr="true"/>
+ </property>
+ <property name="currentIndex">
+ <number>-1</number>
+ </property>
+ <property name="maxVisibleItems">
+ <number>3</number>
+ </property>
+ </widget>
+ <widget class="QPushButton" name="btnShowEngineControls">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>80</y>
+ <width>161</width>
+ <height>23</height>
+ </rect>
+ </property>
+ <property name="toolTip">
+ <string>Change tracker settings</string>
</property>
<property name="styleSheet">
- <string notr="true">color:#ccc;
-background:none;</string>
+ <string notr="true"/>
</property>
<property name="text">
- <string>Camera Name</string>
+ <string>Settings</string>
</property>
</widget>
- </item>
- </layout>
- </widget>
+ <widget class="QPushButton" name="btnStartTracker">
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>50</y>
+ <width>75</width>
+ <height>23</height>
+ </rect>
+ </property>
+ <property name="toolTip">
+ <string>Start the Tracker</string>
+ </property>
+ <property name="styleSheet">
+ <string notr="true"/>
+ </property>
+ <property name="text">
+ <string>Start</string>
+ </property>
+ </widget>
+ <widget class="QPushButton" name="btnStopTracker">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>96</x>
+ <y>50</y>
+ <width>75</width>
+ <height>23</height>
+ </rect>
+ </property>
+ <property name="toolTip">
+ <string>Stop the Tracker</string>
+ </property>
+ <property name="styleSheet">
+ <string notr="true"/>
+ </property>
+ <property name="text">
+ <string>Stop</string>
+ </property>
+ </widget>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupGameProtocol">
+ <property name="minimumSize">
+ <size>
+ <width>190</width>
+ <height>100</height>
+ </size>
+ </property>
+ <property name="styleSheet">
+ <string notr="true"/>
+ </property>
+ <property name="title">
+ <string>Game protocol</string>
+ </property>
+ <widget class="QComboBox" name="iconcomboBox">
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>151</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="styleSheet">
+ <string notr="true"/>
+ </property>
+ <property name="currentIndex">
+ <number>-1</number>
+ </property>
+ <property name="maxVisibleItems">
+ <number>6</number>
+ </property>
+ </widget>
+ <widget class="QPushButton" name="btnShowServerControls">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>80</y>
+ <width>151</width>
+ <height>23</height>
+ </rect>
+ </property>
+ <property name="toolTip">
+ <string>Change game protocol settings</string>
+ </property>
+ <property name="styleSheet">
+ <string notr="true"/>
+ </property>
+ <property name="text">
+ <string>Settings</string>
+ </property>
+ </widget>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="btnEditCurves">
+ <property name="toolTip">
+ <string>Edit the Curve settings</string>
+ </property>
+ <property name="text">
+ <string>Curves</string>
+ </property>
+ <property name="icon">
+ <iconset resource="FaceTrackNoIR.qrc">
+ <normaloff>:/UIElements/Curves.png</normaloff>:/UIElements/Curves.png</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>150</width>
+ <height>32</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ </layout>
</item>
- </layout>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_8">
- <item>
- <spacer name="horizontalSpacer_17">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>QSizePolicy::Expanding</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>15</width>
- <height>20</height>
- </size>
+ <item row="5" column="1">
+ <layout class="QHBoxLayout" name="horLayoutDonate">
+ <property name="rightMargin">
+ <number>10</number>
</property>
- </spacer>
+ <item>
+ <spacer name="horizontalSpacer_4">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="btnDonate">
+ <property name="text">
+ <string>Click here to Donate!</string>
+ </property>
+ <property name="icon">
+ <iconset resource="FaceTrackNoIR.qrc">
+ <normaloff>:/UIElements/Donate.png</normaloff>:/UIElements/Donate.png</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>18</width>
+ <height>18</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ </layout>
</item>
- <item>
+ <item row="4" column="1">
<widget class="QWidget" name="bubbleBigWidget" native="true">
<property name="minimumSize">
<size>
- <width>667</width>
+ <width>620</width>
<height>115</height>
</size>
</property>
@@ -1217,10 +1164,10 @@ background:none;</string>
<number>1</number>
</property>
<property name="maximum">
- <number>120</number>
+ <number>50</number>
</property>
<property name="pageStep">
- <number>10</number>
+ <number>5</number>
</property>
<property name="value">
<number>10</number>
@@ -1245,7 +1192,7 @@ background:none;</string>
<string notr="true">background:none;</string>
</property>
<property name="maximum">
- <number>120</number>
+ <number>50</number>
</property>
<property name="value">
<number>10</number>
@@ -1271,21 +1218,9 @@ background:none;</string>
</widget>
</item>
<item>
- <layout class="QGridLayout" name="gridLayout">
- <item row="1" column="2">
- <widget class="QLabel" name="lblSensYaw">
- <property name="minimumSize">
- <size>
- <width>25</width>
- <height>0</height>
- </size>
- </property>
- <property name="maximumSize">
- <size>
- <width>150</width>
- <height>16777215</height>
- </size>
- </property>
+ <layout class="QGridLayout" name="gridEWMARotations">
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_2">
<property name="layoutDirection">
<enum>Qt::RightToLeft</enum>
</property>
@@ -1294,12 +1229,12 @@ background:none;</string>
background:none;</string>
</property>
<property name="text">
- <string>Yaw</string>
+ <string>EWMA</string>
</property>
</widget>
</item>
- <item row="1" column="6">
- <widget class="QLabel" name="lblSensX">
+ <item row="1" column="0">
+ <widget class="QLabel" name="lblSensYaw">
<property name="minimumSize">
<size>
<width>25</width>
@@ -1320,11 +1255,11 @@ background:none;</string>
background:none;</string>
</property>
<property name="text">
- <string>X</string>
+ <string>Yaw</string>
</property>
</widget>
</item>
- <item row="2" column="2">
+ <item row="2" column="0">
<widget class="QLabel" name="lblSensPitch">
<property name="minimumSize">
<size>
@@ -1350,33 +1285,7 @@ background:none;</string>
</property>
</widget>
</item>
- <item row="2" column="6">
- <widget class="QLabel" name="lblSensY">
- <property name="minimumSize">
- <size>
- <width>25</width>
- <height>0</height>
- </size>
- </property>
- <property name="maximumSize">
- <size>
- <width>150</width>
- <height>16777215</height>
- </size>
- </property>
- <property name="layoutDirection">
- <enum>Qt::RightToLeft</enum>
- </property>
- <property name="styleSheet">
- <string notr="true">color:#ccc;
-background:none;</string>
- </property>
- <property name="text">
- <string>Y</string>
- </property>
- </widget>
- </item>
- <item row="3" column="2">
+ <item row="3" column="0">
<widget class="QLabel" name="lblSensRoll">
<property name="minimumSize">
<size>
@@ -1402,11 +1311,11 @@ background:none;</string>
</property>
</widget>
</item>
- <item row="3" column="6">
- <widget class="QLabel" name="lblSensZ">
+ <item row="0" column="1">
+ <widget class="QLabel" name="lblSensitivity_2">
<property name="minimumSize">
<size>
- <width>25</width>
+ <width>110</width>
<height>0</height>
</size>
</property>
@@ -1416,125 +1325,16 @@ background:none;</string>
<height>16777215</height>
</size>
</property>
- <property name="layoutDirection">
- <enum>Qt::RightToLeft</enum>
- </property>
<property name="styleSheet">
<string notr="true">color:#ccc;
background:none;</string>
</property>
<property name="text">
- <string>Z</string>
- </property>
- </widget>
- </item>
- <item row="1" column="5">
- <widget class="QCheckBox" name="chkInvertYaw">
- <property name="styleSheet">
- <string notr="true">background:none;</string>
- </property>
- <property name="text">
- <string/>
- </property>
- </widget>
- </item>
- <item row="0" column="5">
- <widget class="QLabel" name="lblInvert1">
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>0</height>
- </size>
- </property>
- <property name="maximumSize">
- <size>
- <width>30</width>
- <height>16777215</height>
- </size>
- </property>
- <property name="styleSheet">
- <string notr="true">color:#ccc;
-background:none;</string>
- </property>
- <property name="text">
- <string>Invert</string>
- </property>
- </widget>
- </item>
- <item row="2" column="5">
- <widget class="QCheckBox" name="chkInvertPitch">
- <property name="styleSheet">
- <string notr="true">background:none;</string>
- </property>
- <property name="text">
- <string/>
- </property>
- </widget>
- </item>
- <item row="3" column="5">
- <widget class="QCheckBox" name="chkInvertRoll">
- <property name="styleSheet">
- <string notr="true">background:none;</string>
- </property>
- <property name="text">
- <string/>
- </property>
- </widget>
- </item>
- <item row="1" column="9">
- <widget class="QCheckBox" name="chkInvertX">
- <property name="styleSheet">
- <string notr="true">background:none;</string>
- </property>
- <property name="text">
- <string/>
- </property>
- </widget>
- </item>
- <item row="0" column="9">
- <widget class="QLabel" name="lblInvert1_2">
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>0</height>
- </size>
- </property>
- <property name="maximumSize">
- <size>
- <width>30</width>
- <height>16777215</height>
- </size>
- </property>
- <property name="styleSheet">
- <string notr="true">color:#ccc;
-background:none;</string>
- </property>
- <property name="text">
- <string>Invert</string>
- </property>
- </widget>
- </item>
- <item row="2" column="9">
- <widget class="QCheckBox" name="chkInvertY">
- <property name="styleSheet">
- <string notr="true">background:none;</string>
- </property>
- <property name="text">
- <string/>
- </property>
- </widget>
- </item>
- <item row="3" column="9">
- <widget class="QCheckBox" name="chkInvertZ">
- <property name="styleSheet">
- <string notr="true">background:none;</string>
- </property>
- <property name="text">
- <string/>
+ <string>Red.factor (100 = 1)</string>
</property>
</widget>
</item>
- <item row="1" column="3">
+ <item row="1" column="1">
<widget class="QSlider" name="redYaw">
<property name="minimumSize">
<size>
@@ -1559,7 +1359,7 @@ background:none;</string>
</property>
</widget>
</item>
- <item row="2" column="3">
+ <item row="2" column="1">
<widget class="QSlider" name="redPitch">
<property name="minimumSize">
<size>
@@ -1584,7 +1384,7 @@ background:none;</string>
</property>
</widget>
</item>
- <item row="3" column="3">
+ <item row="3" column="1">
<widget class="QSlider" name="redRoll">
<property name="minimumSize">
<size>
@@ -1609,7 +1409,7 @@ background:none;</string>
</property>
</widget>
</item>
- <item row="1" column="4">
+ <item row="1" column="2">
<widget class="QSpinBox" name="spinRedYaw">
<property name="minimumSize">
<size>
@@ -1631,7 +1431,7 @@ background:none;</string>
</property>
</widget>
</item>
- <item row="2" column="4">
+ <item row="2" column="2">
<widget class="QSpinBox" name="spinRedPitch">
<property name="minimumSize">
<size>
@@ -1653,7 +1453,7 @@ background:none;</string>
</property>
</widget>
</item>
- <item row="3" column="4">
+ <item row="3" column="2">
<widget class="QSpinBox" name="spinRedRoll">
<property name="minimumSize">
<size>
@@ -1675,11 +1475,75 @@ background:none;</string>
</property>
</widget>
</item>
+ <item row="1" column="3">
+ <widget class="QCheckBox" name="chkInvertYaw">
+ <property name="styleSheet">
+ <string notr="true">background:none;</string>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="3">
+ <widget class="QCheckBox" name="chkInvertPitch">
+ <property name="styleSheet">
+ <string notr="true">background:none;</string>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="3">
+ <widget class="QCheckBox" name="chkInvertRoll">
+ <property name="styleSheet">
+ <string notr="true">background:none;</string>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
<item row="0" column="3">
- <widget class="QLabel" name="lblSensitivity_2">
+ <widget class="QLabel" name="lblInvert1">
<property name="minimumSize">
<size>
- <width>110</width>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>30</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">color:#ccc;
+background:none;</string>
+ </property>
+ <property name="text">
+ <string>Invert</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="Line" name="line_2">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QGridLayout" name="gridEWMATranslations">
+ <item row="1" column="0">
+ <widget class="QLabel" name="lblSensX">
+ <property name="minimumSize">
+ <size>
+ <width>25</width>
<height>0</height>
</size>
</property>
@@ -1689,16 +1553,124 @@ background:none;</string>
<height>16777215</height>
</size>
</property>
+ <property name="layoutDirection">
+ <enum>Qt::RightToLeft</enum>
+ </property>
<property name="styleSheet">
<string notr="true">color:#ccc;
background:none;</string>
</property>
<property name="text">
- <string>Red.factor (100 = 1)</string>
+ <string>X</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="lblSensY">
+ <property name="minimumSize">
+ <size>
+ <width>25</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>150</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="layoutDirection">
+ <enum>Qt::RightToLeft</enum>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">color:#ccc;
+background:none;</string>
+ </property>
+ <property name="text">
+ <string>Y</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="lblSensZ">
+ <property name="minimumSize">
+ <size>
+ <width>25</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>150</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="layoutDirection">
+ <enum>Qt::RightToLeft</enum>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">color:#ccc;
+background:none;</string>
+ </property>
+ <property name="text">
+ <string>Z</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="3">
+ <widget class="QCheckBox" name="chkInvertX">
+ <property name="styleSheet">
+ <string notr="true">background:none;</string>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3">
+ <widget class="QLabel" name="lblInvert1_2">
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>30</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">color:#ccc;
+background:none;</string>
+ </property>
+ <property name="text">
+ <string>Invert</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="3">
+ <widget class="QCheckBox" name="chkInvertY">
+ <property name="styleSheet">
+ <string notr="true">background:none;</string>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="3">
+ <widget class="QCheckBox" name="chkInvertZ">
+ <property name="styleSheet">
+ <string notr="true">background:none;</string>
+ </property>
+ <property name="text">
+ <string/>
</property>
</widget>
</item>
- <item row="1" column="7">
+ <item row="1" column="1">
<widget class="QSlider" name="redX">
<property name="minimumSize">
<size>
@@ -1723,7 +1695,7 @@ background:none;</string>
</property>
</widget>
</item>
- <item row="2" column="7">
+ <item row="2" column="1">
<widget class="QSlider" name="redY">
<property name="minimumSize">
<size>
@@ -1748,7 +1720,7 @@ background:none;</string>
</property>
</widget>
</item>
- <item row="3" column="7">
+ <item row="3" column="1">
<widget class="QSlider" name="redZ">
<property name="minimumSize">
<size>
@@ -1773,7 +1745,7 @@ background:none;</string>
</property>
</widget>
</item>
- <item row="1" column="8">
+ <item row="1" column="2">
<widget class="QSpinBox" name="spinRedX">
<property name="minimumSize">
<size>
@@ -1795,7 +1767,7 @@ background:none;</string>
</property>
</widget>
</item>
- <item row="2" column="8">
+ <item row="2" column="2">
<widget class="QSpinBox" name="spinRedY">
<property name="minimumSize">
<size>
@@ -1817,7 +1789,7 @@ background:none;</string>
</property>
</widget>
</item>
- <item row="3" column="8">
+ <item row="3" column="2">
<widget class="QSpinBox" name="spinRedZ">
<property name="minimumSize">
<size>
@@ -1839,7 +1811,7 @@ background:none;</string>
</property>
</widget>
</item>
- <item row="0" column="7">
+ <item row="0" column="1">
<widget class="QLabel" name="lblSensitivity_3">
<property name="minimumSize">
<size>
@@ -1862,21 +1834,7 @@ background:none;</string>
</property>
</widget>
</item>
- <item row="0" column="2">
- <widget class="QLabel" name="label_2">
- <property name="layoutDirection">
- <enum>Qt::RightToLeft</enum>
- </property>
- <property name="styleSheet">
- <string notr="true">color:#ccc;
-background:none;</string>
- </property>
- <property name="text">
- <string>EWMA</string>
- </property>
- </widget>
- </item>
- <item row="0" column="6">
+ <item row="0" column="0">
<widget class="QLabel" name="label_3">
<property name="layoutDirection">
<enum>Qt::RightToLeft</enum>
@@ -1893,7 +1851,7 @@ background:none;</string>
</layout>
</item>
<item>
- <spacer name="horizontalSpacer_13">
+ <spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@@ -1902,7 +1860,7 @@ background:none;</string>
</property>
<property name="sizeHint" stdset="0">
<size>
- <width>30</width>
+ <width>5</width>
<height>20</height>
</size>
</property>
@@ -1911,6 +1869,82 @@ background:none;</string>
</layout>
</widget>
</item>
+ <item row="3" column="1">
+ <widget class="QWidget" name="bubbleSmallWidget_2" native="true">
+ <property name="minimumSize">
+ <size>
+ <width>620</width>
+ <height>67</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>667</width>
+ <height>67</height>
+ </size>
+ </property>
+ <property name="acceptDrops">
+ <bool>true</bool>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">background: url(&quot;UIElements/bubble_1_small.png&quot;) no-repeat;
+opacity:100;</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_6">
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <property name="leftMargin">
+ <number>15</number>
+ </property>
+ <property name="topMargin">
+ <number>10</number>
+ </property>
+ <property name="rightMargin">
+ <number>10</number>
+ </property>
+ <property name="bottomMargin">
+ <number>10</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="cameraName">
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>30</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>600</width>
+ <height>30</height>
+ </size>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">color:#ccc;
+background:none;</string>
+ </property>
+ <property name="text">
+ <string>Camera Name</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
</layout>
</item>
</layout>
@@ -1942,15 +1976,6 @@ background:none;</string>
<addaction name="separator"/>
<addaction name="actionExit"/>
</widget>
- <widget class="QMenu" name="menuAbout">
- <property name="autoFillBackground">
- <bool>true</bool>
- </property>
- <property name="title">
- <string>About</string>
- </property>
- <addaction name="actionAbout"/>
- </widget>
<widget class="QMenu" name="menuView">
<property name="title">
<string>View</string>
@@ -1967,10 +1992,19 @@ background:none;</string>
<addaction name="separator"/>
<addaction name="actionCurve_Configuration"/>
</widget>
+ <widget class="QMenu" name="menuHelp">
+ <property name="title">
+ <string>Help</string>
+ </property>
+ <addaction name="actionSupport"/>
+ <addaction name="actionYour_Support"/>
+ <addaction name="separator"/>
+ <addaction name="actionAbout"/>
+ </widget>
<addaction name="menuFile"/>
<addaction name="menuView"/>
<addaction name="menuOptions"/>
- <addaction name="menuAbout"/>
+ <addaction name="menuHelp"/>
</widget>
<action name="actionOpen">
<property name="text">
@@ -2121,6 +2155,16 @@ background:none;</string>
<string>Curve Configuration</string>
</property>
</action>
+ <action name="actionSupport">
+ <property name="text">
+ <string>Support</string>
+ </property>
+ </action>
+ <action name="actionYour_Support">
+ <property name="text">
+ <string>Your Support</string>
+ </property>
+ </action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<tabstops>
diff --git a/FaceTrackNoIR/FaceTrackNoIR.vcproj b/FaceTrackNoIR/FaceTrackNoIR.vcproj
index 417ebb20..625cda64 100644
--- a/FaceTrackNoIR/FaceTrackNoIR.vcproj
+++ b/FaceTrackNoIR/FaceTrackNoIR.vcproj
@@ -552,6 +552,32 @@
</FileConfiguration>
</File>
<File
+ RelativePath=".\FTNoIR_FGcontrols.ui"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ Description="Uic&apos;ing $(InputFileName)..."
+ CommandLine="&quot;$(QTDIR)\bin\uic.exe&quot; -o &quot;.\GeneratedFiles\ui_$(InputName).h&quot; &quot;$(InputPath)&quot;&#x0D;&#x0A;"
+ AdditionalDependencies="$(QTDIR)\bin\uic.exe"
+ Outputs="&quot;.\GeneratedFiles\ui_$(InputName).h&quot;"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ Description="Uic&apos;ing $(InputFileName)..."
+ CommandLine="&quot;$(QTDIR)\bin\uic.exe&quot; -o &quot;.\GeneratedFiles\ui_$(InputName).h&quot; &quot;$(InputPath)&quot;&#x0D;&#x0A;"
+ AdditionalDependencies="$(QTDIR)\bin\uic.exe"
+ Outputs="&quot;.\GeneratedFiles\ui_$(InputName).h&quot;"
+ />
+ </FileConfiguration>
+ </File>
+ <File
RelativePath=".\FTNoIR_FSUIPCcontrols.ui"
>
<FileConfiguration
@@ -737,6 +763,10 @@
>
</File>
<File
+ RelativePath=".\GeneratedFiles\ui_FTNoIR_FGcontrols.h"
+ >
+ </File>
+ <File
RelativePath=".\GeneratedFiles\ui_FTNoIR_FSUIPCcontrols.h"
>
</File>
diff --git a/FaceTrackNoIR/UIElements/aboutFaceTrackNoIR.png b/FaceTrackNoIR/UIElements/aboutFaceTrackNoIR.png
index 5950d785..6b0e0d68 100644
--- a/FaceTrackNoIR/UIElements/aboutFaceTrackNoIR.png
+++ b/FaceTrackNoIR/UIElements/aboutFaceTrackNoIR.png
Binary files differ