Various changes to shuttle, start adding UI

merge-requests/12/merge
Phil Taylor 2021-08-28 23:27:18 +01:00
rodzic 52070ddbc4
commit 0647caa640
16 zmienionych plików z 279 dodań i 25 usunięć

BIN
resources/rc28.png 100644

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 106 KiB

Wyświetl plik

@ -1,5 +1,8 @@
<RCC>
<qresource prefix="resources">
<file>wfview.png</file>
<file>shuttlexpress.png</file>
<file>shuttlepro.png</file>
<file>rc28.png</file>
</qresource>
</RCC>

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 185 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 428 KiB

Wyświetl plik

@ -55,6 +55,7 @@ void shuttle::run()
if (!handle) {
handle = hid_open(0x0C26, 0x001E, NULL);
if (!handle) {
usbDevice = NONE;
// No devices found, schedule another check in 1000ms
QTimer::singleShot(1000, this, SLOT(run()));
}
@ -69,7 +70,8 @@ void shuttle::run()
else {
usbDevice = shuttleXpress;
}
if (handle)
{
int res;
@ -79,6 +81,7 @@ void shuttle::run()
res = hid_get_product_string(handle, product, MAX_STR);
qInfo() << QString("Found Device: %0 from %1").arg(QString::fromWCharArray(product)).arg(QString::fromWCharArray(manufacturer));
hid_set_nonblocking(handle, 1);
emit newDevice(usbDevice);
QTimer::singleShot(0, this, SLOT(runTimer()));
}
}
@ -92,6 +95,7 @@ void shuttle::runTimer()
if (res < 0)
{
qInfo() << "USB Device disconnected?";
emit newDevice(0);
hid_close(handle);
QTimer::singleShot(1000, this, SLOT(run()));
return;
@ -160,6 +164,11 @@ void shuttle::runTimer()
{
// This is a response from the Icom RC28
data.resize(8); // Might as well get rid of the unused data.
if (lastData.size() != 8) {
lastData = data;
}
if (((unsigned char)data[5] == 0x06) && ((unsigned char)lastData[5] != 0x06))
{
emit button(true, 6);
@ -198,6 +207,7 @@ void shuttle::runTimer()
emit jogMinus();
}
}
lastData = data;
}

Wyświetl plik

