From 1e00493885874931ca0ede36107c73d42651d020 Mon Sep 17 00:00:00 2001 From: pixhawk Date: Tue, 23 Nov 2010 13:12:48 +0100 Subject: [PATCH] Ardupilot support, builds now cleanly on Windows. Fixed a bug where the application could crash if no system was connected. --- qgroundcontrol.pri | 43 ++++++++++++++++++++-------------- src/ui/uas/UASControlWidget.cc | 8 +++++-- 2 files changed, 31 insertions(+), 20 deletions(-) diff --git a/qgroundcontrol.pri b/qgroundcontrol.pri index 4de1bea4a..60c13d90b 100644 --- a/qgroundcontrol.pri +++ b/qgroundcontrol.pri @@ -72,7 +72,7 @@ macx { ICON = $$BASEDIR/images/icons/macx.icns # Copy audio files if needed - QMAKE_PRE_LINK += cp -r $$BASEDIR/audio $$DESTDIR/qgroundcontrol.app/Contents/MacOs/. + QMAKE_PRE_LINK += cp -rf $$BASEDIR/audio $$DESTDIR/qgroundcontrol.app/Contents/MacOs/. exists(/opt/local/lib/osg):exists("/opt/local/lib/osgEarth") { message("Building support for OSGEARTH") @@ -94,12 +94,15 @@ linux-g++ { CONFIG += debug debug { - DESTDIR = $$BASEDIR + DESTDIR = $$BUILDDIR/debug } release { - DESTDIR = $$BASEDIR + DESTDIR = $$BUILDDIR/release } + + QMAKE_PRE_LINK += cp -rf $$BASEDIR/audio $$DESTDIR/. + INCLUDEPATH += /usr/include \ /usr/include/qt4/phonon # $$BASEDIR/lib/flite/include \ @@ -149,12 +152,14 @@ linux-g++-64 { CONFIG += debug debug { - DESTDIR = $$BASEDIR + DESTDIR = $$BUILDDIR/debug } release { - DESTDIR = $$BASEDIR + DESTDIR = $$BUILDDIR/release } + + QMAKE_PRE_LINK += cp -rf $$BASEDIR/audio $$DESTDIR/. INCLUDEPATH += /usr/include \ /usr/include/qt4/phonon # $$BASEDIR/lib/flite/include \ @@ -196,40 +201,41 @@ DEFINES += QGC_OSG_ENABLED # Windows (32bit) -win32 { +win32-g++ { message(Building for Windows Platform (32bit)) # Special settings for debug #CONFIG += CONSOLE - INCLUDEPATH += $$BASEDIR\lib\sdl\include \ - $$BASEDIR\lib\opal\include #\ #\ + INCLUDEPATH += $$BASEDIR/lib/sdl/include \ + $$BASEDIR/lib/opal/include #\ #\ #"C:\Program Files\Microsoft SDKs\Windows\v7.0\Include" - LIBS += -L$$BASEDIR\lib\sdl\win32 \ + LIBS += -L$$BASEDIR/lib/sdl/win32 \ -lmingw32 -lSDLmain -lSDL -mwindows debug { - DESTDIR = $$BASEDIR/bin + DESTDIR = $$BUILDDIR/debug } release { - DESTDIR = $$BASEDIR/bin + DESTDIR = $$BUILDDIR/release } RC_FILE = $$BASEDIR/qgroundcontrol.rc # Copy dependencies - QMAKE_PRE_LINK += copy /Y $$BASEDIR/lib/sdl/SDL.dll $$BUILDDIR/debug/ & copy /Y $$BASEDIR/lib/sdl/SDL.dll $$BUILDDIR/release/ - QMAKE_PRE_LINK += copy /Y $$BASEDIR/lib/sdl/SDL.dll $$BUILDDIR/debug/ & copy /Y $$BASEDIR/lib/sdl/SDL.dll $$BUILDDIR/release/ - QMAKE_PRE_LINK += copy /Y audio $$BUILDDIR\debug\ + QMAKE_PRE_LINK += cp -f $$BASEDIR/lib/sdl/win32/SDL.dll $$BUILDDIR/debug/. && + QMAKE_PRE_LINK += cp -f $$BASEDIR/lib/sdl/win32/SDL.dll $$BUILDDIR/release/. && + QMAKE_PRE_LINK += cp -rf $$BASEDIR/audio $$BUILDDIR/debug/. && + QMAKE_PRE_LINK += cp -rf $$BASEDIR/audio $$BUILDDIR/release/. } # Windows (64bit) -win64 { +win64-g++ { message(Building for Windows Platform (64bit)) @@ -256,8 +262,9 @@ win64 { RC_FILE = $$BASEDIR/qgroundcontrol.rc # Copy dependencies - QMAKE_PRE_LINK += copy /Y $$BASEDIR/lib/sdl/SDL.dll $$BUILDDIR/debug/ & copy /Y $$BASEDIR/lib/sdl/SDL.dll $$BUILDDIR/release/ - QMAKE_PRE_LINK += copy /Y $$BASEDIR/lib/sdl/SDL.dll $$BUILDDIR/debug/ & copy /Y $$BASEDIR/lib/sdl/SDL.dll $$BUILDDIR/release/ - QMAKE_PRE_LINK += copy /Y audio $$BUILDDIR\debug\ + QMAKE_PRE_LINK += cp -f $$BASEDIR/lib/sdl/win32/SDL.dll $$BUILDDIR/debug/. && + QMAKE_PRE_LINK += cp -f $$BASEDIR/lib/sdl/win32/SDL.dll $$BUILDDIR/release/. && + QMAKE_PRE_LINK += cp -rf $$BASEDIR/audio $$BUILDDIR/debug/. && + QMAKE_PRE_LINK += cp -rf $$BASEDIR/audio $$BUILDDIR/release/. } diff --git a/src/ui/uas/UASControlWidget.cc b/src/ui/uas/UASControlWidget.cc index f7da4944e..ddb5774e2 100644 --- a/src/ui/uas/UASControlWidget.cc +++ b/src/ui/uas/UASControlWidget.cc @@ -237,8 +237,12 @@ void UASControlWidget::transmitMode() { if (uasMode != 0) { - UASManager::instance()->getUASForId(this->uas)->setMode(uasMode); - ui.lastActionLabel->setText(QString("Set new mode for system %1").arg(UASManager::instance()->getUASForId(uas)->getUASName())); + UASInterface* mav = UASManager::instance()->getUASForId(this->uas); + if (mav) + { + mav->setMode(uasMode); + ui.lastActionLabel->setText(QString("Set new mode for system %1").arg(mav->getUASName())); + } } } -- 2.22.0