@ -24,6 +24,7 @@ using namespace std;
#define HIDDATALENGTH 64
#define MAX_STR 255
class shuttle : public QObject
{
Q_OBJECT
@ -46,15 +47,16 @@ signals:
void doShuttle(bool plus, quint8 level);
void button(bool,unsigned char num);
void newDevice(unsigned char devType);
private:
hid_device* handle;
enum { NONE, shuttleXpress, shuttlePro2, RC28 }usbDevice;
bool isOpen=false;
unsigned int buttons=0;
unsigned char jogpos=0;
unsigned char shutpos=0;
unsigned char shutMult = 0;
enum { NONE, shuttleXpress, shuttlePro2, RC28 }usbDevice;
QTime lastShuttle = QTime::currentTime();
QByteArray lastData="";
unsigned char lastDialPos=0;

56
shuttlesetup.cpp 100644
Wyświetl plik

@ -0,0 +1,56 @@
#include "shuttlesetup.h"
#include "ui_shuttlesetup.h"
#include "logcategories.h"
shuttleSetup::shuttleSetup(QWidget* parent) :
QDialog(parent),
ui(new Ui::shuttleSetup)
{
ui->setupUi(this);
scene = new QGraphicsScene();
ui->graphicsView->setScene(scene);
textItem = scene->addText("No USB controller found");
textItem->setDefaultTextColor(Qt::gray);
}
shuttleSetup::~shuttleSetup()
{
delete textItem;
delete scene;
delete ui;
if (bgImage != Q_NULLPTR) {
delete bgImage;
}
}
void shuttleSetup::newDevice(unsigned char devType)
{
if (bgImage != Q_NULLPTR) {
scene->removeItem(bgImage);
delete bgImage;
bgImage = Q_NULLPTR;
}
QImage image;
switch (devType) {
case shuttleXpress:
image.load(":/resources/shuttlexpress.png");
break;
case shuttlePro2:
image.load(":/resources/shuttlepro.png");
break;
case RC28:
image.load(":/resources/rc28.png");
break;
default:
textItem->show();
return;
}
textItem->hide();
bgImage = new QGraphicsPixmapItem(QPixmap::fromImage(image));
scene->addItem(bgImage);
ui->graphicsView->setMinimumSize(bgImage->boundingRect().width() + 2, bgImage->boundingRect().height() + 2);
this->resize(this->sizeHint());
}

39
shuttlesetup.h 100644
Wyświetl plik

@ -0,0 +1,39 @@
#ifndef SHUTTLESETUP_H
#define SHUTTLESETUP_H
#include <QDialog>
#include <QGraphicsView>
#include <QGraphicsScene>
#include <QGraphicsTextItem>
#include <QGraphicsPixmapItem>
#include <QDebug>
#include <qobject.h>
#include "shuttle.h"
namespace Ui {
class shuttleSetup;
}
class shuttleSetup : public QDialog
{
Q_OBJECT
public:
explicit shuttleSetup(QWidget* parent = 0);
~shuttleSetup();
public slots:
void newDevice(unsigned char devType);
private:
enum { NONE, shuttleXpress, shuttlePro2, RC28 }usbDevice;
Ui::shuttleSetup* ui;
QGraphicsScene* scene;
QGraphicsTextItem* textItem;
QGraphicsPixmapItem* bgImage = Q_NULLPTR;
};
#endif

107
shuttlesetup.ui 100644
Wyświetl plik

@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>shuttleSetup</class>
<widget class="QDialog" name="shuttleSetup">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>300</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Shuttle setup</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QGraphicsView" name="graphicsView"/>
</item>
</layout>
</item>
<item row="1" column="0">
<layout class="QHBoxLayout">
<property name="spacing">
<number>6</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<spacer>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>131</width>
<height>31</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="okButton">
<property name="text">
<string>OK</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="cancelButton">
<property name="text">
<string>Cancel</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>okButton</sender>
<signal>clicked()</signal>
<receiver>shuttleSetup</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>278</x>
<y>253</y>
</hint>
<hint type="destinationlabel">
<x>96</x>
<y>254</y>
</hint>
</hints>
</connection>
<connection>
<sender>cancelButton</sender>
<signal>clicked()</signal>
<receiver>shuttleSetup</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>369</x>
<y>253</y>
</hint>
<hint type="destinationlabel">
<x>179</x>
<y>282</y>
</hint>
</hints>
</connection>
</connections>
</ui>

Wyświetl plik

@ -732,7 +732,6 @@ udpAudio::udpAudio(QHostAddress local, QHostAddress ip, quint16 audioPort, audio
rxaudio = new audioHandler();
rxAudioThread = new QThread(this);
rxAudioThread->setPriority(QThread::TimeCriticalPriority);
rxaudio->moveToThread(rxAudioThread);
@ -750,7 +749,6 @@ udpAudio::udpAudio(QHostAddress local, QHostAddress ip, quint16 audioPort, audio
txaudio = new audioHandler();
txAudioThread = new QThread(this);
txAudioThread->setPriority(QThread::TimeCriticalPriority);
txaudio->moveToThread(txAudioThread);

Wyświetl plik

@ -382,7 +382,6 @@ void udpServer::controlReceived()
txaudio = new audioHandler();
txAudioThread = new QThread(this);
txAudioThread->setPriority(QThread::TimeCriticalPriority);
txaudio->moveToThread(txAudioThread);
txAudioThread->start(QThread::TimeCriticalPriority);

Wyświetl plik

@ -27,6 +27,7 @@ wfmain::wfmain(const QString serialPortCL, const QString hostCL, const QString s
sat = new satelliteSetup();
trxadj = new transceiverAdjustments();
srv = new udpServerSetup();
shut = new shuttleSetup();
abtBox = new aboutbox();
connect(this, SIGNAL(sendServerConfig(SERVERCONFIG)), srv, SLOT(receiveServerConfig(SERVERCONFIG)));
@ -1225,7 +1226,6 @@ void wfmain::setupShuttleDevice()
{
shuttleDev = new shuttle();
shuttleThread = new QThread(this);
shuttleThread->setPriority(QThread::LowestPriority);
shuttleDev->moveToThread(shuttleThread);
connect(shuttleThread, SIGNAL(started()), shuttleDev, SLOT(run()));
connect(shuttleThread, SIGNAL(finished()), shuttleDev, SLOT(deleteLater()));
@ -1234,7 +1234,8 @@ void wfmain::setupShuttleDevice()
connect(shuttleDev, SIGNAL(doShuttle(bool, unsigned char)), this, SLOT(doShuttle(bool, unsigned char)));
connect(shuttleDev, SIGNAL(button(bool, unsigned char)), this, SLOT(buttonControl(bool, unsigned char)));
connect(this, SIGNAL(shuttleLed(bool, unsigned char)), shuttleDev, SLOT(ledControl(bool, unsigned char)));
shuttleThread->start();
connect(shuttleDev, SIGNAL(newDevice(unsigned char)), shut, SLOT(newDevice(unsigned char)));
shuttleThread->start(QThread::LowestPriority);
}
void wfmain::pttToggle(bool status)
@ -5458,6 +5459,7 @@ void wfmain::on_rigctldPortTxt_editingFinished()
void wfmain::on_debugBtn_clicked()
{
qInfo(logSystem()) << "Debug button pressed.";
shut->show();
//trxadj->show();
//setRadioTimeDatePrep();
//wf->setInteraction(QCP::iRangeZoom, true);

Wyświetl plik

@ -32,6 +32,7 @@
#include <qcustomplot.h>
#include <qserialportinfo.h>
#include "shuttle.h"
#include "shuttlesetup.h"
#include <deque>
#include <memory>
@ -798,6 +799,7 @@ private:
satelliteSetup *sat;
transceiverAdjustments *trxadj;
udpServerSetup *srv;
shuttleSetup* shut;
aboutbox *abtBox;

Wyświetl plik

@ -150,6 +150,7 @@ SOURCES += main.cpp\
rigctld.cpp \
ring/ring.cpp \
shuttle.cpp \
shuttlesetup.cpp \
transceiveradjustments.cpp \
aboutbox.cpp
@ -178,6 +179,7 @@ HEADERS += wfmain.h \
ulaw.h \
ring/ring.h \
shuttle.h \
shuttlesetup.h \
transceiveradjustments.h \
audiotaper.h \
aboutbox.h
@ -188,6 +190,7 @@ FORMS += wfmain.ui \
udpserversetup.ui \
repeatersetup.ui \
transceiveradjustments.ui \
shuttlesetup.ui
aboutbox.ui

Wyświetl plik

@ -57,7 +57,7 @@
<ExceptionHandling>Sync</ExceptionHandling>
<ObjectFileName>release\</ObjectFileName>
<Optimization>MaxSpeed</Optimization>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;PREFIX="/usr/local";__WINDOWS_WASAPI__;GITSHORT="87dc468";HOST="wfview.org";UNAME="build";NDEBUG;QT_NO_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;PREFIX="/usr/local";__WINDOWS_WASAPI__;GITSHORT="52070dd";HOST="wfview.org";UNAME="build";NDEBUG;QT_NO_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessToFile>false</PreprocessToFile>
<ProgramDataBaseFileName></ProgramDataBaseFileName>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
@ -85,7 +85,7 @@
<WarningLevel>0</WarningLevel>
</Midl>
<ResourceCompile>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;PREFIX=\"/usr/local\";__WINDOWS_WASAPI__;GITSHORT=\"87dc468\";HOST=\"wfview.org\";UNAME=\"build\";NDEBUG;QT_NO_DEBUG;QT_MULTIMEDIA_LIB;QT_PRINTSUPPORT_LIB;QT_WIDGETS_LIB;QT_GUI_LIB;QT_SERIALPORT_LIB;QT_NETWORK_LIB;QT_CORE_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;PREFIX=\"/usr/local\";__WINDOWS_WASAPI__;GITSHORT=\"52070dd\";HOST=\"wfview.org\";UNAME=\"build\";NDEBUG;QT_NO_DEBUG;QT_MULTIMEDIA_LIB;QT_PRINTSUPPORT_LIB;QT_WIDGETS_LIB;QT_GUI_LIB;QT_SERIALPORT_LIB;QT_NETWORK_LIB;QT_CORE_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<QtMoc><CompilerFlavor>msvc</CompilerFlavor><Include>./$(Configuration)/moc_predefs.h</Include><ExecutionDescription>Moc'ing %(Identity)...</ExecutionDescription><DynamicSource>output</DynamicSource><QtMocDir>$(Configuration)</QtMocDir><QtMocFileName>moc_%(Filename).cpp</QtMocFileName></QtMoc><QtRcc><Compression>default</Compression><ExecutionDescription>Rcc'ing %(Identity)...</ExecutionDescription><QtRccDir>$(Configuration)</QtRccDir><QtRccFileName>qrc_%(Filename).cpp</QtRccFileName></QtRcc><QtUic><ExecutionDescription>Uic'ing %(Identity)...</ExecutionDescription><QtUicDir>$(ProjectDir)</QtUicDir><QtUicFileName>ui_%(Filename).h</QtUicFileName></QtUic></ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
@ -99,7 +99,7 @@
<ExceptionHandling>Sync</ExceptionHandling>
<ObjectFileName>debug\</ObjectFileName>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;PREFIX="/usr/local";__WINDOWS_WASAPI__;GITSHORT="87dc468";HOST="wfview.org";UNAME="build";%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;PREFIX="/usr/local";__WINDOWS_WASAPI__;GITSHORT="52070dd";HOST="wfview.org";UNAME="build";%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessToFile>false</PreprocessToFile>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<SuppressStartupBanner>true</SuppressStartupBanner>
@ -124,7 +124,7 @@
<WarningLevel>0</WarningLevel>
</Midl>
<ResourceCompile>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;PREFIX=\"/usr/local\";__WINDOWS_WASAPI__;GITSHORT=\"87dc468\";HOST=\"wfview.org\";UNAME=\"build\";QT_MULTIMEDIA_LIB;QT_PRINTSUPPORT_LIB;QT_WIDGETS_LIB;QT_GUI_LIB;QT_SERIALPORT_LIB;QT_NETWORK_LIB;QT_CORE_LIB;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;PREFIX=\"/usr/local\";__WINDOWS_WASAPI__;GITSHORT=\"52070dd\";HOST=\"wfview.org\";UNAME=\"build\";QT_MULTIMEDIA_LIB;QT_PRINTSUPPORT_LIB;QT_WIDGETS_LIB;QT_GUI_LIB;QT_SERIALPORT_LIB;QT_NETWORK_LIB;QT_CORE_LIB;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<QtMoc><CompilerFlavor>msvc</CompilerFlavor><Include>./$(Configuration)/moc_predefs.h</Include><ExecutionDescription>Moc'ing %(Identity)...</ExecutionDescription><DynamicSource>output</DynamicSource><QtMocDir>$(Configuration)</QtMocDir><QtMocFileName>moc_%(Filename).cpp</QtMocFileName></QtMoc><QtRcc><Compression>default</Compression><ExecutionDescription>Rcc'ing %(Identity)...</ExecutionDescription><QtRccDir>$(Configuration)</QtRccDir><QtRccFileName>qrc_%(Filename).cpp</QtRccFileName></QtRcc><QtUic><ExecutionDescription>Uic'ing %(Identity)...</ExecutionDescription><QtUicDir>$(ProjectDir)</QtUicDir><QtUicFileName>ui_%(Filename).h</QtUicFileName></QtUic></ItemDefinitionGroup>
<ItemGroup>
@ -148,6 +148,7 @@
<ClCompile Include="ring\ring.cpp" />
<ClCompile Include="satellitesetup.cpp" />
<ClCompile Include="shuttle.cpp" />
<ClCompile Include="shuttlesetup.cpp" />
<ClCompile Include="transceiveradjustments.cpp" />
<ClCompile Include="udphandler.cpp" />
<ClCompile Include="udpserver.cpp" />
@ -293,6 +294,16 @@
</QtMoc>
<QtMoc Include="shuttlesetup.h">
</QtMoc>
<ClInclude Include="resampler\speex_resampler.h" />
<QtMoc Include="transceiveradjustments.h">
@ -408,22 +419,13 @@
</ItemGroup>
<ItemGroup>
<QtUic Include="aboutbox.ui">
</QtUic>
<QtUic Include="calibrationwindow.ui">
@ -456,6 +458,17 @@
</QtUic>
<QtUic Include="shuttlesetup.ui">
</QtUic>
<QtUic Include="transceiveradjustments.ui">
@ -521,6 +534,7 @@
<None Include="qdarkstyle\rc\radio_unchecked.png" />
<None Include="qdarkstyle\rc\radio_unchecked_disabled.png" />
<None Include="qdarkstyle\rc\radio_unchecked_focus.png" />
<None Include="resources\rc28.png" />
<QtRcc Include="resources\resources.qrc">
@ -534,6 +548,8 @@
<InitFuncName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">resources</InitFuncName><InitFuncName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">resources</InitFuncName></QtRcc>
<None Include="qdarkstyle\rc\right_arrow.png" />
<None Include="qdarkstyle\rc\right_arrow_disabled.png" />
<None Include="resources\shuttlepro.png" />
<None Include="resources\shuttlexpress.png" />
<None Include="qdarkstyle\rc\sizegrip.png" />
<QtRcc Include="qdarkstyle\style.qrc">

Wyświetl plik

@ -117,6 +117,9 @@
<ClCompile Include="shuttle.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="shuttlesetup.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="transceiveradjustments.cpp">
<Filter>Source Files</Filter>
</ClCompile>
@ -200,6 +203,9 @@
<QtMoc Include="shuttle.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="shuttlesetup.h">
<Filter>Header Files</Filter>
</QtMoc>
<ClInclude Include="resampler\speex_resampler.h">
<Filter>Header Files</Filter>
</ClInclude>
@ -273,14 +279,13 @@
</ItemGroup>
<ItemGroup>
<QtUic Include="aboutbox.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtUic Include="calibrationwindow.ui">
<Filter>Form Files</Filter>
</QtUic>
@ -290,6 +295,9 @@
<QtUic Include="satellitesetup.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtUic Include="shuttlesetup.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtUic Include="transceiveradjustments.ui">
<Filter>Form Files</Filter>
</QtUic>
@ -388,6 +396,9 @@
<None Include="qdarkstyle\rc\radio_unchecked_focus.png">
<Filter>Resource Files</Filter>
</None>
<None Include="resources\rc28.png">
<Filter>Resource Files</Filter>
</None>
<QtRcc Include="resources\resources.qrc">
<Filter>Resource Files</Filter>
</QtRcc>
@ -397,6 +408,12 @@
<None Include="qdarkstyle\rc\right_arrow_disabled.png">
<Filter>Resource Files</Filter>
</None>
<None Include="resources\shuttlepro.png">
<Filter>Resource Files</Filter>
</None>
<None Include="resources\shuttlexpress.png">
<Filter>Resource Files</Filter>
</None>
<None Include="qdarkstyle\rc\sizegrip.png">
<Filter>Resource Files</Filter>
</None>