From a2ba33f28a76cd4e2e7e88200408c1d7cf842cb9 Mon Sep 17 00:00:00 2001 From: Philippe Renon Date: Sun, 15 Sep 2013 23:06:25 +0200 Subject: [PATCH] [OP-835] Qt 5.1.0 - migrated GCS plugins --- .../src/plugins/antennatrack/antennatrack.pro | 1 + .../antennatrack/antennatrackgadget.cpp | 39 +- .../plugins/antennatrack/antennatrackgadget.h | 6 +- .../antennatrackgadgetconfiguration.cpp | 32 +- .../antennatrackgadgetconfiguration.h | 45 +- .../antennatrackgadgetoptionspage.cpp | 189 +-- .../antennatrackgadgetoptionspage.h | 11 - .../antennatrack/antennatrackplugin.cpp | 2 - .../plugins/antennatrack/antennatrackplugin.h | 2 + .../antennatrack/antennatrackwidget.cpp | 8 +- .../plugins/antennatrack/antennatrackwidget.h | 6 +- .../cfg_vehicletypes/configccpmwidget.cpp | 32 +- .../cfg_vehicletypes/configccpmwidget.h | 2 +- .../cfg_vehicletypes/configcustomwidget.cpp | 10 +- .../cfg_vehicletypes/configcustomwidget.h | 2 +- .../configfixedwingwidget.cpp | 8 +- .../cfg_vehicletypes/configfixedwingwidget.h | 3 +- .../configgroundvehiclewidget.cpp | 8 +- .../configgroundvehiclewidget.h | 3 +- .../configmultirotorwidget.cpp | 14 +- .../cfg_vehicletypes/configmultirotorwidget.h | 4 +- .../config/cfg_vehicletypes/vehicleconfig.cpp | 2 +- .../plugins/config/config_cc_hw_widget.cpp | 8 +- .../src/plugins/config/config_cc_hw_widget.h | 2 +- .../plugins/config/configautotunewidget.cpp | 8 +- .../src/plugins/config/configautotunewidget.h | 2 +- .../plugins/config/configccattitudewidget.h | 2 +- .../src/plugins/config/configgadgetwidget.cpp | 8 +- .../src/plugins/config/configgadgetwidget.h | 2 +- .../src/plugins/config/configinputwidget.cpp | 8 +- .../src/plugins/config/configinputwidget.h | 2 +- .../src/plugins/config/configoutputwidget.cpp | 8 +- .../src/plugins/config/configoutputwidget.h | 2 +- .../plugins/config/configpipxtremewidget.cpp | 6 +- .../src/plugins/config/configplugin.cpp | 2 - .../src/plugins/config/configplugin.h | 1 + .../src/plugins/config/configrevohwwidget.h | 2 +- .../src/plugins/config/configrevowidget.cpp | 8 +- .../src/plugins/config/configrevowidget.h | 2 +- .../config/configstabilizationwidget.cpp | 8 +- .../config/configstabilizationwidget.h | 2 +- .../config/configvehicletypewidget.cpp | 6 +- .../plugins/config/configvehicletypewidget.h | 6 + .../plugins/config/defaultattitudewidget.h | 2 +- .../plugins/config/defaulthwsettingswidget.h | 2 +- .../src/plugins/config/fancytabwidget.cpp | 24 +- .../src/plugins/config/fancytabwidget.h | 6 +- .../src/plugins/config/mixercurve.cpp | 2 +- .../src/plugins/config/mixercurve.h | 2 +- .../actionmanager/actioncontainer.cpp | 4 +- .../actionmanager/actioncontainer.h | 6 +- .../actionmanager/actionmanager.cpp | 8 +- .../coreplugin/actionmanager/command.cpp | 4 +- .../coreplugin/actionmanager/command_p.h | 2 +- .../coreplugin/actionmanager/commandsfile.h | 2 +- .../src/plugins/coreplugin/authorsdialog.cpp | 10 +- .../src/plugins/coreplugin/authorsdialog.h | 2 +- .../src/plugins/coreplugin/basemode.cpp | 2 +- .../src/plugins/coreplugin/basemode.h | 4 +- .../src/plugins/coreplugin/baseview.cpp | 2 +- .../plugins/coreplugin/connectionmanager.cpp | 4 +- .../plugins/coreplugin/connectionmanager.h | 4 +- .../src/plugins/coreplugin/coreconstants.h | 1 + .../src/plugins/coreplugin/coreplugin.cpp | 2 - .../src/plugins/coreplugin/coreplugin.h | 1 + .../coreplugin/coreplugin_dependencies.pri | 2 - .../plugins/coreplugin/dialogs/ioptionspage.h | 2 +- .../coreplugin/dialogs/settingsdialog.cpp | 6 +- .../coreplugin/dialogs/shortcutsettings.cpp | 26 +- .../coreplugin/dialogs/shortcutsettings.h | 6 +- .../coreplugin/eventfilteringmainwindow.cpp | 7 + .../coreplugin/eventfilteringmainwindow.h | 6 +- .../src/plugins/coreplugin/fancyactionbar.cpp | 10 +- .../src/plugins/coreplugin/fancyactionbar.h | 2 +- .../src/plugins/coreplugin/fancytabwidget.cpp | 444 ++++--- .../src/plugins/coreplugin/fancytabwidget.h | 127 +- .../plugins/coreplugin/generalsettings.cpp | 2 +- .../src/plugins/coreplugin/generalsettings.h | 2 +- .../src/plugins/coreplugin/iuavgadget.h | 2 +- .../plugins/coreplugin/iuavgadgetfactory.h | 2 +- .../src/plugins/coreplugin/mainwindow.cpp | 29 +- .../src/plugins/coreplugin/manhattanstyle.cpp | 1139 +++++++---------- .../src/plugins/coreplugin/manhattanstyle.h | 27 +- .../src/plugins/coreplugin/messagemanager.cpp | 4 +- .../coreplugin/messageoutputwindow.cpp | 2 +- .../src/plugins/coreplugin/mimedatabase.cpp | 4 +- .../src/plugins/coreplugin/minisplitter.cpp | 6 +- .../src/plugins/coreplugin/minisplitter.h | 2 +- .../src/plugins/coreplugin/modemanager.cpp | 8 +- .../src/plugins/coreplugin/outputpane.h | 2 +- .../src/plugins/coreplugin/plugindialog.cpp | 10 +- .../src/plugins/coreplugin/plugindialog.h | 2 +- .../src/plugins/coreplugin/rightpane.cpp | 8 +- .../src/plugins/coreplugin/rightpane.h | 2 +- .../src/plugins/coreplugin/sidebar.cpp | 8 +- .../src/plugins/coreplugin/sidebar.h | 4 +- .../src/plugins/coreplugin/styleanimator.cpp | 2 +- .../src/plugins/coreplugin/styleanimator.h | 6 +- .../coreplugin/tabpositionindicator.cpp | 8 +- .../plugins/coreplugin/tabpositionindicator.h | 2 +- .../coreplugin/telemetrymonitorwidget.cpp | 2 +- .../plugins/coreplugin/uavgadgetdecorator.cpp | 2 +- .../coreplugin/uavgadgetinstancemanager.cpp | 2 +- .../coreplugin/uavgadgetinstancemanager.h | 2 +- .../uavgadgetmanager/splitterorview.h | 2 +- .../uavgadgetmanager/uavgadgetmanager.cpp | 18 +- .../uavgadgetmanager/uavgadgetmanager.h | 4 +- .../uavgadgetmanager/uavgadgetview.cpp | 22 +- .../uavgadgetmanager/uavgadgetview.h | 10 +- .../src/plugins/coreplugin/versiondialog.cpp | 10 +- .../src/plugins/coreplugin/versiondialog.h | 2 +- .../plugins/coreplugin/workspacesettings.h | 2 +- .../src/plugins/debuggadget/debugengine.cpp | 44 +- .../src/plugins/debuggadget/debugengine.h | 26 +- .../plugins/debuggadget/debuggadgetwidget.cpp | 53 +- .../plugins/debuggadget/debuggadgetwidget.h | 5 +- .../src/plugins/debuggadget/debugplugin.cpp | 1 - .../src/plugins/debuggadget/debugplugin.h | 3 + .../src/plugins/dial/dialplugin.cpp | 1 - .../src/plugins/dial/dialplugin.h | 2 + .../plugins/emptygadget/emptygadgetwidget.cpp | 8 +- .../plugins/emptygadget/emptygadgetwidget.h | 2 +- .../src/plugins/emptygadget/emptyplugin.cpp | 1 - .../src/plugins/emptygadget/emptyplugin.h | 2 + .../gcscontrol/gcscontrolgadgetoptionspage.h | 8 +- .../gcscontrol/gcscontrolgadgetwidget.cpp | 8 +- .../gcscontrol/gcscontrolgadgetwidget.h | 2 +- .../plugins/gcscontrol/gcscontrolplugin.cpp | 2 - .../src/plugins/gcscontrol/gcscontrolplugin.h | 2 + .../plugins/gcscontrol/joystickcontrol.cpp | 2 +- .../src/plugins/gpsdisplay/gpsdisplay.pro | 1 + .../plugins/gpsdisplay/gpsdisplaygadget.cpp | 38 +- .../src/plugins/gpsdisplay/gpsdisplaygadget.h | 7 +- .../gpsdisplaygadgetconfiguration.cpp | 33 +- .../gpsdisplaygadgetconfiguration.h | 45 +- .../gpsdisplaygadgetoptionspage.cpp | 188 +-- .../gpsdisplay/gpsdisplaygadgetoptionspage.h | 13 +- .../plugins/gpsdisplay/gpsdisplayplugin.cpp | 1 - .../src/plugins/gpsdisplay/gpsdisplayplugin.h | 2 + .../plugins/gpsdisplay/gpsdisplaywidget.cpp | 5 + .../src/plugins/gpsdisplay/gpssnrwidget.h | 2 +- .../src/plugins/gpsdisplay/nmeaparser.cpp | 10 +- .../src/plugins/hitl/aerosimrc/src/plugin.cpp | 4 +- .../src/plugins/hitl/aerosimrc/src/plugin.pro | 16 +- .../hitl/aerosimrc/src/qdebughandler.cpp | 2 +- .../hitl/aerosimrc/src/qdebughandler.h | 2 +- .../plugins/hitl/aerosimrc/src/udptest.pro | 2 +- .../hitl/aerosimrc/src/udptestmain.cpp | 2 +- .../src/plugins/hitl/fgsimulator.cpp | 6 +- .../src/plugins/hitl/hitlconfiguration.h | 2 +- .../src/plugins/hitl/hitlplugin.cpp | 1 - .../src/plugins/hitl/hitlplugin.h | 2 + .../src/plugins/hitl/hitlwidget.cpp | 15 +- .../src/plugins/hitl/hitlwidget.h | 2 +- .../src/plugins/hitl/il2simulator.cpp | 5 +- .../src/plugins/hitl/simulator.cpp | 3 +- .../src/plugins/hitl/xplanesimulator.cpp | 3 +- .../importexport/importexportplugin.cpp | 2 - .../plugins/importexport/importexportplugin.h | 1 + .../ipconnection/ipconnectionoptionspage.cpp | 14 +- .../ipconnection/ipconnectionplugin.cpp | 6 +- .../plugins/ipconnection/ipconnectionplugin.h | 2 +- .../lineardial/lineardialgadgetwidget.cpp | 2 +- .../plugins/lineardial/lineardialplugin.cpp | 1 - .../src/plugins/lineardial/lineardialplugin.h | 2 + .../src/plugins/logging/logfile.cpp | 2 +- .../plugins/logging/logginggadgetwidget.cpp | 8 +- .../src/plugins/logging/logginggadgetwidget.h | 2 +- .../src/plugins/logging/loggingplugin.cpp | 2 - .../src/plugins/logging/loggingplugin.h | 2 +- .../magicwaypointgadgetwidget.cpp | 8 +- .../magicwaypoint/magicwaypointgadgetwidget.h | 2 +- .../magicwaypoint/magicwaypointplugin.cpp | 2 - .../magicwaypoint/magicwaypointplugin.h | 2 + .../plugins/magicwaypoint/positionfield.cpp | 10 +- .../modelview/modelviewgadgetoptionspage.h | 10 +- .../modelview/modelviewgadgetwidget.cpp | 41 +- .../plugins/modelview/modelviewgadgetwidget.h | 2 +- .../src/plugins/modelview/modelviewplugin.cpp | 1 - .../src/plugins/modelview/modelviewplugin.h | 2 + .../src/plugins/notify/notify.pro | 2 +- .../src/plugins/notify/notifyitemdelegate.cpp | 5 + .../src/plugins/notify/notifyplugin.cpp | 51 +- .../src/plugins/notify/notifyplugin.h | 14 +- .../notify/notifypluginoptionspage.cpp | 36 +- .../plugins/notify/notifypluginoptionspage.h | 11 +- .../src/plugins/ophid/inc/ophid_const.h | 1 + .../src/plugins/ophid/inc/ophid_plugin.h | 1 + .../src/plugins/ophid/inc/ophid_usbmon.h | 34 +- .../src/plugins/ophid/src/ophid_plugin.cpp | 2 - .../plugins/ophid/src/ophid_usbmon_win.cpp | 13 +- .../src/plugins/opmap/flightdatamodel.cpp | 2 +- .../plugins/opmap/opmapgadgetoptionspage.cpp | 14 +- .../src/plugins/opmap/opmapgadgetwidget.cpp | 11 +- .../src/plugins/opmap/opmapgadgetwidget.h | 4 +- .../src/plugins/opmap/opmapplugin.cpp | 1 - .../src/plugins/opmap/opmapplugin.h | 2 + .../osgearthview/osgearthviewplugin.cpp | 1 - .../plugins/osgearthview/osgearthviewplugin.h | 2 + .../osgearthview/osgearthviewwidget.cpp | 6 +- .../plugins/osgearthview/osgviewerwidget.cpp | 6 +- .../plugins/pathactioneditor/fieldtreeitem.h | 8 +- .../pathactioneditorgadgetwidget.cpp | 8 +- .../pathactioneditorgadgetwidget.h | 6 +- .../pathactioneditorplugin.cpp | 2 - .../pathactioneditor/pathactioneditorplugin.h | 2 + .../pathactioneditortreemodel.cpp | 4 +- .../pathactioneditortreemodel.h | 2 +- .../src/plugins/pfdqml/osgearth.cpp | 4 +- .../src/plugins/pfdqml/pfdqmlplugin.cpp | 1 - .../src/plugins/pfdqml/pfdqmlplugin.h | 2 + ground/openpilotgcs/src/plugins/plugins.pro | 8 +- .../src/plugins/qmlview/qmlviewplugin.cpp | 1 - .../src/plugins/qmlview/qmlviewplugin.h | 2 + .../src/plugins/scope/scopegadget.cpp | 2 +- .../plugins/scope/scopegadgetoptionspage.cpp | 2 +- .../plugins/scope/scopegadgetoptionspage.h | 2 +- .../src/plugins/scope/scopegadgetwidget.cpp | 10 +- .../src/plugins/scope/scopeplugin.cpp | 1 - .../src/plugins/scope/scopeplugin.h | 2 + .../serialconnection/serialconnection.pro | 2 +- .../plugins/serialconnection/serialplugin.cpp | 87 +- .../plugins/serialconnection/serialplugin.h | 10 +- .../pages/{endpage.cpp => opendpage.cpp} | 14 +- .../pages/{endpage.h => opendpage.h} | 18 +- .../pages/{endpage.ui => opendpage.ui} | 4 +- .../pages/{startpage.cpp => opstartpage.cpp} | 12 +- .../pages/{startpage.h => opstartpage.h} | 18 +- .../pages/{startpage.ui => opstartpage.ui} | 4 +- .../src/plugins/setupwizard/setupwizard.cpp | 8 +- .../src/plugins/setupwizard/setupwizard.pro | 12 +- .../plugins/setupwizard/setupwizardplugin.cpp | 2 - .../plugins/setupwizard/setupwizardplugin.h | 1 + .../systemhealth/systemhealthplugin.cpp | 1 - .../plugins/systemhealth/systemhealthplugin.h | 2 + .../uavobjectbrowser/browserplugin.cpp | 1 - .../plugins/uavobjectbrowser/browserplugin.h | 2 + .../plugins/uavobjectbrowser/fieldtreeitem.h | 8 +- .../uavobjectbrowserconfiguration.h | 2 +- .../uavobjectbrowseroptionspage.cpp | 12 +- .../uavobjectbrowseroptionspage.h | 2 +- .../uavobjectbrowserwidget.cpp | 10 +- .../uavobjectbrowser/uavobjectbrowserwidget.h | 4 +- .../uavobjectbrowser/uavobjecttreemodel.cpp | 4 +- .../uavobjectbrowser/uavobjecttreemodel.h | 2 +- .../src/plugins/uavobjects/uavobjectfield.cpp | 2 +- .../plugins/uavobjects/uavobjectsplugin.cpp | 2 - .../src/plugins/uavobjects/uavobjectsplugin.h | 1 + .../uavobjectutil/uavobjectutilplugin.cpp | 2 - .../uavobjectutil/uavobjectutilplugin.h | 3 +- .../uavobjectwidgetutils/configtaskwidget.cpp | 4 +- .../uavobjectwidgetutils/configtaskwidget.h | 2 +- .../uavobjectwidgetutils/mixercurvepoint.h | 5 +- .../uavobjectwidgetutils/popupwidget.cpp | 4 + .../uavobjectwidgetutils/popupwidget.h | 1 + .../uavobjectwidgetutilsplugin.cpp | 2 - .../uavobjectwidgetutilsplugin.h | 1 + .../uavsettingsimportexport.cpp | 1 - .../uavsettingsimportexport.h | 2 +- .../uavsettingsimportexportfactory.cpp | 4 +- .../src/plugins/uavtalk/telemetry.cpp | 3 +- .../src/plugins/uavtalk/telemetrymonitor.cpp | 17 +- .../src/plugins/uavtalk/uavtalk.cpp | 3 +- .../src/plugins/uavtalk/uavtalkplugin.cpp | 2 - .../src/plugins/uavtalk/uavtalkplugin.h | 1 + .../src/plugins/uploader/SSP/port.cpp | 12 +- .../src/plugins/uploader/SSP/port.h | 7 +- .../src/plugins/uploader/SSP/qsspt.h | 1 + .../src/plugins/uploader/op_dfu.cpp | 13 +- .../src/plugins/uploader/op_dfu.h | 3 +- .../src/plugins/uploader/uploader.pro | 9 +- .../uploader/uploadergadgetconfiguration.cpp | 33 +- .../uploader/uploadergadgetconfiguration.h | 80 +- .../uploader/uploadergadgetoptionspage.cpp | 14 +- .../uploader/uploadergadgetoptionspage.h | 12 +- .../plugins/uploader/uploadergadgetwidget.cpp | 24 +- .../plugins/uploader/uploadergadgetwidget.h | 7 +- .../src/plugins/uploader/uploaderplugin.cpp | 1 - .../src/plugins/uploader/uploaderplugin.h | 2 + .../src/plugins/welcome/welcomemode.cpp | 2 +- .../src/plugins/welcome/welcomeplugin.cpp | 10 +- .../src/plugins/welcome/welcomeplugin.h | 1 + 282 files changed, 1964 insertions(+), 2188 deletions(-) rename ground/openpilotgcs/src/plugins/setupwizard/pages/{endpage.cpp => opendpage.cpp} (90%) rename ground/openpilotgcs/src/plugins/setupwizard/pages/{endpage.h => opendpage.h} (81%) rename ground/openpilotgcs/src/plugins/setupwizard/pages/{endpage.ui => opendpage.ui} (98%) rename ground/openpilotgcs/src/plugins/setupwizard/pages/{startpage.cpp => opstartpage.cpp} (85%) rename ground/openpilotgcs/src/plugins/setupwizard/pages/{startpage.h => opstartpage.h} (81%) rename ground/openpilotgcs/src/plugins/setupwizard/pages/{startpage.ui => opstartpage.ui} (98%) diff --git a/ground/openpilotgcs/src/plugins/antennatrack/antennatrack.pro b/ground/openpilotgcs/src/plugins/antennatrack/antennatrack.pro index 7ceece7c2..8c4bd4024 100644 --- a/ground/openpilotgcs/src/plugins/antennatrack/antennatrack.pro +++ b/ground/openpilotgcs/src/plugins/antennatrack/antennatrack.pro @@ -1,5 +1,6 @@ TEMPLATE = lib TARGET = AntennaTrack +QT += serialport include(../../openpilotgcsplugin.pri) include(../../plugins/coreplugin/coreplugin.pri) include(antennatrack_dependencies.pri) diff --git a/ground/openpilotgcs/src/plugins/antennatrack/antennatrackgadget.cpp b/ground/openpilotgcs/src/plugins/antennatrack/antennatrackgadget.cpp index 7f10d6029..2e818e612 100644 --- a/ground/openpilotgcs/src/plugins/antennatrack/antennatrackgadget.cpp +++ b/ground/openpilotgcs/src/plugins/antennatrack/antennatrackgadget.cpp @@ -28,11 +28,12 @@ #include "antennatrackgadget.h" #include "antennatrackwidget.h" #include "antennatrackgadgetconfiguration.h" +#include AntennaTrackGadget::AntennaTrackGadget(QString classId, AntennaTrackWidget *widget, QWidget *parent) : IUAVGadget(classId, parent), m_widget(widget), - connected(FALSE) + connected(false) { connect(m_widget->connectButton, SIGNAL(clicked(bool)), this, SLOT(onConnect())); connect(m_widget->disconnectButton, SIGNAL(clicked(bool)), this, SLOT(onDisconnect())); @@ -61,29 +62,23 @@ void AntennaTrackGadget::loadConfiguration(IUAVGadgetConfiguration *config) AntennaTrackGadgetConfiguration *AntennaTrackConfig = qobject_cast< AntennaTrackGadgetConfiguration *>(config); - PortSettings portsettings; - portsettings.BaudRate = AntennaTrackConfig->speed(); - portsettings.DataBits = AntennaTrackConfig->dataBits(); - portsettings.FlowControl = AntennaTrackConfig->flow(); - portsettings.Parity = AntennaTrackConfig->parity(); - portsettings.StopBits = AntennaTrackConfig->stopBits(); - portsettings.Timeout_Millisec = AntennaTrackConfig->timeOut(); + m_portsettings.BaudRate = AntennaTrackConfig->speed(); + m_portsettings.DataBits = AntennaTrackConfig->dataBits(); + m_portsettings.FlowControl = AntennaTrackConfig->flow(); + m_portsettings.Parity = AntennaTrackConfig->parity(); + m_portsettings.StopBits = AntennaTrackConfig->stopBits(); + m_portsettings.Timeout_Millisec = AntennaTrackConfig->timeOut(); // In case we find no port, buttons disabled m_widget->connectButton->setEnabled(false); m_widget->disconnectButton->setEnabled(false); - QList ports = QextSerialEnumerator::getPorts(); - foreach(QextPortInfo nport, ports) { - if (nport.friendName == AntennaTrackConfig->port()) { + QList ports = QSerialPortInfo::availablePorts(); + foreach(QSerialPortInfo nport, ports) { + if (nport.portName() == AntennaTrackConfig->port()) { qDebug() << "Using Serial port"; // parser = new NMEAParser(); - -#ifdef Q_OS_WIN - port = new QextSerialPort(nport.portName, portsettings, QextSerialPort::EventDriven); -#else - port = new QextSerialPort(nport.physName, portsettings, QextSerialPort::EventDriven); -#endif + port = new QSerialPort(nport); m_widget->setPort(port); m_widget->connectButton->setEnabled(true); m_widget->disconnectButton->setEnabled(false); @@ -112,8 +107,14 @@ void AntennaTrackGadget::onConnect() bool isOpen = port->open(QIODevice::ReadWrite); qDebug() << "Open: " << isOpen; if (isOpen) { - m_widget->connectButton->setEnabled(false); - m_widget->disconnectButton->setEnabled(true); + if (port->setBaudRate(m_portsettings.BaudRate) + && port->setDataBits(m_portsettings.DataBits) + && port->setParity(m_portsettings.Parity) + && port->setStopBits(m_portsettings.StopBits) + && port->setFlowControl(m_portsettings.FlowControl)) { + m_widget->connectButton->setEnabled(false); + m_widget->disconnectButton->setEnabled(true); + } } } else { qDebug() << "Port undefined or invalid."; diff --git a/ground/openpilotgcs/src/plugins/antennatrack/antennatrackgadget.h b/ground/openpilotgcs/src/plugins/antennatrack/antennatrackgadget.h index 682bda768..486eb3ac8 100644 --- a/ground/openpilotgcs/src/plugins/antennatrack/antennatrackgadget.h +++ b/ground/openpilotgcs/src/plugins/antennatrack/antennatrackgadget.h @@ -28,8 +28,7 @@ #ifndef ANTENNATRACKGADGET_H_ #define ANTENNATRACKGADGET_H_ -#include -#include +#include #include #include "antennatrackwidget.h" #include "telemetryparser.h" @@ -64,10 +63,11 @@ private slots: private: QPointer m_widget; - QPointer port; + QPointer port; QPointer parser; bool connected; void processNewSerialData(QByteArray serialData); + PortSettings m_portsettings; }; diff --git a/ground/openpilotgcs/src/plugins/antennatrack/antennatrackgadgetconfiguration.cpp b/ground/openpilotgcs/src/plugins/antennatrack/antennatrackgadgetconfiguration.cpp index e346db875..4e9b7a73b 100644 --- a/ground/openpilotgcs/src/plugins/antennatrack/antennatrackgadgetconfiguration.cpp +++ b/ground/openpilotgcs/src/plugins/antennatrack/antennatrackgadgetconfiguration.cpp @@ -26,7 +26,7 @@ */ #include "antennatrackgadgetconfiguration.h" -#include +#include /** * Loads a saved configuration or defaults if non exist. @@ -36,20 +36,20 @@ AntennaTrackGadgetConfiguration::AntennaTrackGadgetConfiguration(QString classId IUAVGadgetConfiguration(classId, parent), m_connectionMode("Serial"), m_defaultPort("Unknown"), - m_defaultSpeed(BAUD4800), - m_defaultDataBits(DATA_8), - m_defaultFlow(FLOW_OFF), - m_defaultParity(PAR_NONE), - m_defaultStopBits(STOP_1), + m_defaultSpeed(QSerialPort::UnknownBaud), + m_defaultDataBits(QSerialPort::UnknownDataBits), + m_defaultFlow(QSerialPort::UnknownFlowControl), + m_defaultParity(QSerialPort::UnknownParity), + m_defaultStopBits(QSerialPort::UnknownStopBits), m_defaultTimeOut(5000) { // if a saved configuration exists load it if (qSettings != 0) { - BaudRateType speed; - DataBitsType databits; - FlowType flow; - ParityType parity; - StopBitsType stopbits; + QSerialPort::BaudRate speed; + QSerialPort::DataBits databits; + QSerialPort::FlowControl flow; + QSerialPort::Parity parity; + QSerialPort::StopBits stopbits; int ispeed = qSettings->value("defaultSpeed").toInt(); int idatabits = qSettings->value("defaultDataBits").toInt(); @@ -59,11 +59,11 @@ AntennaTrackGadgetConfiguration::AntennaTrackGadgetConfiguration(QString classId QString port = qSettings->value("defaultPort").toString(); QString conMode = qSettings->value("connectionMode").toString(); - databits = (DataBitsType)idatabits; - flow = (FlowType)iflow; - parity = (ParityType)iparity; - stopbits = (StopBitsType)istopbits; - speed = (BaudRateType)ispeed; + databits = (QSerialPort::DataBits)idatabits; + flow = (QSerialPort::FlowControl)iflow; + parity = (QSerialPort::Parity)iparity; + stopbits = (QSerialPort::StopBits)istopbits; + speed = (QSerialPort::BaudRate)ispeed; m_defaultPort = port; m_defaultSpeed = speed; m_defaultDataBits = databits; diff --git a/ground/openpilotgcs/src/plugins/antennatrack/antennatrackgadgetconfiguration.h b/ground/openpilotgcs/src/plugins/antennatrack/antennatrackgadgetconfiguration.h index ad7c171f0..4184119fa 100644 --- a/ground/openpilotgcs/src/plugins/antennatrack/antennatrackgadgetconfiguration.h +++ b/ground/openpilotgcs/src/plugins/antennatrack/antennatrackgadgetconfiguration.h @@ -29,10 +29,23 @@ #define ANTENNATRACKGADGETCONFIGURATION_H #include -#include +#include using namespace Core; +/** + * structure to contain port settings + */ +struct PortSettings { + QSerialPort::BaudRate BaudRate; + QSerialPort::DataBits DataBits; + QSerialPort::Parity Parity; + QSerialPort::StopBits StopBits; + QSerialPort::FlowControl FlowControl; + long Timeout_Millisec; +}; + + class AntennaTrackGadgetConfiguration : public IUAVGadgetConfiguration { Q_OBJECT public: @@ -48,23 +61,23 @@ public: } // set port configuration functions - void setSpeed(BaudRateType speed) + void setSpeed(QSerialPort::BaudRate speed) { m_defaultSpeed = speed; } - void setDataBits(DataBitsType databits) + void setDataBits(QSerialPort::DataBits databits) { m_defaultDataBits = databits; } - void setFlow(FlowType flow) + void setFlow(QSerialPort::FlowControl flow) { m_defaultFlow = flow; } - void setParity(ParityType parity) + void setParity(QSerialPort::Parity parity) { m_defaultParity = parity; } - void setStopBits(StopBitsType stopbits) + void setStopBits(QSerialPort::StopBits stopbits) { m_defaultStopBits = stopbits; } @@ -82,23 +95,23 @@ public: { return m_defaultPort; } - BaudRateType speed() + QSerialPort::BaudRate speed() { return m_defaultSpeed; } - FlowType flow() + QSerialPort::FlowControl flow() { return m_defaultFlow; } - DataBitsType dataBits() + QSerialPort::DataBits dataBits() { return m_defaultDataBits; } - StopBitsType stopBits() + QSerialPort::StopBits stopBits() { return m_defaultStopBits; } - ParityType parity() + QSerialPort::Parity parity() { return m_defaultParity; } @@ -113,11 +126,11 @@ public: private: QString m_connectionMode; QString m_defaultPort; - BaudRateType m_defaultSpeed; - DataBitsType m_defaultDataBits; - FlowType m_defaultFlow; - ParityType m_defaultParity; - StopBitsType m_defaultStopBits; + QSerialPort::BaudRate m_defaultSpeed; + QSerialPort::DataBits m_defaultDataBits; + QSerialPort::FlowControl m_defaultFlow; + QSerialPort::Parity m_defaultParity; + QSerialPort::StopBits m_defaultStopBits; long m_defaultTimeOut; }; diff --git a/ground/openpilotgcs/src/plugins/antennatrack/antennatrackgadgetoptionspage.cpp b/ground/openpilotgcs/src/plugins/antennatrack/antennatrackgadgetoptionspage.cpp index 46f6df650..56c5fbc40 100644 --- a/ground/openpilotgcs/src/plugins/antennatrack/antennatrackgadgetoptionspage.cpp +++ b/ground/openpilotgcs/src/plugins/antennatrack/antennatrackgadgetoptionspage.cpp @@ -32,135 +32,17 @@ #include #include #include +#include AntennaTrackGadgetOptionsPage::AntennaTrackGadgetOptionsPage(AntennaTrackGadgetConfiguration *config, QObject *parent) : IOptionsPage(parent), m_config(config) +{} + +bool sortPorts(QSerialPortInfo const & s1, QSerialPortInfo const & s2) { -// Taken from the uploader gadget, since we also can use a serial port for this -// Gadget - - // the begining of some ugly code -// diferent OS's have diferent serial port capabilities -#ifdef Q_OS_WIN -// load windows port capabilities - BaudRateTypeString - << "BAUD110" - << "BAUD300" - << "BAUD600" - << "BAUD1200" - << "BAUD2400" - << "BAUD4800" - << "BAUD9600" - << "BAUD14400" - << "BAUD19200" - << "BAUD38400" - << "BAUD56000" - << "BAUD57600" - << "BAUD115200" - << "BAUD128000" - << "BAUD256000"; - DataBitsTypeString - << "DATA_5" - << "DATA_6" - << "DATA_7" - << "DATA_8"; - ParityTypeString - << "PAR_NONE" - << "PAR_ODD" - << "PAR_EVEN" - << "PAR_MARK" // WINDOWS ONLY - << "PAR_SPACE"; - StopBitsTypeString - << "STOP_1" - << "STOP_1_5" // WINDOWS ONLY - << "STOP_2"; -#else // ifdef Q_OS_WIN -// load POSIX port capabilities - BaudRateTypeString - - << "BAUD50" // POSIX ONLY - << "BAUD75" // POSIX ONLY - << "BAUD110" - << "BAUD134" // POSIX ONLY - << "BAUD150" // POSIX ONLY - << "BAUD200" // POSIX ONLY - << "BAUD300" - << "BAUD600" - << "BAUD1200" - << "BAUD1800" // POSIX ONLY - << "BAUD2400" - << "BAUD4800" - << "BAUD9600" - << "BAUD19200" - << "BAUD38400" - << "BAUD57600" - << "BAUD76800" // POSIX ONLY - << "BAUD115200"; - DataBitsTypeString - << "DATA_5" - << "DATA_6" - << "DATA_7" - << "DATA_8"; - ParityTypeString - << "PAR_NONE" - << "PAR_ODD" - << "PAR_EVEN" - << "PAR_SPACE"; - StopBitsTypeString - << "STOP_1" - << "STOP_2"; -#endif // ifdef Q_OS_WIN -// load all OS's capabilities - BaudRateTypeStringALL - << "BAUD50" // POSIX ONLY - << "BAUD75" // POSIX ONLY - << "BAUD110" - << "BAUD134" // POSIX ONLY - << "BAUD150" // POSIX ONLY - << "BAUD200" // POSIX ONLY - << "BAUD300" - << "BAUD600" - << "BAUD1200" - << "BAUD1800" // POSIX ONLY - << "BAUD2400" - << "BAUD4800" - << "BAUD9600" - << "BAUD14400" - << "BAUD19200" - << "BAUD38400" - << "BAUD56000" - << "BAUD57600" - << "BAUD76800" // POSIX ONLY - << "BAUD115200" - << "BAUD128000" - << "BAUD256000"; - DataBitsTypeStringALL - << "DATA_5" - << "DATA_6" - << "DATA_7" - << "DATA_8"; - ParityTypeStringALL - << "PAR_NONE" - << "PAR_ODD" - << "PAR_EVEN" - << "PAR_MARK" // WINDOWS ONLY - << "PAR_SPACE"; - StopBitsTypeStringALL - << "STOP_1" - << "STOP_1_5" // WINDOWS ONLY - << "STOP_2"; - - FlowTypeString - << "FLOW_OFF" - << "FLOW_HARDWARE" - << "FLOW_XONXOFF"; + return s1.portName() < s2.portName(); } -bool sortPorts(QextPortInfo const & s1, QextPortInfo const & s2) -{ - return s1.portName < s2.portName; -} - // creates options page widget (uses the UI file) QWidget *AntennaTrackGadgetOptionsPage::createPage(QWidget *parent) @@ -171,11 +53,11 @@ QWidget *AntennaTrackGadgetOptionsPage::createPage(QWidget *parent) // PORTS - QList ports = QextSerialEnumerator::getPorts(); + QList ports = QSerialPortInfo::availablePorts(); qSort(ports.begin(), ports.end(), sortPorts); - foreach(QextPortInfo port, ports) { - qDebug() << "Adding port: " << port.friendName << " (" << port.portName << ")"; - options_page->portComboBox->addItem(port.friendName, port.friendName); + foreach(QSerialPortInfo port, ports) { + qDebug() << "Adding port: " << port.systemLocation() << " (" << port.portName() << ")"; + options_page->portComboBox->addItem(port.portName(), port.portName()); } int portIndex = options_page->portComboBox->findData(m_config->port()); @@ -185,41 +67,64 @@ QWidget *AntennaTrackGadgetOptionsPage::createPage(QWidget *parent) } // BAUDRATES - options_page->portSpeedComboBox->addItems(BaudRateTypeString); + options_page->portSpeedComboBox->addItem("Baud1200", QSerialPort::Baud1200); + options_page->portSpeedComboBox->addItem("Baud2400", QSerialPort::Baud2400); + options_page->portSpeedComboBox->addItem("Baud4800", QSerialPort::Baud4800); + options_page->portSpeedComboBox->addItem("Baud9600", QSerialPort::Baud9600); + options_page->portSpeedComboBox->addItem("Baud19200", QSerialPort::Baud19200); + options_page->portSpeedComboBox->addItem("Baud38400", QSerialPort::Baud38400); + options_page->portSpeedComboBox->addItem("Baud57600", QSerialPort::Baud57600); + options_page->portSpeedComboBox->addItem("Baud115200", QSerialPort::Baud115200); + options_page->portSpeedComboBox->addItem("UnknownBaud", QSerialPort::UnknownBaud); - int portSpeedIndex = options_page->portSpeedComboBox->findText(BaudRateTypeStringALL.at((int)m_config->speed())); + int portSpeedIndex = options_page->portSpeedComboBox->findData(m_config->speed()); if (portSpeedIndex != -1) { options_page->portSpeedComboBox->setCurrentIndex(portSpeedIndex); } // FLOW CONTROL - options_page->flowControlComboBox->addItems(FlowTypeString); + options_page->flowControlComboBox->addItem("NoFlowControl", QSerialPort::NoFlowControl); + options_page->flowControlComboBox->addItem("HardwareControl", QSerialPort::HardwareControl); + options_page->flowControlComboBox->addItem("SoftwareControl", QSerialPort::SoftwareControl); + options_page->flowControlComboBox->addItem("UnknownFlowControl", QSerialPort::UnknownFlowControl); - int flowControlIndex = options_page->flowControlComboBox->findText(FlowTypeString.at((int)m_config->flow())); + int flowControlIndex = options_page->flowControlComboBox->findData(m_config->flow()); if (flowControlIndex != -1) { options_page->flowControlComboBox->setCurrentIndex(flowControlIndex); } // DATABITS - options_page->dataBitsComboBox->addItems(DataBitsTypeString); + options_page->dataBitsComboBox->addItem("Data5", QSerialPort::Data5); + options_page->dataBitsComboBox->addItem("Data6", QSerialPort::Data6); + options_page->dataBitsComboBox->addItem("Data7", QSerialPort::Data7); + options_page->dataBitsComboBox->addItem("Data8", QSerialPort::Data8); + options_page->dataBitsComboBox->addItem("UnknownDataBits", QSerialPort::UnknownDataBits); - int dataBitsIndex = options_page->dataBitsComboBox->findText(DataBitsTypeStringALL.at((int)m_config->dataBits())); + int dataBitsIndex = options_page->dataBitsComboBox->findData(m_config->dataBits()); if (dataBitsIndex != -1) { options_page->dataBitsComboBox->setCurrentIndex(dataBitsIndex); } // STOPBITS - options_page->stopBitsComboBox->addItems(StopBitsTypeString); + options_page->stopBitsComboBox->addItem("OneStop", QSerialPort::OneStop); + options_page->stopBitsComboBox->addItem("OneAndHalfStop", QSerialPort::OneAndHalfStop); + options_page->stopBitsComboBox->addItem("TwoStop", QSerialPort::TwoStop); + options_page->stopBitsComboBox->addItem("UnknownStopBits", QSerialPort::UnknownStopBits); - int stopBitsIndex = options_page->stopBitsComboBox->findText(StopBitsTypeStringALL.at((int)m_config->stopBits())); + int stopBitsIndex = options_page->stopBitsComboBox->findData(m_config->stopBits()); if (stopBitsIndex != -1) { options_page->stopBitsComboBox->setCurrentIndex(stopBitsIndex); } // PARITY - options_page->parityComboBox->addItems(ParityTypeString); + options_page->parityComboBox->addItem("NoParity", QSerialPort::NoParity); + options_page->parityComboBox->addItem("EvenParity", QSerialPort::EvenParity); + options_page->parityComboBox->addItem("OddParity", QSerialPort::OddParity); + options_page->parityComboBox->addItem("SpaceParity", QSerialPort::SpaceParity); + options_page->parityComboBox->addItem("MarkParity", QSerialPort::MarkParity); + options_page->parityComboBox->addItem("UnknownParity", QSerialPort::UnknownParity); - int parityIndex = options_page->parityComboBox->findText(ParityTypeStringALL.at((int)m_config->parity())); + int parityIndex = options_page->parityComboBox->findData(m_config->parity()); if (parityIndex != -1) { options_page->parityComboBox->setCurrentIndex(parityIndex); } @@ -252,11 +157,11 @@ void AntennaTrackGadgetOptionsPage::apply() m_config->setPort(options_page->portComboBox->itemData(portIndex).toString()); qDebug() << "apply(): port is " << m_config->port(); - m_config->setSpeed((BaudRateType)BaudRateTypeStringALL.indexOf(options_page->portSpeedComboBox->currentText())); - m_config->setFlow((FlowType)FlowTypeString.indexOf(options_page->flowControlComboBox->currentText())); - m_config->setDataBits((DataBitsType)DataBitsTypeStringALL.indexOf(options_page->dataBitsComboBox->currentText())); - m_config->setStopBits((StopBitsType)StopBitsTypeStringALL.indexOf(options_page->stopBitsComboBox->currentText())); - m_config->setParity((ParityType)ParityTypeStringALL.indexOf(options_page->parityComboBox->currentText())); + m_config->setSpeed((QSerialPort::BaudRate)options_page->portSpeedComboBox->itemData(options_page->portSpeedComboBox->currentIndex()).toInt()); + m_config->setFlow((QSerialPort::FlowControl)options_page->flowControlComboBox->itemData(options_page->flowControlComboBox->currentIndex()).toInt()); + m_config->setDataBits((QSerialPort::DataBits)options_page->dataBitsComboBox->itemData(options_page->dataBitsComboBox->currentIndex()).toInt()); + m_config->setStopBits((QSerialPort::StopBits)options_page->stopBitsComboBox->itemData(options_page->stopBitsComboBox->currentIndex()).toInt()); + m_config->setParity((QSerialPort::Parity)options_page->parityComboBox->itemData(options_page->parityComboBox->currentIndex()).toInt()); m_config->setTimeOut(options_page->timeoutSpinBox->value()); m_config->setConnectionMode(options_page->connectionMode->currentText()); } diff --git a/ground/openpilotgcs/src/plugins/antennatrack/antennatrackgadgetoptionspage.h b/ground/openpilotgcs/src/plugins/antennatrack/antennatrackgadgetoptionspage.h index 07210dc6e..20c921713 100644 --- a/ground/openpilotgcs/src/plugins/antennatrack/antennatrackgadgetoptionspage.h +++ b/ground/openpilotgcs/src/plugins/antennatrack/antennatrackgadgetoptionspage.h @@ -28,7 +28,6 @@ #ifndef ANTENNATRACKGADGETOPTIONSPAGE_H #define ANTENNATRACKGADGETOPTIONSPAGE_H -#include #include "coreplugin/dialogs/ioptionspage.h" #include "QString" #include @@ -59,16 +58,6 @@ private: Ui::AntennaTrackGadgetOptionsPage *options_page; AntennaTrackGadgetConfiguration *m_config; - QStringList BaudRateTypeString; - QStringList BaudRateTypeStringALL; - QStringList DataBitsTypeStringALL; - QStringList ParityTypeStringALL; - QStringList StopBitsTypeStringALL; - QStringList DataBitsTypeString; - QStringList ParityTypeString; - QStringList StopBitsTypeString; - QStringList FlowTypeString; - private slots: }; diff --git a/ground/openpilotgcs/src/plugins/antennatrack/antennatrackplugin.cpp b/ground/openpilotgcs/src/plugins/antennatrack/antennatrackplugin.cpp index b1593639a..d1b2035b3 100644 --- a/ground/openpilotgcs/src/plugins/antennatrack/antennatrackplugin.cpp +++ b/ground/openpilotgcs/src/plugins/antennatrack/antennatrackplugin.cpp @@ -35,5 +35,3 @@ void AntennaTrackPlugin::shutdown() { // Do nothing } - -Q_EXPORT_PLUGIN(AntennaTrackPlugin) diff --git a/ground/openpilotgcs/src/plugins/antennatrack/antennatrackplugin.h b/ground/openpilotgcs/src/plugins/antennatrack/antennatrackplugin.h index 17c1f37b2..46d7d428a 100644 --- a/ground/openpilotgcs/src/plugins/antennatrack/antennatrackplugin.h +++ b/ground/openpilotgcs/src/plugins/antennatrack/antennatrackplugin.h @@ -6,6 +6,8 @@ class AntennaTrackGadgetFactory; class AntennaTrackPlugin : public ExtensionSystem::IPlugin { + Q_OBJECT + Q_PLUGIN_METADATA(IID "OpenPilot.AntennaTrack") public: AntennaTrackPlugin(); ~AntennaTrackPlugin(); diff --git a/ground/openpilotgcs/src/plugins/antennatrack/antennatrackwidget.cpp b/ground/openpilotgcs/src/plugins/antennatrack/antennatrackwidget.cpp index 9306951d2..2e6e000e2 100644 --- a/ground/openpilotgcs/src/plugins/antennatrack/antennatrackwidget.cpp +++ b/ground/openpilotgcs/src/plugins/antennatrack/antennatrackwidget.cpp @@ -47,7 +47,7 @@ AntennaTrackWidget::AntennaTrackWidget(QWidget *parent) : QWidget(parent) AntennaTrackWidget::~AntennaTrackWidget() {} -void AntennaTrackWidget::setPort(QPointer portx) +void AntennaTrackWidget::setPort(QPointer portx) { port = portx; } @@ -204,9 +204,9 @@ void AntennaTrackWidget::calcAntennaPosition(void) str3.sprintf("move %d 2000 2000 2000 %d\r", stepper, servo); if (port->isOpen()) { if (azimuth_old != azimuth || elevation != elevation_old) { - port->write(str3.toAscii()); + port->write(str3.toLatin1()); } - azimuth_old = azimuth; - elevation_old = elevation; } + azimuth_old = azimuth; + elevation_old = elevation; } diff --git a/ground/openpilotgcs/src/plugins/antennatrack/antennatrackwidget.h b/ground/openpilotgcs/src/plugins/antennatrack/antennatrackwidget.h index 17f9abe65..7eb685571 100644 --- a/ground/openpilotgcs/src/plugins/antennatrack/antennatrackwidget.h +++ b/ground/openpilotgcs/src/plugins/antennatrack/antennatrackwidget.h @@ -34,7 +34,7 @@ #include #include #include -#include +#include #include class Ui_AntennaTrackWidget; @@ -55,7 +55,7 @@ public: AntennaTrackWidget(QWidget *parent = 0); ~AntennaTrackWidget(); TrackData_t TrackData; - void setPort(QPointer portx); + void setPort(QPointer portx); private slots: void setPosition(double, double, double); @@ -65,7 +65,7 @@ private slots: private: void calcAntennaPosition(void); QGraphicsSvgItem *marker; - QPointer port; + QPointer port; double azimuth_old; double elevation_old; }; diff --git a/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configccpmwidget.cpp b/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configccpmwidget.cpp index 2fbafad3e..838a1f782 100644 --- a/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configccpmwidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configccpmwidget.cpp @@ -31,16 +31,16 @@ #include #include -#include -#include -#include -#include +#include +#include +#include +#include #include #include #include -#define Pi 3.14159265358979323846 +#define Pi 3.14159265358979323846 QStringList ConfigCcpmWidget::getChannelDescriptions() { @@ -126,8 +126,8 @@ ConfigCcpmWidget::ConfigCcpmWidget(QWidget *parent) : SwashLvlConfigurationInProgress = 0; SwashLvlState = 0; SwashLvlServoInterlock = 0; - updatingFromHardware = FALSE; - updatingToHardware = FALSE; + updatingFromHardware = false; + updatingToHardware = false; // Initialization of the swashplaye widget m_aircraft->SwashplateImage->setScene(new QGraphicsScene(this)); @@ -687,7 +687,7 @@ void ConfigCcpmWidget::UpdateMixer() } if (config.heli.SwashplateType > 0) { // not advanced settings - // get the channel data from the ui + // get the channel data from the ui MixerChannelData[0] = m_aircraft->ccpmEngineChannel->currentIndex(); MixerChannelData[1] = m_aircraft->ccpmTailChannel->currentIndex(); MixerChannelData[2] = m_aircraft->ccpmServoWChannel->currentIndex(); @@ -796,11 +796,11 @@ QString ConfigCcpmWidget::updateConfigObjects() bool useCCPM; bool useCyclic; - if (updatingFromHardware == TRUE) { + if (updatingFromHardware == true) { return airframeType; } - updatingFromHardware = TRUE; + updatingFromHardware = true; // get the user options GUIConfigDataUnion config = getConfigData(); @@ -845,7 +845,7 @@ QString ConfigCcpmWidget::updateConfigObjects() setConfigData(config); - updatingFromHardware = FALSE; + updatingFromHardware = false; return airframeType; } @@ -888,7 +888,7 @@ void ConfigCcpmWidget::getMixer() return; } - updatingFromHardware = TRUE; + updatingFromHardware = true; UAVDataObject *mixer = dynamic_cast(getObjectManager()->getObject(QString("MixerSettings"))); Q_ASSERT(mixer); @@ -911,7 +911,7 @@ void ConfigCcpmWidget::getMixer() m_aircraft->PitchCurve->ResetCurve(); } - updatingFromHardware = FALSE; + updatingFromHardware = false; ccpmSwashplateUpdate(); } @@ -926,11 +926,11 @@ void ConfigCcpmWidget::setMixer() if (SwashLvlConfigurationInProgress) { return; } - if (updatingToHardware == TRUE) { + if (updatingToHardware == true) { return; } - updatingToHardware = TRUE; + updatingToHardware = true; MixerSettings *mixerSettings = MixerSettings::GetInstance(getObjectManager()); Q_ASSERT(mixerSettings); @@ -1004,7 +1004,7 @@ void ConfigCcpmWidget::setMixer() mixerSettings->setData(mixerSettingsData); mixerSettings->updated(); - updatingToHardware = FALSE; + updatingToHardware = false; } /** diff --git a/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configccpmwidget.h b/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configccpmwidget.h index 921a6c414..d9386830d 100644 --- a/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configccpmwidget.h +++ b/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configccpmwidget.h @@ -37,7 +37,7 @@ #include #include #include -#include +#include #include #define CCPM_MAX_SWASH_SERVOS 4 diff --git a/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configcustomwidget.cpp b/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configcustomwidget.cpp index 248ea1889..020138ba3 100644 --- a/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configcustomwidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configcustomwidget.cpp @@ -29,11 +29,11 @@ #include #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include #include #include diff --git a/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configcustomwidget.h b/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configcustomwidget.h index 3364522d2..faa89cc9c 100644 --- a/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configcustomwidget.h +++ b/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configcustomwidget.h @@ -35,7 +35,7 @@ #include "uavobject.h" #include "uavtalk/telemetrymanager.h" -#include +#include #include #include diff --git a/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configfixedwingwidget.cpp b/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configfixedwingwidget.cpp index 1e2068f93..1a667fa5e 100644 --- a/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configfixedwingwidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configfixedwingwidget.cpp @@ -32,10 +32,10 @@ #include #include -#include -#include -#include -#include +#include +#include +#include +#include #include #include #include diff --git a/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configfixedwingwidget.h b/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configfixedwingwidget.h index 6716334b5..65c03c86e 100644 --- a/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configfixedwingwidget.h +++ b/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configfixedwingwidget.h @@ -34,8 +34,7 @@ #include "uavobjectmanager.h" #include "uavobject.h" #include "uavtalk/telemetrymanager.h" - -#include +#include #include #include diff --git a/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configgroundvehiclewidget.cpp b/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configgroundvehiclewidget.cpp index 8941c7e35..e050f0731 100644 --- a/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configgroundvehiclewidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configgroundvehiclewidget.cpp @@ -32,10 +32,10 @@ #include #include -#include -#include -#include -#include +#include +#include +#include +#include #include #include diff --git a/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configgroundvehiclewidget.h b/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configgroundvehiclewidget.h index c17dcea9d..94ef93e0c 100644 --- a/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configgroundvehiclewidget.h +++ b/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configgroundvehiclewidget.h @@ -34,8 +34,7 @@ #include "uavobjectmanager.h" #include "uavobject.h" #include "uavtalk/telemetrymanager.h" - -#include +#include #include #include diff --git a/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configmultirotorwidget.cpp b/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configmultirotorwidget.cpp index 8aaa0c175..2d28ebf49 100644 --- a/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configmultirotorwidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configmultirotorwidget.cpp @@ -32,11 +32,11 @@ #include #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include #include #include @@ -217,7 +217,7 @@ void ConfigMultiRotorWidget::setupEnabledControls(QString frameType) // disable all motor channel boxes for (int i = 1; i <= 8; i++) { // do it manually so we can turn off any error decorations - QComboBox *combobox = qFindChild(this, "multiMotorChannelBox" + QString::number(i)); + QComboBox *combobox = this->findChild("multiMotorChannelBox" + QString::number(i)); if (combobox) { combobox->setEnabled(false); combobox->setItemData(0, 0, Qt::DecorationRole); @@ -1005,7 +1005,7 @@ bool ConfigMultiRotorWidget::throwConfigError(int numMotors) // Iterate through all instances of multiMotorChannelBox for (int i = 0; i < numMotors; i++) { // Fine widgets with text "multiMotorChannelBox.x", where x is an integer - QComboBox *combobox = qFindChild(this, "multiMotorChannelBox" + QString::number(i + 1)); + QComboBox *combobox = this->findChild("multiMotorChannelBox" + QString::number(i + 1)); if (combobox) { if (combobox->currentText() == "None") { int size = combobox->style()->pixelMetric(QStyle::PM_SmallIconSize); diff --git a/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configmultirotorwidget.h b/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configmultirotorwidget.h index e9c2c2c70..181c06875 100644 --- a/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configmultirotorwidget.h +++ b/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configmultirotorwidget.h @@ -36,8 +36,8 @@ #include "uavtalk/telemetrymanager.h" #include -#include -#include +#include +#include class Ui_Widget; diff --git a/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/vehicleconfig.cpp b/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/vehicleconfig.cpp index 21c892aed..d37a2ed74 100644 --- a/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/vehicleconfig.cpp +++ b/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/vehicleconfig.cpp @@ -165,7 +165,7 @@ void VehicleConfig::setComboCurrentIndex(QComboBox *box, int index) void VehicleConfig::enableComboBoxes(QWidget *owner, QString boxName, int boxCount, bool enable) { for (int i = 1; i <= boxCount; i++) { - QComboBox *box = qFindChild(owner, QString("%0%1").arg(boxName).arg(i)); + QComboBox *box = owner->findChild(QString("%0%1").arg(boxName).arg(i)); if (box) { box->setEnabled(enable); } diff --git a/ground/openpilotgcs/src/plugins/config/config_cc_hw_widget.cpp b/ground/openpilotgcs/src/plugins/config/config_cc_hw_widget.cpp index 76f7fc5bb..a2301a783 100644 --- a/ground/openpilotgcs/src/plugins/config/config_cc_hw_widget.cpp +++ b/ground/openpilotgcs/src/plugins/config/config_cc_hw_widget.cpp @@ -29,10 +29,10 @@ #include #include -#include -#include -#include -#include +#include +#include +#include +#include #include #include #include diff --git a/ground/openpilotgcs/src/plugins/config/config_cc_hw_widget.h b/ground/openpilotgcs/src/plugins/config/config_cc_hw_widget.h index 9acfa676e..313231382 100644 --- a/ground/openpilotgcs/src/plugins/config/config_cc_hw_widget.h +++ b/ground/openpilotgcs/src/plugins/config/config_cc_hw_widget.h @@ -32,7 +32,7 @@ #include "extensionsystem/pluginmanager.h" #include "uavobjectmanager.h" #include "uavobject.h" -#include +#include #include #include "smartsavebutton.h" diff --git a/ground/openpilotgcs/src/plugins/config/configautotunewidget.cpp b/ground/openpilotgcs/src/plugins/config/configautotunewidget.cpp index e395aaecf..fea26b73f 100644 --- a/ground/openpilotgcs/src/plugins/config/configautotunewidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/configautotunewidget.cpp @@ -2,10 +2,10 @@ #include #include -#include -#include -#include -#include +#include +#include +#include +#include #include #include #include diff --git a/ground/openpilotgcs/src/plugins/config/configautotunewidget.h b/ground/openpilotgcs/src/plugins/config/configautotunewidget.h index 777c24b3f..38f2df1fc 100644 --- a/ground/openpilotgcs/src/plugins/config/configautotunewidget.h +++ b/ground/openpilotgcs/src/plugins/config/configautotunewidget.h @@ -35,7 +35,7 @@ #include "stabilizationsettings.h" #include "relaytuningsettings.h" #include "relaytuning.h" -#include +#include #include class ConfigAutotuneWidget : public ConfigTaskWidget { diff --git a/ground/openpilotgcs/src/plugins/config/configccattitudewidget.h b/ground/openpilotgcs/src/plugins/config/configccattitudewidget.h index 0c74326b8..f8243a16d 100644 --- a/ground/openpilotgcs/src/plugins/config/configccattitudewidget.h +++ b/ground/openpilotgcs/src/plugins/config/configccattitudewidget.h @@ -32,7 +32,7 @@ #include "extensionsystem/pluginmanager.h" #include "uavobjectmanager.h" #include "uavobject.h" -#include +#include #include class Ui_Widget; diff --git a/ground/openpilotgcs/src/plugins/config/configgadgetwidget.cpp b/ground/openpilotgcs/src/plugins/config/configgadgetwidget.cpp index db3900e69..b71333c4f 100644 --- a/ground/openpilotgcs/src/plugins/config/configgadgetwidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/configgadgetwidget.cpp @@ -44,10 +44,10 @@ #include #include -#include -#include -#include -#include +#include +#include +#include +#include ConfigGadgetWidget::ConfigGadgetWidget(QWidget *parent) : QWidget(parent) { diff --git a/ground/openpilotgcs/src/plugins/config/configgadgetwidget.h b/ground/openpilotgcs/src/plugins/config/configgadgetwidget.h index 3827f7e7e..a2d04e793 100644 --- a/ground/openpilotgcs/src/plugins/config/configgadgetwidget.h +++ b/ground/openpilotgcs/src/plugins/config/configgadgetwidget.h @@ -32,7 +32,7 @@ #include "uavobjectmanager.h" #include "uavobject.h" #include "objectpersistence.h" -#include +#include #include #include #include "utils/pathutils.h" diff --git a/ground/openpilotgcs/src/plugins/config/configinputwidget.cpp b/ground/openpilotgcs/src/plugins/config/configinputwidget.cpp index 646130d9b..d1040724f 100644 --- a/ground/openpilotgcs/src/plugins/config/configinputwidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/configinputwidget.cpp @@ -31,10 +31,10 @@ #include #include -#include -#include -#include -#include +#include +#include +#include +#include #include #include #include diff --git a/ground/openpilotgcs/src/plugins/config/configinputwidget.h b/ground/openpilotgcs/src/plugins/config/configinputwidget.h index 18c6b4209..6cd2ef8cd 100644 --- a/ground/openpilotgcs/src/plugins/config/configinputwidget.h +++ b/ground/openpilotgcs/src/plugins/config/configinputwidget.h @@ -32,7 +32,7 @@ #include "extensionsystem/pluginmanager.h" #include "uavobjectmanager.h" #include "uavobject.h" -#include +#include #include #include "inputchannelform.h" #include "ui_inputchannelform.h" diff --git a/ground/openpilotgcs/src/plugins/config/configoutputwidget.cpp b/ground/openpilotgcs/src/plugins/config/configoutputwidget.cpp index d0db17f9b..ee15cf188 100644 --- a/ground/openpilotgcs/src/plugins/config/configoutputwidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/configoutputwidget.cpp @@ -33,10 +33,10 @@ #include #include -#include -#include -#include -#include +#include +#include +#include +#include #include #include #include diff --git a/ground/openpilotgcs/src/plugins/config/configoutputwidget.h b/ground/openpilotgcs/src/plugins/config/configoutputwidget.h index 1c12f64c0..1cabfb5a2 100644 --- a/ground/openpilotgcs/src/plugins/config/configoutputwidget.h +++ b/ground/openpilotgcs/src/plugins/config/configoutputwidget.h @@ -34,7 +34,7 @@ #include "uavobject.h" #include "uavobjectutilmanager.h" #include "cfg_vehicletypes/vehicleconfig.h" -#include +#include #include class Ui_OutputWidget; diff --git a/ground/openpilotgcs/src/plugins/config/configpipxtremewidget.cpp b/ground/openpilotgcs/src/plugins/config/configpipxtremewidget.cpp index 6fe506357..b9035e7fe 100644 --- a/ground/openpilotgcs/src/plugins/config/configpipxtremewidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/configpipxtremewidget.cpp @@ -183,14 +183,14 @@ void ConfigPipXtremeWidget::updateStatus(UAVObject *object) */ char buf[OPLinkStatus::DESCRIPTION_NUMELEM]; for (unsigned int i = 0; i < 26; ++i) { - buf[i] = descField->getValue(i + 14).toChar().toAscii(); + buf[i] = descField->getValue(i + 14).toChar().toLatin1(); } buf[26] = '\0'; QString descstr(buf); - quint32 gitDate = descField->getValue(11).toChar().toAscii() & 0xFF; + quint32 gitDate = descField->getValue(11).toChar().toLatin1() & 0xFF; for (int i = 1; i < 4; i++) { gitDate = gitDate << 8; - gitDate += descField->getValue(11 - i).toChar().toAscii() & 0xFF; + gitDate += descField->getValue(11 - i).toChar().toLatin1() & 0xFF; } QString date = QDateTime::fromTime_t(gitDate).toUTC().toString("yyyy-MM-dd HH:mm"); m_oplink->FirmwareVersion->setText(descstr + " " + date); diff --git a/ground/openpilotgcs/src/plugins/config/configplugin.cpp b/ground/openpilotgcs/src/plugins/config/configplugin.cpp index 566f1fd11..1768e1f60 100644 --- a/ground/openpilotgcs/src/plugins/config/configplugin.cpp +++ b/ground/openpilotgcs/src/plugins/config/configplugin.cpp @@ -69,5 +69,3 @@ void ConfigPlugin::extensionsInitialized() void ConfigPlugin::shutdown() {} - -Q_EXPORT_PLUGIN(ConfigPlugin) diff --git a/ground/openpilotgcs/src/plugins/config/configplugin.h b/ground/openpilotgcs/src/plugins/config/configplugin.h index 82919b9d4..340da99f5 100644 --- a/ground/openpilotgcs/src/plugins/config/configplugin.h +++ b/ground/openpilotgcs/src/plugins/config/configplugin.h @@ -42,6 +42,7 @@ class ConfigGadgetFactory; class ConfigPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "OpenPilot.Config") public: ConfigPlugin(); diff --git a/ground/openpilotgcs/src/plugins/config/configrevohwwidget.h b/ground/openpilotgcs/src/plugins/config/configrevohwwidget.h index fd54232ab..abb079839 100644 --- a/ground/openpilotgcs/src/plugins/config/configrevohwwidget.h +++ b/ground/openpilotgcs/src/plugins/config/configrevohwwidget.h @@ -32,7 +32,7 @@ #include "extensionsystem/pluginmanager.h" #include "uavobjectmanager.h" #include "uavobject.h" -#include +#include #include diff --git a/ground/openpilotgcs/src/plugins/config/configrevowidget.cpp b/ground/openpilotgcs/src/plugins/config/configrevowidget.cpp index 2e2bf9a33..d3e61d9d1 100644 --- a/ground/openpilotgcs/src/plugins/config/configrevowidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/configrevowidget.cpp @@ -30,10 +30,10 @@ #include #include #include -#include -#include -#include -#include +#include +#include +#include +#include #include #include #include diff --git a/ground/openpilotgcs/src/plugins/config/configrevowidget.h b/ground/openpilotgcs/src/plugins/config/configrevowidget.h index 6e26abf91..bccecba0c 100644 --- a/ground/openpilotgcs/src/plugins/config/configrevowidget.h +++ b/ground/openpilotgcs/src/plugins/config/configrevowidget.h @@ -34,7 +34,7 @@ #include "extensionsystem/pluginmanager.h" #include "uavobjectmanager.h" #include "uavobject.h" -#include +#include #include #include #include diff --git a/ground/openpilotgcs/src/plugins/config/configstabilizationwidget.cpp b/ground/openpilotgcs/src/plugins/config/configstabilizationwidget.cpp index 69df7ccc5..e27b8542c 100644 --- a/ground/openpilotgcs/src/plugins/config/configstabilizationwidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/configstabilizationwidget.cpp @@ -28,10 +28,10 @@ #include #include -#include -#include -#include -#include +#include +#include +#include +#include #include #include #include diff --git a/ground/openpilotgcs/src/plugins/config/configstabilizationwidget.h b/ground/openpilotgcs/src/plugins/config/configstabilizationwidget.h index c13448078..f6b26a76e 100644 --- a/ground/openpilotgcs/src/plugins/config/configstabilizationwidget.h +++ b/ground/openpilotgcs/src/plugins/config/configstabilizationwidget.h @@ -33,7 +33,7 @@ #include "uavobjectmanager.h" #include "uavobject.h" #include "stabilizationsettings.h" -#include +#include #include diff --git a/ground/openpilotgcs/src/plugins/config/configvehicletypewidget.cpp b/ground/openpilotgcs/src/plugins/config/configvehicletypewidget.cpp index 2e9a5f0fe..0d6d4ee05 100644 --- a/ground/openpilotgcs/src/plugins/config/configvehicletypewidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/configvehicletypewidget.cpp @@ -37,7 +37,11 @@ #include #include #include -#include +#include +#include +#include +#include +#include #include #include diff --git a/ground/openpilotgcs/src/plugins/config/configvehicletypewidget.h b/ground/openpilotgcs/src/plugins/config/configvehicletypewidget.h index 5a065865c..5bee9696c 100644 --- a/ground/openpilotgcs/src/plugins/config/configvehicletypewidget.h +++ b/ground/openpilotgcs/src/plugins/config/configvehicletypewidget.h @@ -38,6 +38,12 @@ #include #include +#include +#include +#include + +class Ui_Widget; + /* * This class derives from ConfigTaskWidget and overrides its default "binding" mechanism. * This widget bypasses automatic synchronization of UAVObjects and UI by providing its own implementations of diff --git a/ground/openpilotgcs/src/plugins/config/defaultattitudewidget.h b/ground/openpilotgcs/src/plugins/config/defaultattitudewidget.h index a21541d83..5703e4498 100644 --- a/ground/openpilotgcs/src/plugins/config/defaultattitudewidget.h +++ b/ground/openpilotgcs/src/plugins/config/defaultattitudewidget.h @@ -32,7 +32,7 @@ #include "extensionsystem/pluginmanager.h" #include "uavobjectmanager.h" #include "uavobject.h" -#include +#include #include #include diff --git a/ground/openpilotgcs/src/plugins/config/defaulthwsettingswidget.h b/ground/openpilotgcs/src/plugins/config/defaulthwsettingswidget.h index 604a7f019..7d0cbceba 100644 --- a/ground/openpilotgcs/src/plugins/config/defaulthwsettingswidget.h +++ b/ground/openpilotgcs/src/plugins/config/defaulthwsettingswidget.h @@ -32,7 +32,7 @@ #include "extensionsystem/pluginmanager.h" #include "uavobjectmanager.h" #include "uavobject.h" -#include +#include #include #include diff --git a/ground/openpilotgcs/src/plugins/config/fancytabwidget.cpp b/ground/openpilotgcs/src/plugins/config/fancytabwidget.cpp index 6a5629ec3..998f5145e 100644 --- a/ground/openpilotgcs/src/plugins/config/fancytabwidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/fancytabwidget.cpp @@ -32,17 +32,17 @@ #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +// #include +#include +#include +#include +#include +#include +#include const int FancyTabBar::m_rounding = 22; const int FancyTabBar::m_textPadding = 4; @@ -59,7 +59,7 @@ FancyTabBar::FancyTabBar(QWidget *parent, bool isVertical) } else { setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); } - setStyle(new QWindowsStyle); + // setStyle(new QWindowsStyle); setMinimumWidth(qMax(2 * m_rounding, 40)); setAttribute(Qt::WA_Hover, true); setFocusPolicy(Qt::NoFocus); diff --git a/ground/openpilotgcs/src/plugins/config/fancytabwidget.h b/ground/openpilotgcs/src/plugins/config/fancytabwidget.h index e0bcad74a..a9604169f 100644 --- a/ground/openpilotgcs/src/plugins/config/fancytabwidget.h +++ b/ground/openpilotgcs/src/plugins/config/fancytabwidget.h @@ -29,9 +29,9 @@ #ifndef FANCYTABWIDGET_H #define FANCYTABWIDGET_H -#include -#include -#include +#include +#include +#include #include QT_BEGIN_NAMESPACE diff --git a/ground/openpilotgcs/src/plugins/config/mixercurve.cpp b/ground/openpilotgcs/src/plugins/config/mixercurve.cpp index 17e9c48cd..ad0fdaa3a 100644 --- a/ground/openpilotgcs/src/plugins/config/mixercurve.cpp +++ b/ground/openpilotgcs/src/plugins/config/mixercurve.cpp @@ -25,7 +25,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include +#include #include #include #include "mixercurve.h" diff --git a/ground/openpilotgcs/src/plugins/config/mixercurve.h b/ground/openpilotgcs/src/plugins/config/mixercurve.h index bd4b0acec..f62bfa251 100644 --- a/ground/openpilotgcs/src/plugins/config/mixercurve.h +++ b/ground/openpilotgcs/src/plugins/config/mixercurve.h @@ -28,7 +28,7 @@ #define MIXERCURVE_H #include -#include +#include #include #include diff --git a/ground/openpilotgcs/src/plugins/coreplugin/actionmanager/actioncontainer.cpp b/ground/openpilotgcs/src/plugins/coreplugin/actionmanager/actioncontainer.cpp index bf8742d75..923b772be 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/actionmanager/actioncontainer.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/actionmanager/actioncontainer.cpp @@ -35,8 +35,8 @@ #include "uniqueidmanager.h" #include -#include -#include +#include +#include Q_DECLARE_METATYPE(Core::Internal::MenuActionContainer *) diff --git a/ground/openpilotgcs/src/plugins/coreplugin/actionmanager/actioncontainer.h b/ground/openpilotgcs/src/plugins/coreplugin/actionmanager/actioncontainer.h index c29f269af..83a1c93d5 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/actionmanager/actioncontainer.h +++ b/ground/openpilotgcs/src/plugins/coreplugin/actionmanager/actioncontainer.h @@ -30,9 +30,9 @@ #define ACTIONCONTAINER_H #include -#include -#include -#include +#include +#include +#include namespace Core { class Command; diff --git a/ground/openpilotgcs/src/plugins/coreplugin/actionmanager/actionmanager.cpp b/ground/openpilotgcs/src/plugins/coreplugin/actionmanager/actionmanager.cpp index a86a70f0c..2d47e5f4b 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/actionmanager/actionmanager.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/actionmanager/actionmanager.cpp @@ -36,10 +36,10 @@ #include #include -#include -#include -#include -#include +#include +#include +#include +#include namespace { enum { warnAboutFindFailures = 0 }; diff --git a/ground/openpilotgcs/src/plugins/coreplugin/actionmanager/command.cpp b/ground/openpilotgcs/src/plugins/coreplugin/actionmanager/command.cpp index de5379423..88f554b15 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/actionmanager/command.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/actionmanager/command.cpp @@ -27,8 +27,8 @@ */ #include -#include -#include +#include +#include #include "command_p.h" diff --git a/ground/openpilotgcs/src/plugins/coreplugin/actionmanager/command_p.h b/ground/openpilotgcs/src/plugins/coreplugin/actionmanager/command_p.h index a2a80fae8..01fd68e37 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/actionmanager/command_p.h +++ b/ground/openpilotgcs/src/plugins/coreplugin/actionmanager/command_p.h @@ -35,7 +35,7 @@ #include #include #include -#include +#include namespace Core { namespace Internal { diff --git a/ground/openpilotgcs/src/plugins/coreplugin/actionmanager/commandsfile.h b/ground/openpilotgcs/src/plugins/coreplugin/actionmanager/commandsfile.h index 8ca75b071..09ac2265b 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/actionmanager/commandsfile.h +++ b/ground/openpilotgcs/src/plugins/coreplugin/actionmanager/commandsfile.h @@ -33,7 +33,7 @@ #include #include #include -#include +#include namespace Core { namespace Internal { diff --git a/ground/openpilotgcs/src/plugins/coreplugin/authorsdialog.cpp b/ground/openpilotgcs/src/plugins/coreplugin/authorsdialog.cpp index 13af48f34..c4f94d6aa 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/authorsdialog.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/authorsdialog.cpp @@ -38,11 +38,11 @@ #include #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include #include diff --git a/ground/openpilotgcs/src/plugins/coreplugin/authorsdialog.h b/ground/openpilotgcs/src/plugins/coreplugin/authorsdialog.h index fadac688e..7c88cdf0e 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/authorsdialog.h +++ b/ground/openpilotgcs/src/plugins/coreplugin/authorsdialog.h @@ -29,7 +29,7 @@ #ifndef AUTHORSDIALOG_H #define AUTHORSDIALOG_H -#include +#include namespace Core { namespace Internal { diff --git a/ground/openpilotgcs/src/plugins/coreplugin/basemode.cpp b/ground/openpilotgcs/src/plugins/coreplugin/basemode.cpp index 63d84a679..93e1ec2cf 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/basemode.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/basemode.cpp @@ -30,7 +30,7 @@ #include -#include +#include using namespace Core; diff --git a/ground/openpilotgcs/src/plugins/coreplugin/basemode.h b/ground/openpilotgcs/src/plugins/coreplugin/basemode.h index c2204c7c5..4a45ad848 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/basemode.h +++ b/ground/openpilotgcs/src/plugins/coreplugin/basemode.h @@ -33,8 +33,8 @@ #include "imode.h" #include -#include -#include +#include +#include namespace Core { class CORE_EXPORT BaseMode diff --git a/ground/openpilotgcs/src/plugins/coreplugin/baseview.cpp b/ground/openpilotgcs/src/plugins/coreplugin/baseview.cpp index f659188d5..5288940d9 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/baseview.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/baseview.cpp @@ -28,7 +28,7 @@ #include "baseview.h" -#include +#include using namespace Core; diff --git a/ground/openpilotgcs/src/plugins/coreplugin/connectionmanager.cpp b/ground/openpilotgcs/src/plugins/coreplugin/connectionmanager.cpp index c12919a14..b2db517dc 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/connectionmanager.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/connectionmanager.cpp @@ -31,8 +31,8 @@ #include #include #include -#include "qextserialport/src/qextserialenumerator.h" -#include "qextserialport/src/qextserialport.h" +#include +#include #include #include #include diff --git a/ground/openpilotgcs/src/plugins/coreplugin/connectionmanager.h b/ground/openpilotgcs/src/plugins/coreplugin/connectionmanager.h index 1f339818a..5569f6430 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/connectionmanager.h +++ b/ground/openpilotgcs/src/plugins/coreplugin/connectionmanager.h @@ -37,8 +37,8 @@ #include #include #include -#include -#include +#include +#include #include "core_global.h" #include diff --git a/ground/openpilotgcs/src/plugins/coreplugin/coreconstants.h b/ground/openpilotgcs/src/plugins/coreplugin/coreconstants.h index 2a2a4206e..b673f2eab 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/coreconstants.h +++ b/ground/openpilotgcs/src/plugins/coreplugin/coreconstants.h @@ -201,6 +201,7 @@ const char *const ICON_PREV = ":/core/images/prev.png"; const char *const ICON_DIR = ":/core/images/dir.png"; const char *const ICON_CLEAN_PANE = ":/core/images/clean_pane_small.png"; const char *const ICON_CLEAR = ":/core/images/clear.png"; +const char *const ICON_CLOSE = ":/core/images/closebutton.png"; const char *const ICON_FIND = ":/core/images/find.png"; const char *const ICON_FINDNEXT = ":/core/images/findnext.png"; const char *const ICON_REPLACE = ":/core/images/replace.png"; diff --git a/ground/openpilotgcs/src/plugins/coreplugin/coreplugin.cpp b/ground/openpilotgcs/src/plugins/coreplugin/coreplugin.cpp index fd5a058cf..359cfe20d 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/coreplugin.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/coreplugin.cpp @@ -76,5 +76,3 @@ void CorePlugin::shutdown() { m_mainWindow->shutdown(); } - -Q_EXPORT_PLUGIN2(Core, CorePlugin) diff --git a/ground/openpilotgcs/src/plugins/coreplugin/coreplugin.h b/ground/openpilotgcs/src/plugins/coreplugin/coreplugin.h index 8c4431fee..ddd4de647 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/coreplugin.h +++ b/ground/openpilotgcs/src/plugins/coreplugin/coreplugin.h @@ -37,6 +37,7 @@ class MainWindow; class CorePlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "OpenPilot.Core") public: CorePlugin(); diff --git a/ground/openpilotgcs/src/plugins/coreplugin/coreplugin_dependencies.pri b/ground/openpilotgcs/src/plugins/coreplugin/coreplugin_dependencies.pri index 6e4a2fb01..8b548e717 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/coreplugin_dependencies.pri +++ b/ground/openpilotgcs/src/plugins/coreplugin/coreplugin_dependencies.pri @@ -1,4 +1,2 @@ include(../../libs/extensionsystem/extensionsystem.pri) include(../../libs/utils/utils.pri) -include(../../libs/libqxt/libqxt.pri) -include(../../libs/qextserialport/qextserialport.pri) diff --git a/ground/openpilotgcs/src/plugins/coreplugin/dialogs/ioptionspage.h b/ground/openpilotgcs/src/plugins/coreplugin/dialogs/ioptionspage.h index a8ee2a8f9..040dd0caf 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/dialogs/ioptionspage.h +++ b/ground/openpilotgcs/src/plugins/coreplugin/dialogs/ioptionspage.h @@ -32,7 +32,7 @@ #include #include -#include +#include QT_BEGIN_NAMESPACE class QWidget; diff --git a/ground/openpilotgcs/src/plugins/coreplugin/dialogs/settingsdialog.cpp b/ground/openpilotgcs/src/plugins/coreplugin/dialogs/settingsdialog.cpp index ea545a82c..5382cdc1f 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/dialogs/settingsdialog.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/dialogs/settingsdialog.cpp @@ -35,9 +35,9 @@ #include #include -#include -#include -#include +#include +#include +#include using namespace Core; using namespace Core::Internal; diff --git a/ground/openpilotgcs/src/plugins/coreplugin/dialogs/shortcutsettings.cpp b/ground/openpilotgcs/src/plugins/coreplugin/dialogs/shortcutsettings.cpp index 6566cf9bd..1ab59ee53 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/dialogs/shortcutsettings.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/dialogs/shortcutsettings.cpp @@ -38,10 +38,10 @@ #include -#include -#include -#include -#include +#include +#include +#include +#include #include Q_DECLARE_METATYPE(Core::Internal::ShortcutItem *) @@ -157,7 +157,7 @@ void ShortcutSettings::commandChanged(QTreeWidgetItem *current) return; } m_page->seqGrp->setEnabled(true); - ShortcutItem *scitem = qVariantValue(current->data(0, Qt::UserRole)); + ShortcutItem *scitem = current->data(0, Qt::UserRole).value(); setKeySequence(scitem->m_key); } @@ -174,9 +174,9 @@ void ShortcutSettings::keyChanged() QTreeWidgetItem *current = m_page->commandList->currentItem(); if (current && current->data(0, Qt::UserRole).isValid()) { - ShortcutItem *scitem = qVariantValue(current->data(0, Qt::UserRole)); + ShortcutItem *scitem = current->data(0, Qt::UserRole).value(); scitem->m_key = QKeySequence(m_key[0], m_key[1], m_key[2], m_key[3]); - current->setText(2, scitem->m_key); + current->setText(2, scitem->m_key.toString()); } } @@ -187,7 +187,7 @@ void ShortcutSettings::setKeySequence(const QKeySequence &key) for (int i = 0; i < m_keyNum; ++i) { m_key[i] = key[i]; } - m_page->shortcutEdit->setText(key); + m_page->shortcutEdit->setText(key.toString()); } bool ShortcutSettings::filter(const QString &f, const QTreeWidgetItem *item) @@ -222,7 +222,7 @@ void ShortcutSettings::resetKeySequence() QTreeWidgetItem *current = m_page->commandList->currentItem(); if (current && current->data(0, Qt::UserRole).isValid()) { - ShortcutItem *scitem = qVariantValue(current->data(0, Qt::UserRole)); + ShortcutItem *scitem = current->data(0, Qt::UserRole).value(); setKeySequence(scitem->m_cmd->defaultKeySequence()); } } @@ -250,7 +250,7 @@ void ShortcutSettings::importAction() if (mapping.contains(sid)) { item->m_key = mapping.value(sid); - item->m_item->setText(2, item->m_key); + item->m_item->setText(2, item->m_key.toString()); if (item->m_item == m_page->commandList->currentItem()) { commandChanged(item->m_item); } @@ -263,7 +263,7 @@ void ShortcutSettings::defaultAction() { foreach(ShortcutItem * item, m_scitems) { item->m_key = item->m_cmd->defaultKeySequence(); - item->m_item->setText(2, item->m_key); + item->m_item->setText(2, item->m_key.toString()); if (item->m_item == m_page->commandList->currentItem()) { commandChanged(item->m_item); } @@ -317,7 +317,7 @@ void ShortcutSettings::initialize() item->setText(1, c->shortcut()->whatsThis()); } - item->setText(2, s->m_key); + item->setText(2, s->m_key.toString()); item->setData(0, Qt::UserRole, qVariantFromValue(s)); } } @@ -353,7 +353,7 @@ void ShortcutSettings::handleKeyEvent(QKeyEvent *e) } m_keyNum++; QKeySequence ks(m_key[0], m_key[1], m_key[2], m_key[3]); - m_page->shortcutEdit->setText(ks); + m_page->shortcutEdit->setText(ks.toString()); e->accept(); } diff --git a/ground/openpilotgcs/src/plugins/coreplugin/dialogs/shortcutsettings.h b/ground/openpilotgcs/src/plugins/coreplugin/dialogs/shortcutsettings.h index 7aac4c6d9..92c623a65 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/dialogs/shortcutsettings.h +++ b/ground/openpilotgcs/src/plugins/coreplugin/dialogs/shortcutsettings.h @@ -32,9 +32,9 @@ #include #include -#include -#include -#include +#include +#include +#include QT_BEGIN_NAMESPACE class Ui_ShortcutSettings; diff --git a/ground/openpilotgcs/src/plugins/coreplugin/eventfilteringmainwindow.cpp b/ground/openpilotgcs/src/plugins/coreplugin/eventfilteringmainwindow.cpp index 6b2fc4179..cecef211d 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/eventfilteringmainwindow.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/eventfilteringmainwindow.cpp @@ -40,8 +40,15 @@ EventFilteringMainWindow::EventFilteringMainWindow() {} #ifdef Q_OS_WIN +#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) bool EventFilteringMainWindow::winEvent(MSG *msg, long *result) { +#else +bool EventFilteringMainWindow::nativeEvent(const QByteArray & /*eventType*/, void *message, long *result) +{ + MSG *msg = static_cast(message); + +#endif if (msg->message == WM_DEVICECHANGE) { emit deviceChange(); *result = TRUE; diff --git a/ground/openpilotgcs/src/plugins/coreplugin/eventfilteringmainwindow.h b/ground/openpilotgcs/src/plugins/coreplugin/eventfilteringmainwindow.h index 3f0ddef43..43342f11c 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/eventfilteringmainwindow.h +++ b/ground/openpilotgcs/src/plugins/coreplugin/eventfilteringmainwindow.h @@ -29,7 +29,7 @@ #ifndef EVENTFILTERINGMAINWINDOW_H #define EVENTFILTERINGMAINWINDOW_H -#include +#include namespace Core { namespace Internal { @@ -45,7 +45,11 @@ public: #ifdef Q_OS_WIN protected: +#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) bool winEvent(MSG *message, long *result); +#else + bool nativeEvent(const QByteArray & /*eventType*/, void *message, long *result); +#endif #endif signals: diff --git a/ground/openpilotgcs/src/plugins/coreplugin/fancyactionbar.cpp b/ground/openpilotgcs/src/plugins/coreplugin/fancyactionbar.cpp index f6ce52c7a..f9d39a02d 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/fancyactionbar.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/fancyactionbar.cpp @@ -28,12 +28,12 @@ #include "fancyactionbar.h" -#include -#include -#include -#include +#include +#include +#include +#include #include -#include +#include using namespace Core; using namespace Internal; diff --git a/ground/openpilotgcs/src/plugins/coreplugin/fancyactionbar.h b/ground/openpilotgcs/src/plugins/coreplugin/fancyactionbar.h index 147474ef4..9d6917ad4 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/fancyactionbar.h +++ b/ground/openpilotgcs/src/plugins/coreplugin/fancyactionbar.h @@ -31,7 +31,7 @@ #define FANCYACTIONBAR_H #include -#include +#include QT_BEGIN_NAMESPACE class QMenu; diff --git a/ground/openpilotgcs/src/plugins/coreplugin/fancytabwidget.cpp b/ground/openpilotgcs/src/plugins/coreplugin/fancytabwidget.cpp index 3e82d40c5..b01b8233d 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/fancytabwidget.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/fancytabwidget.cpp @@ -27,50 +27,65 @@ */ #include "fancytabwidget.h" +#include #include #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include using namespace Core; using namespace Internal; -const int FancyTabBar::m_rounding = 22; +const int FancyTabBar::m_rounding = 22; const int FancyTabBar::m_textPadding = 4; -FancyTabBar::FancyTabBar(QWidget *parent, bool isVertical) +void FancyTab::fadeIn() +{ + animator.stop(); + animator.setDuration(80); + animator.setEndValue(40); + animator.start(); +} + +void FancyTab::fadeOut() +{ + animator.stop(); + animator.setDuration(160); + animator.setEndValue(0); + animator.start(); +} + +void FancyTab::setFader(float value) +{ + m_fader = value; + tabbar->update(); +} + +FancyTabBar::FancyTabBar(QWidget *parent) : QWidget(parent) { - verticalTabs = isVertical; - setIconSize(16); - m_hoverIndex = -1; - m_currentIndex = 0; - if (isVertical) { - setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding); - } else { - setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); - } - setStyle(new QWindowsStyle); + m_hoverIndex = -1; + m_currentIndex = -1; + setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding); + setStyle(QStyleFactory::create(QLatin1String("windows"))); setMinimumWidth(qMax(2 * m_rounding, 40)); setAttribute(Qt::WA_Hover, true); setFocusPolicy(Qt::NoFocus); - m_hoverControl.setFrameRange(0, 20); - m_hoverControl.setDuration(130); - m_hoverControl.setCurveShape(QTimeLine::EaseInCurve); - connect(&m_hoverControl, SIGNAL(frameChanged(int)), this, SLOT(updateHover())); setMouseTracking(true); // Needed for hover events + m_triggerTimer.setSingleShot(true); + + // We use a zerotimer to keep the sidebar responsive + connect(&m_triggerTimer, SIGNAL(timeout()), this, SLOT(emitCurrentIndex())); } FancyTabBar::~FancyTabBar() @@ -81,15 +96,19 @@ FancyTabBar::~FancyTabBar() QSize FancyTabBar::tabSizeHint(bool minimum) const { QFont boldFont(font()); - boldFont.setPointSizeF(Utils::StyleHelper::sidebarFontSize()); boldFont.setBold(true); QFontMetrics fm(boldFont); - int spacing = 6; - int width = 90 + spacing + 2; - - int iconHeight = minimum ? 0 : iconSize; - return QSize(width, iconHeight + spacing + fm.height()); + int spacing = 8; + int width = 60 + spacing + 2; + int maxLabelwidth = 0; + for (int tab=0 ; tab maxLabelwidth) + maxLabelwidth = width; + } + int iconHeight = minimum ? 0 : 32; + return QSize(qMax(width, maxLabelwidth + 4), iconHeight + spacing + fm.height()); } void FancyTabBar::paintEvent(QPaintEvent *event) @@ -97,49 +116,47 @@ void FancyTabBar::paintEvent(QPaintEvent *event) Q_UNUSED(event) QPainter p(this); - for (int i = 0; i < count(); ++i) { - if (i != currentIndex()) { + for (int i = 0; i < count(); ++i) + if (i != currentIndex()) paintTab(&p, i); - } - } // paint active tab last, since it overlaps the neighbors - paintTab(&p, currentIndex()); + if (currentIndex() != -1) + paintTab(&p, currentIndex()); } // Handle hover events for mouse fade ins void FancyTabBar::mouseMoveEvent(QMouseEvent *e) { - if (!m_hoverRect.contains(e->pos())) { - int newHover = -1; - for (int i = 0; i < count(); ++i) { - QRect area = tabRect(i); - if (area.contains(e->pos())) { - newHover = i; - break; - } + int newHover = -1; + for (int i = 0; i < count(); ++i) { + QRect area = tabRect(i); + if (area.contains(e->pos())) { + newHover = i; + break; } + } + if (newHover == m_hoverIndex) + return; - m_hoverControl.stop(); - m_hoverIndex = newHover; - update(m_hoverRect); - m_hoverRect = QRect(); + if (validIndex(m_hoverIndex)) + m_tabs[m_hoverIndex]->fadeOut(); - if (m_hoverIndex >= 0) { - QRect oldHoverRect = m_hoverRect; - m_hoverRect = tabRect(m_hoverIndex); - m_hoverControl.start(); - } + m_hoverIndex = newHover; + + if (validIndex(m_hoverIndex)) { + m_tabs[m_hoverIndex]->fadeIn(); + m_hoverRect = tabRect(m_hoverIndex); } } bool FancyTabBar::event(QEvent *event) { if (event->type() == QEvent::ToolTip) { - if (m_hoverIndex >= 0 && m_hoverIndex < m_tabs.count()) { + if (validIndex(m_hoverIndex)) { QString tt = tabToolTip(m_hoverIndex); if (!tt.isEmpty()) { - QToolTip::showText(static_cast(event)->globalPos(), tt, this); + QToolTip::showText(static_cast(event)->globalPos(), tt, this); return true; } } @@ -147,16 +164,11 @@ bool FancyTabBar::event(QEvent *event) return QWidget::event(event); } -void FancyTabBar::updateHover() -{ - update(m_hoverRect); -} - // Resets hover animation on mouse enter void FancyTabBar::enterEvent(QEvent *e) { Q_UNUSED(e) - m_hoverRect = QRect(); + m_hoverRect = QRect(); m_hoverIndex = -1; } @@ -164,64 +176,55 @@ void FancyTabBar::enterEvent(QEvent *e) void FancyTabBar::leaveEvent(QEvent *e) { Q_UNUSED(e) - if (m_hoverIndex >= 0) { - m_hoverIndex = -1; - update(m_hoverRect); - m_hoverRect = QRect(); + m_hoverIndex = -1; + m_hoverRect = QRect(); + for (int i = 0 ; i < m_tabs.count() ; ++i) { + m_tabs[i]->fadeOut(); } } -void FancyTabBar::updateTabNameIcon(int index, const QIcon &icon, const QString &label) -{ - m_tabs[index].icon = icon; - m_tabs[index].text = label; -} - QSize FancyTabBar::sizeHint() const { QSize sh = tabSizeHint(); - - if (verticalTabs) { - return QSize(sh.width(), sh.height() * m_tabs.count()); - } - return QSize(sh.width() * m_tabs.count(), sh.height()); + return QSize(sh.width(), sh.height() * m_tabs.count()); } QSize FancyTabBar::minimumSizeHint() const { QSize sh = tabSizeHint(true); - - if (verticalTabs) { - return QSize(sh.width(), sh.height() * m_tabs.count()); - } - return QSize(sh.width() * m_tabs.count(), sh.height()); + return QSize(sh.width(), sh.height() * m_tabs.count()); } QRect FancyTabBar::tabRect(int index) const { QSize sh = tabSizeHint(); - if (verticalTabs) { - if (sh.height() * m_tabs.count() > height()) { - sh.setHeight(height() / m_tabs.count()); - } + if (sh.height() * m_tabs.count() > height()) + sh.setHeight(height() / m_tabs.count()); - return QRect(0, index * sh.height(), sh.width(), sh.height()); - } + return QRect(0, index * sh.height(), sh.width(), sh.height()); - if (sh.width() * m_tabs.count() > width()) { - sh.setWidth(width() / m_tabs.count()); - } +} - return QRect(index * sh.width(), 0, sh.width(), sh.height()); +// This keeps the sidebar responsive since +// we get a repaint before loading the +// mode itself +void FancyTabBar::emitCurrentIndex() +{ + emit currentChanged(m_currentIndex); } void FancyTabBar::mousePressEvent(QMouseEvent *e) { e->accept(); - for (int i = 0; i < m_tabs.count(); ++i) { - if (tabRect(i).contains(e->pos())) { - setCurrentIndex(i); + for (int index = 0; index < m_tabs.count(); ++index) { + if (tabRect(index).contains(e->pos())) { + + if (isTabEnabled(index)) { + m_currentIndex = index; + update(); + m_triggerTimer.start(0); + } break; } } @@ -229,87 +232,127 @@ void FancyTabBar::mousePressEvent(QMouseEvent *e) void FancyTabBar::paintTab(QPainter *painter, int tabIndex) const { + if (!validIndex(tabIndex)) { + qWarning("invalid index"); + return; + } painter->save(); - QRect rect = tabRect(tabIndex); - + QRect rect = tabRect(tabIndex); bool selected = (tabIndex == m_currentIndex); - bool hover = (tabIndex == m_hoverIndex); - -#ifdef Q_WS_MAC - hover = false; // Dont hover on Mac -#endif - - QColor background = QColor(0, 0, 0, 10); - QColor hoverColor; - - if (hover) { - hoverColor = QColor(255, 255, 255, m_hoverControl.currentFrame()); - } - - QColor light = QColor(255, 255, 255, 40); - QColor dark = QColor(0, 0, 0, 60); + bool enabled = isTabEnabled(tabIndex); if (selected) { - QLinearGradient selectedGradient(rect.bottomRight(), QPoint(rect.center().x(), rect.top())); - selectedGradient.setColorAt(0, Qt::white); - selectedGradient.setColorAt(0.3, Qt::white); - selectedGradient.setColorAt(0.7, QColor(210, 210, 220)); // give a blue-ish color + //background + painter->save(); + QLinearGradient grad(rect.topLeft(), rect.topRight()); + grad.setColorAt(0, QColor(255, 255, 255, 140)); + grad.setColorAt(1, QColor(255, 255, 255, 210)); + painter->fillRect(rect.adjusted(0, 0, 0, -1), grad); + painter->restore(); - painter->fillRect(rect, selectedGradient); - painter->setPen(QColor(200, 200, 200)); + //shadows + painter->setPen(QColor(0, 0, 0, 110)); + painter->drawLine(rect.topLeft() + QPoint(1,-1), rect.topRight() - QPoint(0,1)); + painter->drawLine(rect.bottomLeft(), rect.bottomRight()); + painter->setPen(QColor(0, 0, 0, 40)); painter->drawLine(rect.topLeft(), rect.bottomLeft()); - painter->setPen(QColor(150, 160, 200)); - painter->drawLine(rect.topRight(), rect.bottomRight()); - } else { - painter->fillRect(rect, background); - if (hover) { - painter->fillRect(rect, hoverColor); - } - painter->setPen(QPen(light, 0)); - painter->drawLine(rect.topLeft(), rect.bottomLeft()); - painter->setPen(QPen(dark, 0)); - painter->drawLine(rect.topRight(), rect.bottomRight()); + + //highlights + painter->setPen(QColor(255, 255, 255, 50)); + painter->drawLine(rect.topLeft() + QPoint(0, -2), rect.topRight() - QPoint(0,2)); + painter->drawLine(rect.bottomLeft() + QPoint(0, 1), rect.bottomRight() + QPoint(0,1)); + painter->setPen(QColor(255, 255, 255, 40)); + painter->drawLine(rect.topLeft() + QPoint(0, 0), rect.topRight()); + painter->drawLine(rect.topRight() + QPoint(0, 1), rect.bottomRight() - QPoint(0, 1)); + painter->drawLine(rect.bottomLeft() + QPoint(0,-1), rect.bottomRight()-QPoint(0,1)); } QString tabText(this->tabText(tabIndex)); - QRect tabTextRect(tabRect(tabIndex)); + QRect tabTextRect(rect); + const bool drawIcon = rect.height() > 36; QRect tabIconRect(tabTextRect); + tabTextRect.translate(0, drawIcon ? -2 : 1); QFont boldFont(painter->font()); boldFont.setPointSizeF(Utils::StyleHelper::sidebarFontSize()); boldFont.setBold(true); painter->setFont(boldFont); - painter->setPen(selected ? Utils::StyleHelper::panelTextColor() : QColor(30, 30, 30, 80)); - int textFlags = Qt::AlignCenter | Qt::AlignBottom | Qt::ElideRight | Qt::TextWordWrap; - painter->drawText(tabTextRect, textFlags, tabText); - painter->setPen(selected ? QColor(60, 60, 60) : Utils::StyleHelper::panelTextColor()); - int textHeight = painter->fontMetrics().boundingRect(QRect(0, 0, width(), height()), Qt::TextWordWrap, tabText).height(); - tabIconRect.adjust(0, 4, 0, -textHeight); - int iconSize = qMin(tabIconRect.width(), tabIconRect.height()); - if (iconSize > 4) { - style()->drawItemPixmap(painter, tabIconRect, Qt::AlignCenter | Qt::AlignVCenter, - tabIcon(tabIndex).pixmap(tabIconRect.size())); + painter->setPen(selected ? QColor(255, 255, 255, 160) : QColor(0, 0, 0, 110)); + const int textFlags = Qt::AlignCenter | (drawIcon ? Qt::AlignBottom : Qt::AlignVCenter) | Qt::TextWordWrap; + if (enabled) { + painter->drawText(tabTextRect, textFlags, tabText); + painter->setPen(selected ? QColor(60, 60, 60) : Utils::StyleHelper::panelTextColor()); + } else { + painter->setPen(selected ? Utils::StyleHelper::panelTextColor() : QColor(255, 255, 255, 120)); } + if (!Utils::HostOsInfo::isMacHost() && !selected && enabled) { + painter->save(); + int fader = int(m_tabs[tabIndex]->fader()); + QLinearGradient grad(rect.topLeft(), rect.topRight()); + grad.setColorAt(0, Qt::transparent); + grad.setColorAt(0.5, QColor(255, 255, 255, fader)); + grad.setColorAt(1, Qt::transparent); + painter->fillRect(rect, grad); + painter->setPen(QPen(grad, 1.0)); + painter->drawLine(rect.topLeft(), rect.topRight()); + painter->drawLine(rect.bottomLeft(), rect.bottomRight()); + painter->restore(); + } + + if (!enabled) + painter->setOpacity(0.7); + + if (drawIcon) { + int textHeight = painter->fontMetrics().boundingRect(QRect(0, 0, width(), height()), Qt::TextWordWrap, tabText).height(); + tabIconRect.adjust(0, 4, 0, -textHeight); + Utils::StyleHelper::drawIconWithShadow(tabIcon(tabIndex), tabIconRect, painter, enabled ? QIcon::Normal : QIcon::Disabled); + } + painter->translate(0, -1); painter->drawText(tabTextRect, textFlags, tabText); painter->restore(); } -void FancyTabBar::setCurrentIndex(int index) -{ - m_currentIndex = index; - update(); - emit currentChanged(index); +void FancyTabBar::setCurrentIndex(int index) { + if (isTabEnabled(index)) { + m_currentIndex = index; + update(); + emit currentChanged(m_currentIndex); + } } +void FancyTabBar::setTabEnabled(int index, bool enable) +{ + Q_ASSERT(index < m_tabs.size()); + Q_ASSERT(index >= 0); + + if (index < m_tabs.size() && index >= 0) { + m_tabs[index]->enabled = enable; + update(tabRect(index)); + } +} + +bool FancyTabBar::isTabEnabled(int index) const +{ + Q_ASSERT(index < m_tabs.size()); + Q_ASSERT(index >= 0); + + if (index < m_tabs.size() && index >= 0) + return m_tabs[index]->enabled; + + return false; +} + + ////// // FancyColorButton ////// -class FancyColorButton : public QWidget { +class FancyColorButton : public QWidget +{ public: FancyColorButton(QWidget *parent) - : m_parent(parent) + : m_parent(parent) { setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred); } @@ -317,7 +360,9 @@ public: void mousePressEvent(QMouseEvent *ev) { if (ev->modifiers() & Qt::ShiftModifier) { - Utils::StyleHelper::setBaseColor(QColorDialog::getColor(Utils::StyleHelper::baseColor(), m_parent)); + QColor color = QColorDialog::getColor(Utils::StyleHelper::requestedBaseColor(), m_parent); + if (color.isValid()) + Utils::StyleHelper::setBaseColor(color); } } private: @@ -328,28 +373,18 @@ private: // FancyTabWidget ////// -FancyTabWidget::FancyTabWidget(QWidget *parent, bool isVertical) +FancyTabWidget::FancyTabWidget(QWidget *parent) : QWidget(parent) { - m_tabBar = new FancyTabBar(this, isVertical); + m_tabBar = new FancyTabBar(this); m_selectionWidget = new QWidget(this); - QBoxLayout *selectionLayout; - if (isVertical) { - selectionLayout = new QVBoxLayout; - } else { - selectionLayout = new QHBoxLayout; - } + QVBoxLayout *selectionLayout = new QVBoxLayout; selectionLayout->setSpacing(0); selectionLayout->setMargin(0); Utils::StyledBar *bar = new Utils::StyledBar; - QBoxLayout *layout; - if (isVertical) { - layout = new QHBoxLayout(bar); - } else { - layout = new QVBoxLayout(bar); - } + QHBoxLayout *layout = new QHBoxLayout(bar); layout->setMargin(0); layout->setSpacing(0); layout->addWidget(new FancyColorButton(this)); @@ -357,26 +392,13 @@ FancyTabWidget::FancyTabWidget(QWidget *parent, bool isVertical) selectionLayout->addWidget(m_tabBar, 1); m_selectionWidget->setLayout(selectionLayout); - if (isVertical) { - m_selectionWidget->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding); - } else { - m_selectionWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); - } + m_selectionWidget->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding); m_cornerWidgetContainer = new QWidget(this); - if (isVertical) { - m_cornerWidgetContainer->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred); - } else { - m_cornerWidgetContainer->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum); - } + m_cornerWidgetContainer->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred); m_cornerWidgetContainer->setAutoFillBackground(false); - QBoxLayout *cornerWidgetLayout; - if (isVertical) { - cornerWidgetLayout = new QVBoxLayout; - } else { - cornerWidgetLayout = new QHBoxLayout; - } + QVBoxLayout *cornerWidgetLayout = new QVBoxLayout; cornerWidgetLayout->setSpacing(0); cornerWidgetLayout->setMargin(0); cornerWidgetLayout->addStretch(); @@ -385,30 +407,35 @@ FancyTabWidget::FancyTabWidget(QWidget *parent, bool isVertical) selectionLayout->addWidget(m_cornerWidgetContainer, 0); m_modesStack = new QStackedLayout; - m_statusBar = new QStatusBar; + m_statusBar = new QStatusBar; m_statusBar->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Fixed); QVBoxLayout *vlayout = new QVBoxLayout; vlayout->setMargin(0); vlayout->setSpacing(0); vlayout->addLayout(m_modesStack); - if (!isVertical) { - vlayout->addWidget(m_selectionWidget); - } -// vlayout->addWidget(m_statusBar); //status bar is not used for now + vlayout->addWidget(m_statusBar); QHBoxLayout *mainLayout = new QHBoxLayout; mainLayout->setMargin(0); mainLayout->setSpacing(1); - if (isVertical) { - mainLayout->addWidget(m_selectionWidget); - } + mainLayout->addWidget(m_selectionWidget); mainLayout->addLayout(vlayout); setLayout(mainLayout); connect(m_tabBar, SIGNAL(currentChanged(int)), this, SLOT(showWidget(int))); } +void FancyTabWidget::setSelectionWidgetVisible(bool visible) +{ + m_selectionWidget->setVisible(visible); +} + +bool FancyTabWidget::isSelectionWidgetVisible() const +{ + return m_selectionWidget->isVisible(); +} + void FancyTabWidget::insertTab(int index, QWidget *tab, const QIcon &icon, const QString &label) { m_modesStack->insertWidget(index, tab); @@ -421,17 +448,9 @@ void FancyTabWidget::removeTab(int index) m_tabBar->removeTab(index); } -void FancyTabWidget::updateTabNameIcon(int index, const QIcon &icon, const QString &label) -{ - m_tabBar->updateTabNameIcon(index, icon, label); - m_tabBar->repaint(); -} - - void FancyTabWidget::setBackgroundBrush(const QBrush &brush) { QPalette pal = m_tabBar->palette(); - pal.setBrush(QPalette::Mid, brush); m_tabBar->setPalette(pal); pal = m_cornerWidgetContainer->palette(); @@ -442,19 +461,24 @@ void FancyTabWidget::setBackgroundBrush(const QBrush &brush) void FancyTabWidget::paintEvent(QPaintEvent *event) { Q_UNUSED(event) - QPainter p(this); + if (m_selectionWidget->isVisible()) { + QPainter painter(this); - QRect rect = m_selectionWidget->geometry().adjusted(0, 0, 1, 0); - rect = style()->visualRect(layoutDirection(), geometry(), rect); - Utils::StyleHelper::verticalGradient(&p, rect, rect); - p.setPen(Utils::StyleHelper::borderColor()); - p.drawLine(rect.topLeft(), rect.topRight()); + QRect rect = m_selectionWidget->rect().adjusted(0, 0, 1, 0); + rect = style()->visualRect(layoutDirection(), geometry(), rect); + Utils::StyleHelper::verticalGradient(&painter, rect, rect); + painter.setPen(Utils::StyleHelper::borderColor()); + painter.drawLine(rect.topRight(), rect.bottomRight()); + + QColor light = Utils::StyleHelper::sidebarHighlight(); + painter.setPen(light); + painter.drawLine(rect.bottomLeft(), rect.bottomRight()); + } } void FancyTabWidget::insertCornerWidget(int pos, QWidget *widget) { - QHBoxLayout *layout = static_cast(m_cornerWidgetContainer->layout()); - + QVBoxLayout *layout = static_cast(m_cornerWidgetContainer->layout()); layout->insertWidget(pos, widget); } @@ -480,13 +504,13 @@ QStatusBar *FancyTabWidget::statusBar() const void FancyTabWidget::setCurrentIndex(int index) { - m_tabBar->setCurrentIndex(index); + if (m_tabBar->isTabEnabled(index)) + m_tabBar->setCurrentIndex(index); } void FancyTabWidget::showWidget(int index) { emit currentAboutToShow(index); - m_modesStack->setCurrentIndex(index); emit currentChanged(index); } @@ -495,3 +519,13 @@ void FancyTabWidget::setTabToolTip(int index, const QString &toolTip) { m_tabBar->setTabToolTip(index, toolTip); } + +void FancyTabWidget::setTabEnabled(int index, bool enable) +{ + m_tabBar->setTabEnabled(index, enable); +} + +bool FancyTabWidget::isTabEnabled(int index) const +{ + return m_tabBar->isTabEnabled(index); +} diff --git a/ground/openpilotgcs/src/plugins/coreplugin/fancytabwidget.h b/ground/openpilotgcs/src/plugins/coreplugin/fancytabwidget.h index d7ef0860e..2eed06667 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/fancytabwidget.h +++ b/ground/openpilotgcs/src/plugins/coreplugin/fancytabwidget.h @@ -29,10 +29,11 @@ #ifndef FANCYTABWIDGET_H #define FANCYTABWIDGET_H -#include -#include -#include -#include +#include +#include + +#include +#include QT_BEGIN_NAMESPACE class QPainter; @@ -42,17 +43,40 @@ QT_END_NAMESPACE namespace Core { namespace Internal { -struct FancyTab { - QIcon icon; + +class FancyTab : public QObject +{ + Q_OBJECT + + Q_PROPERTY(float fader READ fader WRITE setFader) +public: + FancyTab(QWidget *tabbar) : enabled(false), tabbar(tabbar), m_fader(0) { + animator.setPropertyName("fader"); + animator.setTargetObject(this); + } + float fader() { return m_fader; } + void setFader(float value); + + void fadeIn(); + void fadeOut(); + + QIcon icon; QString text; QString toolTip; + bool enabled; + +private: + QPropertyAnimation animator; + QWidget *tabbar; + float m_fader; }; -class FancyTabBar : public QWidget { +class FancyTabBar : public QWidget +{ Q_OBJECT public: - FancyTabBar(QWidget *parent = 0, bool isVertical = false); + FancyTabBar(QWidget *parent = 0); ~FancyTabBar(); bool event(QEvent *event); @@ -63,85 +87,62 @@ public: void mouseMoveEvent(QMouseEvent *); void enterEvent(QEvent *); void leaveEvent(QEvent *); + bool validIndex(int index) const { return index >= 0 && index < m_tabs.count(); } QSize sizeHint() const; QSize minimumSizeHint() const; - void insertTab(int index, const QIcon &icon, const QString &label) - { - FancyTab tab; + void setTabEnabled(int index, bool enable); + bool isTabEnabled(int index) const; - tab.icon = icon; - tab.text = label; + void insertTab(int index, const QIcon &icon, const QString &label) { + FancyTab *tab = new FancyTab(this); + tab->icon = icon; + tab->text = label; m_tabs.insert(index, tab); + updateGeometry(); } - void removeTab(int index) - { - m_tabs.removeAt(index); - if (m_currentIndex >= m_tabs.length()) { - m_currentIndex = m_tabs.length() - 1; - } + void setEnabled(int index, bool enabled); + void removeTab(int index) { + FancyTab *tab = m_tabs.takeAt(index); + delete tab; + updateGeometry(); } - void updateTabNameIcon(int index, const QIcon &icon, const QString &label); void setCurrentIndex(int index); - int currentIndex() const - { - return m_currentIndex; - } + int currentIndex() const { return m_currentIndex; } - void setTabToolTip(int index, QString toolTip) - { - m_tabs[index].toolTip = toolTip; - } - QString tabToolTip(int index) const - { - return m_tabs.at(index).toolTip; - } + void setTabToolTip(int index, QString toolTip) { m_tabs[index]->toolTip = toolTip; } + QString tabToolTip(int index) const { return m_tabs.at(index)->toolTip; } - void setIconSize(int s) - { - iconSize = s; - } - QIcon tabIcon(int index) const - { - return m_tabs.at(index).icon; - } - QString tabText(int index) const - { - return m_tabs.at(index).text; - } - int count() const - { - return m_tabs.count(); - } + QIcon tabIcon(int index) const { return m_tabs.at(index)->icon; } + QString tabText(int index) const { return m_tabs.at(index)->text; } + int count() const {return m_tabs.count(); } QRect tabRect(int index) const; - signals: void currentChanged(int); public slots: - void updateHover(); + void emitCurrentIndex(); private: static const int m_rounding; static const int m_textPadding; - QTimeLine m_hoverControl; QRect m_hoverRect; int m_hoverIndex; int m_currentIndex; - int iconSize; - QList m_tabs; - bool verticalTabs; - + QList m_tabs; + QTimer m_triggerTimer; QSize tabSizeHint(bool minimum = false) const; + }; -class FancyTabWidget : public QWidget { +class FancyTabWidget : public QWidget +{ Q_OBJECT public: - FancyTabWidget(QWidget *parent = 0, bool isVertical = false); + FancyTabWidget(QWidget *parent = 0); void insertTab(int index, QWidget *tab, const QIcon &icon, const QString &label); void removeTab(int index); @@ -150,23 +151,24 @@ public: void insertCornerWidget(int pos, QWidget *widget); int cornerWidgetCount() const; void setTabToolTip(int index, const QString &toolTip); - void updateTabNameIcon(int index, const QIcon &icon, const QString &label); - void setIconSize(int s) - { - m_tabBar->setIconSize(s); - } void paintEvent(QPaintEvent *event); int currentIndex() const; QStatusBar *statusBar() const; + void setTabEnabled(int index, bool enable); + bool isTabEnabled(int index) const; + + bool isSelectionWidgetVisible() const; + signals: void currentAboutToShow(int index); void currentChanged(int index); public slots: void setCurrentIndex(int index); + void setSelectionWidgetVisible(bool visible); private slots: void showWidget(int index); @@ -178,6 +180,7 @@ private: QWidget *m_selectionWidget; QStatusBar *m_statusBar; }; + } // namespace Internal } // namespace Core diff --git a/ground/openpilotgcs/src/plugins/coreplugin/generalsettings.cpp b/ground/openpilotgcs/src/plugins/coreplugin/generalsettings.cpp index a383264e4..054fefd70 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/generalsettings.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/generalsettings.cpp @@ -32,7 +32,7 @@ #include #include #include -#include +#include #include #include diff --git a/ground/openpilotgcs/src/plugins/coreplugin/generalsettings.h b/ground/openpilotgcs/src/plugins/coreplugin/generalsettings.h index f9b909333..b03e71704 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/generalsettings.h +++ b/ground/openpilotgcs/src/plugins/coreplugin/generalsettings.h @@ -31,7 +31,7 @@ #include #include -#include +#include #include namespace Core { diff --git a/ground/openpilotgcs/src/plugins/coreplugin/iuavgadget.h b/ground/openpilotgcs/src/plugins/coreplugin/iuavgadget.h index 98bc2e7ab..eeeb1e8a5 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/iuavgadget.h +++ b/ground/openpilotgcs/src/plugins/coreplugin/iuavgadget.h @@ -31,7 +31,7 @@ #include #include -#include +#include #include QT_BEGIN_NAMESPACE diff --git a/ground/openpilotgcs/src/plugins/coreplugin/iuavgadgetfactory.h b/ground/openpilotgcs/src/plugins/coreplugin/iuavgadgetfactory.h index 61f7d803e..b09d57a58 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/iuavgadgetfactory.h +++ b/ground/openpilotgcs/src/plugins/coreplugin/iuavgadgetfactory.h @@ -31,7 +31,7 @@ #include "core_global.h" #include -#include +#include #include #include "uavconfiginfo.h" diff --git a/ground/openpilotgcs/src/plugins/coreplugin/mainwindow.cpp b/ground/openpilotgcs/src/plugins/coreplugin/mainwindow.cpp index 849fa1828..ecb57a0b2 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/mainwindow.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/mainwindow.cpp @@ -40,8 +40,6 @@ #include "mimedatabase.h" #include "outputpane.h" #include "plugindialog.h" -#include "qxtlogger.h" -#include "qxtbasicstdloggerengine.h" #include "shortcutsettings.h" #include "uavgadgetmanager.h" #include "uavgadgetinstancemanager.h" @@ -74,18 +72,19 @@ #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include +#include using namespace Core; using namespace Core::Internal; @@ -190,11 +189,6 @@ MainWindow::MainWindow() : connect(m_modeManager, SIGNAL(newModeOrder(QVector)), m_workspaceSettings, SLOT(newModeOrder(QVector))); statusBar()->setProperty("p_styled", true); setAcceptDrops(true); - foreach(QString engine, qxtLog->allLoggerEngines()) - qxtLog->removeLoggerEngine(engine); - qxtLog->addLoggerEngine("std", new QxtBasicSTDLoggerEngine()); - qxtLog->installAsMessageHandler(); - qxtLog->enableAllLogLevels(); } MainWindow::~MainWindow() @@ -206,9 +200,6 @@ MainWindow::~MainWindow() hide(); - qxtLog->removeAsMessageHandler(); - foreach(QString engine, qxtLog->allLoggerEngines()) - qxtLog->removeLoggerEngine(engine); ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); if (m_uavGadgetManagers.count() > 0) { foreach(UAVGadgetManager * mode, m_uavGadgetManagers) { diff --git a/ground/openpilotgcs/src/plugins/coreplugin/manhattanstyle.cpp b/ground/openpilotgcs/src/plugins/coreplugin/manhattanstyle.cpp index a1c6a1c73..740eb570e 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/manhattanstyle.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/manhattanstyle.cpp @@ -30,47 +30,39 @@ #include "styleanimator.h" -#include +#include -#include +#include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include // We define a currently unused state for indicating animations -#define State_Animating 0x00000040 +const QStyle::State State_Animating = QStyle::State(0x00000040); // Because designer needs to disable this for widget previews // we have a custom property that is inherited bool styleEnabled(const QWidget *widget) { const QWidget *p = widget; - while (p) { - if (p->property("_q_custom_style_disabled").toBool()) { + if (p->property("_q_custom_style_disabled").toBool()) return false; - } - p = p->parentWidget(); + p = p->parentWidget(); } return true; } @@ -78,53 +70,77 @@ bool styleEnabled(const QWidget *widget) // Consider making this a QStyle state bool panelWidget(const QWidget *widget) { - const QWidget *p = widget; + if (!widget) + return false; + // Do not style dialogs or explicitly ignored widgets + if ((widget->window()->windowFlags() & Qt::WindowType_Mask) == Qt::Dialog) + return false; + + if (qobject_cast(widget)) + return true; + + if (qobject_cast(widget)) + return styleEnabled(widget); + + const QWidget *p = widget; while (p) { - if (qobject_cast(p) && styleEnabled(p)) { - return true; - } else if (qobject_cast(p) && styleEnabled(p)) { - return true; - } else if (qobject_cast(p) && styleEnabled(p)) { - return true; - } else if (p->property("panelwidget").toBool()) { - return true; - } + if (qobject_cast(p) || + qobject_cast(p) || + qobject_cast(p) || + p->property("panelwidget").toBool()) + return styleEnabled(widget); p = p->parentWidget(); } return false; } -class ManhattanStylePrivate { +// Consider making this a QStyle state +bool lightColored(const QWidget *widget) +{ + if (!widget) + return false; + + // Don't style dialogs or explicitly ignored widgets + if ((widget->window()->windowFlags() & Qt::WindowType_Mask) == Qt::Dialog) + return false; + + const QWidget *p = widget; + while (p) { + if (p->property("lightColored").toBool()) + return true; + p = p->parentWidget(); + } + return false; +} + +class ManhattanStylePrivate +{ public: - ManhattanStylePrivate(const QString &baseStyleName) - { - style = QStyleFactory::create(baseStyleName); - QTC_ASSERT(style, /**/); - - lineeditImage = QImage(":/core/images/inputfield.png"); - lineeditImage_disabled = QImage(":/core/images/inputfield_disabled.png"); - } - - ~ManhattanStylePrivate() - { - delete style; - style = 0; - } - + explicit ManhattanStylePrivate(); void init(); public: - QStyle *style; - QImage lineeditImage; - QImage lineeditImage_disabled; - + const QImage lineeditImage; + const QImage lineeditImage_disabled; + const QPixmap extButtonPixmap; + const QPixmap closeButtonPixmap; StyleAnimator animator; }; +ManhattanStylePrivate::ManhattanStylePrivate() : + lineeditImage(QLatin1String(":/core/images/inputfield.png")), + lineeditImage_disabled(QLatin1String(":/core/images/inputfield_disabled.png")), + extButtonPixmap(QLatin1String(":/core/images/extension.png")), + closeButtonPixmap(QLatin1String(Core::Constants::ICON_CLOSE)) +{ +} + ManhattanStyle::ManhattanStyle(const QString &baseStyleName) - : QWindowsStyle(), d(new ManhattanStylePrivate(baseStyleName)) -{} + : QProxyStyle(QStyleFactory::create(baseStyleName)), + d(new ManhattanStylePrivate()) +{ +} ManhattanStyle::~ManhattanStyle() { @@ -132,175 +148,74 @@ ManhattanStyle::~ManhattanStyle() d = 0; } -QStyle *ManhattanStyle::systemStyle() const -{ - return d->style; -} - -// Draws a CSS-like border image where the defined borders are not stretched -void drawCornerImage(const QImage &img, QPainter *painter, QRect rect, - int left = 0, int top = 0, int right = 0, - int bottom = 0) -{ - QSize size = img.size(); - - if (top > 0) { // top - painter->drawImage(QRect(rect.left() + left, rect.top(), rect.width() - right - left, top), img, - QRect(left, 0, size.width() - right - left, top)); - if (left > 0) { // top-left - painter->drawImage(QRect(rect.left(), rect.top(), left, top), img, - QRect(0, 0, left, top)); - } - if (right > 0) { // top-right - painter->drawImage(QRect(rect.left() + rect.width() - right, rect.top(), right, top), img, - QRect(size.width() - right, 0, right, top)); - } - } - // left - if (left > 0) { - painter->drawImage(QRect(rect.left(), rect.top() + top, left, rect.height() - top - bottom), img, - QRect(0, top, left, size.height() - bottom - top)); - } - // center - painter->drawImage(QRect(rect.left() + left, rect.top() + top, rect.width() - right - left, - rect.height() - bottom - top), img, - QRect(left, top, size.width() - right - left, - size.height() - bottom - top)); - if (right > 0) { // right - painter->drawImage(QRect(rect.left() + rect.width() - right, rect.top() + top, right, rect.height() - top - bottom), img, - QRect(size.width() - right, top, right, size.height() - bottom - top)); - } - if (bottom > 0) { // bottom - painter->drawImage(QRect(rect.left() + left, rect.top() + rect.height() - bottom, - rect.width() - right - left, bottom), img, - QRect(left, size.height() - bottom, - size.width() - right - left, bottom)); - if (left > 0) { // bottom-left - painter->drawImage(QRect(rect.left(), rect.top() + rect.height() - bottom, left, bottom), img, - QRect(0, size.height() - bottom, left, bottom)); - } - if (right > 0) { // bottom-right - painter->drawImage(QRect(rect.left() + rect.width() - right, rect.top() + rect.height() - bottom, right, bottom), img, - QRect(size.width() - right, size.height() - bottom, right, bottom)); - } - } -} - QPixmap ManhattanStyle::generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *opt) const { - QPixmap result; - - result = d->style->generatedIconPixmap(iconMode, pixmap, opt); - return result; -} - -int ManhattanStyle::layoutSpacingImplementation(QSizePolicy::ControlType control1, - QSizePolicy::ControlType control2, - Qt::Orientation orientation, - const QStyleOption *option, - const QWidget *widget) const -{ - return d->style->layoutSpacing(control1, control2, orientation, option, widget); + return QProxyStyle::generatedIconPixmap(iconMode, pixmap, opt); } QSize ManhattanStyle::sizeFromContents(ContentsType type, const QStyleOption *option, const QSize &size, const QWidget *widget) const { - QSize newSize = d->style->sizeFromContents(type, option, size, widget); + QSize newSize = QProxyStyle::sizeFromContents(type, option, size, widget); - if (type == CT_Splitter && widget && widget->property("minisplitter").toBool()) { + if (type == CT_Splitter && widget && widget->property("minisplitter").toBool()) return QSize(1, 1); - } else if (type == CT_ComboBox && panelWidget(widget)) { + else if (type == CT_ComboBox && panelWidget(widget)) newSize += QSize(14, 0); - } return newSize; } QRect ManhattanStyle::subElementRect(SubElement element, const QStyleOption *option, const QWidget *widget) const { - QRect rect; - - rect = d->style->subElementRect(element, option, widget); - return rect; + return QProxyStyle::subElementRect(element, option, widget); } QRect ManhattanStyle::subControlRect(ComplexControl control, const QStyleOptionComplex *option, SubControl subControl, const QWidget *widget) const { - QRect rect; - -#ifndef Q_WS_MACX - // Not using OSX, size combo dropdown to fit contents - if (control == CC_ComboBox && subControl == SC_ComboBoxListBoxPopup) { - const QStyleOptionComboBox *cb = qstyleoption_cast(option); - const QComboBox *combo = qobject_cast(widget); - QRect comboRect = cb->rect; - int newWidth = combo->view()->sizeHintForColumn(0); - if (newWidth > comboRect.width()) { - // Set new rectangle, only width matters, list height is set by - // combination of number of combo box items and setMaxVisibleItems - rect.setRect(comboRect.x(), comboRect.y(), newWidth, comboRect.height()); - rect = visualRect(cb->direction, cb->rect, rect); - } else { - rect = d->style->subControlRect(control, option, subControl, widget); - } - } else { - rect = d->style->subControlRect(control, option, subControl, widget); - } -#else - // Using OSX, use default style behaviour as this already sizes the - // combo dropdown to fit - rect = d->style->subControlRect(control, option, subControl, widget); -#endif // ifndef Q_WS_MACX - return rect; + return QProxyStyle::subControlRect(control, option, subControl, widget); } QStyle::SubControl ManhattanStyle::hitTestComplexControl(ComplexControl control, const QStyleOptionComplex *option, const QPoint &pos, const QWidget *widget) const { - SubControl result = QStyle::SC_None; - - result = d->style->hitTestComplexControl(control, option, pos, widget); - return result; + return QProxyStyle::hitTestComplexControl(control, option, pos, widget); } int ManhattanStyle::pixelMetric(PixelMetric metric, const QStyleOption *option, const QWidget *widget) const { int retval = 0; - - retval = d->style->pixelMetric(metric, option, widget); + retval = QProxyStyle::pixelMetric(metric, option, widget); switch (metric) { case PM_SplitterWidth: - if (widget && widget->property("minisplitter").toBool()) { + if (widget && widget->property("minisplitter").toBool()) retval = 1; - } break; case PM_ToolBarIconSize: - if (panelWidget(widget)) { + if (panelWidget(widget)) retval = 16; - } break; + case PM_DockWidgetHandleExtent: + case PM_DockWidgetSeparatorExtent: + return 1; case PM_MenuPanelWidth: case PM_MenuBarHMargin: case PM_MenuBarVMargin: case PM_ToolBarFrameWidth: - if (panelWidget(widget)) { + if (panelWidget(widget)) retval = 1; - } break; case PM_ButtonShiftVertical: case PM_ButtonShiftHorizontal: case PM_MenuBarPanelWidth: case PM_ToolBarItemMargin: case PM_ToolBarItemSpacing: - if (panelWidget(widget)) { + if (panelWidget(widget)) retval = 0; - } break; case PM_DefaultFrameWidth: - if (qobject_cast(widget) && panelWidget(widget)) { + if (qobject_cast(widget) && panelWidget(widget)) return 1; - } break; default: break; @@ -310,27 +225,23 @@ int ManhattanStyle::pixelMetric(PixelMetric metric, const QStyleOption *option, QPalette ManhattanStyle::standardPalette() const { - QPalette result; - - result = d->style->standardPalette(); - return result; + return QProxyStyle::standardPalette(); } void ManhattanStyle::polish(QApplication *app) { - d->style->polish(app); + return QProxyStyle::polish(app); } void ManhattanStyle::unpolish(QApplication *app) { - d->style->unpolish(app); + return QProxyStyle::unpolish(app); } -QPalette panelPalette(const QPalette &oldPalette) +QPalette panelPalette(const QPalette &oldPalette, bool lightColored = false) { - QColor color = Utils::StyleHelper::panelTextColor(); + QColor color = Utils::StyleHelper::panelTextColor(lightColored); QPalette pal = oldPalette; - pal.setBrush(QPalette::All, QPalette::WindowText, color); pal.setBrush(QPalette::All, QPalette::ButtonText, color); pal.setBrush(QPalette::All, QPalette::Foreground, color); @@ -343,29 +254,37 @@ QPalette panelPalette(const QPalette &oldPalette) void ManhattanStyle::polish(QWidget *widget) { - d->style->polish(widget); + QProxyStyle::polish(widget); - // OxygenStyle forces a rounded widget mask on toolbars - if (d->style->inherits("OxygenStyle")) { - if (qobject_cast(widget)) { - widget->removeEventFilter(d->style); + // OxygenStyle forces a rounded widget mask on toolbars and dock widgets + if (baseStyle()->inherits("OxygenStyle") || baseStyle()->inherits("Oxygen::Style")) { + if (qobject_cast(widget) || qobject_cast(widget)) { + widget->removeEventFilter(baseStyle()); + widget->setContentsMargins(0, 0, 0, 0); } } if (panelWidget(widget)) { + + // Oxygen and possibly other styles override this + if (qobject_cast(widget)) + widget->setContentsMargins(0, 0, 0, 0); + widget->setAttribute(Qt::WA_LayoutUsesWidgetRect, true); - if (qobject_cast(widget)) { + if (qobject_cast(widget)) { widget->setAttribute(Qt::WA_Hover); widget->setMaximumHeight(Utils::StyleHelper::navigationWidgetHeight() - 2); - } else if (qobject_cast(widget)) { + } + else if (qobject_cast(widget)) { widget->setAttribute(Qt::WA_Hover); widget->setMaximumHeight(Utils::StyleHelper::navigationWidgetHeight() - 2); - } else if (qobject_cast(widget)) { + } + else if (qobject_cast(widget)) widget->setPalette(panelPalette(widget->palette())); - } else if (qobject_cast(widget) || widget->property("panelwidget_singlerow").toBool()) { + else if (widget->property("panelwidget_singlerow").toBool()) widget->setFixedHeight(Utils::StyleHelper::navigationWidgetHeight()); - } else if (qobject_cast(widget)) { + else if (qobject_cast(widget)) widget->setFixedHeight(Utils::StyleHelper::navigationWidgetHeight() + 2); - } else if (qobject_cast(widget)) { + else if (qobject_cast(widget)) { widget->setMaximumHeight(Utils::StyleHelper::navigationWidgetHeight() - 2); widget->setAttribute(Qt::WA_Hover); } @@ -374,36 +293,32 @@ void ManhattanStyle::polish(QWidget *widget) void ManhattanStyle::unpolish(QWidget *widget) { - d->style->unpolish(widget); + QProxyStyle::unpolish(widget); if (panelWidget(widget)) { widget->setAttribute(Qt::WA_LayoutUsesWidgetRect, false); - if (qobject_cast(widget)) { + if (qobject_cast(widget)) widget->setAttribute(Qt::WA_Hover, false); - } else if (qobject_cast(widget)) { + else if (qobject_cast(widget)) widget->setAttribute(Qt::WA_Hover, false); - } else if (qobject_cast(widget)) { + else if (qobject_cast(widget)) widget->setAttribute(Qt::WA_Hover, false); - } } } void ManhattanStyle::polish(QPalette &pal) { - d->style->polish(pal); + QProxyStyle::polish(pal); } -QIcon ManhattanStyle::standardIconImplementation(StandardPixmap standardIcon, const QStyleOption *option, - const QWidget *widget) const +QIcon ManhattanStyle::standardIconImplementation(StandardPixmap standardIcon, const QStyleOption *option, const QWidget *widget) const { QIcon icon; - switch (standardIcon) { case QStyle::SP_TitleBarCloseButton: case QStyle::SP_ToolBarHorizontalExtensionButton: return QIcon(standardPixmap(standardIcon, option, widget)); - default: - icon = d->style->standardIcon(standardIcon, option, widget); + icon = baseStyle()->standardIcon(standardIcon, option, widget); } return icon; } @@ -411,47 +326,40 @@ QIcon ManhattanStyle::standardIconImplementation(StandardPixmap standardIcon, co QPixmap ManhattanStyle::standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt, const QWidget *widget) const { - if (widget && !panelWidget(widget)) { - return d->style->standardPixmap(standardPixmap, opt, widget); - } + if (widget && !panelWidget(widget)) + return QProxyStyle::standardPixmap(standardPixmap, opt, widget); QPixmap pixmap; switch (standardPixmap) { case QStyle::SP_ToolBarHorizontalExtensionButton: - { - static const QPixmap extButton(":/core/images/extension.png"); - pixmap = extButton; - } - break; + pixmap = d->extButtonPixmap; + break; case QStyle::SP_TitleBarCloseButton: - { - static const QPixmap closeButton(":/core/images/closebutton.png"); - pixmap = closeButton; - } - break; + pixmap = d->closeButtonPixmap; + break; default: - pixmap = d->style->standardPixmap(standardPixmap, opt, widget); + pixmap = QProxyStyle::standardPixmap(standardPixmap, opt, widget); + break; } return pixmap; } - int ManhattanStyle::styleHint(StyleHint hint, const QStyleOption *option, const QWidget *widget, QStyleHintReturn *returnData) const { - int ret = d->style->styleHint(hint, option, widget, returnData); - + int ret = QProxyStyle::styleHint(hint, option, widget, returnData); switch (hint) { // Make project explorer alternate rows all the way case QStyle::SH_ItemView_PaintAlternatingRowColorsForEmptyArea: - if (widget && widget->property("AlternateEmpty").toBool()) { + if (widget && widget->property("AlternateEmpty").toBool()) ret = true; - } break; case QStyle::SH_EtchDisabledText: - if (panelWidget(widget)) { + if (panelWidget(widget)) ret = false; - } + break; + case QStyle::SH_ItemView_ArrowKeysNavigateIntoChildren: + ret = true; break; default: break; @@ -462,17 +370,16 @@ int ManhattanStyle::styleHint(StyleHint hint, const QStyleOption *option, const void ManhattanStyle::drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const { - if (!panelWidget(widget)) { - return d->style->drawPrimitive(element, option, painter, widget); - } + if (!panelWidget(widget)) + return QProxyStyle::drawPrimitive(element, option, painter, widget); bool animating = (option->state & State_Animating); int state = option->state; - QRect rect = option->rect; + QRect rect = option->rect; QRect oldRect; QRect newRect; if (widget && (element == PE_PanelButtonTool) && !animating) { - QWidget *w = const_cast (widget); + QWidget *w = const_cast (widget); int oldState = w->property("_q_stylestate").toInt(); oldRect = w->property("_q_stylerect").toRect(); newRect = w->rect(); @@ -480,9 +387,10 @@ void ManhattanStyle::drawPrimitive(PrimitiveElement element, const QStyleOption w->setProperty("_q_stylerect", w->rect()); // Determine the animated transition - bool doTransition = ((state & State_On) != (oldState & State_On) || - (state & State_MouseOver) != (oldState & State_MouseOver)); - if (oldRect != newRect) { + bool doTransition = ((state & State_On) != (oldState & State_On) || + (state & State_MouseOver) != (oldState & State_MouseOver)); + if (oldRect != newRect) + { doTransition = false; d->animator.stopAnimation(widget); } @@ -490,10 +398,10 @@ void ManhattanStyle::drawPrimitive(PrimitiveElement element, const QStyleOption if (doTransition) { QImage startImage(option->rect.size(), QImage::Format_ARGB32_Premultiplied); QImage endImage(option->rect.size(), QImage::Format_ARGB32_Premultiplied); - Animation *anim = d->animator.widgetAnimation(widget); + Animation *anim = d->animator.widgetAnimation(widget); QStyleOption opt = *option; - opt.state = (QStyle::State)oldState; - opt.state |= (State)State_Animating; + opt.state = (QStyle::State)oldState; + opt.state |= State_Animating; startImage.fill(0); Transition *t = new Transition; t->setWidget(w); @@ -505,253 +413,186 @@ void ManhattanStyle::drawPrimitive(PrimitiveElement element, const QStyleOption d->animator.stopAnimation(widget); } QStyleOption endOpt = *option; - endOpt.state |= (State)State_Animating; + endOpt.state |= State_Animating; t->setStartImage(startImage); d->animator.startAnimation(t); endImage.fill(0); QPainter endPainter(&endImage); drawPrimitive(element, &endOpt, &endPainter, widget); t->setEndImage(endImage); - if (oldState & State_MouseOver) { + if (oldState & State_MouseOver) t->setDuration(150); - } else { + else t->setDuration(75); - } t->setStartTime(QTime::currentTime()); } } switch (element) { + case PE_IndicatorDockWidgetResizeHandle: + painter->fillRect(option->rect, Utils::StyleHelper::borderColor()); + break; + case PE_FrameDockWidget: + QCommonStyle::drawPrimitive(element, option, painter, widget); + break; case PE_PanelLineEdit: - { - painter->save(); + { + painter->save(); - // Fill the line edit background - QRect filledRect = option->rect.adjusted(1, 1, -1, -1); - painter->setBrushOrigin(filledRect.topLeft()); - painter->fillRect(filledRect, option->palette.base()); + // Fill the line edit background + QRect filledRect = option->rect.adjusted(1, 1, -1, -1); + painter->setBrushOrigin(filledRect.topLeft()); + painter->fillRect(filledRect, option->palette.base()); - if (option->state & State_Enabled) { - drawCornerImage(d->lineeditImage, painter, option->rect, 2, 2, 2, 2); - } else { - drawCornerImage(d->lineeditImage_disabled, painter, option->rect, 2, 2, 2, 2); - } + if (option->state & State_Enabled) + Utils::StyleHelper::drawCornerImage(d->lineeditImage, painter, option->rect, 5, 5, 5, 5); + else + Utils::StyleHelper::drawCornerImage(d->lineeditImage_disabled, painter, option->rect, 5, 5, 5, 5); - if (option->state & State_HasFocus || option->state & State_MouseOver) { - QColor hover = Utils::StyleHelper::baseColor(); - if (state & State_HasFocus) { - hover.setAlpha(100); - } else { - hover.setAlpha(50); + if (option->state & State_HasFocus || option->state & State_MouseOver) { + QColor hover = Utils::StyleHelper::baseColor(); + if (state & State_HasFocus) + hover.setAlpha(100); + else + hover.setAlpha(50); + + painter->setPen(QPen(hover, 1)); + painter->drawRect(option->rect.adjusted(1, 1, -2 ,-2)); } - - painter->setPen(QPen(hover, 1)); - painter->drawRect(option->rect.adjusted(1, 1, -2, -2)); + painter->restore(); } - painter->restore(); - } - break; + break; case PE_FrameStatusBarItem: break; - case PE_PanelButtonTool: - { - Animation *anim = d->animator.widgetAnimation(widget); - if (!animating && anim) { - anim->paint(painter, option); - } else { - bool pressed = option->state & State_Sunken || option->state & State_On; - QColor shadow(0, 0, 0, 30); - painter->setPen(shadow); - if (pressed) { - QColor shade(0, 0, 0, 40); - painter->fillRect(rect, shade); - painter->drawLine(rect.topLeft() + QPoint(1, 0), rect.topRight() - QPoint(1, 0)); - painter->drawLine(rect.topLeft(), rect.bottomLeft()); - painter->drawLine(rect.topRight(), rect.bottomRight()); - // painter->drawLine(rect.bottomLeft() + QPoint(1, 0), rect.bottomRight() - QPoint(1, 0)); - QColor highlight(255, 255, 255, 30); - painter->setPen(highlight); - } else if (option->state & State_Enabled && - option->state & State_MouseOver) { - QColor lighter(255, 255, 255, 37); - painter->fillRect(rect, lighter); - } + case PE_PanelButtonTool: { + Animation *anim = d->animator.widgetAnimation(widget); + if (!animating && anim) { + anim->paint(painter, option); + } else { + bool pressed = option->state & State_Sunken || option->state & State_On; + QColor shadow(0, 0, 0, 30); + painter->setPen(shadow); + if (pressed) { + QColor shade(0, 0, 0, 40); + painter->fillRect(rect, shade); + painter->drawLine(rect.topLeft() + QPoint(1, 0), rect.topRight() - QPoint(1, 0)); + painter->drawLine(rect.topLeft(), rect.bottomLeft()); + painter->drawLine(rect.topRight(), rect.bottomRight()); + // painter->drawLine(rect.bottomLeft() + QPoint(1, 0), rect.bottomRight() - QPoint(1, 0)); + QColor highlight(255, 255, 255, 30); + painter->setPen(highlight); + } + else if (option->state & State_Enabled && + option->state & State_MouseOver) { + QColor lighter(255, 255, 255, 37); + painter->fillRect(rect, lighter); + } + if (option->state & State_HasFocus && (option->state & State_KeyboardFocusChange)) { + QColor highlight = option->palette.highlight().color(); + highlight.setAlphaF(0.4); + painter->setPen(QPen(highlight.lighter(), 1)); + highlight.setAlphaF(0.3); + painter->setBrush(highlight); + painter->setRenderHint(QPainter::Antialiasing); + QRectF rect = option->rect; + rect.translate(0.5, 0.5); + painter->drawRoundedRect(rect.adjusted(2, 2, -3, -3), 2, 2); + } + } } - } - break; + break; case PE_PanelStatusBar: - { - painter->save(); - QLinearGradient grad(option->rect.topLeft(), QPoint(rect.center().x(), rect.bottom())); - QColor startColor = Utils::StyleHelper::shadowColor().darker(164); - QColor endColor = Utils::StyleHelper::baseColor().darker(130); - grad.setColorAt(0, startColor); - grad.setColorAt(1, endColor); - painter->fillRect(option->rect, grad); - painter->setPen(QColor(255, 255, 255, 60)); - painter->drawLine(rect.topLeft() + QPoint(0, 1), - rect.topRight() + QPoint(0, 1)); - painter->setPen(Utils::StyleHelper::borderColor().darker(110)); - painter->drawLine(rect.topLeft(), rect.topRight()); - painter->restore(); - } - break; + { + painter->save(); + QLinearGradient grad = Utils::StyleHelper::statusBarGradient(rect); + painter->fillRect(rect, grad); + painter->setPen(QColor(255, 255, 255, 60)); + painter->drawLine(rect.topLeft() + QPoint(0,1), + rect.topRight()+ QPoint(0,1)); + painter->setPen(Utils::StyleHelper::borderColor().darker(110)); + painter->drawLine(rect.topLeft(), rect.topRight()); + painter->restore(); + } + break; case PE_IndicatorToolBarSeparator: - { - QColor separatorColor = Utils::StyleHelper::borderColor(); - separatorColor.setAlpha(100); - painter->setPen(separatorColor); - const int margin = 6; - if (option->state & State_Horizontal) { - const int offset = rect.width() / 2; - painter->drawLine(rect.bottomLeft().x() + offset, - rect.bottomLeft().y() - margin, - rect.topLeft().x() + offset, - rect.topLeft().y() + margin); - } else { // Draw vertical separator - const int offset = rect.height() / 2; - painter->setPen(QPen(option->palette.background().color().darker(110))); - painter->drawLine(rect.topLeft().x() + margin, - rect.topLeft().y() + offset, - rect.topRight().x() - margin, - rect.topRight().y() + offset); + { + QColor separatorColor = Utils::StyleHelper::borderColor(); + separatorColor.setAlpha(100); + painter->setPen(separatorColor); + const int margin = 6; + if (option->state & State_Horizontal) { + const int offset = rect.width()/2; + painter->drawLine(rect.bottomLeft().x() + offset, + rect.bottomLeft().y() - margin, + rect.topLeft().x() + offset, + rect.topLeft().y() + margin); + } else { //Draw vertical separator + const int offset = rect.height()/2; + painter->setPen(QPen(option->palette.background().color().darker(110))); + painter->drawLine(rect.topLeft().x() + margin , + rect.topLeft().y() + offset, + rect.topRight().x() - margin, + rect.topRight().y() + offset); + } } - } - break; + break; case PE_IndicatorToolBarHandle: - { - bool horizontal = option->state & State_Horizontal; - painter->save(); - QPainterPath path; - int x = option->rect.x() + horizontal ? 2 : 6; - int y = option->rect.y() + horizontal ? 6 : 2; - static const int RectHeight = 2; - if (horizontal) { - while (y < option->rect.height() - RectHeight - 6) { - path.moveTo(x, y); - path.addRect(x, y, RectHeight, RectHeight); - y += 6; - } - } else { - while (x < option->rect.width() - RectHeight - 6) { - path.moveTo(x, y); - path.addRect(x, y, RectHeight, RectHeight); - x += 6; + { + bool horizontal = option->state & State_Horizontal; + painter->save(); + QPainterPath path; + int x = option->rect.x() + (horizontal ? 2 : 6); + int y = option->rect.y() + (horizontal ? 6 : 2); + static const int RectHeight = 2; + if (horizontal) { + while (y < option->rect.height() - RectHeight - 6) { + path.moveTo(x, y); + path.addRect(x, y, RectHeight, RectHeight); + y += 6; + } + } else { + while (x < option->rect.width() - RectHeight - 6) { + path.moveTo(x, y); + path.addRect(x, y, RectHeight, RectHeight); + x += 6; + } } + + painter->setPen(Qt::NoPen); + QColor dark = Utils::StyleHelper::borderColor(); + dark.setAlphaF(0.4); + + QColor light = Utils::StyleHelper::baseColor(); + light.setAlphaF(0.4); + + painter->fillPath(path, light); + painter->save(); + painter->translate(1, 1); + painter->fillPath(path, dark); + painter->restore(); + painter->translate(3, 3); + painter->fillPath(path, light); + painter->translate(1, 1); + painter->fillPath(path, dark); + painter->restore(); } - - painter->setPen(Qt::NoPen); - QColor dark = Utils::StyleHelper::borderColor(); - dark.setAlphaF(0.4); - - QColor light = Utils::StyleHelper::baseColor(); - light.setAlphaF(0.4); - - painter->fillPath(path, light); - painter->save(); - painter->translate(1, 1); - painter->fillPath(path, dark); - painter->restore(); - painter->translate(3, 3); - painter->fillPath(path, light); - painter->translate(1, 1); - painter->fillPath(path, dark); - painter->restore(); - } - break; + break; case PE_IndicatorArrowUp: case PE_IndicatorArrowDown: case PE_IndicatorArrowRight: case PE_IndicatorArrowLeft: - { - // From windowsstyle but modified to enable AA - if (option->rect.width() <= 1 || option->rect.height() <= 1) { - break; + { + Utils::StyleHelper::drawArrow(element, painter, option); } - - QRect r = option->rect; - int size = qMin(r.height(), r.width()); - QPixmap pixmap; - QString pixmapName; - QTextStream(&pixmapName) << "$qt_ia" << "-" << metaObject()->className() << - "-" << uint(option->state) << "-" << element << "-" << size << - "-" << option->palette.cacheKey(); -// pixmapName.sprintf("%s-%s-%d-%d-%d-%lld", -// "$qt_ia", metaObject()->className(), -// uint(option->state), element, -// size, option->palette.cacheKey()); - if (!QPixmapCache::find(pixmapName, pixmap)) { - int border = size / 5; - int sqsize = 2 * (size / 2); - QImage image(sqsize, sqsize, QImage::Format_ARGB32); - image.fill(Qt::transparent); - QPainter imagePainter(&image); - imagePainter.setRenderHint(QPainter::Antialiasing, true); - imagePainter.translate(0.5, 0.5); - QPolygon a; - switch (element) { - case PE_IndicatorArrowUp: - a.setPoints(3, border, sqsize / 2, sqsize / 2, border, sqsize - border, sqsize / 2); - break; - case PE_IndicatorArrowDown: - a.setPoints(3, border, sqsize / 2, sqsize / 2, sqsize - border, sqsize - border, sqsize / 2); - break; - case PE_IndicatorArrowRight: - a.setPoints(3, sqsize - border, sqsize / 2, sqsize / 2, border, sqsize / 2, sqsize - border); - break; - case PE_IndicatorArrowLeft: - a.setPoints(3, border, sqsize / 2, sqsize / 2, border, sqsize / 2, sqsize - border); - break; - default: - break; - } - - int bsx = 0; - int bsy = 0; - - if (option->state & State_Sunken) { - bsx = pixelMetric(PM_ButtonShiftHorizontal); - bsy = pixelMetric(PM_ButtonShiftVertical); - } - - QRect bounds = a.boundingRect(); - int sx = sqsize / 2 - bounds.center().x() - 1; - int sy = sqsize / 2 - bounds.center().y() - 1; - imagePainter.translate(sx + bsx, sy + bsy); - - if (!(option->state & State_Enabled)) { - QColor foreGround(150, 150, 150, 150); - imagePainter.setBrush(option->palette.mid().color()); - imagePainter.setPen(option->palette.mid().color()); - } else { - QColor shadow(0, 0, 0, 100); - imagePainter.translate(0, 1); - imagePainter.setPen(shadow); - imagePainter.setBrush(shadow); - QColor foreGround(255, 255, 255, 210); - imagePainter.drawPolygon(a); - imagePainter.translate(0, -1); - imagePainter.setPen(foreGround); - imagePainter.setBrush(foreGround); - } - imagePainter.drawPolygon(a); - imagePainter.end(); - pixmap = QPixmap::fromImage(image); - QPixmapCache::insert(pixmapName, pixmap); - } - int xOffset = r.x() + (r.width() - size) / 2; - int yOffset = r.y() + (r.height() - size) / 2; - painter->drawPixmap(xOffset, yOffset, pixmap); - } - break; + break; default: - d->style->drawPrimitive(element, option, painter, widget); + QProxyStyle::drawPrimitive(element, option, painter, widget); break; } } @@ -759,20 +600,43 @@ void ManhattanStyle::drawPrimitive(PrimitiveElement element, const QStyleOption void ManhattanStyle::drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const { - if (!panelWidget(widget)) { - return d->style->drawControl(element, option, painter, widget); - } + if (!panelWidget(widget)) + return QProxyStyle::drawControl(element, option, painter, widget); switch (element) { + case CE_Splitter: + painter->fillRect(option->rect, Utils::StyleHelper::borderColor()); + break; + + case CE_TabBarTabShape: + // Most styles draw a single dark outline. This looks rather ugly when combined with our + // single pixel dark separator so we adjust the first tab to compensate for this + + if (const QStyleOptionTabV3 *tab = qstyleoption_cast(option)) { + QStyleOptionTabV3 adjustedTab = *tab; + if (tab->cornerWidgets == QStyleOptionTab::NoCornerWidgets && ( + tab->position == QStyleOptionTab::Beginning || + tab->position == QStyleOptionTab::OnlyOneTab)) + { + if (option->direction == Qt::LeftToRight) + adjustedTab.rect = adjustedTab.rect.adjusted(-1, 0, 0, 0); + else + adjustedTab.rect = adjustedTab.rect.adjusted(0, 0, 1 ,0); + } + QProxyStyle::drawControl(element, &adjustedTab, painter, widget); + return; + } + break; + case CE_MenuBarItem: painter->save(); - if (const QStyleOptionMenuItem * mbi = qstyleoption_cast(option)) { + if (const QStyleOptionMenuItem *mbi = qstyleoption_cast(option)) { QColor highlightOutline = Utils::StyleHelper::borderColor().lighter(120); - bool act = mbi->state & State_Selected && mbi->state & State_Sunken; + bool act = mbi->state & State_Sunken; bool dis = !(mbi->state & State_Enabled); Utils::StyleHelper::menuGradient(painter, option->rect, option->rect); QStyleOptionMenuItem item = *mbi; - item.rect = mbi->rect; + item.rect = mbi->rect; QPalette pal = mbi->palette; pal.setBrush(QPalette::ButtonText, dis ? Qt::gray : Qt::black); item.palette = pal; @@ -797,11 +661,10 @@ void ManhattanStyle::drawControl(ControlElement element, const QStyleOption *opt painter->drawPoint(r.topLeft()); painter->drawPoint(r.topRight()); - QPalette pal = mbi->palette; + QPalette pal = mbi->palette; uint alignment = Qt::AlignCenter | Qt::TextShowMnemonic | Qt::TextDontClip | Qt::TextSingleLine; - if (!styleHint(SH_UnderlineShortcut, mbi, widget)) { + if (!styleHint(SH_UnderlineShortcut, mbi, widget)) alignment |= Qt::TextHideMnemonic; - } pal.setBrush(QPalette::Text, dis ? Qt::gray : QColor(0, 0, 0, 60)); drawItemText(painter, item.rect.translated(0, 1), alignment, pal, mbi->state & State_Enabled, mbi->text, QPalette::Text); pal.setBrush(QPalette::Text, dis ? Qt::gray : Qt::white); @@ -812,156 +675,156 @@ void ManhattanStyle::drawControl(ControlElement element, const QStyleOption *opt break; case CE_ComboBoxLabel: - if (const QStyleOptionComboBox * cb = qstyleoption_cast(option)) { + if (const QStyleOptionComboBox *cb = qstyleoption_cast(option)) { if (panelWidget(widget)) { - QRect editRect = subControlRect(CC_ComboBox, cb, SC_ComboBoxEditField, widget); + painter->save(); + QRect editRect = subControlRect(CC_ComboBox, cb, SC_ComboBoxEditField, widget); QPalette customPal = cb->palette; + bool drawIcon = !(widget && widget->property("hideicon").toBool()); - if (!cb->currentIcon.isNull()) { + if (!cb->currentIcon.isNull() && drawIcon) { QIcon::Mode mode = cb->state & State_Enabled ? QIcon::Normal - : QIcon::Disabled; - QPixmap pixmap = cb->currentIcon.pixmap(cb->iconSize, mode); + : QIcon::Disabled; + QPixmap pixmap = cb->currentIcon.pixmap(cb->iconSize, mode); QRect iconRect(editRect); iconRect.setWidth(cb->iconSize.width() + 4); iconRect = alignedRect(cb->direction, Qt::AlignLeft | Qt::AlignVCenter, iconRect.size(), editRect); - if (cb->editable) { + if (cb->editable) painter->fillRect(iconRect, customPal.brush(QPalette::Base)); - } drawItemPixmap(painter, iconRect, Qt::AlignCenter, pixmap); - if (cb->direction == Qt::RightToLeft) { + if (cb->direction == Qt::RightToLeft) editRect.translate(-4 - cb->iconSize.width(), 0); - } else { + else editRect.translate(cb->iconSize.width() + 4, 0); - } // Reserve some space for the down-arrow editRect.adjust(0, 0, -13, 0); } - customPal.setBrush(QPalette::All, QPalette::ButtonText, QColor(0, 0, 0, 70)); + QLatin1Char asterisk('*'); + int elideWidth = editRect.width(); - QString text = option->fontMetrics.elidedText(cb->currentText, Qt::ElideRight, editRect.width()); - drawItemText(painter, editRect.translated(0, 1), - visualAlignment(option->direction, Qt::AlignLeft | Qt::AlignVCenter), - customPal, cb->state & State_Enabled, text, QPalette::ButtonText); - customPal.setBrush(QPalette::All, QPalette::ButtonText, Utils::StyleHelper::panelTextColor()); - drawItemText(painter, editRect, - visualAlignment(option->direction, Qt::AlignLeft | Qt::AlignVCenter), - customPal, cb->state & State_Enabled, text, QPalette::ButtonText); + bool notElideAsterisk = widget && widget->property("notelideasterisk").toBool() + && cb->currentText.endsWith(asterisk) + && option->fontMetrics.width(cb->currentText) > elideWidth; + + QString text; + if (notElideAsterisk) { + elideWidth -= option->fontMetrics.width(asterisk); + text = asterisk; + } + text.prepend(option->fontMetrics.elidedText(cb->currentText, Qt::ElideRight, elideWidth)); + + if ((option->state & State_Enabled)) { + painter->setPen(QColor(0, 0, 0, 70)); + painter->drawText(editRect.adjusted(1, 0, -1, 0), Qt::AlignLeft | Qt::AlignVCenter, text); + } else { + painter->setOpacity(0.8); + } + painter->setPen(Utils::StyleHelper::panelTextColor()); + painter->drawText(editRect.adjusted(1, 0, -1, 0), Qt::AlignLeft | Qt::AlignVCenter, text); + + painter->restore(); } else { - d->style->drawControl(element, option, painter, widget); + QProxyStyle::drawControl(element, option, painter, widget); } } break; - case CE_SizeGrip: - { - painter->save(); - QColor dark = Qt::white; - dark.setAlphaF(0.1); - int x, y, w, h; - option->rect.getRect(&x, &y, &w, &h); - int sw = qMin(h, w); - if (h > w) { - painter->translate(0, h - w); - } else { - painter->translate(w - h, 0); - } - int sx = x; - int sy = y; - int s = 4; - painter->setPen(dark); - if (option->direction == Qt::RightToLeft) { - sx = x + sw; - for (int i = 0; i < 4; ++i) { - painter->drawLine(x, sy, sx, sw); - sx -= s; - sy += s; - } - } else { - for (int i = 0; i < 4; ++i) { - painter->drawLine(sx, sw, sw, sy); - sx += s; - sy += s; + case CE_SizeGrip: { + painter->save(); + QColor dark = Qt::white; + dark.setAlphaF(0.1); + int x, y, w, h; + option->rect.getRect(&x, &y, &w, &h); + int sw = qMin(h, w); + if (h > w) + painter->translate(0, h - w); + else + painter->translate(w - h, 0); + int sx = x; + int sy = y; + int s = 4; + painter->setPen(dark); + if (option->direction == Qt::RightToLeft) { + sx = x + sw; + for (int i = 0; i < 4; ++i) { + painter->drawLine(x, sy, sx, sw); + sx -= s; + sy += s; + } + } else { + for (int i = 0; i < 4; ++i) { + painter->drawLine(sx, sw, sw, sy); + sx += s; + sy += s; + } } + painter->restore(); } - painter->restore(); - } - break; + break; - case CE_MenuBarEmptyArea: - { - Utils::StyleHelper::menuGradient(painter, option->rect, option->rect); - painter->save(); - painter->setPen(Utils::StyleHelper::borderColor()); - painter->drawLine(option->rect.bottomLeft(), option->rect.bottomRight()); - painter->restore(); - } - break; + case CE_MenuBarEmptyArea: { + Utils::StyleHelper::menuGradient(painter, option->rect, option->rect); + painter->save(); + painter->setPen(Utils::StyleHelper::borderColor()); + painter->drawLine(option->rect.bottomLeft(), option->rect.bottomRight()); + painter->restore(); + } + break; case CE_ToolBar: - { - QString key; - key.sprintf("mh_toolbar %d %d %d", option->rect.width(), option->rect.height(), Utils::StyleHelper::baseColor().rgb());; + { + QRect rect = option->rect; + bool horizontal = option->state & State_Horizontal; + rect = option->rect; - QPixmap pixmap; - QPainter *p = painter; - QRect rect = option->rect; - if (Utils::StyleHelper::usePixmapCache() && !QPixmapCache::find(key, pixmap)) { - pixmap = QPixmap(option->rect.size()); - p = new QPainter(&pixmap); - rect = QRect(0, 0, option->rect.width(), option->rect.height()); - } + // Map offset for global window gradient + QPoint offset = widget->window()->mapToGlobal(option->rect.topLeft()) - + widget->mapToGlobal(option->rect.topLeft()); + QRect gradientSpan; + if (widget) + gradientSpan = QRect(offset, widget->window()->size()); - bool horizontal = option->state & State_Horizontal; - // Map offset for global window gradient - QPoint offset = widget->window()->mapToGlobal(option->rect.topLeft()) - - widget->mapToGlobal(option->rect.topLeft()); - QRect gradientSpan; - if (widget) { - gradientSpan = QRect(offset, widget->window()->size()); - } - if (horizontal) { - Utils::StyleHelper::horizontalGradient(p, gradientSpan, rect); - } else { - Utils::StyleHelper::verticalGradient(p, gradientSpan, rect); - } + bool drawLightColored = lightColored(widget); + if (horizontal) + Utils::StyleHelper::horizontalGradient(painter, gradientSpan, rect, drawLightColored); + else + Utils::StyleHelper::verticalGradient(painter, gradientSpan, rect, drawLightColored); - painter->setPen(Utils::StyleHelper::borderColor()); + if (!drawLightColored) + painter->setPen(Utils::StyleHelper::borderColor()); + else + painter->setPen(QColor(0x888888)); - if (horizontal) { - // Note: This is a hack to determine if the - // toolbar should draw the top or bottom outline - // (needed for the find toolbar for instance) - QColor lighter(255, 255, 255, 40); - if (widget && widget->property("topBorder").toBool()) { - p->drawLine(rect.topLeft(), rect.topRight()); - p->setPen(lighter); - p->drawLine(rect.topLeft() + QPoint(0, 1), rect.topRight() + QPoint(0, 1)); + if (horizontal) { + // Note: This is a hack to determine if the + // toolbar should draw the top or bottom outline + // (needed for the find toolbar for instance) + QColor lighter(Utils::StyleHelper::sidebarHighlight()); + if (drawLightColored) + lighter = QColor(255, 255, 255, 180); + if (widget && widget->property("topBorder").toBool()) { + painter->drawLine(rect.topLeft(), rect.topRight()); + painter->setPen(lighter); + painter->drawLine(rect.topLeft() + QPoint(0, 1), rect.topRight() + QPoint(0, 1)); + } else { + painter->drawLine(rect.bottomLeft(), rect.bottomRight()); + painter->setPen(lighter); + painter->drawLine(rect.topLeft(), rect.topRight()); + } } else { - p->drawLine(rect.bottomLeft(), rect.bottomRight()); - p->setPen(lighter); - p->drawLine(rect.topLeft(), rect.topRight()); + painter->drawLine(rect.topLeft(), rect.bottomLeft()); + painter->drawLine(rect.topRight(), rect.bottomRight()); } - } else { - p->drawLine(rect.topLeft(), rect.bottomLeft()); - p->drawLine(rect.topRight(), rect.bottomRight()); } - - if (Utils::StyleHelper::usePixmapCache() && !QPixmapCache::find(key, pixmap)) { - painter->drawPixmap(rect.topLeft(), pixmap); - p->end(); - delete p; - QPixmapCache::insert(key, pixmap); - } - } - break; + break; default: - d->style->drawControl(element, option, painter, widget); + QProxyStyle::drawControl(element, option, painter, widget); break; } } @@ -969,146 +832,122 @@ void ManhattanStyle::drawControl(ControlElement element, const QStyleOption *opt void ManhattanStyle::drawComplexControl(ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget) const { - if (!panelWidget(widget)) { - return d->style->drawComplexControl(control, option, painter, widget); - } + if (!panelWidget(widget)) + return QProxyStyle::drawComplexControl(control, option, painter, widget); QRect rect = option->rect; switch (control) { case CC_ToolButton: - if (const QStyleOptionToolButton * toolbutton = qstyleoption_cast(option)) { + if (const QStyleOptionToolButton *toolbutton = qstyleoption_cast(option)) { + bool reverse = option->direction == Qt::RightToLeft; + bool drawborder = (widget && widget->property("showborder").toBool()); + + if (drawborder) + drawButtonSeparator(painter, rect, reverse); + QRect button, menuarea; - button = subControlRect(control, toolbutton, SC_ToolButton, widget); + button = subControlRect(control, toolbutton, SC_ToolButton, widget); menuarea = subControlRect(control, toolbutton, SC_ToolButtonMenu, widget); State bflags = toolbutton->state; if (bflags & State_AutoRaise) { - if (!(bflags & State_MouseOver)) { + if (!(bflags & State_MouseOver)) bflags &= ~State_Raised; - } } State mflags = bflags; if (toolbutton->state & State_Sunken) { - if (toolbutton->activeSubControls & SC_ToolButton) { + if (toolbutton->activeSubControls & SC_ToolButton) bflags |= State_Sunken; - } - if (toolbutton->activeSubControls & SC_ToolButtonMenu) { + if (toolbutton->activeSubControls & SC_ToolButtonMenu) mflags |= State_Sunken; - } } QStyleOption tool(0); tool.palette = toolbutton->palette; if (toolbutton->subControls & SC_ToolButton) { - tool.rect = button; + tool.rect = button; tool.state = bflags; drawPrimitive(PE_PanelButtonTool, &tool, painter, widget); } - if (toolbutton->state & State_HasFocus) { - QStyleOptionFocusRect fr; - fr.QStyleOption::operator=(*toolbutton); - fr.rect.adjust(3, 3, -3, -3); - if (toolbutton->features & QStyleOptionToolButton::MenuButtonPopup) { - fr.rect.adjust(0, 0, -pixelMetric(QStyle::PM_MenuButtonIndicator, - toolbutton, widget), 0); - } - QPen oldPen = painter->pen(); - QColor focusColor = Utils::StyleHelper::panelTextColor(); - focusColor.setAlpha(120); - QPen outline(focusColor, 1); - outline.setStyle(Qt::DotLine); - painter->setPen(outline); - QRect r = option->rect.adjusted(2, 2, -2, -2); - painter->drawRect(r); - painter->setPen(oldPen); - } - QStyleOptionToolButton label = *toolbutton; - label.palette = panelPalette(option->palette); + + label.palette = panelPalette(option->palette, lightColored(widget)); int fw = pixelMetric(PM_DefaultFrameWidth, option, widget); - label.rect = button.adjusted(fw, fw, -fw, -fw); + label.rect = button.adjusted(fw, fw, -fw, -fw); + drawControl(CE_ToolButtonLabel, &label, painter, widget); if (toolbutton->subControls & SC_ToolButtonMenu) { tool.state = mflags; - tool.rect = menuarea.adjusted(1, 1, -1, -1); + tool.rect = menuarea.adjusted(1, 1, -1, -1); if (mflags & (State_Sunken | State_On | State_Raised)) { painter->setPen(Qt::gray); painter->drawLine(tool.rect.topLeft(), tool.rect.bottomLeft()); if (mflags & (State_Sunken)) { QColor shade(0, 0, 0, 50); painter->fillRect(tool.rect.adjusted(0, -1, 1, 1), shade); - } -#ifndef Q_WS_MAC - else if (mflags & (State_MouseOver)) { + } else if (!Utils::HostOsInfo::isMacHost() && (mflags & State_MouseOver)) { QColor shade(255, 255, 255, 50); painter->fillRect(tool.rect.adjusted(0, -1, 1, 1), shade); } -#endif } tool.rect = tool.rect.adjusted(2, 2, -2, -2); drawPrimitive(PE_IndicatorArrowDown, &tool, painter, widget); - } else if (toolbutton->features & QStyleOptionToolButton::HasMenu) { + } else if (toolbutton->features & QStyleOptionToolButton::HasMenu + && !widget->property("noArrow").toBool()) { int arrowSize = 6; QRect ir = toolbutton->rect.adjusted(1, 1, -1, -1); QStyleOptionToolButton newBtn = *toolbutton; newBtn.palette = panelPalette(option->palette); - newBtn.rect = QRect(ir.right() - arrowSize - 1, - ir.height() - arrowSize - 2, arrowSize, arrowSize); + newBtn.rect = QRect(ir.right() - arrowSize - 1, + ir.height() - arrowSize - 2, arrowSize, arrowSize); drawPrimitive(PE_IndicatorArrowDown, &newBtn, painter, widget); } } break; case CC_ComboBox: - if (const QStyleOptionComboBox * cb = qstyleoption_cast(option)) { + if (const QStyleOptionComboBox *cb = qstyleoption_cast(option)) { painter->save(); bool isEmpty = cb->currentText.isEmpty() && cb->currentIcon.isNull(); bool reverse = option->direction == Qt::RightToLeft; + bool drawborder = !(widget && widget->property("hideborder").toBool()); + bool alignarrow = !(widget && widget->property("alignarrow").toBool()); + + if (drawborder) + drawButtonSeparator(painter, rect, reverse); - // Draw tool button - QLinearGradient grad(option->rect.topRight(), option->rect.bottomRight()); - grad.setColorAt(0, QColor(255, 255, 255, 20)); - grad.setColorAt(0.4, QColor(255, 255, 255, 60)); - grad.setColorAt(0.7, QColor(255, 255, 255, 50)); - grad.setColorAt(1, QColor(255, 255, 255, 40)); - painter->setPen(QPen(grad, 0)); - painter->drawLine(rect.topRight(), rect.bottomRight()); - grad.setColorAt(0, QColor(0, 0, 0, 30)); - grad.setColorAt(0.4, QColor(0, 0, 0, 70)); - grad.setColorAt(0.7, QColor(0, 0, 0, 70)); - grad.setColorAt(1, QColor(0, 0, 0, 40)); - painter->setPen(QPen(grad, 0)); - if (!reverse) { - painter->drawLine(rect.topRight() - QPoint(1, 0), rect.bottomRight() - QPoint(1, 0)); - } else { - painter->drawLine(rect.topLeft(), rect.bottomLeft()); - } QStyleOption toolbutton = *option; - if (isEmpty) { + if (isEmpty) toolbutton.state &= ~(State_Enabled | State_Sunken); - } painter->save(); - painter->setClipRect(toolbutton.rect.adjusted(0, 0, -2, 0)); + if (drawborder) + painter->setClipRect(toolbutton.rect.adjusted(0, 0, -2, 0)); drawPrimitive(PE_PanelButtonTool, &toolbutton, painter, widget); painter->restore(); // Draw arrow int menuButtonWidth = 12; - int left = !reverse ? rect.right() - menuButtonWidth : rect.left(); + int left = !reverse ? rect.right() - menuButtonWidth : rect.left(); int right = !reverse ? rect.right() : rect.left() + menuButtonWidth; QRect arrowRect((left + right) / 2 + (reverse ? 6 : -6), rect.center().y() - 3, 9, 9); - if (option->state & State_On) { - arrowRect.translate(d->style->pixelMetric(PM_ButtonShiftHorizontal, option, widget), - d->style->pixelMetric(PM_ButtonShiftVertical, option, widget)); + + if (!alignarrow) { + int labelwidth = option->fontMetrics.width(cb->currentText); + if (reverse) + arrowRect.moveLeft(qMax(rect.width() - labelwidth - menuButtonWidth - 2, 4)); + else + arrowRect.moveLeft(qMin(labelwidth + menuButtonWidth - 2, rect.width() - menuButtonWidth - 4)); } + if (option->state & State_On) + arrowRect.translate(QProxyStyle::pixelMetric(PM_ButtonShiftHorizontal, option, widget), + QProxyStyle::pixelMetric(PM_ButtonShiftVertical, option, widget)); QStyleOption arrowOpt = *option; arrowOpt.rect = arrowRect; - if (isEmpty) { + if (isEmpty) arrowOpt.state &= ~(State_Enabled | State_Sunken); - } if (styleHint(SH_ComboBox_Popup, option, widget)) { arrowOpt.rect.translate(0, -3); @@ -1118,19 +957,33 @@ void ManhattanStyle::drawComplexControl(ComplexControl control, const QStyleOpti } else { drawPrimitive(PE_IndicatorArrowDown, &arrowOpt, painter, widget); } + painter->restore(); } break; + default: - d->style->drawComplexControl(control, option, painter, widget); + QProxyStyle::drawComplexControl(control, option, painter, widget); break; } } -// Mac style reimplements this to control the -// focus widget among other things -bool ManhattanStyle::event(QEvent *e) +void ManhattanStyle::drawButtonSeparator(QPainter *painter, const QRect &rect, bool reverse) const { - Q_ASSERT(d->style); - return d->style->event(e); -} + QLinearGradient grad(rect.topRight(), rect.bottomRight()); + grad.setColorAt(0, QColor(255, 255, 255, 20)); + grad.setColorAt(0.4, QColor(255, 255, 255, 60)); + grad.setColorAt(0.7, QColor(255, 255, 255, 50)); + grad.setColorAt(1, QColor(255, 255, 255, 40)); + painter->setPen(QPen(grad, 0)); + painter->drawLine(rect.topRight(), rect.bottomRight()); + grad.setColorAt(0, QColor(0, 0, 0, 30)); + grad.setColorAt(0.4, QColor(0, 0, 0, 70)); + grad.setColorAt(0.7, QColor(0, 0, 0, 70)); + grad.setColorAt(1, QColor(0, 0, 0, 40)); + painter->setPen(QPen(grad, 0)); + if (!reverse) + painter->drawLine(rect.topRight() - QPoint(1,0), rect.bottomRight() - QPoint(1,0)); + else + painter->drawLine(rect.topLeft(), rect.bottomLeft()); + } diff --git a/ground/openpilotgcs/src/plugins/coreplugin/manhattanstyle.h b/ground/openpilotgcs/src/plugins/coreplugin/manhattanstyle.h index bb90cf544..366f0c842 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/manhattanstyle.h +++ b/ground/openpilotgcs/src/plugins/coreplugin/manhattanstyle.h @@ -31,25 +31,19 @@ #include "core_global.h" -#include - -QT_BEGIN_NAMESPACE -class QLinearGradient; -class QBrush; -QT_END_NAMESPACE +#include class ManhattanStylePrivate; -class CORE_EXPORT ManhattanStyle : public QWindowsStyle { +class CORE_EXPORT ManhattanStyle : public QProxyStyle +{ Q_OBJECT public: - ManhattanStyle(const QString &); + explicit ManhattanStyle(const QString &baseStyleName); ~ManhattanStyle(); - QStyle *systemStyle() const; - void drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = 0) const; void drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = 0) const; void drawComplexControl(ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget = 0) const; @@ -75,20 +69,13 @@ public: void unpolish(QWidget *widget); void unpolish(QApplication *app); -protected: - bool event(QEvent *e); - -protected Q_SLOTS: +protected slots: QIcon standardIconImplementation(StandardPixmap standardIcon, const QStyleOption *option, const QWidget *widget) const; - int layoutSpacingImplementation(QSizePolicy::ControlType control1, - QSizePolicy::ControlType control2, - Qt::Orientation orientation, - const QStyleOption *option = 0, - const QWidget *widget = 0) const; private: + void drawButtonSeparator(QPainter *painter, const QRect &rect, bool reverse) const; + ManhattanStylePrivate *d; - Q_DISABLE_COPY(ManhattanStyle) }; #endif // MANHATTANSTYLE_H diff --git a/ground/openpilotgcs/src/plugins/coreplugin/messagemanager.cpp b/ground/openpilotgcs/src/plugins/coreplugin/messagemanager.cpp index a2996c8bf..d0e6b2942 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/messagemanager.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/messagemanager.cpp @@ -31,8 +31,8 @@ #include -#include -#include +#include +#include using namespace Core; diff --git a/ground/openpilotgcs/src/plugins/coreplugin/messageoutputwindow.cpp b/ground/openpilotgcs/src/plugins/coreplugin/messageoutputwindow.cpp index d4c4560ea..8066b41c3 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/messageoutputwindow.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/messageoutputwindow.cpp @@ -28,7 +28,7 @@ #include "messageoutputwindow.h" -#include +#include using namespace Core::Internal; diff --git a/ground/openpilotgcs/src/plugins/coreplugin/mimedatabase.cpp b/ground/openpilotgcs/src/plugins/coreplugin/mimedatabase.cpp index b037fc35b..770f9c0f0 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/mimedatabase.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/mimedatabase.cpp @@ -44,7 +44,7 @@ #include #include -#include +#include enum { debugMimeDB = 0 }; @@ -768,7 +768,7 @@ bool BaseMimeTypeParser::parse(QIODevice *dev, const QString &fileName, QString { // comments have locale attributes. We want the default, English one QString locale = reader.attributes().value(QLatin1String(localeAttributeC)).toString(); - const QString comment = QCoreApplication::translate("MimeType", reader.readElementText().toAscii()); + const QString comment = QCoreApplication::translate("MimeType", reader.readElementText().toLatin1()); if (locale.isEmpty()) { data.comment = comment; } else { diff --git a/ground/openpilotgcs/src/plugins/coreplugin/minisplitter.cpp b/ground/openpilotgcs/src/plugins/coreplugin/minisplitter.cpp index 4142a9a21..e5d6316c0 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/minisplitter.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/minisplitter.cpp @@ -30,9 +30,9 @@ #include -#include -#include -#include +#include +#include +#include namespace Core { namespace Internal { diff --git a/ground/openpilotgcs/src/plugins/coreplugin/minisplitter.h b/ground/openpilotgcs/src/plugins/coreplugin/minisplitter.h index b446acbac..1e86538b7 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/minisplitter.h +++ b/ground/openpilotgcs/src/plugins/coreplugin/minisplitter.h @@ -31,7 +31,7 @@ #include "core_global.h" -#include +#include QT_BEGIN_NAMESPACE class QSplitterHandle; diff --git a/ground/openpilotgcs/src/plugins/coreplugin/modemanager.cpp b/ground/openpilotgcs/src/plugins/coreplugin/modemanager.cpp index 2e67778f1..79c28779a 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/modemanager.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/modemanager.cpp @@ -49,11 +49,11 @@ #include #include #include -#include +#include -#include -#include -#include +#include +#include +#include using namespace Core; using namespace Core::Internal; diff --git a/ground/openpilotgcs/src/plugins/coreplugin/outputpane.h b/ground/openpilotgcs/src/plugins/coreplugin/outputpane.h index 77e0d3684..f02104fcb 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/outputpane.h +++ b/ground/openpilotgcs/src/plugins/coreplugin/outputpane.h @@ -32,7 +32,7 @@ #include "core_global.h" #include -#include +#include QT_BEGIN_NAMESPACE class QAction; diff --git a/ground/openpilotgcs/src/plugins/coreplugin/plugindialog.cpp b/ground/openpilotgcs/src/plugins/coreplugin/plugindialog.cpp index 72e32b117..227d5d024 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/plugindialog.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/plugindialog.cpp @@ -34,11 +34,11 @@ #include #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include using namespace Core::Internal; diff --git a/ground/openpilotgcs/src/plugins/coreplugin/plugindialog.h b/ground/openpilotgcs/src/plugins/coreplugin/plugindialog.h index b2d19e594..44bf984f6 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/plugindialog.h +++ b/ground/openpilotgcs/src/plugins/coreplugin/plugindialog.h @@ -29,7 +29,7 @@ #ifndef PLUGINDIALOG_H #define PLUGINDIALOG_H -#include +#include QT_BEGIN_NAMESPACE class QPushButton; diff --git a/ground/openpilotgcs/src/plugins/coreplugin/rightpane.cpp b/ground/openpilotgcs/src/plugins/coreplugin/rightpane.cpp index 9fe528ae0..a6d93dbaf 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/rightpane.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/rightpane.cpp @@ -33,10 +33,10 @@ #include -#include -#include -#include -#include +#include +#include +#include +#include using namespace Core; diff --git a/ground/openpilotgcs/src/plugins/coreplugin/rightpane.h b/ground/openpilotgcs/src/plugins/coreplugin/rightpane.h index e88f05dbe..e1a9110a6 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/rightpane.h +++ b/ground/openpilotgcs/src/plugins/coreplugin/rightpane.h @@ -31,7 +31,7 @@ #include "core_global.h" -#include +#include QT_BEGIN_NAMESPACE class QSettings; diff --git a/ground/openpilotgcs/src/plugins/coreplugin/sidebar.cpp b/ground/openpilotgcs/src/plugins/coreplugin/sidebar.cpp index dcfc10ab5..c4b7bf717 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/sidebar.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/sidebar.cpp @@ -35,10 +35,10 @@ #include #include #include -#include -#include -#include -#include +#include +#include +#include +#include using namespace Core; using namespace Core::Internal; diff --git a/ground/openpilotgcs/src/plugins/coreplugin/sidebar.h b/ground/openpilotgcs/src/plugins/coreplugin/sidebar.h index 705ed3028..59d7b29ba 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/sidebar.h +++ b/ground/openpilotgcs/src/plugins/coreplugin/sidebar.h @@ -31,8 +31,8 @@ #include #include -#include -#include +#include +#include #include diff --git a/ground/openpilotgcs/src/plugins/coreplugin/styleanimator.cpp b/ground/openpilotgcs/src/plugins/coreplugin/styleanimator.cpp index 9a7b9c914..9187ee9b0 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/styleanimator.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/styleanimator.cpp @@ -28,7 +28,7 @@ #include "styleanimator.h" -#include +#include Animation *StyleAnimator::widgetAnimation(const QWidget *widget) const { diff --git a/ground/openpilotgcs/src/plugins/coreplugin/styleanimator.h b/ground/openpilotgcs/src/plugins/coreplugin/styleanimator.h index d5f1027d2..48c9fe8e9 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/styleanimator.h +++ b/ground/openpilotgcs/src/plugins/coreplugin/styleanimator.h @@ -32,9 +32,9 @@ #include #include #include -#include -#include -#include +#include +#include +#include /* * This is a set of helper classes to allow for widget animations in diff --git a/ground/openpilotgcs/src/plugins/coreplugin/tabpositionindicator.cpp b/ground/openpilotgcs/src/plugins/coreplugin/tabpositionindicator.cpp index f51266071..35b8a1bb8 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/tabpositionindicator.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/tabpositionindicator.cpp @@ -28,10 +28,10 @@ #include "tabpositionindicator.h" -#include -#include -#include -#include +#include +#include +#include +#include using namespace Core::Internal; diff --git a/ground/openpilotgcs/src/plugins/coreplugin/tabpositionindicator.h b/ground/openpilotgcs/src/plugins/coreplugin/tabpositionindicator.h index 7de3823a2..c78418c54 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/tabpositionindicator.h +++ b/ground/openpilotgcs/src/plugins/coreplugin/tabpositionindicator.h @@ -29,7 +29,7 @@ #ifndef TABPOSITIONINDICATOR_H #define TABPOSITIONINDICATOR_H -#include +#include namespace Core { namespace Internal { diff --git a/ground/openpilotgcs/src/plugins/coreplugin/telemetrymonitorwidget.cpp b/ground/openpilotgcs/src/plugins/coreplugin/telemetrymonitorwidget.cpp index 0463d68d2..1307bbb4e 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/telemetrymonitorwidget.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/telemetrymonitorwidget.cpp @@ -2,7 +2,7 @@ #include #include -#include +#include #include TelemetryMonitorWidget::TelemetryMonitorWidget(QWidget *parent) : QGraphicsView(parent) diff --git a/ground/openpilotgcs/src/plugins/coreplugin/uavgadgetdecorator.cpp b/ground/openpilotgcs/src/plugins/coreplugin/uavgadgetdecorator.cpp index 2fc7c580d..e4e33d07e 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/uavgadgetdecorator.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/uavgadgetdecorator.cpp @@ -27,7 +27,7 @@ #include "uavgadgetdecorator.h" #include "iuavgadgetconfiguration.h" -#include +#include #include #include diff --git a/ground/openpilotgcs/src/plugins/coreplugin/uavgadgetinstancemanager.cpp b/ground/openpilotgcs/src/plugins/coreplugin/uavgadgetinstancemanager.cpp index be948b8f8..89b31bf08 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/uavgadgetinstancemanager.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/uavgadgetinstancemanager.cpp @@ -39,7 +39,7 @@ #include #include #include -#include +#include using namespace Core; diff --git a/ground/openpilotgcs/src/plugins/coreplugin/uavgadgetinstancemanager.h b/ground/openpilotgcs/src/plugins/coreplugin/uavgadgetinstancemanager.h index bab32efb2..7ecc517f0 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/uavgadgetinstancemanager.h +++ b/ground/openpilotgcs/src/plugins/coreplugin/uavgadgetinstancemanager.h @@ -32,7 +32,7 @@ #include #include #include -#include +#include #include "core_global.h" #include "uavconfiginfo.h" diff --git a/ground/openpilotgcs/src/plugins/coreplugin/uavgadgetmanager/splitterorview.h b/ground/openpilotgcs/src/plugins/coreplugin/uavgadgetmanager/splitterorview.h index a3a782d33..fd75779a2 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/uavgadgetmanager/splitterorview.h +++ b/ground/openpilotgcs/src/plugins/coreplugin/uavgadgetmanager/splitterorview.h @@ -30,7 +30,7 @@ #define SPLITTERORVIEW_H #include -#include +#include #include "uavgadgetmanager.h" #include "uavgadgetview.h" diff --git a/ground/openpilotgcs/src/plugins/coreplugin/uavgadgetmanager/uavgadgetmanager.cpp b/ground/openpilotgcs/src/plugins/coreplugin/uavgadgetmanager/uavgadgetmanager.cpp index 6da5940e7..9e569c49b 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/uavgadgetmanager/uavgadgetmanager.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/uavgadgetmanager/uavgadgetmanager.cpp @@ -53,15 +53,15 @@ #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include Q_DECLARE_METATYPE(Core::IUAVGadget *) diff --git a/ground/openpilotgcs/src/plugins/coreplugin/uavgadgetmanager/uavgadgetmanager.h b/ground/openpilotgcs/src/plugins/coreplugin/uavgadgetmanager/uavgadgetmanager.h index 547c85e58..cf5cd2af4 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/uavgadgetmanager/uavgadgetmanager.h +++ b/ground/openpilotgcs/src/plugins/coreplugin/uavgadgetmanager/uavgadgetmanager.h @@ -34,11 +34,11 @@ #include #include -#include +#include #include #include #include -#include +#include QT_BEGIN_NAMESPACE class QModelIndex; diff --git a/ground/openpilotgcs/src/plugins/coreplugin/uavgadgetmanager/uavgadgetview.cpp b/ground/openpilotgcs/src/plugins/coreplugin/uavgadgetmanager/uavgadgetview.cpp index 79f177943..86ec14f21 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/uavgadgetmanager/uavgadgetview.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/uavgadgetmanager/uavgadgetview.cpp @@ -40,17 +40,17 @@ #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #ifdef Q_WS_MAC #include diff --git a/ground/openpilotgcs/src/plugins/coreplugin/uavgadgetmanager/uavgadgetview.h b/ground/openpilotgcs/src/plugins/coreplugin/uavgadgetmanager/uavgadgetview.h index 37e7362c2..34e5b54e5 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/uavgadgetmanager/uavgadgetview.h +++ b/ground/openpilotgcs/src/plugins/coreplugin/uavgadgetmanager/uavgadgetview.h @@ -32,11 +32,11 @@ #include #include #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include diff --git a/ground/openpilotgcs/src/plugins/coreplugin/versiondialog.cpp b/ground/openpilotgcs/src/plugins/coreplugin/versiondialog.cpp index cd3e2b192..6887239fe 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/versiondialog.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/versiondialog.cpp @@ -37,11 +37,11 @@ #include #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include using namespace Core; using namespace Core::Internal; diff --git a/ground/openpilotgcs/src/plugins/coreplugin/versiondialog.h b/ground/openpilotgcs/src/plugins/coreplugin/versiondialog.h index 63b23ea51..58fd217b7 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/versiondialog.h +++ b/ground/openpilotgcs/src/plugins/coreplugin/versiondialog.h @@ -29,7 +29,7 @@ #ifndef VERSIONDIALOG_H #define VERSIONDIALOG_H -#include +#include namespace Core { namespace Internal { diff --git a/ground/openpilotgcs/src/plugins/coreplugin/workspacesettings.h b/ground/openpilotgcs/src/plugins/coreplugin/workspacesettings.h index de2c96732..b9e387213 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/workspacesettings.h +++ b/ground/openpilotgcs/src/plugins/coreplugin/workspacesettings.h @@ -31,7 +31,7 @@ #include #include #include -#include +#include class QSettings; diff --git a/ground/openpilotgcs/src/plugins/debuggadget/debugengine.cpp b/ground/openpilotgcs/src/plugins/debuggadget/debugengine.cpp index 39a0a8f70..edf9060b6 100644 --- a/ground/openpilotgcs/src/plugins/debuggadget/debugengine.cpp +++ b/ground/openpilotgcs/src/plugins/debuggadget/debugengine.cpp @@ -1,12 +1,44 @@ #include "debugengine.h" -debugengine::debugengine() -{} -void debugengine::writeToStdErr(const QString &level, const QList &msgs) +debugengine::debugengine() { - emit dbgMsgError(level, msgs); + mut_lock = new QMutex(QMutex::Recursive); } -void debugengine::writeToStdOut(const QString &level, const QList &msgs) + +debugengine *debugengine::getInstance() { - emit dbgMsg(level, msgs); + static debugengine objectInstance; + + return &objectInstance; +} + +debugengine::~debugengine() +{ + delete mut_lock; + mut_lock = NULL; +} + +void debugengine::setTextEdit(QTextBrowser *textEdit) +{ + QMutexLocker lock(mut_lock); + + _textEdit = textEdit; +} + +void debugengine::writeMessage(const QString &message) +{ + QMutexLocker lock(mut_lock); + + if (_textEdit) { + _textEdit->append(message); + } +} + +void debugengine::setColor(const QColor &c) +{ + QMutexLocker lock(mut_lock); + + if (_textEdit) { + _textEdit->setTextColor(c); + } } diff --git a/ground/openpilotgcs/src/plugins/debuggadget/debugengine.h b/ground/openpilotgcs/src/plugins/debuggadget/debugengine.h index 1871a6611..40d76f722 100644 --- a/ground/openpilotgcs/src/plugins/debuggadget/debugengine.h +++ b/ground/openpilotgcs/src/plugins/debuggadget/debugengine.h @@ -1,17 +1,21 @@ #ifndef DEBUGENGINE_H #define DEBUGENGINE_H -#include "qxtbasicstdloggerengine.h" -#include -class debugengine : public QObject, public QxtBasicSTDLoggerEngine { - Q_OBJECT -public: +#include +#include +#include + +class debugengine { +// Add all missing constructor etc... to have singleton debugengine(); -protected: - void writeToStdErr(const QString & level, const QList & msgs); - void writeToStdOut(const QString & level, const QList & msgs); -signals: - void dbgMsgError(const QString & level, const QList & msgs); - void dbgMsg(const QString & level, const QList & msgs); + ~debugengine(); +public: + static debugengine *getInstance(); + void setTextEdit(QTextBrowser *textEdit); + void writeMessage(const QString &message); + void setColor(const QColor &c); + QMutex *mut_lock; +private: + QPointer _textEdit; }; #endif // DEBUGENGINE_H diff --git a/ground/openpilotgcs/src/plugins/debuggadget/debuggadgetwidget.cpp b/ground/openpilotgcs/src/plugins/debuggadget/debuggadgetwidget.cpp index 100a1c4f9..81a8d1fe0 100644 --- a/ground/openpilotgcs/src/plugins/debuggadget/debuggadgetwidget.cpp +++ b/ground/openpilotgcs/src/plugins/debuggadget/debuggadgetwidget.cpp @@ -28,25 +28,58 @@ #include #include -#include -#include -#include -#include -#include "qxtlogger.h" +#include +#include +#include +#include #include "debugengine.h" #include #include #include #include #include + +QPointer m_textedit; + +void DebugGadgetWidget::customMessageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg) +{ + QString txt; + QColor color = Qt::black; + + switch (type) { + case QtDebugMsg: + txt = QString("Debug: %1").arg(msg); + color = Qt::black; + break; + case QtWarningMsg: + txt = QString("Warning: %1").arg(msg); + color = Qt::red; + break; + case QtCriticalMsg: + txt = QString("Critical: %1").arg(msg); + color = Qt::red; + break; + case QtFatalMsg: + txt = QString("Fatal: %1").arg(msg); + abort(); + } + + debugengine::getInstance()->setTextEdit(m_textedit); + debugengine::getInstance()->setColor(color); + debugengine::getInstance()->writeMessage(txt); +} + DebugGadgetWidget::DebugGadgetWidget(QWidget *parent) : QLabel(parent) { m_config = new Ui_Form(); m_config->setupUi(this); - debugengine *de = new debugengine(); - QxtLogger::getInstance()->addLoggerEngine("debugplugin", de); - connect(de, SIGNAL(dbgMsg(QString, QList)), this, SLOT(dbgMsg(QString, QList))); - connect(de, SIGNAL(dbgMsgError(QString, QList)), this, SLOT(dbgMsgError(QString, QList))); + + // m_textedit = m_config->plainTextEdit; + // MyplainTextEdit=m_config->plainTextEdit; + // debugengine *de = new debugengine(); + // qInstallMessageHandler(customMessageHandler); + // connect(de, SIGNAL(dbgMsg(QString, QList)), this, SLOT(dbgMsg(QString, QList))); + // connect(de, SIGNAL(dbgMsgError(QString, QList)), this, SLOT(dbgMsgError(QString, QList))); connect(m_config->pushButton, SIGNAL(clicked()), this, SLOT(saveLog())); } @@ -85,7 +118,7 @@ void DebugGadgetWidget::saveLog() QFile file(fileName); if (file.open(QIODevice::WriteOnly) && - (file.write(m_config->plainTextEdit->toHtml().toAscii()) != -1)) { + (file.write(m_config->plainTextEdit->toHtml().toLatin1()) != -1)) { file.close(); } else { QMessageBox::critical(0, diff --git a/ground/openpilotgcs/src/plugins/debuggadget/debuggadgetwidget.h b/ground/openpilotgcs/src/plugins/debuggadget/debuggadgetwidget.h index 37826df95..9792129ec 100644 --- a/ground/openpilotgcs/src/plugins/debuggadget/debuggadgetwidget.h +++ b/ground/openpilotgcs/src/plugins/debuggadget/debuggadgetwidget.h @@ -28,15 +28,16 @@ #ifndef DEBUGGADGETWIDGET_H_ #define DEBUGGADGETWIDGET_H_ -#include +#include #include "ui_debug.h" +#include "debugengine.h" class DebugGadgetWidget : public QLabel { Q_OBJECT public: DebugGadgetWidget(QWidget *parent = 0); ~DebugGadgetWidget(); - + static void customMessageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg); private: Ui_Form *m_config; private slots: diff --git a/ground/openpilotgcs/src/plugins/debuggadget/debugplugin.cpp b/ground/openpilotgcs/src/plugins/debuggadget/debugplugin.cpp index 149fa57b3..69534016e 100644 --- a/ground/openpilotgcs/src/plugins/debuggadget/debugplugin.cpp +++ b/ground/openpilotgcs/src/plugins/debuggadget/debugplugin.cpp @@ -61,4 +61,3 @@ void DebugPlugin::shutdown() { // Do nothing } -Q_EXPORT_PLUGIN(DebugPlugin) diff --git a/ground/openpilotgcs/src/plugins/debuggadget/debugplugin.h b/ground/openpilotgcs/src/plugins/debuggadget/debugplugin.h index 83115c1c9..a4ffc9214 100644 --- a/ground/openpilotgcs/src/plugins/debuggadget/debugplugin.h +++ b/ground/openpilotgcs/src/plugins/debuggadget/debugplugin.h @@ -33,6 +33,9 @@ class DebugGadgetFactory; class DebugPlugin : public ExtensionSystem::IPlugin { + Q_OBJECT + Q_PLUGIN_METADATA(IID "OpenPilot.Debug") + public: DebugPlugin(); ~DebugPlugin(); diff --git a/ground/openpilotgcs/src/plugins/dial/dialplugin.cpp b/ground/openpilotgcs/src/plugins/dial/dialplugin.cpp index 4fe6d3533..b6ca18152 100644 --- a/ground/openpilotgcs/src/plugins/dial/dialplugin.cpp +++ b/ground/openpilotgcs/src/plugins/dial/dialplugin.cpp @@ -63,4 +63,3 @@ void DialPlugin::shutdown() { // Do nothing } -Q_EXPORT_PLUGIN(DialPlugin) diff --git a/ground/openpilotgcs/src/plugins/dial/dialplugin.h b/ground/openpilotgcs/src/plugins/dial/dialplugin.h index 8d5231571..e42376de4 100644 --- a/ground/openpilotgcs/src/plugins/dial/dialplugin.h +++ b/ground/openpilotgcs/src/plugins/dial/dialplugin.h @@ -34,6 +34,8 @@ class DialGadgetFactory; class DialPlugin : public ExtensionSystem::IPlugin { + Q_OBJECT + Q_PLUGIN_METADATA(IID "OpenPilot.Dial") public: DialPlugin(); ~DialPlugin(); diff --git a/ground/openpilotgcs/src/plugins/emptygadget/emptygadgetwidget.cpp b/ground/openpilotgcs/src/plugins/emptygadget/emptygadgetwidget.cpp index 8df5f0601..ff1fa150f 100644 --- a/ground/openpilotgcs/src/plugins/emptygadget/emptygadgetwidget.cpp +++ b/ground/openpilotgcs/src/plugins/emptygadget/emptygadgetwidget.cpp @@ -28,10 +28,10 @@ #include #include -#include -#include -#include -#include +#include +#include +#include +#include EmptyGadgetWidget::EmptyGadgetWidget(QWidget *parent) : QLabel(parent) { diff --git a/ground/openpilotgcs/src/plugins/emptygadget/emptygadgetwidget.h b/ground/openpilotgcs/src/plugins/emptygadget/emptygadgetwidget.h index 737846899..f42658734 100644 --- a/ground/openpilotgcs/src/plugins/emptygadget/emptygadgetwidget.h +++ b/ground/openpilotgcs/src/plugins/emptygadget/emptygadgetwidget.h @@ -28,7 +28,7 @@ #ifndef EMPTYGADGETWIDGET_H_ #define EMPTYGADGETWIDGET_H_ -#include +#include class EmptyGadgetWidget : public QLabel { Q_OBJECT diff --git a/ground/openpilotgcs/src/plugins/emptygadget/emptyplugin.cpp b/ground/openpilotgcs/src/plugins/emptygadget/emptyplugin.cpp index 23f6f8038..be84d7eb4 100644 --- a/ground/openpilotgcs/src/plugins/emptygadget/emptyplugin.cpp +++ b/ground/openpilotgcs/src/plugins/emptygadget/emptyplugin.cpp @@ -61,4 +61,3 @@ void EmptyPlugin::shutdown() { // Do nothing } -Q_EXPORT_PLUGIN(EmptyPlugin) diff --git a/ground/openpilotgcs/src/plugins/emptygadget/emptyplugin.h b/ground/openpilotgcs/src/plugins/emptygadget/emptyplugin.h index 4baa5e1d8..7ae51b4db 100644 --- a/ground/openpilotgcs/src/plugins/emptygadget/emptyplugin.h +++ b/ground/openpilotgcs/src/plugins/emptygadget/emptyplugin.h @@ -33,6 +33,8 @@ class EmptyGadgetFactory; class EmptyPlugin : public ExtensionSystem::IPlugin { + Q_OBJECT + Q_PLUGIN_METADATA(IID "OpenPilot.Empty") public: EmptyPlugin(); ~EmptyPlugin(); diff --git a/ground/openpilotgcs/src/plugins/gcscontrol/gcscontrolgadgetoptionspage.h b/ground/openpilotgcs/src/plugins/gcscontrol/gcscontrolgadgetoptionspage.h index 5eb5bf4dd..d2f5be894 100644 --- a/ground/openpilotgcs/src/plugins/gcscontrol/gcscontrolgadgetoptionspage.h +++ b/ground/openpilotgcs/src/plugins/gcscontrol/gcscontrolgadgetoptionspage.h @@ -34,10 +34,10 @@ #include #include -#include -#include -#include -#include +#include +#include +#include +#include namespace Core { class IUAVGadgetConfiguration; diff --git a/ground/openpilotgcs/src/plugins/gcscontrol/gcscontrolgadgetwidget.cpp b/ground/openpilotgcs/src/plugins/gcscontrol/gcscontrolgadgetwidget.cpp index d5cef0f0d..55dcf8dbc 100644 --- a/ground/openpilotgcs/src/plugins/gcscontrol/gcscontrolgadgetwidget.cpp +++ b/ground/openpilotgcs/src/plugins/gcscontrol/gcscontrolgadgetwidget.cpp @@ -29,10 +29,10 @@ #include #include -#include -#include -#include -#include +#include +#include +#include +#include #include "uavobject.h" diff --git a/ground/openpilotgcs/src/plugins/gcscontrol/gcscontrolgadgetwidget.h b/ground/openpilotgcs/src/plugins/gcscontrol/gcscontrolgadgetwidget.h index 16f794d4c..817970299 100644 --- a/ground/openpilotgcs/src/plugins/gcscontrol/gcscontrolgadgetwidget.h +++ b/ground/openpilotgcs/src/plugins/gcscontrol/gcscontrolgadgetwidget.h @@ -28,7 +28,7 @@ #ifndef GCSControlGADGETWIDGET_H_ #define GCSControlGADGETWIDGET_H_ -#include +#include #include "manualcontrolcommand.h" #define UDP_PORT 2323 diff --git a/ground/openpilotgcs/src/plugins/gcscontrol/gcscontrolplugin.cpp b/ground/openpilotgcs/src/plugins/gcscontrol/gcscontrolplugin.cpp index 3f8c8db41..22f710294 100644 --- a/ground/openpilotgcs/src/plugins/gcscontrol/gcscontrolplugin.cpp +++ b/ground/openpilotgcs/src/plugins/gcscontrol/gcscontrolplugin.cpp @@ -67,8 +67,6 @@ void GCSControlPlugin::shutdown() { // Do nothing } -Q_EXPORT_PLUGIN(GCSControlPlugin) - /** * @} * @} diff --git a/ground/openpilotgcs/src/plugins/gcscontrol/gcscontrolplugin.h b/ground/openpilotgcs/src/plugins/gcscontrol/gcscontrolplugin.h index 4ab32503f..e86820c3d 100644 --- a/ground/openpilotgcs/src/plugins/gcscontrol/gcscontrolplugin.h +++ b/ground/openpilotgcs/src/plugins/gcscontrol/gcscontrolplugin.h @@ -34,6 +34,8 @@ class GCSControlGadgetFactory; class GCSControlPlugin : public ExtensionSystem::IPlugin { + Q_OBJECT + Q_PLUGIN_METADATA(IID "OpenPilot.GCSControl") public: GCSControlPlugin(); ~GCSControlPlugin(); diff --git a/ground/openpilotgcs/src/plugins/gcscontrol/joystickcontrol.cpp b/ground/openpilotgcs/src/plugins/gcscontrol/joystickcontrol.cpp index 861e38c96..2d8dfdd6c 100644 --- a/ground/openpilotgcs/src/plugins/gcscontrol/joystickcontrol.cpp +++ b/ground/openpilotgcs/src/plugins/gcscontrol/joystickcontrol.cpp @@ -28,7 +28,7 @@ #include "joystickcontrol.h" #include "extensionsystem/pluginmanager.h" #include -#include +#include #include #include diff --git a/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplay.pro b/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplay.pro index 7b7b97d5a..ada152812 100644 --- a/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplay.pro +++ b/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplay.pro @@ -1,6 +1,7 @@ TEMPLATE = lib TARGET = GpsDisplayGadget QT += svg +QT += serialport include(../../openpilotgcsplugin.pri) include(../../plugins/coreplugin/coreplugin.pri) include(gpsdisplay_dependencies.pri) diff --git a/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplaygadget.cpp b/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplaygadget.cpp index 75167ebf7..9763b7d0c 100644 --- a/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplaygadget.cpp +++ b/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplaygadget.cpp @@ -32,7 +32,7 @@ GpsDisplayGadget::GpsDisplayGadget(QString classId, GpsDisplayWidget *widget, QWidget *parent) : IUAVGadget(classId, parent), m_widget(widget), - connected(FALSE) + connected(false) { connect(m_widget->connectButton, SIGNAL(clicked(bool)), this, SLOT(onConnect())); connect(m_widget->disconnectButton, SIGNAL(clicked(bool)), this, SLOT(onDisconnect())); @@ -64,29 +64,23 @@ void GpsDisplayGadget::loadConfiguration(IUAVGadgetConfiguration *config) GpsDisplayGadgetConfiguration *gpsDisplayConfig = qobject_cast< GpsDisplayGadgetConfiguration *>(config); if (gpsDisplayConfig->connectionMode() == "Serial") { - PortSettings portsettings; - portsettings.BaudRate = gpsDisplayConfig->speed(); - portsettings.DataBits = gpsDisplayConfig->dataBits(); - portsettings.FlowControl = gpsDisplayConfig->flow(); - portsettings.Parity = gpsDisplayConfig->parity(); - portsettings.StopBits = gpsDisplayConfig->stopBits(); - portsettings.Timeout_Millisec = gpsDisplayConfig->timeOut(); + m_portsettings.BaudRate = gpsDisplayConfig->speed(); + m_portsettings.DataBits = gpsDisplayConfig->dataBits(); + m_portsettings.FlowControl = gpsDisplayConfig->flow(); + m_portsettings.Parity = gpsDisplayConfig->parity(); + m_portsettings.StopBits = gpsDisplayConfig->stopBits(); + m_portsettings.Timeout_Millisec = gpsDisplayConfig->timeOut(); // In case we find no port, buttons disabled m_widget->connectButton->setEnabled(false); m_widget->disconnectButton->setEnabled(false); - QList ports = QextSerialEnumerator::getPorts(); - foreach(QextPortInfo nport, ports) { - if (nport.friendName == gpsDisplayConfig->port()) { + QList ports = QSerialPortInfo::availablePorts(); + foreach(QSerialPortInfo nport, ports) { + if (nport.portName() == gpsDisplayConfig->port()) { qDebug() << "Using Serial parser"; parser = new NMEAParser(); - -#ifdef Q_OS_WIN - port = new QextSerialPort(nport.portName, portsettings, QextSerialPort::EventDriven); -#else - port = new QextSerialPort(nport.physName, portsettings, QextSerialPort::EventDriven); -#endif + port = new QSerialPort(nport); m_widget->connectButton->setEnabled(true); m_widget->disconnectButton->setEnabled(false); m_widget->connectButton->setHidden(false); @@ -130,8 +124,14 @@ void GpsDisplayGadget::onConnect() bool isOpen = port->open(QIODevice::ReadWrite); qDebug() << "Open: " << isOpen; if (isOpen) { - m_widget->connectButton->setEnabled(false); - m_widget->disconnectButton->setEnabled(true); + if (port->setBaudRate(m_portsettings.BaudRate) + && port->setDataBits(m_portsettings.DataBits) + && port->setParity(m_portsettings.Parity) + && port->setStopBits(m_portsettings.StopBits) + && port->setFlowControl(m_portsettings.FlowControl)) { + m_widget->connectButton->setEnabled(false); + m_widget->disconnectButton->setEnabled(true); + } } } else { qDebug() << "Port undefined or invalid."; diff --git a/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplaygadget.h b/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplaygadget.h index c0dd90b64..47920c805 100644 --- a/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplaygadget.h +++ b/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplaygadget.h @@ -28,8 +28,8 @@ #ifndef GPSDISPLAYGADGET_H_ #define GPSDISPLAYGADGET_H_ -#include -#include +#include +#include #include #include "gpsdisplaywidget.h" #include "nmeaparser.h" @@ -65,10 +65,11 @@ private slots: private: QPointer m_widget; - QPointer port; + QPointer port; QPointer parser; bool connected; void processNewSerialData(QByteArray serialData); + PortSettings m_portsettings; }; diff --git a/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplaygadgetconfiguration.cpp b/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplaygadgetconfiguration.cpp index d1baaba25..e79adb01b 100644 --- a/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplaygadgetconfiguration.cpp +++ b/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplaygadgetconfiguration.cpp @@ -26,7 +26,8 @@ */ #include "gpsdisplaygadgetconfiguration.h" -#include +#include +#include /** * Loads a saved configuration or defaults if non exist. @@ -36,20 +37,20 @@ GpsDisplayGadgetConfiguration::GpsDisplayGadgetConfiguration(QString classId, QS IUAVGadgetConfiguration(classId, parent), m_connectionMode("Serial"), m_defaultPort("Unknown"), - m_defaultSpeed(BAUD4800), - m_defaultDataBits(DATA_8), - m_defaultFlow(FLOW_OFF), - m_defaultParity(PAR_NONE), - m_defaultStopBits(STOP_1), + m_defaultSpeed(QSerialPort::UnknownBaud), + m_defaultDataBits(QSerialPort::UnknownDataBits), + m_defaultFlow(QSerialPort::UnknownFlowControl), + m_defaultParity(QSerialPort::UnknownParity), + m_defaultStopBits(QSerialPort::UnknownStopBits), m_defaultTimeOut(5000) { // if a saved configuration exists load it if (qSettings != 0) { - BaudRateType speed; - DataBitsType databits; - FlowType flow; - ParityType parity; - StopBitsType stopbits; + QSerialPort::BaudRate speed; + QSerialPort::DataBits databits; + QSerialPort::FlowControl flow; + QSerialPort::Parity parity; + QSerialPort::StopBits stopbits; int ispeed = qSettings->value("defaultSpeed").toInt(); int idatabits = qSettings->value("defaultDataBits").toInt(); @@ -59,11 +60,11 @@ GpsDisplayGadgetConfiguration::GpsDisplayGadgetConfiguration(QString classId, QS QString port = qSettings->value("defaultPort").toString(); QString conMode = qSettings->value("connectionMode").toString(); - databits = (DataBitsType)idatabits; - flow = (FlowType)iflow; - parity = (ParityType)iparity; - stopbits = (StopBitsType)istopbits; - speed = (BaudRateType)ispeed; + databits = (QSerialPort::DataBits)idatabits; + flow = (QSerialPort::FlowControl)iflow; + parity = (QSerialPort::Parity)iparity; + stopbits = (QSerialPort::StopBits)istopbits; + speed = (QSerialPort::BaudRate)ispeed; m_defaultPort = port; m_defaultSpeed = speed; m_defaultDataBits = databits; diff --git a/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplaygadgetconfiguration.h b/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplaygadgetconfiguration.h index 3fdd94b64..a78669ef8 100644 --- a/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplaygadgetconfiguration.h +++ b/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplaygadgetconfiguration.h @@ -29,10 +29,23 @@ #define GPSDISPLAYGADGETCONFIGURATION_H #include -#include +#include +#include using namespace Core; +/** + * structure to contain port settings + */ +struct PortSettings { + QSerialPort::BaudRate BaudRate; + QSerialPort::DataBits DataBits; + QSerialPort::Parity Parity; + QSerialPort::StopBits StopBits; + QSerialPort::FlowControl FlowControl; + long Timeout_Millisec; +}; + class GpsDisplayGadgetConfiguration : public IUAVGadgetConfiguration { Q_OBJECT public: @@ -48,23 +61,23 @@ public: } // set port configuration functions - void setSpeed(BaudRateType speed) + void setSpeed(QSerialPort::BaudRate speed) { m_defaultSpeed = speed; } - void setDataBits(DataBitsType databits) + void setDataBits(QSerialPort::DataBits databits) { m_defaultDataBits = databits; } - void setFlow(FlowType flow) + void setFlow(QSerialPort::FlowControl flow) { m_defaultFlow = flow; } - void setParity(ParityType parity) + void setParity(QSerialPort::Parity parity) { m_defaultParity = parity; } - void setStopBits(StopBitsType stopbits) + void setStopBits(QSerialPort::StopBits stopbits) { m_defaultStopBits = stopbits; } @@ -82,23 +95,23 @@ public: { return m_defaultPort; } - BaudRateType speed() + QSerialPort::BaudRate speed() { return m_defaultSpeed; } - FlowType flow() + QSerialPort::FlowControl flow() { return m_defaultFlow; } - DataBitsType dataBits() + QSerialPort::DataBits dataBits() { return m_defaultDataBits; } - StopBitsType stopBits() + QSerialPort::StopBits stopBits() { return m_defaultStopBits; } - ParityType parity() + QSerialPort::Parity parity() { return m_defaultParity; } @@ -113,11 +126,11 @@ public: private: QString m_connectionMode; QString m_defaultPort; - BaudRateType m_defaultSpeed; - DataBitsType m_defaultDataBits; - FlowType m_defaultFlow; - ParityType m_defaultParity; - StopBitsType m_defaultStopBits; + QSerialPort::BaudRate m_defaultSpeed; + QSerialPort::DataBits m_defaultDataBits; + QSerialPort::FlowControl m_defaultFlow; + QSerialPort::Parity m_defaultParity; + QSerialPort::StopBits m_defaultStopBits; long m_defaultTimeOut; }; diff --git a/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplaygadgetoptionspage.cpp b/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplaygadgetoptionspage.cpp index be8646636..2d5681b4f 100644 --- a/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplaygadgetoptionspage.cpp +++ b/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplaygadgetoptionspage.cpp @@ -36,131 +36,12 @@ GpsDisplayGadgetOptionsPage::GpsDisplayGadgetOptionsPage(GpsDisplayGadgetConfiguration *config, QObject *parent) : IOptionsPage(parent), m_config(config) +{} + +bool sortPorts(QSerialPortInfo const & s1, QSerialPortInfo const & s2) { -// Taken from the uploader gadget, since we also can use a serial port for this -// Gadget - - // the begining of some ugly code -// diferent OS's have diferent serial port capabilities -#ifdef Q_OS_WIN -// load windows port capabilities - BaudRateTypeString - << "BAUD110" - << "BAUD300" - << "BAUD600" - << "BAUD1200" - << "BAUD2400" - << "BAUD4800" - << "BAUD9600" - << "BAUD14400" - << "BAUD19200" - << "BAUD38400" - << "BAUD56000" - << "BAUD57600" - << "BAUD115200" - << "BAUD128000" - << "BAUD256000"; - DataBitsTypeString - << "DATA_5" - << "DATA_6" - << "DATA_7" - << "DATA_8"; - ParityTypeString - << "PAR_NONE" - << "PAR_ODD" - << "PAR_EVEN" - << "PAR_MARK" // WINDOWS ONLY - << "PAR_SPACE"; - StopBitsTypeString - << "STOP_1" - << "STOP_1_5" // WINDOWS ONLY - << "STOP_2"; -#else // ifdef Q_OS_WIN -// load POSIX port capabilities - BaudRateTypeString - - << "BAUD50" // POSIX ONLY - << "BAUD75" // POSIX ONLY - << "BAUD110" - << "BAUD134" // POSIX ONLY - << "BAUD150" // POSIX ONLY - << "BAUD200" // POSIX ONLY - << "BAUD300" - << "BAUD600" - << "BAUD1200" - << "BAUD1800" // POSIX ONLY - << "BAUD2400" - << "BAUD4800" - << "BAUD9600" - << "BAUD19200" - << "BAUD38400" - << "BAUD57600" - << "BAUD76800" // POSIX ONLY - << "BAUD115200"; - DataBitsTypeString - << "DATA_5" - << "DATA_6" - << "DATA_7" - << "DATA_8"; - ParityTypeString - << "PAR_NONE" - << "PAR_ODD" - << "PAR_EVEN" - << "PAR_SPACE"; - StopBitsTypeString - << "STOP_1" - << "STOP_2"; -#endif // ifdef Q_OS_WIN -// load all OS's capabilities - BaudRateTypeStringALL - << "BAUD50" // POSIX ONLY - << "BAUD75" // POSIX ONLY - << "BAUD110" - << "BAUD134" // POSIX ONLY - << "BAUD150" // POSIX ONLY - << "BAUD200" // POSIX ONLY - << "BAUD300" - << "BAUD600" - << "BAUD1200" - << "BAUD1800" // POSIX ONLY - << "BAUD2400" - << "BAUD4800" - << "BAUD9600" - << "BAUD14400" - << "BAUD19200" - << "BAUD38400" - << "BAUD56000" - << "BAUD57600" - << "BAUD76800" // POSIX ONLY - << "BAUD115200" - << "BAUD128000" - << "BAUD256000"; - DataBitsTypeStringALL - << "DATA_5" - << "DATA_6" - << "DATA_7" - << "DATA_8"; - ParityTypeStringALL - << "PAR_NONE" - << "PAR_ODD" - << "PAR_EVEN" - << "PAR_MARK" // WINDOWS ONLY - << "PAR_SPACE"; - StopBitsTypeStringALL - << "STOP_1" - << "STOP_1_5" // WINDOWS ONLY - << "STOP_2"; - - FlowTypeString - << "FLOW_OFF" - << "FLOW_HARDWARE" - << "FLOW_XONXOFF"; + return s1.portName() < s2.portName(); } -bool sortPorts(QextPortInfo const & s1, QextPortInfo const & s2) -{ - return s1.portName < s2.portName; -} - // creates options page widget (uses the UI file) QWidget *GpsDisplayGadgetOptionsPage::createPage(QWidget *parent) @@ -173,11 +54,11 @@ QWidget *GpsDisplayGadgetOptionsPage::createPage(QWidget *parent) // PORTS - QList ports = QextSerialEnumerator::getPorts(); + QList ports = QSerialPortInfo::availablePorts(); qSort(ports.begin(), ports.end(), sortPorts); - foreach(QextPortInfo port, ports) { - qDebug() << "Adding port: " << port.friendName << " (" << port.portName << ")"; - options_page->portComboBox->addItem(port.friendName, port.friendName); + foreach(QSerialPortInfo port, ports) { + qDebug() << "Adding port: " << port.systemLocation() << " (" << port.portName() << ")"; + options_page->portComboBox->addItem(port.portName(), port.portName()); } int portIndex = options_page->portComboBox->findData(m_config->port()); @@ -187,41 +68,64 @@ QWidget *GpsDisplayGadgetOptionsPage::createPage(QWidget *parent) } // BAUDRATES - options_page->portSpeedComboBox->addItems(BaudRateTypeString); + options_page->portSpeedComboBox->addItem("Baud1200", QSerialPort::Baud1200); + options_page->portSpeedComboBox->addItem("Baud2400", QSerialPort::Baud2400); + options_page->portSpeedComboBox->addItem("Baud4800", QSerialPort::Baud4800); + options_page->portSpeedComboBox->addItem("Baud9600", QSerialPort::Baud9600); + options_page->portSpeedComboBox->addItem("Baud19200", QSerialPort::Baud19200); + options_page->portSpeedComboBox->addItem("Baud38400", QSerialPort::Baud38400); + options_page->portSpeedComboBox->addItem("Baud57600", QSerialPort::Baud57600); + options_page->portSpeedComboBox->addItem("Baud115200", QSerialPort::Baud115200); + options_page->portSpeedComboBox->addItem("UnknownBaud", QSerialPort::UnknownBaud); - int portSpeedIndex = options_page->portSpeedComboBox->findText(BaudRateTypeStringALL.at((int)m_config->speed())); + int portSpeedIndex = options_page->portSpeedComboBox->findData(m_config->speed()); if (portSpeedIndex != -1) { options_page->portSpeedComboBox->setCurrentIndex(portSpeedIndex); } // FLOW CONTROL - options_page->flowControlComboBox->addItems(FlowTypeString); + options_page->flowControlComboBox->addItem("NoFlowControl", QSerialPort::NoFlowControl); + options_page->flowControlComboBox->addItem("HardwareControl", QSerialPort::HardwareControl); + options_page->flowControlComboBox->addItem("SoftwareControl", QSerialPort::SoftwareControl); + options_page->flowControlComboBox->addItem("UnknownFlowControl", QSerialPort::UnknownFlowControl); - int flowControlIndex = options_page->flowControlComboBox->findText(FlowTypeString.at((int)m_config->flow())); + int flowControlIndex = options_page->flowControlComboBox->findData(m_config->flow()); if (flowControlIndex != -1) { options_page->flowControlComboBox->setCurrentIndex(flowControlIndex); } // DATABITS - options_page->dataBitsComboBox->addItems(DataBitsTypeString); + options_page->dataBitsComboBox->addItem("Data5", QSerialPort::Data5); + options_page->dataBitsComboBox->addItem("Data6", QSerialPort::Data6); + options_page->dataBitsComboBox->addItem("Data7", QSerialPort::Data7); + options_page->dataBitsComboBox->addItem("Data8", QSerialPort::Data8); + options_page->dataBitsComboBox->addItem("UnknownDataBits", QSerialPort::UnknownDataBits); - int dataBitsIndex = options_page->dataBitsComboBox->findText(DataBitsTypeStringALL.at((int)m_config->dataBits())); + int dataBitsIndex = options_page->dataBitsComboBox->findData(m_config->dataBits()); if (dataBitsIndex != -1) { options_page->dataBitsComboBox->setCurrentIndex(dataBitsIndex); } // STOPBITS - options_page->stopBitsComboBox->addItems(StopBitsTypeString); + options_page->stopBitsComboBox->addItem("OneStop", QSerialPort::OneStop); + options_page->stopBitsComboBox->addItem("OneAndHalfStop", QSerialPort::OneAndHalfStop); + options_page->stopBitsComboBox->addItem("TwoStop", QSerialPort::TwoStop); + options_page->stopBitsComboBox->addItem("UnknownStopBits", QSerialPort::UnknownStopBits); - int stopBitsIndex = options_page->stopBitsComboBox->findText(StopBitsTypeStringALL.at((int)m_config->stopBits())); + int stopBitsIndex = options_page->stopBitsComboBox->findData(m_config->stopBits()); if (stopBitsIndex != -1) { options_page->stopBitsComboBox->setCurrentIndex(stopBitsIndex); } // PARITY - options_page->parityComboBox->addItems(ParityTypeString); + options_page->parityComboBox->addItem("NoParity", QSerialPort::NoParity); + options_page->parityComboBox->addItem("EvenParity", QSerialPort::EvenParity); + options_page->parityComboBox->addItem("OddParity", QSerialPort::OddParity); + options_page->parityComboBox->addItem("SpaceParity", QSerialPort::SpaceParity); + options_page->parityComboBox->addItem("MarkParity", QSerialPort::MarkParity); + options_page->parityComboBox->addItem("UnknownParity", QSerialPort::UnknownParity); - int parityIndex = options_page->parityComboBox->findText(ParityTypeStringALL.at((int)m_config->parity())); + int parityIndex = options_page->parityComboBox->findData(m_config->parity()); if (parityIndex != -1) { options_page->parityComboBox->setCurrentIndex(parityIndex); } @@ -254,11 +158,11 @@ void GpsDisplayGadgetOptionsPage::apply() m_config->setPort(options_page->portComboBox->itemData(portIndex).toString()); qDebug() << "apply(): port is " << m_config->port(); - m_config->setSpeed((BaudRateType)BaudRateTypeStringALL.indexOf(options_page->portSpeedComboBox->currentText())); - m_config->setFlow((FlowType)FlowTypeString.indexOf(options_page->flowControlComboBox->currentText())); - m_config->setDataBits((DataBitsType)DataBitsTypeStringALL.indexOf(options_page->dataBitsComboBox->currentText())); - m_config->setStopBits((StopBitsType)StopBitsTypeStringALL.indexOf(options_page->stopBitsComboBox->currentText())); - m_config->setParity((ParityType)ParityTypeStringALL.indexOf(options_page->parityComboBox->currentText())); + m_config->setSpeed((QSerialPort::BaudRate)options_page->portSpeedComboBox->itemData(options_page->portSpeedComboBox->currentIndex()).toInt()); + m_config->setFlow((QSerialPort::FlowControl)options_page->flowControlComboBox->itemData(options_page->flowControlComboBox->currentIndex()).toInt()); + m_config->setDataBits((QSerialPort::DataBits)options_page->dataBitsComboBox->itemData(options_page->dataBitsComboBox->currentIndex()).toInt()); + m_config->setStopBits((QSerialPort::StopBits)options_page->stopBitsComboBox->itemData(options_page->stopBitsComboBox->currentIndex()).toInt()); + m_config->setParity((QSerialPort::Parity)options_page->parityComboBox->itemData(options_page->parityComboBox->currentIndex()).toInt()); m_config->setTimeOut(options_page->timeoutSpinBox->value()); m_config->setConnectionMode(options_page->connectionMode->currentText()); } diff --git a/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplaygadgetoptionspage.h b/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplaygadgetoptionspage.h index a2fe2861f..755125249 100644 --- a/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplaygadgetoptionspage.h +++ b/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplaygadgetoptionspage.h @@ -28,7 +28,8 @@ #ifndef GPSDISPLAYGADGETOPTIONSPAGE_H #define GPSDISPLAYGADGETOPTIONSPAGE_H -#include +#include +#include #include "coreplugin/dialogs/ioptionspage.h" #include "QString" #include @@ -59,16 +60,6 @@ private: Ui::GpsDisplayGadgetOptionsPage *options_page; GpsDisplayGadgetConfiguration *m_config; - QStringList BaudRateTypeString; - QStringList BaudRateTypeStringALL; - QStringList DataBitsTypeStringALL; - QStringList ParityTypeStringALL; - QStringList StopBitsTypeStringALL; - QStringList DataBitsTypeString; - QStringList ParityTypeString; - QStringList StopBitsTypeString; - QStringList FlowTypeString; - private slots: }; diff --git a/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplayplugin.cpp b/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplayplugin.cpp index 0e2909bce..50915da1d 100644 --- a/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplayplugin.cpp +++ b/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplayplugin.cpp @@ -62,4 +62,3 @@ void GpsDisplayPlugin::shutdown() { // Do nothing } -Q_EXPORT_PLUGIN(GpsDisplayPlugin) diff --git a/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplayplugin.h b/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplayplugin.h index f867c552d..8652481f5 100644 --- a/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplayplugin.h +++ b/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplayplugin.h @@ -33,6 +33,8 @@ class GpsDisplayGadgetFactory; class GpsDisplayPlugin : public ExtensionSystem::IPlugin { + Q_OBJECT + Q_PLUGIN_METADATA(IID "OpenPilot.GpsDisplay") public: GpsDisplayPlugin(); ~GpsDisplayPlugin(); diff --git a/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplaywidget.cpp b/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplaywidget.cpp index 67f30080a..e8b5df611 100644 --- a/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplaywidget.cpp +++ b/ground/openpilotgcs/src/plugins/gpsdisplay/gpsdisplaywidget.cpp @@ -31,6 +31,11 @@ #include + +// The following is needed to workaround the problem here: +// https://bugreports.qt-project.org/browse/QTBUG-26000 +#undef B0 + #include #include diff --git a/ground/openpilotgcs/src/plugins/gpsdisplay/gpssnrwidget.h b/ground/openpilotgcs/src/plugins/gpsdisplay/gpssnrwidget.h index 6b8d2e7b8..1ff48b168 100644 --- a/ground/openpilotgcs/src/plugins/gpsdisplay/gpssnrwidget.h +++ b/ground/openpilotgcs/src/plugins/gpsdisplay/gpssnrwidget.h @@ -2,7 +2,7 @@ #define GPSSNRWIDGET_H #include -#include +#include class GpsSnrWidget : public QGraphicsView { Q_OBJECT diff --git a/ground/openpilotgcs/src/plugins/gpsdisplay/nmeaparser.cpp b/ground/openpilotgcs/src/plugins/gpsdisplay/nmeaparser.cpp index af0193e7c..0899efef8 100644 --- a/ground/openpilotgcs/src/plugins/gpsdisplay/nmeaparser.cpp +++ b/ground/openpilotgcs/src/plugins/gpsdisplay/nmeaparser.cpp @@ -31,9 +31,9 @@ #include #include #include -#include -#include -#include +#include +#include +#include // Message Codes #define NMEA_NODATA 0 // No data. Packet not available, bad, or not decoded @@ -139,7 +139,7 @@ void NMEAParser::nmeaTerminateAtChecksum(char *gps_buffer) uint8_t NMEAParser::nmeaProcess(cBuffer *rxBuffer) { uint8_t foundpacket = NMEA_NODATA; - uint8_t startFlag = FALSE; + uint8_t startFlag = false; // u08 data; uint16_t i, j; @@ -149,7 +149,7 @@ uint8_t NMEAParser::nmeaProcess(cBuffer *rxBuffer) // look for a start of NMEA packet if (bufferGetAtIndex(rxBuffer, 0) == '$') { // found start - startFlag = TRUE; + startFlag = true; // when start is found, we leave it intact in the receive buffer // in case the full NMEA string is not completely received. The // start will be detected in the next nmeaProcess iteration. diff --git a/ground/openpilotgcs/src/plugins/hitl/aerosimrc/src/plugin.cpp b/ground/openpilotgcs/src/plugins/hitl/aerosimrc/src/plugin.cpp index 8aac55d6b..f279a84c8 100644 --- a/ground/openpilotgcs/src/plugins/hitl/aerosimrc/src/plugin.cpp +++ b/ground/openpilotgcs/src/plugins/hitl/aerosimrc/src/plugin.cpp @@ -76,7 +76,7 @@ SIM_DLL_EXPORT void AeroSIMRC_Plugin_ReportStructSizes(quint32 *sizeSimToPlugin, quint32 *sizePluginInit) { // debug redirection - qInstallMsgHandler(myQDebugHandler); + qInstallMessageHandler(myQDebugHandler); qDebug() << "AeroSIMRC_Plugin_ReportStructSizes"; *sizeSimToPlugin = sizeof(simToPlugin); @@ -393,6 +393,6 @@ SIM_DLL_EXPORT void AeroSIMRC_Plugin_Run(const simToPlugin *stp, // debug info is shown on the screen InfoText(stp, pts); - pts->dbgInfoText = debugInfo.toAscii(); + pts->dbgInfoText = debugInfo.toLatin1(); isFirstRun = false; } diff --git a/ground/openpilotgcs/src/plugins/hitl/aerosimrc/src/plugin.pro b/ground/openpilotgcs/src/plugins/hitl/aerosimrc/src/plugin.pro index 27684421b..dab7ba70a 100644 --- a/ground/openpilotgcs/src/plugins/hitl/aerosimrc/src/plugin.pro +++ b/ground/openpilotgcs/src/plugins/hitl/aerosimrc/src/plugin.pro @@ -51,19 +51,19 @@ equals(copydata, 1) { # Qt DLLs QT_DLLS = \ - QtCore4.dll \ - QtNetwork4.dll + Qt5Core.dll \ + Qt5Network.dll for(dll, QT_DLLS) { data_copy.commands += $(COPY_FILE) $$targetPath(\"$$[QT_INSTALL_BINS]/$$dll\") $$targetPath(\"$$SIM_DIR/$$dll\") $$addNewline() } # MinGW DLLs - MINGW_DLLS = \ - libgcc_s_dw2-1.dll \ - mingwm10.dll - for(dll, MINGW_DLLS) { - data_copy.commands += $(COPY_FILE) $$targetPath(\"$$(QTMINGW)/$$dll\") $$targetPath(\"$$SIM_DIR/$$dll\") $$addNewline() - } + #MINGW_DLLS = \ + # libgcc_s_dw2-1.dll \ + # mingwm10.dll + #for(dll, MINGW_DLLS) { + # data_copy.commands += $(COPY_FILE) $$targetPath(\"$$(QTMINGW)/$$dll\") $$targetPath(\"$$SIM_DIR/$$dll\") $$addNewline() + #} data_copy.target = FORCE QMAKE_EXTRA_TARGETS += data_copy diff --git a/ground/openpilotgcs/src/plugins/hitl/aerosimrc/src/qdebughandler.cpp b/ground/openpilotgcs/src/plugins/hitl/aerosimrc/src/qdebughandler.cpp index 4e859c60c..e1c39084b 100644 --- a/ground/openpilotgcs/src/plugins/hitl/aerosimrc/src/qdebughandler.cpp +++ b/ground/openpilotgcs/src/plugins/hitl/aerosimrc/src/qdebughandler.cpp @@ -27,7 +27,7 @@ #include "qdebughandler.h" -void myQDebugHandler(QtMsgType type, const char *msg) +void myQDebugHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg) { static bool firstRun = true; QString txt; diff --git a/ground/openpilotgcs/src/plugins/hitl/aerosimrc/src/qdebughandler.h b/ground/openpilotgcs/src/plugins/hitl/aerosimrc/src/qdebughandler.h index d41dc6a67..dde0c91b7 100644 --- a/ground/openpilotgcs/src/plugins/hitl/aerosimrc/src/qdebughandler.h +++ b/ground/openpilotgcs/src/plugins/hitl/aerosimrc/src/qdebughandler.h @@ -32,6 +32,6 @@ #include #include -void myQDebugHandler(QtMsgType type, const char *msg); +void myQDebugHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg); #endif // QDEBUGHANDLER_H diff --git a/ground/openpilotgcs/src/plugins/hitl/aerosimrc/src/udptest.pro b/ground/openpilotgcs/src/plugins/hitl/aerosimrc/src/udptest.pro index ac63be5ae..1d9a811e0 100644 --- a/ground/openpilotgcs/src/plugins/hitl/aerosimrc/src/udptest.pro +++ b/ground/openpilotgcs/src/plugins/hitl/aerosimrc/src/udptest.pro @@ -1,6 +1,6 @@ include(../../../../../openpilotgcs.pri) -QT += core gui network +QT += core gui network widgets TEMPLATE = app TARGET = udp_test diff --git a/ground/openpilotgcs/src/plugins/hitl/aerosimrc/src/udptestmain.cpp b/ground/openpilotgcs/src/plugins/hitl/aerosimrc/src/udptestmain.cpp index 252906baa..a5d6300b7 100644 --- a/ground/openpilotgcs/src/plugins/hitl/aerosimrc/src/udptestmain.cpp +++ b/ground/openpilotgcs/src/plugins/hitl/aerosimrc/src/udptestmain.cpp @@ -25,7 +25,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include +#include #include "udptestwidget.h" int main(int argc, char *argv[]) diff --git a/ground/openpilotgcs/src/plugins/hitl/fgsimulator.cpp b/ground/openpilotgcs/src/plugins/hitl/fgsimulator.cpp index a73501b8e..3a1d9d2ae 100644 --- a/ground/openpilotgcs/src/plugins/hitl/fgsimulator.cpp +++ b/ground/openpilotgcs/src/plugins/hitl/fgsimulator.cpp @@ -82,7 +82,7 @@ bool FGSimulator::setupProcess() // xmlFile.close(); // QFile xmlFileOut(pathData + "/Protocol/opfgprotocol.xml"); // xmlFileOut.open(QIODevice::WriteOnly | QIODevice::Text); - // xmlFileOut.write(xml.toAscii()); + // xmlFileOut.write(xml.toLatin1()); // xmlFileOut.close(); Qt::HANDLE mainThread = QThread::currentThreadId(); @@ -125,7 +125,7 @@ bool FGSimulator::setupProcess() // Start FlightGear - only if checkbox is selected in HITL options page if (settings.startSim) { QString cmd("\"" + settings.binPath + "\" " + args + "\n"); - simProcess->write(cmd.toAscii()); + simProcess->write(cmd.toLatin1()); } else { emit processOutput("Start Flightgear from the command line with the following arguments: \n\n" + args + "\n\n" + "You can optionally run Flightgear from a networked computer.\n" + @@ -197,7 +197,7 @@ void FGSimulator::transmitUpdate() .arg(throttle) // throttle .arg(udpCounterGCSsend); // UDP packet counter delay - QByteArray data = cmd.toAscii(); + QByteArray data = cmd.toLatin1(); if (outSocket->writeDatagram(data, QHostAddress(settings.remoteAddress), settings.outPort) == -1) { emit processOutput("Error sending UDP packet to FG: " + outSocket->errorString() + "\n"); diff --git a/ground/openpilotgcs/src/plugins/hitl/hitlconfiguration.h b/ground/openpilotgcs/src/plugins/hitl/hitlconfiguration.h index 1b434c9ff..d9d0ea592 100644 --- a/ground/openpilotgcs/src/plugins/hitl/hitlconfiguration.h +++ b/ground/openpilotgcs/src/plugins/hitl/hitlconfiguration.h @@ -29,7 +29,7 @@ #define HITLCONFIGURATION_H #include -#include +#include #include #include diff --git a/ground/openpilotgcs/src/plugins/hitl/hitlplugin.cpp b/ground/openpilotgcs/src/plugins/hitl/hitlplugin.cpp index a1bd18e8a..0ce9e9141 100644 --- a/ground/openpilotgcs/src/plugins/hitl/hitlplugin.cpp +++ b/ground/openpilotgcs/src/plugins/hitl/hitlplugin.cpp @@ -71,4 +71,3 @@ void HITLPlugin::shutdown() { // Do nothing } -Q_EXPORT_PLUGIN(HITLPlugin) diff --git a/ground/openpilotgcs/src/plugins/hitl/hitlplugin.h b/ground/openpilotgcs/src/plugins/hitl/hitlplugin.h index cb7254edb..30bde6c7f 100644 --- a/ground/openpilotgcs/src/plugins/hitl/hitlplugin.h +++ b/ground/openpilotgcs/src/plugins/hitl/hitlplugin.h @@ -36,6 +36,8 @@ class HITLFactory; class HITLPlugin : public ExtensionSystem::IPlugin { + Q_OBJECT + Q_PLUGIN_METADATA(IID "OpenPilot.HITL") public: HITLPlugin(); ~HITLPlugin(); diff --git a/ground/openpilotgcs/src/plugins/hitl/hitlwidget.cpp b/ground/openpilotgcs/src/plugins/hitl/hitlwidget.cpp index 42e449b7c..045d37485 100644 --- a/ground/openpilotgcs/src/plugins/hitl/hitlwidget.cpp +++ b/ground/openpilotgcs/src/plugins/hitl/hitlwidget.cpp @@ -26,7 +26,6 @@ */ #include "hitlwidget.h" #include "ui_hitlwidget.h" -#include "qxtlogger.h" #include #include #include @@ -85,7 +84,7 @@ void HITLWidget::startButtonClicked() } if (!HITLPlugin::typeSimulators.size()) { - qxtLog->info("There is no registered simulators, add through HITLPlugin::addSimulator"); + qWarning("There is no registered simulators, add through HITLPlugin::addSimulator"); return; } @@ -111,7 +110,7 @@ void HITLWidget::startButtonClicked() // Setup process widget->textBrowser->append(QString("[%1] Starting %2... ").arg(QTime::currentTime().toString("hh:mm:ss")).arg(creator->Description())); - qxtLog->info("HITL: Starting " + creator->Description()); + qWarning() << ("HITL: Starting " + creator->Description()); // Start bridge bool ret = QMetaObject::invokeMethod(simulator, "setupProcess", Qt::QueuedConnection); @@ -122,7 +121,7 @@ void HITLWidget::startButtonClicked() widget->startButton->setEnabled(false); widget->stopButton->setEnabled(true); - qxtLog->info("HITL: Starting bridge, initializing flight simulator and Autopilot connections"); + qWarning("HITL: Starting bridge, initializing flight simulator and Autopilot connections"); connect(simulator, SIGNAL(autopilotConnected()), this, SLOT(onAutopilotConnect()), Qt::QueuedConnection); connect(simulator, SIGNAL(autopilotDisconnected()), this, SLOT(onAutopilotDisconnect()), Qt::QueuedConnection); @@ -177,26 +176,26 @@ void HITLWidget::onAutopilotConnect() { widget->apLabel->setStyleSheet(strStyleEnable); widget->apLabel->setText(strAutopilotConnected); - qxtLog->info("HITL: Autopilot connected, initializing for HITL simulation"); + qWarning("HITL: Autopilot connected, initializing for HITL simulation"); } void HITLWidget::onAutopilotDisconnect() { widget->apLabel->setStyleSheet(strStyleDisable); widget->apLabel->setText(strAutopilotDisconnected); - qxtLog->info(strAutopilotDisconnected); + qWarning() << strAutopilotDisconnected; } void HITLWidget::onSimulatorConnect() { widget->simLabel->setStyleSheet(strStyleEnable); widget->simLabel->setText(" " + simulator->Name() + " connected "); - qxtLog->info(QString("HITL: %1 connected").arg(simulator->Name())); + qWarning() << (QString("HITL: %1 connected").arg(simulator->Name())); } void HITLWidget::onSimulatorDisconnect() { widget->simLabel->setStyleSheet(strStyleDisable); widget->simLabel->setText(" " + simulator->Name() + " disconnected "); - qxtLog->info(QString("HITL: %1 disconnected").arg(simulator->Name())); + qWarning() << (QString("HITL: %1 disconnected").arg(simulator->Name())); } diff --git a/ground/openpilotgcs/src/plugins/hitl/hitlwidget.h b/ground/openpilotgcs/src/plugins/hitl/hitlwidget.h index 5a746c430..15fcbcf81 100644 --- a/ground/openpilotgcs/src/plugins/hitl/hitlwidget.h +++ b/ground/openpilotgcs/src/plugins/hitl/hitlwidget.h @@ -28,7 +28,7 @@ #ifndef HITLWIDGET_H #define HITLWIDGET_H -#include +#include #include #include "simulator.h" diff --git a/ground/openpilotgcs/src/plugins/hitl/il2simulator.cpp b/ground/openpilotgcs/src/plugins/hitl/il2simulator.cpp index ffe1764d4..4111dff0b 100644 --- a/ground/openpilotgcs/src/plugins/hitl/il2simulator.cpp +++ b/ground/openpilotgcs/src/plugins/hitl/il2simulator.cpp @@ -66,7 +66,6 @@ #include #include #include -#include const float IL2Simulator::FT2M = 12 * .254; const float IL2Simulator::KT2MPS = 0.514444444; @@ -94,7 +93,7 @@ void IL2Simulator::setupUdpPorts(const QString & host, int inPort, int outPort) inSocket->connectToHost(host, inPort); // IL2 if (!inSocket->waitForConnected()) { - qxtLog->error(Name() + " cann't connect to UDP Port: " + QString::number(inPort)); + qCritical() << Name() + " cann't connect to UDP Port: " + QString::number(inPort); } } @@ -115,7 +114,7 @@ void IL2Simulator::transmitUpdate() .arg(ailerons) .arg(elevator) .arg(rudder); - QByteArray data = cmd.toAscii(); + QByteArray data = cmd.toLatin1(); // outSocket->write(data); inSocket->write(data); // for IL2 must send to the same port as input!!!!!!!!!!!!! } diff --git a/ground/openpilotgcs/src/plugins/hitl/simulator.cpp b/ground/openpilotgcs/src/plugins/hitl/simulator.cpp index 67e0de65b..c77b26f91 100644 --- a/ground/openpilotgcs/src/plugins/hitl/simulator.cpp +++ b/ground/openpilotgcs/src/plugins/hitl/simulator.cpp @@ -27,7 +27,6 @@ #include "simulator.h" -#include "qxtlogger.h" #include "extensionsystem/pluginmanager.h" #include "coreplugin/icore.h" #include "coreplugin/threadmanager.h" @@ -182,7 +181,7 @@ void Simulator::onStart() "inputPort: " + QString::number(settings.inPort) + "\n" + \ "outputPort: " + QString::number(settings.outPort) + "\n"); - qxtLog->info("\nLocal interface: " + settings.hostAddress + "\n" + \ + qDebug() << ("\nLocal interface: " + settings.hostAddress + "\n" + \ "Remote interface: " + settings.remoteAddress + "\n" + \ "inputPort: " + QString::number(settings.inPort) + "\n" + \ "outputPort: " + QString::number(settings.outPort) + "\n"); diff --git a/ground/openpilotgcs/src/plugins/hitl/xplanesimulator.cpp b/ground/openpilotgcs/src/plugins/hitl/xplanesimulator.cpp index f450c25b1..53609951e 100644 --- a/ground/openpilotgcs/src/plugins/hitl/xplanesimulator.cpp +++ b/ground/openpilotgcs/src/plugins/hitl/xplanesimulator.cpp @@ -61,7 +61,6 @@ #include #include #include -#include void TraceBuf(const char *buf, int len); @@ -220,7 +219,7 @@ void XplaneSimulator::processUpdate(const QByteArray & dataBuf) if (data.left(4) == "DATA") { // check type of packet buf.remove(0, 5); if (dataBuf.size() % 36) { - qxtLog->info("incorrect length of UDP packet: ", buf); + qDebug() << ("incorrect length of UDP packet: " + buf); return; // incorrect length of struct } // check correctness of data length, length must be multiple of (id_size+8*float_size)=4+8*4=36 diff --git a/ground/openpilotgcs/src/plugins/importexport/importexportplugin.cpp b/ground/openpilotgcs/src/plugins/importexport/importexportplugin.cpp index 7877844de..87f20b1a7 100644 --- a/ground/openpilotgcs/src/plugins/importexport/importexportplugin.cpp +++ b/ground/openpilotgcs/src/plugins/importexport/importexportplugin.cpp @@ -91,8 +91,6 @@ void ImportExportPlugin::shutdown() { // Do nothing } -Q_EXPORT_PLUGIN(ImportExportPlugin) - /** * @} * @} diff --git a/ground/openpilotgcs/src/plugins/importexport/importexportplugin.h b/ground/openpilotgcs/src/plugins/importexport/importexportplugin.h index 92d8e0c6b..ae91043f9 100644 --- a/ground/openpilotgcs/src/plugins/importexport/importexportplugin.h +++ b/ground/openpilotgcs/src/plugins/importexport/importexportplugin.h @@ -32,6 +32,7 @@ class IMPORTEXPORT_EXPORT ImportExportPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "OpenPilot.ImportExport") public: ImportExportPlugin(); diff --git a/ground/openpilotgcs/src/plugins/ipconnection/ipconnectionoptionspage.cpp b/ground/openpilotgcs/src/plugins/ipconnection/ipconnectionoptionspage.cpp index af274a67c..751fc3731 100644 --- a/ground/openpilotgcs/src/plugins/ipconnection/ipconnectionoptionspage.cpp +++ b/ground/openpilotgcs/src/plugins/ipconnection/ipconnectionoptionspage.cpp @@ -27,13 +27,13 @@ #include "ipconnectionoptionspage.h" #include "ipconnectionconfiguration.h" -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include #include "ui_ipconnectionoptionspage.h" diff --git a/ground/openpilotgcs/src/plugins/ipconnection/ipconnectionplugin.cpp b/ground/openpilotgcs/src/plugins/ipconnection/ipconnectionplugin.cpp index 7ee944071..db1f6ed5b 100644 --- a/ground/openpilotgcs/src/plugins/ipconnection/ipconnectionplugin.cpp +++ b/ground/openpilotgcs/src/plugins/ipconnection/ipconnectionplugin.cpp @@ -35,8 +35,8 @@ #include "ipconnection_internal.h" #include -#include -#include +#include +#include #include #include #include @@ -258,5 +258,3 @@ bool IPconnectionPlugin::initialize(const QStringList &arguments, QString *error return true; } - -Q_EXPORT_PLUGIN(IPconnectionPlugin) diff --git a/ground/openpilotgcs/src/plugins/ipconnection/ipconnectionplugin.h b/ground/openpilotgcs/src/plugins/ipconnection/ipconnectionplugin.h index 7a1bea5bb..d21b4e407 100644 --- a/ground/openpilotgcs/src/plugins/ipconnection/ipconnectionplugin.h +++ b/ground/openpilotgcs/src/plugins/ipconnection/ipconnectionplugin.h @@ -88,7 +88,7 @@ private: class IPconnection_EXPORT IPconnectionPlugin : public ExtensionSystem::IPlugin { Q_OBJECT - + Q_PLUGIN_METADATA(IID "OpenPilot.IPconnection") public: IPconnectionPlugin(); ~IPconnectionPlugin(); diff --git a/ground/openpilotgcs/src/plugins/lineardial/lineardialgadgetwidget.cpp b/ground/openpilotgcs/src/plugins/lineardial/lineardialgadgetwidget.cpp index d4ee357bb..567d039a9 100644 --- a/ground/openpilotgcs/src/plugins/lineardial/lineardialgadgetwidget.cpp +++ b/ground/openpilotgcs/src/plugins/lineardial/lineardialgadgetwidget.cpp @@ -27,7 +27,7 @@ #include "lineardialgadgetwidget.h" #include -#include +#include #include #include diff --git a/ground/openpilotgcs/src/plugins/lineardial/lineardialplugin.cpp b/ground/openpilotgcs/src/plugins/lineardial/lineardialplugin.cpp index 451be06fc..b794e423d 100644 --- a/ground/openpilotgcs/src/plugins/lineardial/lineardialplugin.cpp +++ b/ground/openpilotgcs/src/plugins/lineardial/lineardialplugin.cpp @@ -62,4 +62,3 @@ void LineardialPlugin::shutdown() { // Do nothing } -Q_EXPORT_PLUGIN(LineardialPlugin) diff --git a/ground/openpilotgcs/src/plugins/lineardial/lineardialplugin.h b/ground/openpilotgcs/src/plugins/lineardial/lineardialplugin.h index 820444c48..ef5eba6ad 100644 --- a/ground/openpilotgcs/src/plugins/lineardial/lineardialplugin.h +++ b/ground/openpilotgcs/src/plugins/lineardial/lineardialplugin.h @@ -33,6 +33,8 @@ class LineardialGadgetFactory; class LineardialPlugin : public ExtensionSystem::IPlugin { + Q_OBJECT + Q_PLUGIN_METADATA(IID "OpenPilot.Lineardial") public: LineardialPlugin(); ~LineardialPlugin(); diff --git a/ground/openpilotgcs/src/plugins/logging/logfile.cpp b/ground/openpilotgcs/src/plugins/logging/logfile.cpp index ce0dd4146..eaa299bfb 100644 --- a/ground/openpilotgcs/src/plugins/logging/logfile.cpp +++ b/ground/openpilotgcs/src/plugins/logging/logfile.cpp @@ -25,7 +25,7 @@ bool LogFile::open(OpenMode mode) return true; } - if (file.open(mode) == FALSE) { + if (file.open(mode) == false) { qDebug() << "Unable to open " << file.fileName() << " for logging"; return false; } diff --git a/ground/openpilotgcs/src/plugins/logging/logginggadgetwidget.cpp b/ground/openpilotgcs/src/plugins/logging/logginggadgetwidget.cpp index d5788322f..9c1838682 100644 --- a/ground/openpilotgcs/src/plugins/logging/logginggadgetwidget.cpp +++ b/ground/openpilotgcs/src/plugins/logging/logginggadgetwidget.cpp @@ -29,10 +29,10 @@ #include #include -#include -#include -#include -#include +#include +#include +#include +#include #include LoggingGadgetWidget::LoggingGadgetWidget(QWidget *parent) : QLabel(parent) diff --git a/ground/openpilotgcs/src/plugins/logging/logginggadgetwidget.h b/ground/openpilotgcs/src/plugins/logging/logginggadgetwidget.h index a2a166b3c..05e760505 100644 --- a/ground/openpilotgcs/src/plugins/logging/logginggadgetwidget.h +++ b/ground/openpilotgcs/src/plugins/logging/logginggadgetwidget.h @@ -28,7 +28,7 @@ #ifndef LoggingGADGETWIDGET_H_ #define LoggingGADGETWIDGET_H_ -#include +#include #include "extensionsystem/pluginmanager.h" #include "scope/scopeplugin.h" #include "scope/scopegadgetfactory.h" diff --git a/ground/openpilotgcs/src/plugins/logging/loggingplugin.cpp b/ground/openpilotgcs/src/plugins/logging/loggingplugin.cpp index cbf2dfe9d..552cc6ec5 100644 --- a/ground/openpilotgcs/src/plugins/logging/loggingplugin.cpp +++ b/ground/openpilotgcs/src/plugins/logging/loggingplugin.cpp @@ -438,8 +438,6 @@ void LoggingPlugin::shutdown() { // Do nothing } -Q_EXPORT_PLUGIN(LoggingPlugin) - /** * @} * @} diff --git a/ground/openpilotgcs/src/plugins/logging/loggingplugin.h b/ground/openpilotgcs/src/plugins/logging/loggingplugin.h index 64abda4fc..8f90c97d5 100644 --- a/ground/openpilotgcs/src/plugins/logging/loggingplugin.h +++ b/ground/openpilotgcs/src/plugins/logging/loggingplugin.h @@ -113,7 +113,7 @@ private: class LoggingPlugin : public ExtensionSystem::IPlugin { Q_OBJECT - + Q_PLUGIN_METADATA(IID "OpenPilot.Logging") public: LoggingPlugin(); ~LoggingPlugin(); diff --git a/ground/openpilotgcs/src/plugins/magicwaypoint/magicwaypointgadgetwidget.cpp b/ground/openpilotgcs/src/plugins/magicwaypoint/magicwaypointgadgetwidget.cpp index 91a46e787..37231eaa5 100644 --- a/ground/openpilotgcs/src/plugins/magicwaypoint/magicwaypointgadgetwidget.cpp +++ b/ground/openpilotgcs/src/plugins/magicwaypoint/magicwaypointgadgetwidget.cpp @@ -30,10 +30,10 @@ #include #include #include -#include -#include -#include -#include +#include +#include +#include +#include #include "uavobject.h" #include "uavobjectmanager.h" diff --git a/ground/openpilotgcs/src/plugins/magicwaypoint/magicwaypointgadgetwidget.h b/ground/openpilotgcs/src/plugins/magicwaypoint/magicwaypointgadgetwidget.h index 17994072d..1d8317b82 100644 --- a/ground/openpilotgcs/src/plugins/magicwaypoint/magicwaypointgadgetwidget.h +++ b/ground/openpilotgcs/src/plugins/magicwaypoint/magicwaypointgadgetwidget.h @@ -28,7 +28,7 @@ #ifndef MagicWaypointGADGETWIDGET_H_ #define MagicWaypointGADGETWIDGET_H_ -#include +#include #include "pathdesired.h" #include "positionstate.h" diff --git a/ground/openpilotgcs/src/plugins/magicwaypoint/magicwaypointplugin.cpp b/ground/openpilotgcs/src/plugins/magicwaypoint/magicwaypointplugin.cpp index 06ffe24dd..776c4d162 100644 --- a/ground/openpilotgcs/src/plugins/magicwaypoint/magicwaypointplugin.cpp +++ b/ground/openpilotgcs/src/plugins/magicwaypoint/magicwaypointplugin.cpp @@ -61,8 +61,6 @@ void MagicWaypointPlugin::shutdown() { // Do nothing } -Q_EXPORT_PLUGIN(MagicWaypointPlugin) - /** * @} * @} diff --git a/ground/openpilotgcs/src/plugins/magicwaypoint/magicwaypointplugin.h b/ground/openpilotgcs/src/plugins/magicwaypoint/magicwaypointplugin.h index 636c0c3f3..d93dfbe99 100644 --- a/ground/openpilotgcs/src/plugins/magicwaypoint/magicwaypointplugin.h +++ b/ground/openpilotgcs/src/plugins/magicwaypoint/magicwaypointplugin.h @@ -33,6 +33,8 @@ class MagicWaypointGadgetFactory; class MagicWaypointPlugin : public ExtensionSystem::IPlugin { + Q_OBJECT + Q_PLUGIN_METADATA(IID "OpenPilot.MagicWaypoint") public: MagicWaypointPlugin(); ~MagicWaypointPlugin(); diff --git a/ground/openpilotgcs/src/plugins/magicwaypoint/positionfield.cpp b/ground/openpilotgcs/src/plugins/magicwaypoint/positionfield.cpp index 65fd77069..eb3a8a96a 100644 --- a/ground/openpilotgcs/src/plugins/magicwaypoint/positionfield.cpp +++ b/ground/openpilotgcs/src/plugins/magicwaypoint/positionfield.cpp @@ -29,11 +29,11 @@ #include "extensionsystem/pluginmanager.h" #include #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include #include diff --git a/ground/openpilotgcs/src/plugins/modelview/modelviewgadgetoptionspage.h b/ground/openpilotgcs/src/plugins/modelview/modelviewgadgetoptionspage.h index e5875583f..144dcc1d3 100644 --- a/ground/openpilotgcs/src/plugins/modelview/modelviewgadgetoptionspage.h +++ b/ground/openpilotgcs/src/plugins/modelview/modelviewgadgetoptionspage.h @@ -29,11 +29,11 @@ #define MODELVIEWGADGETOPTIONSPAGE_H #include "coreplugin/dialogs/ioptionspage.h" -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include class ModelViewGadgetConfiguration; class QFileDialog; diff --git a/ground/openpilotgcs/src/plugins/modelview/modelviewgadgetwidget.cpp b/ground/openpilotgcs/src/plugins/modelview/modelviewgadgetwidget.cpp index 0c7a16a2c..6ce697e4f 100644 --- a/ground/openpilotgcs/src/plugins/modelview/modelviewgadgetwidget.cpp +++ b/ground/openpilotgcs/src/plugins/modelview/modelviewgadgetwidget.cpp @@ -39,7 +39,7 @@ ModelViewGadgetWidget::ModelViewGadgetWidget(QWidget *parent) : QGLWidget(new GLC_Context(QGLFormat(QGL::SampleBuffers)), parent) , m_Light() , m_World() - , m_GlView(this) + , m_GlView() , m_MoverController() , m_ModelBoundingBox() , m_MotionTimer() @@ -47,13 +47,21 @@ ModelViewGadgetWidget::ModelViewGadgetWidget(QWidget *parent) , bgFilename() , vboEnable(false) { + connect(&m_GlView, SIGNAL(updateOpenGL()), this, SLOT(updateGL())); setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); - CreateScene(); + + m_Light.setPosition(4000.0, 40000.0, 80000.0); + // m_GlView.setBackgroundColor(Qt::white); + m_Light.setAmbientColor(Qt::lightGray); + + m_GlView.cameraHandle()->setDefaultUpVector(glc::Z_AXIS); + m_GlView.cameraHandle()->setRearView(); QColor repColor; repColor.setRgbF(1.0, 0.11372, 0.11372, 0.0); m_MoverController = GLC_Factory::instance()->createDefaultMoverController(repColor, &m_GlView); + CreateScene(); // Get required UAVObjects ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); UAVObjectManager *objManager = pm->getObject(); @@ -101,15 +109,16 @@ void ModelViewGadgetWidget::reloadScene() //// Private functions //// void ModelViewGadgetWidget::initializeGL() { + // For VSYNC problem under Mac OS X + #if defined(Q_OS_MAC) + const GLint swapInterval = 1; + CGLSetParameter(CGLGetCurrentContext(), kCGLCPSwapInterval, &swapInterval); + #endif + // OpenGL initialization m_GlView.initGl(); - - m_Light.setPosition(4000.0, -40000.0, 80000.0); - m_Light.setAmbientColor(Qt::lightGray); - - m_GlView.cameraHandle()->setDefaultUpVector(glc::Z_AXIS); - m_GlView.cameraHandle()->setRearView(); - m_GlView.setToOrtho(true); // orthogonal view + // Reframe the scene + m_GlView.reframe(m_ModelBoundingBox); glEnable(GL_NORMALIZE); // Enable antialiasing @@ -135,7 +144,7 @@ void ModelViewGadgetWidget::paintGL() } // Load identity matrix - glLoadIdentity(); + GLC_Context::current()->glcLoadIdentity(); // Enable antialiasing glEnable(GL_MULTISAMPLE); @@ -144,8 +153,8 @@ void ModelViewGadgetWidget::paintGL() m_GlView.setDistMinAndMax(m_World.boundingBox()); // define view matrix - m_Light.glExecute(); m_GlView.glExecuteCam(); + m_Light.glExecute(); // Display the collection of GLC_Object m_World.render(0, glc::ShadingFlag); @@ -334,15 +343,7 @@ void ModelViewGadgetWidget::updateAttitude() m2.setRow(3, QVector4D(x, y, z, w)); QMatrix4x4 m0 = m1 * m2; // convert QMatrix4x4 to GLC_Matrix4x4 - GLC_Matrix4x4 rootObjectRotation; - { - double *newMatrixData = rootObjectRotation.setData(); - double *oldMatrixData = (double *)m0.data(); - for (int i = 0; i < 16; i++) { - newMatrixData[i] = oldMatrixData[i]; - } - } - // sets and updates the 3D model's matrix + GLC_Matrix4x4 rootObjectRotation(m0.data()); rootObject->structInstance()->setMatrix(rootObjectRotation); rootObject->updateChildrenAbsoluteMatrix(); updateGL(); diff --git a/ground/openpilotgcs/src/plugins/modelview/modelviewgadgetwidget.h b/ground/openpilotgcs/src/plugins/modelview/modelviewgadgetwidget.h index 930b462e3..d55c31895 100644 --- a/ground/openpilotgcs/src/plugins/modelview/modelviewgadgetwidget.h +++ b/ground/openpilotgcs/src/plugins/modelview/modelviewgadgetwidget.h @@ -28,7 +28,7 @@ #ifndef MODELVIEWGADGETWIDGET_H_ #define MODELVIEWGADGETWIDGET_H_ -#include +#include #include #include "glc_factory.h" diff --git a/ground/openpilotgcs/src/plugins/modelview/modelviewplugin.cpp b/ground/openpilotgcs/src/plugins/modelview/modelviewplugin.cpp index 12540de27..5b27c5e70 100644 --- a/ground/openpilotgcs/src/plugins/modelview/modelviewplugin.cpp +++ b/ground/openpilotgcs/src/plugins/modelview/modelviewplugin.cpp @@ -61,4 +61,3 @@ void ModelViewPlugin::shutdown() { // Do nothing } -Q_EXPORT_PLUGIN(ModelViewPlugin) diff --git a/ground/openpilotgcs/src/plugins/modelview/modelviewplugin.h b/ground/openpilotgcs/src/plugins/modelview/modelviewplugin.h index 74cbc6447..af3a7e858 100644 --- a/ground/openpilotgcs/src/plugins/modelview/modelviewplugin.h +++ b/ground/openpilotgcs/src/plugins/modelview/modelviewplugin.h @@ -33,6 +33,8 @@ class ModelViewGadgetFactory; class ModelViewPlugin : public ExtensionSystem::IPlugin { + Q_OBJECT + Q_PLUGIN_METADATA(IID "Openpilot.ModelView") public: ModelViewPlugin(); ~ModelViewPlugin(); diff --git a/ground/openpilotgcs/src/plugins/notify/notify.pro b/ground/openpilotgcs/src/plugins/notify/notify.pro index ce1409b9c..31af2fdd2 100644 --- a/ground/openpilotgcs/src/plugins/notify/notify.pro +++ b/ground/openpilotgcs/src/plugins/notify/notify.pro @@ -6,7 +6,7 @@ include(../../openpilotgcsplugin.pri) include(../../plugins/coreplugin/coreplugin.pri) include(notifyplugin_dependencies.pri) -QT += phonon +QT += multimedia HEADERS += notifyplugin.h \ notifypluginoptionspage.h \ diff --git a/ground/openpilotgcs/src/plugins/notify/notifyitemdelegate.cpp b/ground/openpilotgcs/src/plugins/notify/notifyitemdelegate.cpp index c3da268cb..a39405e9e 100644 --- a/ground/openpilotgcs/src/plugins/notify/notifyitemdelegate.cpp +++ b/ground/openpilotgcs/src/plugins/notify/notifyitemdelegate.cpp @@ -26,6 +26,11 @@ */ #include +#include +#include +#include +#include +#include #include "notifyitemdelegate.h" #include "notifytablemodel.h" #include "notifylogging.h" diff --git a/ground/openpilotgcs/src/plugins/notify/notifyplugin.cpp b/ground/openpilotgcs/src/plugins/notify/notifyplugin.cpp index 72920e549..bd2a08ade 100644 --- a/ground/openpilotgcs/src/plugins/notify/notifyplugin.cpp +++ b/ground/openpilotgcs/src/plugins/notify/notifyplugin.cpp @@ -37,8 +37,6 @@ #include #include -#include "qxttimer.h" -#include "backendcapabilities.h" static const QString VERSION = "1.0.0"; @@ -229,16 +227,10 @@ void SoundNotifyPlugin::connectNotifications() return; } // set notification message to current event - phonon.mo = Phonon::createPlayer(Phonon::NotificationCategory); - phonon.mo->clearQueue(); + phonon.mo = new QMediaPlayer; phonon.firstPlay = true; - QList audioOutputDevices = - Phonon::BackendCapabilities::availableAudioOutputDevices(); - foreach(Phonon::AudioOutputDevice dev, audioOutputDevices) { - qNotifyDebug() << "Notify: Audio Output device: " << dev.name() << " - " << dev.description(); - } - connect(phonon.mo, SIGNAL(stateChanged(Phonon::State, Phonon::State)), - this, SLOT(stateChanged(Phonon::State, Phonon::State))); + connect(phonon.mo, SIGNAL(stateChanged(QMediaPlayer::State)), + this, SLOT(stateChanged(QMediaPlayer::State))); } void SoundNotifyPlugin::on_arrived_Notification(UAVObject *object) @@ -328,10 +320,8 @@ void SoundNotifyPlugin::on_expiredTimer_Notification() } } -void SoundNotifyPlugin::stateChanged(Phonon::State newstate, Phonon::State oldstate) +void SoundNotifyPlugin::stateChanged(QMediaPlayer::State newstate) { - Q_UNUSED(oldstate) - // qNotifyDebug() << "File length (ms): " << phonon.mo->totalTime(); #ifndef Q_OS_WIN @@ -339,12 +329,12 @@ void SoundNotifyPlugin::stateChanged(Phonon::State newstate, Phonon::State oldst // wav file before moving to the next in the queue. // I wish I did not have to go through a #define, but I did not // manage to make this work on both platforms any other way! - if (phonon.mo->totalTime() > 0) { - phonon.mo->setTransitionTime(phonon.mo->totalTime()); - } +// if (phonon.mo->totalTime() > 0) { +// phonon.mo->setTransitionTime(phonon.mo->totalTime()); +// } #endif - if ((newstate == Phonon::PausedState) || - (newstate == Phonon::StoppedState)) { + if ((newstate == QMediaPlayer::PausedState) || + (newstate == QMediaPlayer::StoppedState)) { qNotifyDebug() << "New State: " << QVariant(newstate).toString(); // assignment to NULL needed to detect that palying is finished @@ -359,10 +349,10 @@ void SoundNotifyPlugin::stateChanged(Phonon::State newstate, Phonon::State oldst qNotifyDebug() << "end playNotification"; } } else { - if (newstate == Phonon::ErrorState) { - if (phonon.mo->errorType() == 0) { - qDebug() << "Phonon::ErrorState: ErrorType = " << phonon.mo->errorType(); - phonon.mo->clearQueue(); + if (newstate == QMediaPlayer::ServiceMissingError) { + if (phonon.mo->error() == 0) { + qDebug() << "Phonon::ErrorState: ErrorType = " << phonon.mo->error(); + phonon.mo->stop(); } } } @@ -485,6 +475,7 @@ void SoundNotifyPlugin::checkNotificationRule(NotificationItem *notification, UA bool SoundNotifyPlugin::playNotification(NotificationItem *notification) { + playlist = new QMediaPlaylist; if (!notification) { return false; } @@ -496,8 +487,8 @@ bool SoundNotifyPlugin::playNotification(NotificationItem *notification) // qNotifyDebug() << "Phonon State: " << phonon.mo->state(); - if ((phonon.mo->state() == Phonon::PausedState) - || (phonon.mo->state() == Phonon::StoppedState) + if ((phonon.mo->state() == QMediaPlayer::PausedState) + || (phonon.mo->state() == QMediaPlayer::StoppedState) || phonon.firstPlay) { _nowPlayingNotification = notification; notification->stopExpireTimer(); @@ -531,15 +522,13 @@ bool SoundNotifyPlugin::playNotification(NotificationItem *notification) this, SLOT(on_timerRepeated_Notification()), Qt::UniqueConnection); } } - phonon.mo->clear(); + phonon.mo->stop(); qNotifyDebug() << "play: " << notification->toString(); foreach(QString item, notification->toSoundList()) { - Phonon::MediaSource *ms = new Phonon::MediaSource(item); - - ms->setAutoDelete(true); - phonon.mo->enqueue(*ms); + playlist->addMedia(QUrl::fromLocalFile(item)); } qNotifyDebug() << "begin play"; + phonon.mo->setPlaylist(playlist); phonon.mo->play(); qNotifyDebug() << "end play"; phonon.firstPlay = false; // On Linux, you sometimes have to nudge Phonon to play 1 time before @@ -549,5 +538,3 @@ bool SoundNotifyPlugin::playNotification(NotificationItem *notification) return false; } - -Q_EXPORT_PLUGIN(SoundNotifyPlugin) diff --git a/ground/openpilotgcs/src/plugins/notify/notifyplugin.h b/ground/openpilotgcs/src/plugins/notify/notifyplugin.h index d54126f29..aac2a7736 100644 --- a/ground/openpilotgcs/src/plugins/notify/notifyplugin.h +++ b/ground/openpilotgcs/src/plugins/notify/notifyplugin.h @@ -35,22 +35,21 @@ #include "notificationitem.h" #include -#include -#include -#include -#include +#include +#include class NotifyPluginOptionsPage; typedef struct { - Phonon::MediaObject *mo; - NotificationItem *notify; + QMediaPlayer *mo; + NotificationItem *notify; bool firstPlay; } PhononObject, *pPhononObject; class SoundNotifyPlugin : public Core::IConfigurablePlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "Openpilot.SoundNotify") public: SoundNotifyPlugin(); ~SoundNotifyPlugin(); @@ -96,7 +95,7 @@ private slots: void on_arrived_Notification(UAVObject *object); void on_timerRepeated_Notification(void); void on_expiredTimer_Notification(void); - void stateChanged(Phonon::State newstate, Phonon::State oldstate); + void stateChanged(QMediaPlayer::State newstate); private: bool enableSound; @@ -112,6 +111,7 @@ private: PhononObject phonon; NotifyPluginOptionsPage *mop; TelemetryManager *telMngr; + QMediaPlaylist *playlist; }; #endif // SOUNDNOTIFYPLUGIN_H diff --git a/ground/openpilotgcs/src/plugins/notify/notifypluginoptionspage.cpp b/ground/openpilotgcs/src/plugins/notify/notifypluginoptionspage.cpp index 7ef248ad2..57eb4d21a 100644 --- a/ground/openpilotgcs/src/plugins/notify/notifypluginoptionspage.cpp +++ b/ground/openpilotgcs/src/plugins/notify/notifypluginoptionspage.cpp @@ -41,6 +41,7 @@ #include #include #include +#include #include "notifyplugin.h" #include "notifyitemdelegate.h" @@ -126,11 +127,11 @@ void NotifyPluginOptionsPage::finish() disconnect(_optionsPage->UAVObjectField, SIGNAL(currentIndexChanged(QString)), this, SLOT(on_changedIndex_UAVField(QString))); - disconnect(_testSound.data(), SIGNAL(stateChanged(Phonon::State, Phonon::State)), - this, SLOT(on_changed_playButtonText(Phonon::State, Phonon::State))); + disconnect(_testSound, SIGNAL(stateChanged(QMediaPlayer::State)), + this, SLOT(on_changed_playButtonText(QMediaPlayer::State))); if (_testSound) { _testSound->stop(); - _testSound->clear(); + // _testSound->clear(); } } @@ -155,10 +156,11 @@ void NotifyPluginOptionsPage::initButtons() void NotifyPluginOptionsPage::initPhononPlayer() { - _testSound.reset(Phonon::createPlayer(Phonon::NotificationCategory)); - connect(_testSound.data(), SIGNAL(stateChanged(Phonon::State, Phonon::State)), - this, SLOT(on_changed_playButtonText(Phonon::State, Phonon::State))); - connect(_testSound.data(), SIGNAL(finished(void)), this, SLOT(on_FinishedPlaying(void))); + _testSound = new QMediaPlayer; + // _testSound.reset(Phonon::createPlayer(Phonon::NotificationCategory)); + connect(_testSound, SIGNAL(stateChanged(QMediaPlayer::State)), + this, SLOT(on_changed_playButtonText(QMediaPlayer::State))); + // connect(_testSound, SIGNAL(finished(void)), this, SLOT(on_FinishedPlaying(void))); } void NotifyPluginOptionsPage::initRulesTable() @@ -515,15 +517,15 @@ void NotifyPluginOptionsPage::on_changedIndex_soundLanguage(int index) } -void NotifyPluginOptionsPage::on_changed_playButtonText(Phonon::State newstate, Phonon::State /* oldstate */) +void NotifyPluginOptionsPage::on_changed_playButtonText(QMediaPlayer::State newstate) { // Q_ASSERT(Phonon::ErrorState != newstate); - if (newstate == Phonon::PausedState || newstate == Phonon::StoppedState) { + if (newstate == QMediaPlayer::PausedState || newstate == QMediaPlayer::StoppedState) { _optionsPage->buttonPlayNotification->setText("Play"); _optionsPage->buttonPlayNotification->setIcon(QPixmap(":/notify/images/play.png")); } else { - if (newstate == Phonon::PlayingState) { + if (newstate == QMediaPlayer::PlayingState) { _optionsPage->buttonPlayNotification->setText("Stop"); _optionsPage->buttonPlayNotification->setIcon(QPixmap(":/notify/images/stop.png")); } @@ -561,9 +563,10 @@ void NotifyPluginOptionsPage::on_clicked_buttonTestSoundNotification() { NotificationItem *notification = NULL; + playlist = new QMediaPlaylist; qNotifyDebug() << "on_buttonTestSoundNotification_clicked"; Q_ASSERT(-1 != _notifyRulesSelection->currentIndex().row()); - _testSound->clearQueue(); + _testSound->stop(); notification = _privListNotifications.at(_notifyRulesSelection->currentIndex().row()); QStringList sequence = notification->toSoundList(); if (sequence.isEmpty()) { @@ -572,8 +575,9 @@ void NotifyPluginOptionsPage::on_clicked_buttonTestSoundNotification() } foreach(QString item, sequence) { qNotifyDebug() << item; - _testSound->enqueue(Phonon::MediaSource(item)); + playlist->addMedia(QUrl::fromLocalFile(item)); } + _testSound->setPlaylist(playlist); _testSound->play(); } @@ -631,14 +635,14 @@ void NotifyPluginOptionsPage::on_clicked_buttonModifyNotification() void NotifyPluginOptionsPage::on_FinishedPlaying() { - _testSound->clear(); + _testSound->stop(); } void NotifyPluginOptionsPage::on_toggled_checkEnableSound(bool state) { bool state1 = 1 ^ state; - QList listOutputs = _testSound->outputPaths(); - Phonon::AudioOutput *audioOutput = (Phonon::AudioOutput *)listOutputs.last().sink(); - audioOutput->setMuted(state1); + // QList listOutputs = _testSound->outputPaths(); + // Phonon::AudioOutput *audioOutput = (Phonon::AudioOutput *)listOutputs.last().sink(); + // _testSound->setMuted(state1); } diff --git a/ground/openpilotgcs/src/plugins/notify/notifypluginoptionspage.h b/ground/openpilotgcs/src/plugins/notify/notifypluginoptionspage.h index 9c39639e5..0ada70c94 100644 --- a/ground/openpilotgcs/src/plugins/notify/notifypluginoptionspage.h +++ b/ground/openpilotgcs/src/plugins/notify/notifypluginoptionspage.h @@ -38,12 +38,10 @@ #include #include #include -#include -#include -#include -#include #include #include +#include +#include class NotifyTableModel; class NotificationItem; @@ -105,7 +103,7 @@ private slots: void on_clicked_buttonSoundFolder(const QString & path); void on_changedIndex_UAVObject(QString val); void on_changedIndex_UAVField(QString val); - void on_changed_playButtonText(Phonon::State newstate, Phonon::State oldstate); + void on_changed_playButtonText(QMediaPlayer::State newstate); void on_toggled_checkEnableSound(bool state); /** @@ -146,7 +144,7 @@ private: SoundNotifyPlugin *_owner; // ! Media object uses to test sound playing - QScopedPointer _testSound; + QMediaPlayer *_testSound; QScopedPointer _notifyRulesModel; QItemSelectionModel *_notifyRulesSelection; @@ -192,6 +190,7 @@ private: // ! Retrieved from UAVObjectManager by name from _selectedNotification, // ! if UAVObjectManager doesn't have such object, this field will be NULL UAVDataObject *_currUAVObject; + QMediaPlaylist *playlist; }; #endif // NOTIFYPLUGINOPTIONSPAGE_H diff --git a/ground/openpilotgcs/src/plugins/ophid/inc/ophid_const.h b/ground/openpilotgcs/src/plugins/ophid/inc/ophid_const.h index 6e8bff5bf..ca85226e8 100644 --- a/ground/openpilotgcs/src/plugins/ophid/inc/ophid_const.h +++ b/ground/openpilotgcs/src/plugins/ophid/inc/ophid_const.h @@ -27,6 +27,7 @@ #ifndef OPHID_CONST_H #define OPHID_CONST_H +#include "QtDebug" #define printf qDebug #define OPHID_DEBUG_ON 1 diff --git a/ground/openpilotgcs/src/plugins/ophid/inc/ophid_plugin.h b/ground/openpilotgcs/src/plugins/ophid/inc/ophid_plugin.h index 73f84dadc..fcb2e938c 100644 --- a/ground/openpilotgcs/src/plugins/ophid/inc/ophid_plugin.h +++ b/ground/openpilotgcs/src/plugins/ophid/inc/ophid_plugin.h @@ -84,6 +84,7 @@ protected: class OPHID_EXPORT RawHIDPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "OpenPilot.RawHID") public: RawHIDPlugin(); diff --git a/ground/openpilotgcs/src/plugins/ophid/inc/ophid_usbmon.h b/ground/openpilotgcs/src/plugins/ophid/inc/ophid_usbmon.h index a6cba9abf..a2f8826b7 100644 --- a/ground/openpilotgcs/src/plugins/ophid/inc/ophid_usbmon.h +++ b/ground/openpilotgcs/src/plugins/ophid/inc/ophid_usbmon.h @@ -54,8 +54,30 @@ #include #include #include -#include -#include +#include + +// from working mingw hidsdi.h +#ifdef __cplusplus +extern "C" { +#endif + +HIDAPI VOID WINAPI HidD_GetHidGuid(LPGUID); +HIDAPI BOOL WINAPI HidD_GetPreparsedData(HANDLE, PHIDP_PREPARSED_DATA *); +HIDAPI BOOL WINAPI HidD_FreePreparsedData(PHIDP_PREPARSED_DATA); +HIDAPI BOOL WINAPI HidD_FlushQueue(HANDLE); +HIDAPI BOOL WINAPI HidD_GetConfiguration(HANDLE, PHIDD_CONFIGURATION, ULONG); +HIDAPI BOOL WINAPI HidD_SetConfiguration(HANDLE, PHIDD_CONFIGURATION, ULONG); +HIDAPI BOOL WINAPI HidD_GetNumInputBuffers(HANDLE, PULONG); +HIDAPI BOOL WINAPI HidD_SetNumInputBuffers(HANDLE HidDeviceObject, ULONG); +HIDAPI BOOL WINAPI HidD_GetPhysicalDescriptor(HANDLE, PVOID, ULONG); +HIDAPI BOOL WINAPI HidD_GetManufacturerString(HANDLE, PVOID, ULONG); +HIDAPI BOOL WINAPI HidD_GetProductString(HANDLE, PVOID, ULONG); +HIDAPI BOOL WINAPI HidD_GetIndexedString(HANDLE, ULONG, PVOID, ULONG); +HIDAPI BOOL WINAPI HidD_GetSerialNumberString(HANDLE, PVOID, ULONG); + +#ifdef __cplusplus +} +#endif #endif // if defined(Q_OS_MAC) @@ -75,10 +97,14 @@ public: protected: USBMonitor *qese; +#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) bool winEvent(MSG *message, long *result); +#else + bool nativeEvent(const QByteArray & /*eventType*/, void *msg, long *result); +#endif }; -#endif -#endif +#endif // ifdef QT_GUI_LIB +#endif // ifdef Q_OS_WIN struct USBPortInfo { // QString friendName; ///< Friendly name. diff --git a/ground/openpilotgcs/src/plugins/ophid/src/ophid_plugin.cpp b/ground/openpilotgcs/src/plugins/ophid/src/ophid_plugin.cpp index 34b2bf790..248f08122 100644 --- a/ground/openpilotgcs/src/plugins/ophid/src/ophid_plugin.cpp +++ b/ground/openpilotgcs/src/plugins/ophid/src/ophid_plugin.cpp @@ -273,5 +273,3 @@ bool RawHIDPlugin::initialize(const QStringList & arguments, QString *errorStrin return true; } - -Q_EXPORT_PLUGIN(RawHIDPlugin) diff --git a/ground/openpilotgcs/src/plugins/ophid/src/ophid_usbmon_win.cpp b/ground/openpilotgcs/src/plugins/ophid/src/ophid_usbmon_win.cpp index f634f61f6..7a6eac89a 100644 --- a/ground/openpilotgcs/src/plugins/ophid/src/ophid_usbmon_win.cpp +++ b/ground/openpilotgcs/src/plugins/ophid/src/ophid_usbmon_win.cpp @@ -164,7 +164,7 @@ void USBMonitor::setUpNotifications() dbh.dbcc_size = sizeof(dbh); dbh.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE; CopyMemory(&dbh.dbcc_classguid, &guid_hid, sizeof(GUID)); - if (RegisterDeviceNotification(notificationWidget->winId(), &dbh, DEVICE_NOTIFY_WINDOW_HANDLE) == NULL) { + if (::RegisterDeviceNotification((HWND)notificationWidget->winId(), &dbh, DEVICE_NOTIFY_WINDOW_HANDLE) == NULL) { qWarning() << "RegisterDeviceNotification failed:" << GetLastError(); } // discover the devices curently connected @@ -210,9 +210,16 @@ LRESULT USBMonitor::onDeviceChangeWin(WPARAM wParam, LPARAM lParam) * \retval device handled or not */ #ifdef QT_GUI_LIB +#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) bool USBRegistrationWidget::winEvent(MSG *message, long *result) { - bool ret = false; +#else +bool USBRegistrationWidget::nativeEvent(const QByteArray & /*eventType*/, void *msg, long *result) +{ + MSG *message = static_cast(msg); + +#endif + bool ret = false; if (message->message == WM_DEVICECHANGE) { OPHID_TRACE("IN"); @@ -224,7 +231,7 @@ bool USBRegistrationWidget::winEvent(MSG *message, long *result) return ret; } -#endif +#endif // ifdef QT_GUI_LIB /** diff --git a/ground/openpilotgcs/src/plugins/opmap/flightdatamodel.cpp b/ground/openpilotgcs/src/plugins/opmap/flightdatamodel.cpp index 633199aa5..d16c9b381 100644 --- a/ground/openpilotgcs/src/plugins/opmap/flightdatamodel.cpp +++ b/ground/openpilotgcs/src/plugins/opmap/flightdatamodel.cpp @@ -613,7 +613,7 @@ bool flightDataModel::writeToFile(QString fileName) field.setAttribute("name", "is_locked"); waypoint.appendChild(field); } - file.write(doc.toString().toAscii()); + file.write(doc.toString().toLatin1()); file.close(); return true; } diff --git a/ground/openpilotgcs/src/plugins/opmap/opmapgadgetoptionspage.cpp b/ground/openpilotgcs/src/plugins/opmap/opmapgadgetoptionspage.cpp index 91a71e6ea..35664db9f 100644 --- a/ground/openpilotgcs/src/plugins/opmap/opmapgadgetoptionspage.cpp +++ b/ground/openpilotgcs/src/plugins/opmap/opmapgadgetoptionspage.cpp @@ -27,13 +27,13 @@ #include "opmapgadgetoptionspage.h" #include "opmapgadgetconfiguration.h" -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include #include "opmapcontrol/opmapcontrol.h" #include "utils/pathutils.h" diff --git a/ground/openpilotgcs/src/plugins/opmap/opmapgadgetwidget.cpp b/ground/openpilotgcs/src/plugins/opmap/opmapgadgetwidget.cpp index c950239fc..4fa7c1bba 100644 --- a/ground/openpilotgcs/src/plugins/opmap/opmapgadgetwidget.cpp +++ b/ground/openpilotgcs/src/plugins/opmap/opmapgadgetwidget.cpp @@ -29,11 +29,12 @@ #include "opmapgadgetwidget.h" #include "ui_opmap_widget.h" -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include #include #include #include diff --git a/ground/openpilotgcs/src/plugins/opmap/opmapgadgetwidget.h b/ground/openpilotgcs/src/plugins/opmap/opmapgadgetwidget.h index f5db4d5a0..5c5e178d2 100644 --- a/ground/openpilotgcs/src/plugins/opmap/opmapgadgetwidget.h +++ b/ground/openpilotgcs/src/plugins/opmap/opmapgadgetwidget.h @@ -36,8 +36,8 @@ #include "modelmapproxy.h" #include "modeluavoproxy.h" -#include -#include +#include +#include #include #include #include diff --git a/ground/openpilotgcs/src/plugins/opmap/opmapplugin.cpp b/ground/openpilotgcs/src/plugins/opmap/opmapplugin.cpp index 38fe1b3a9..5dfc5a484 100644 --- a/ground/openpilotgcs/src/plugins/opmap/opmapplugin.cpp +++ b/ground/openpilotgcs/src/plugins/opmap/opmapplugin.cpp @@ -60,4 +60,3 @@ void OPMapPlugin::shutdown() { // Do nothing } -Q_EXPORT_PLUGIN(OPMapPlugin) diff --git a/ground/openpilotgcs/src/plugins/opmap/opmapplugin.h b/ground/openpilotgcs/src/plugins/opmap/opmapplugin.h index 263e4bcd6..bd8bee8fa 100644 --- a/ground/openpilotgcs/src/plugins/opmap/opmapplugin.h +++ b/ground/openpilotgcs/src/plugins/opmap/opmapplugin.h @@ -33,6 +33,8 @@ class OPMapGadgetFactory; class OPMapPlugin : public ExtensionSystem::IPlugin { + Q_OBJECT + Q_PLUGIN_METADATA(IID "OpenPilot.OPMap") public: OPMapPlugin(); ~OPMapPlugin(); diff --git a/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewplugin.cpp b/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewplugin.cpp index ea357544f..8eccf37ca 100644 --- a/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewplugin.cpp +++ b/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewplugin.cpp @@ -64,4 +64,3 @@ void OsgEarthviewPlugin::shutdown() { // Do nothing } -Q_EXPORT_PLUGIN(OsgEarthviewPlugin) diff --git a/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewplugin.h b/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewplugin.h index 5dafd81ef..7b229d2c2 100644 --- a/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewplugin.h +++ b/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewplugin.h @@ -33,6 +33,8 @@ class OsgEarthviewGadgetFactory; class OsgEarthviewPlugin : public ExtensionSystem::IPlugin { + Q_OBJECT + Q_PLUGIN_METADATA(IID "OpenPilot.OsgEarthview") public: OsgEarthviewPlugin(); ~OsgEarthviewPlugin(); diff --git a/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewwidget.cpp b/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewwidget.cpp index 006579148..bbd3b1c94 100644 --- a/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewwidget.cpp +++ b/ground/openpilotgcs/src/plugins/osgearthview/osgearthviewwidget.cpp @@ -30,13 +30,13 @@ #include #include #include -#include +#include #include #include #include -#include -#include +#include +#include #include diff --git a/ground/openpilotgcs/src/plugins/osgearthview/osgviewerwidget.cpp b/ground/openpilotgcs/src/plugins/osgearthview/osgviewerwidget.cpp index fce21f931..5b0900162 100644 --- a/ground/openpilotgcs/src/plugins/osgearthview/osgviewerwidget.cpp +++ b/ground/openpilotgcs/src/plugins/osgearthview/osgviewerwidget.cpp @@ -31,13 +31,13 @@ #include #include #include -#include +#include #include #include #include -#include -#include +#include +#include #include diff --git a/ground/openpilotgcs/src/plugins/pathactioneditor/fieldtreeitem.h b/ground/openpilotgcs/src/plugins/pathactioneditor/fieldtreeitem.h index 27c4566f7..1e71cb0dd 100644 --- a/ground/openpilotgcs/src/plugins/pathactioneditor/fieldtreeitem.h +++ b/ground/openpilotgcs/src/plugins/pathactioneditor/fieldtreeitem.h @@ -30,11 +30,11 @@ #include "treeitem.h" #include -#include -#include -#include +#include +#include +#include #include -#include +#include #include #define QINT8MIN std::numeric_limits::min() diff --git a/ground/openpilotgcs/src/plugins/pathactioneditor/pathactioneditorgadgetwidget.cpp b/ground/openpilotgcs/src/plugins/pathactioneditor/pathactioneditorgadgetwidget.cpp index 00f306587..bddce34bb 100644 --- a/ground/openpilotgcs/src/plugins/pathactioneditor/pathactioneditorgadgetwidget.cpp +++ b/ground/openpilotgcs/src/plugins/pathactioneditor/pathactioneditorgadgetwidget.cpp @@ -29,10 +29,10 @@ #include #include #include -#include -#include -#include -#include +#include +#include +#include +#include #include "browseritemdelegate.h" #include "extensionsystem/pluginmanager.h" diff --git a/ground/openpilotgcs/src/plugins/pathactioneditor/pathactioneditorgadgetwidget.h b/ground/openpilotgcs/src/plugins/pathactioneditor/pathactioneditorgadgetwidget.h index f01411861..d68836a8e 100644 --- a/ground/openpilotgcs/src/plugins/pathactioneditor/pathactioneditorgadgetwidget.h +++ b/ground/openpilotgcs/src/plugins/pathactioneditor/pathactioneditorgadgetwidget.h @@ -27,9 +27,9 @@ #ifndef PathActionEditorGADGETWIDGET_H_ #define PathActionEditorGADGETWIDGET_H_ -#include -#include -#include +#include +#include +#include #include "pathaction.h" #include "waypoint.h" #include "pathactioneditortreemodel.h" diff --git a/ground/openpilotgcs/src/plugins/pathactioneditor/pathactioneditorplugin.cpp b/ground/openpilotgcs/src/plugins/pathactioneditor/pathactioneditorplugin.cpp index 99c1a611e..fefdaa1a9 100644 --- a/ground/openpilotgcs/src/plugins/pathactioneditor/pathactioneditorplugin.cpp +++ b/ground/openpilotgcs/src/plugins/pathactioneditor/pathactioneditorplugin.cpp @@ -60,8 +60,6 @@ void PathActionEditorPlugin::shutdown() { // Do nothing } -Q_EXPORT_PLUGIN(PathActionEditorPlugin) - /** * @} * @} diff --git a/ground/openpilotgcs/src/plugins/pathactioneditor/pathactioneditorplugin.h b/ground/openpilotgcs/src/plugins/pathactioneditor/pathactioneditorplugin.h index 2a00feda4..ba6d5b3f7 100644 --- a/ground/openpilotgcs/src/plugins/pathactioneditor/pathactioneditorplugin.h +++ b/ground/openpilotgcs/src/plugins/pathactioneditor/pathactioneditorplugin.h @@ -32,6 +32,8 @@ class PathActionEditorGadgetFactory; class PathActionEditorPlugin : public ExtensionSystem::IPlugin { + Q_OBJECT + Q_PLUGIN_METADATA(IID "OpenPilot.PathActionEditor") public: PathActionEditorPlugin(); ~PathActionEditorPlugin(); diff --git a/ground/openpilotgcs/src/plugins/pathactioneditor/pathactioneditortreemodel.cpp b/ground/openpilotgcs/src/plugins/pathactioneditor/pathactioneditortreemodel.cpp index 629140e1a..26580212f 100644 --- a/ground/openpilotgcs/src/plugins/pathactioneditor/pathactioneditortreemodel.cpp +++ b/ground/openpilotgcs/src/plugins/pathactioneditor/pathactioneditortreemodel.cpp @@ -33,8 +33,8 @@ #include "uavmetaobject.h" #include "uavobjectfield.h" #include "extensionsystem/pluginmanager.h" -#include -// #include +#include +// #include #include #include #include diff --git a/ground/openpilotgcs/src/plugins/pathactioneditor/pathactioneditortreemodel.h b/ground/openpilotgcs/src/plugins/pathactioneditor/pathactioneditortreemodel.h index 30300bacb..00dd456da 100644 --- a/ground/openpilotgcs/src/plugins/pathactioneditor/pathactioneditortreemodel.h +++ b/ground/openpilotgcs/src/plugins/pathactioneditor/pathactioneditortreemodel.h @@ -31,7 +31,7 @@ #include "treeitem.h" #include #include -#include +#include class TopTreeItem; class ObjectTreeItem; diff --git a/ground/openpilotgcs/src/plugins/pfdqml/osgearth.cpp b/ground/openpilotgcs/src/plugins/pfdqml/osgearth.cpp index 6cbe03aed..593e46fea 100644 --- a/ground/openpilotgcs/src/plugins/pfdqml/osgearth.cpp +++ b/ground/openpilotgcs/src/plugins/pfdqml/osgearth.cpp @@ -21,8 +21,8 @@ #include #include #include -#include -#include +#include +#include #include #include diff --git a/ground/openpilotgcs/src/plugins/pfdqml/pfdqmlplugin.cpp b/ground/openpilotgcs/src/plugins/pfdqml/pfdqmlplugin.cpp index 085ca06f6..4c5e84c39 100644 --- a/ground/openpilotgcs/src/plugins/pfdqml/pfdqmlplugin.cpp +++ b/ground/openpilotgcs/src/plugins/pfdqml/pfdqmlplugin.cpp @@ -51,4 +51,3 @@ void PfdQmlPlugin::shutdown() { // Do nothing } -Q_EXPORT_PLUGIN(PfdQmlPlugin) diff --git a/ground/openpilotgcs/src/plugins/pfdqml/pfdqmlplugin.h b/ground/openpilotgcs/src/plugins/pfdqml/pfdqmlplugin.h index 344d22128..7879b06f1 100644 --- a/ground/openpilotgcs/src/plugins/pfdqml/pfdqmlplugin.h +++ b/ground/openpilotgcs/src/plugins/pfdqml/pfdqmlplugin.h @@ -22,6 +22,8 @@ class PfdQmlGadgetFactory; class PfdQmlPlugin : public ExtensionSystem::IPlugin { + Q_OBJECT + Q_PLUGIN_METADATA(IID "OpenPilot.PfdQml") public: PfdQmlPlugin(); ~PfdQmlPlugin(); diff --git a/ground/openpilotgcs/src/plugins/plugins.pro b/ground/openpilotgcs/src/plugins/plugins.pro index 73bea8c59..e430ee0e9 100644 --- a/ground/openpilotgcs/src/plugins/plugins.pro +++ b/ground/openpilotgcs/src/plugins/plugins.pro @@ -182,10 +182,10 @@ plugin_gcscontrol.depends += plugin_uavobjects SUBDIRS += plugin_gcscontrol # Antenna tracker -#plugin_antennatrack.subdir = antennatrack -#plugin_antennatrack.depends = plugin_coreplugin -#plugin_antennatrack.depends += plugin_uavobjects -#SUBDIRS += plugin_antennatrack +plugin_antennatrack.subdir = antennatrack +plugin_antennatrack.depends = plugin_coreplugin +plugin_antennatrack.depends += plugin_uavobjects +SUBDIRS += plugin_antennatrack # Scope OpenGL Gadget #plugin_scopeogl.subdir = scopeogl diff --git a/ground/openpilotgcs/src/plugins/qmlview/qmlviewplugin.cpp b/ground/openpilotgcs/src/plugins/qmlview/qmlviewplugin.cpp index 2cda37fe8..7cd4d2d7a 100644 --- a/ground/openpilotgcs/src/plugins/qmlview/qmlviewplugin.cpp +++ b/ground/openpilotgcs/src/plugins/qmlview/qmlviewplugin.cpp @@ -62,4 +62,3 @@ void QmlViewPlugin::shutdown() { // Do nothing } -Q_EXPORT_PLUGIN(QmlViewPlugin) diff --git a/ground/openpilotgcs/src/plugins/qmlview/qmlviewplugin.h b/ground/openpilotgcs/src/plugins/qmlview/qmlviewplugin.h index de21c5821..6c4cdf733 100644 --- a/ground/openpilotgcs/src/plugins/qmlview/qmlviewplugin.h +++ b/ground/openpilotgcs/src/plugins/qmlview/qmlviewplugin.h @@ -33,6 +33,8 @@ class QmlViewGadgetFactory; class QmlViewPlugin : public ExtensionSystem::IPlugin { + Q_OBJECT + Q_PLUGIN_METADATA(IID "OpenPilot.QmlView") public: QmlViewPlugin(); ~QmlViewPlugin(); diff --git a/ground/openpilotgcs/src/plugins/scope/scopegadget.cpp b/ground/openpilotgcs/src/plugins/scope/scopegadget.cpp index a403233bd..798984ea5 100644 --- a/ground/openpilotgcs/src/plugins/scope/scopegadget.cpp +++ b/ground/openpilotgcs/src/plugins/scope/scopegadget.cpp @@ -30,7 +30,7 @@ #include "scopegadgetconfiguration.h" #include "scopegadgetwidget.h" -#include +#include ScopeGadget::ScopeGadget(QString classId, ScopeGadgetWidget *widget, QWidget *parent) : IUAVGadget(classId, parent), diff --git a/ground/openpilotgcs/src/plugins/scope/scopegadgetoptionspage.cpp b/ground/openpilotgcs/src/plugins/scope/scopegadgetoptionspage.cpp index 8ba4440b6..513ab5e06 100644 --- a/ground/openpilotgcs/src/plugins/scope/scopegadgetoptionspage.cpp +++ b/ground/openpilotgcs/src/plugins/scope/scopegadgetoptionspage.cpp @@ -32,7 +32,7 @@ #include "uavdataobject.h" -#include +#include ScopeGadgetOptionsPage::ScopeGadgetOptionsPage(ScopeGadgetConfiguration *config, QObject *parent) : diff --git a/ground/openpilotgcs/src/plugins/scope/scopegadgetoptionspage.h b/ground/openpilotgcs/src/plugins/scope/scopegadgetoptionspage.h index e02c897bd..511c9a143 100644 --- a/ground/openpilotgcs/src/plugins/scope/scopegadgetoptionspage.h +++ b/ground/openpilotgcs/src/plugins/scope/scopegadgetoptionspage.h @@ -36,7 +36,7 @@ #include #include #include -#include +#include namespace Core { class IUAVGadgetConfiguration; diff --git a/ground/openpilotgcs/src/plugins/scope/scopegadgetwidget.cpp b/ground/openpilotgcs/src/plugins/scope/scopegadgetwidget.cpp index 661ac3035..46f0d6213 100644 --- a/ground/openpilotgcs/src/plugins/scope/scopegadgetwidget.cpp +++ b/ground/openpilotgcs/src/plugins/scope/scopegadgetwidget.cpp @@ -47,9 +47,9 @@ #include #include #include -#include -#include -#include +#include +#include +#include #include #include @@ -604,7 +604,7 @@ int ScopeGadgetWidget::csvLoggingInsertHeader() } m_csvLoggingHeaderSaved = 1; - if (m_csvLoggingFile.open(QIODevice::WriteOnly | QIODevice::Append) == FALSE) { + if (m_csvLoggingFile.open(QIODevice::WriteOnly | QIODevice::Append) == false) { qDebug() << "Unable to open " << m_csvLoggingFile.fileName() << " for csv logging Header"; } else { QTextStream ts(&m_csvLoggingFile); @@ -673,7 +673,7 @@ int ScopeGadgetWidget::csvLoggingInsertData() } m_csvLoggingDataSaved = 1; - if (m_csvLoggingFile.open(QIODevice::WriteOnly | QIODevice::Append) == FALSE) { + if (m_csvLoggingFile.open(QIODevice::WriteOnly | QIODevice::Append) == false) { qDebug() << "Unable to open " << m_csvLoggingFile.fileName() << " for csv logging Data"; } else { QTextStream ts(&m_csvLoggingFile); diff --git a/ground/openpilotgcs/src/plugins/scope/scopeplugin.cpp b/ground/openpilotgcs/src/plugins/scope/scopeplugin.cpp index 9ff600b20..41f132b49 100644 --- a/ground/openpilotgcs/src/plugins/scope/scopeplugin.cpp +++ b/ground/openpilotgcs/src/plugins/scope/scopeplugin.cpp @@ -63,4 +63,3 @@ void ScopePlugin::shutdown() { // Do nothing } -Q_EXPORT_PLUGIN(ScopePlugin) diff --git a/ground/openpilotgcs/src/plugins/scope/scopeplugin.h b/ground/openpilotgcs/src/plugins/scope/scopeplugin.h index d51527c30..f0e349df0 100644 --- a/ground/openpilotgcs/src/plugins/scope/scopeplugin.h +++ b/ground/openpilotgcs/src/plugins/scope/scopeplugin.h @@ -33,6 +33,8 @@ class ScopeGadgetFactory; class ScopePlugin : public ExtensionSystem::IPlugin { + Q_OBJECT + Q_PLUGIN_METADATA(IID "OpenPilot.Scope") public: ScopePlugin(); ~ScopePlugin(); diff --git a/ground/openpilotgcs/src/plugins/serialconnection/serialconnection.pro b/ground/openpilotgcs/src/plugins/serialconnection/serialconnection.pro index 91f695b1e..93a40dee3 100644 --- a/ground/openpilotgcs/src/plugins/serialconnection/serialconnection.pro +++ b/ground/openpilotgcs/src/plugins/serialconnection/serialconnection.pro @@ -2,7 +2,7 @@ TEMPLATE = lib TARGET = Serial include(../../openpilotgcsplugin.pri) include(serial_dependencies.pri) -INCLUDEPATH += ../../libs/qextserialport/src +QT += serialport HEADERS += serialplugin.h \ serialpluginconfiguration.h \ serialpluginoptionspage.h diff --git a/ground/openpilotgcs/src/plugins/serialconnection/serialplugin.cpp b/ground/openpilotgcs/src/plugins/serialconnection/serialplugin.cpp index b56dbb001..18c970f60 100644 --- a/ground/openpilotgcs/src/plugins/serialconnection/serialplugin.cpp +++ b/ground/openpilotgcs/src/plugins/serialconnection/serialplugin.cpp @@ -31,7 +31,7 @@ #include #include -#include +#include #include @@ -107,9 +107,9 @@ void SerialConnection::onEnumerationChanged() } } -bool sortPorts(const QextPortInfo &s1, const QextPortInfo &s2) +bool sortPorts(const QSerialPortInfo &s1, const QSerialPortInfo &s2) { - return s1.portName < s2.portName; + return s1.portName() < s2.portName(); } QList SerialConnection::availableDevices() @@ -117,15 +117,15 @@ QList SerialConnection::availableDevices() QList list; if (enablePolling) { - QList ports = QextSerialEnumerator::getPorts(); + QList ports = QSerialPortInfo::availablePorts(); // sort the list by port number (nice idea from PT_Dreamer :)) qSort(ports.begin(), ports.end(), sortPorts); - foreach(QextPortInfo port, ports) { + foreach(QSerialPortInfo port, ports) { device d; - d.displayName = port.friendName; - d.name = port.physName; + d.displayName = port.portName(); + d.name = port.portName(); list.append(d); } } @@ -138,24 +138,21 @@ QIODevice *SerialConnection::openDevice(const QString &deviceName) if (serialHandle) { closeDevice(deviceName); } - QList ports = QextSerialEnumerator::getPorts(); - foreach(QextPortInfo port, ports) { - if (port.physName == deviceName) { + QList ports = QSerialPortInfo::availablePorts(); + foreach(QSerialPortInfo port, ports) { + if (port.portName() == deviceName) { // we need to handle port settings here... - PortSettings set; - set.BaudRate = stringToBaud(m_config->speed()); qDebug() << "Serial telemetry running at " << m_config->speed(); - set.DataBits = DATA_8; - set.Parity = PAR_NONE; - set.StopBits = STOP_1; - set.FlowControl = FLOW_OFF; - set.Timeout_Millisec = 500; -#ifdef Q_OS_WIN - serialHandle = new QextSerialPort(port.portName, set); -#else - serialHandle = new QextSerialPort(port.physName, set); -#endif - m_deviceOpened = true; + serialHandle = new QSerialPort(port, this); + if (serialHandle->open(QIODevice::ReadWrite)) { + if (serialHandle->setBaudRate(m_config->speed().toInt()) + && serialHandle->setDataBits(QSerialPort::Data8) + && serialHandle->setParity(QSerialPort::NoParity) + && serialHandle->setStopBits(QSerialPort::OneStop) + && serialHandle->setFlowControl(QSerialPort::NoFlowControl)) { + m_deviceOpened = true; + } + } return serialHandle; } } @@ -200,48 +197,6 @@ void SerialConnection::resumePolling() enablePolling = true; } -BaudRateType SerialConnection::stringToBaud(QString str) -{ - if (str == "1200") { - return BAUD1200; - } - if (str == "1800") { - return BAUD1800; - } else if (str == "2400") { - return BAUD2400; - } else if (str == "4800") { - return BAUD4800; - } else if (str == "9600") { - return BAUD9600; - } else if (str == "14400") { - return BAUD14400; - } else if (str == "19200") { - return BAUD19200; - } else if (str == "38400") { - return BAUD38400; - } else if (str == "56000") { - return BAUD56000; - } else if (str == "57600") { - return BAUD57600; - } else if (str == "76800") { - return BAUD76800; - } else if (str == "115200") { - return BAUD115200; - } else if (str == "128000") { - return BAUD128000; - } else if (str == "230400") { - return BAUD230400; - } else if (str == "256000") { - return BAUD256000; - } else if (str == "460800") { - return BAUD460800; - } else if (str == "921600") { - return BAUD921600; - } else { - return BAUD57600; - } -} - SerialPlugin::SerialPlugin() {} @@ -266,5 +221,3 @@ bool SerialPlugin::initialize(const QStringList &arguments, QString *errorString addObject(m_connection->Optionspage()); return true; } - -Q_EXPORT_PLUGIN(SerialPlugin) diff --git a/ground/openpilotgcs/src/plugins/serialconnection/serialplugin.h b/ground/openpilotgcs/src/plugins/serialconnection/serialplugin.h index 41fccdf2a..8aa292bb1 100644 --- a/ground/openpilotgcs/src/plugins/serialconnection/serialplugin.h +++ b/ground/openpilotgcs/src/plugins/serialconnection/serialplugin.h @@ -29,8 +29,8 @@ #define SERIALPLUGIN_H // #include "serial_global.h" -#include -#include +#include +#include #include "coreplugin/iconnection.h" #include #include "serialpluginconfiguration.h" @@ -38,7 +38,7 @@ #include class IConnection; -class QextSerialEnumerator; +class QSerialPortInfo; class SerialConnection; /** @@ -101,11 +101,10 @@ public: private: - QextSerialPort *serialHandle; + QSerialPort *serialHandle; bool enablePolling; SerialPluginConfiguration *m_config; SerialPluginOptionsPage *m_optionspage; - BaudRateType stringToBaud(QString str); protected slots: void onEnumerationChanged(); @@ -120,6 +119,7 @@ protected: class SerialPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "OpenPilot.Serial") public: SerialPlugin(); diff --git a/ground/openpilotgcs/src/plugins/setupwizard/pages/endpage.cpp b/ground/openpilotgcs/src/plugins/setupwizard/pages/opendpage.cpp similarity index 90% rename from ground/openpilotgcs/src/plugins/setupwizard/pages/endpage.cpp rename to ground/openpilotgcs/src/plugins/setupwizard/pages/opendpage.cpp index 48b08fb75..25a6b6f7c 100644 --- a/ground/openpilotgcs/src/plugins/setupwizard/pages/endpage.cpp +++ b/ground/openpilotgcs/src/plugins/setupwizard/pages/opendpage.cpp @@ -1,7 +1,7 @@ /** ****************************************************************************** * - * @file endpage.cpp + * @file opendpage.cpp * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2012. * @addtogroup GCSPlugins GCS Plugins * @{ @@ -24,28 +24,28 @@ * with this program; if not, write to the Free Software Foundation, Inc., * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "endpage.h" -#include "ui_endpage.h" +#include "opendpage.h" +#include "ui_opendpage.h" #include #include #include #include -EndPage::EndPage(SetupWizard *wizard, QWidget *parent) : +OPEndPage::OPEndPage(SetupWizard *wizard, QWidget *parent) : AbstractWizardPage(wizard, parent), - ui(new Ui::EndPage) + ui(new Ui::OPEndPage) { ui->setupUi(this); setFinalPage(true); connect(ui->inputWizardButton, SIGNAL(clicked()), this, SLOT(openInputWizard())); } -EndPage::~EndPage() +OPEndPage::~OPEndPage() { delete ui; } -void EndPage::openInputWizard() +void OPEndPage::openInputWizard() { ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); ConfigGadgetFactory *configGadgetFactory = pm->getObject(); diff --git a/ground/openpilotgcs/src/plugins/setupwizard/pages/endpage.h b/ground/openpilotgcs/src/plugins/setupwizard/pages/opendpage.h similarity index 81% rename from ground/openpilotgcs/src/plugins/setupwizard/pages/endpage.h rename to ground/openpilotgcs/src/plugins/setupwizard/pages/opendpage.h index 92bfc194f..2e2c84c35 100644 --- a/ground/openpilotgcs/src/plugins/setupwizard/pages/endpage.h +++ b/ground/openpilotgcs/src/plugins/setupwizard/pages/opendpage.h @@ -1,7 +1,7 @@ /** ****************************************************************************** * - * @file endpage.h + * @file opendpage.h * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2012. * @addtogroup * @{ @@ -25,27 +25,27 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#ifndef ENDPAGE_H -#define ENDPAGE_H +#ifndef OPENDPAGE_H +#define OPENDPAGE_H #include "abstractwizardpage.h" namespace Ui { -class EndPage; +class OPEndPage; } -class EndPage : public AbstractWizardPage { +class OPEndPage : public AbstractWizardPage { Q_OBJECT public: - explicit EndPage(SetupWizard *wizard, QWidget *parent = 0); - ~EndPage(); + explicit OPEndPage(SetupWizard *wizard, QWidget *parent = 0); + ~OPEndPage(); private slots: void openInputWizard(); private: - Ui::EndPage *ui; + Ui::OPEndPage *ui; }; -#endif // ENDPAGE_H +#endif // OPENDPAGE_H diff --git a/ground/openpilotgcs/src/plugins/setupwizard/pages/endpage.ui b/ground/openpilotgcs/src/plugins/setupwizard/pages/opendpage.ui similarity index 98% rename from ground/openpilotgcs/src/plugins/setupwizard/pages/endpage.ui rename to ground/openpilotgcs/src/plugins/setupwizard/pages/opendpage.ui index 944381d96..fa5d47ecb 100644 --- a/ground/openpilotgcs/src/plugins/setupwizard/pages/endpage.ui +++ b/ground/openpilotgcs/src/plugins/setupwizard/pages/opendpage.ui @@ -1,7 +1,7 @@ - EndPage - + OPEndPage + 0 diff --git a/ground/openpilotgcs/src/plugins/setupwizard/pages/startpage.cpp b/ground/openpilotgcs/src/plugins/setupwizard/pages/opstartpage.cpp similarity index 85% rename from ground/openpilotgcs/src/plugins/setupwizard/pages/startpage.cpp rename to ground/openpilotgcs/src/plugins/setupwizard/pages/opstartpage.cpp index 568da659c..21aab64a9 100644 --- a/ground/openpilotgcs/src/plugins/setupwizard/pages/startpage.cpp +++ b/ground/openpilotgcs/src/plugins/setupwizard/pages/opstartpage.cpp @@ -1,7 +1,7 @@ /** ****************************************************************************** * - * @file startpage.cpp + * @file opstartpage.cpp * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2012. * @addtogroup GCSPlugins GCS Plugins * @{ @@ -24,18 +24,18 @@ * with this program; if not, write to the Free Software Foundation, Inc., * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "startpage.h" -#include "ui_startpage.h" +#include "opstartpage.h" +#include "ui_opstartpage.h" -StartPage::StartPage(SetupWizard *wizard, QWidget *parent) : +OPStartPage::OPStartPage(SetupWizard *wizard, QWidget *parent) : AbstractWizardPage(wizard, parent), - ui(new Ui::StartPage) + ui(new Ui::OPStartPage) { ui->setupUi(this); setFont(QFont("Ubuntu", 2)); } -StartPage::~StartPage() +OPStartPage::~OPStartPage() { delete ui; } diff --git a/ground/openpilotgcs/src/plugins/setupwizard/pages/startpage.h b/ground/openpilotgcs/src/plugins/setupwizard/pages/opstartpage.h similarity index 81% rename from ground/openpilotgcs/src/plugins/setupwizard/pages/startpage.h rename to ground/openpilotgcs/src/plugins/setupwizard/pages/opstartpage.h index da44d920e..31e3cdbc2 100644 --- a/ground/openpilotgcs/src/plugins/setupwizard/pages/startpage.h +++ b/ground/openpilotgcs/src/plugins/setupwizard/pages/opstartpage.h @@ -1,7 +1,7 @@ /** ****************************************************************************** * - * @file startpage.cpp + * @file opstartpage.cpp * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2012. * @addtogroup GCSPlugins GCS Plugins * @{ @@ -24,24 +24,24 @@ * with this program; if not, write to the Free Software Foundation, Inc., * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#ifndef STARTPAGE_H -#define STARTPAGE_H +#ifndef OPSTARTPAGE_H +#define OPSTARTPAGE_H #include "abstractwizardpage.h" namespace Ui { -class StartPage; +class OPStartPage; } -class StartPage : public AbstractWizardPage { +class OPStartPage : public AbstractWizardPage { Q_OBJECT public: - explicit StartPage(SetupWizard *wizard, QWidget *parent = 0); - ~StartPage(); + explicit OPStartPage(SetupWizard *wizard, QWidget *parent = 0); + ~OPStartPage(); private: - Ui::StartPage *ui; + Ui::OPStartPage *ui; }; -#endif // STARTPAGE_H +#endif // OPSTARTPAGE_H diff --git a/ground/openpilotgcs/src/plugins/setupwizard/pages/startpage.ui b/ground/openpilotgcs/src/plugins/setupwizard/pages/opstartpage.ui similarity index 98% rename from ground/openpilotgcs/src/plugins/setupwizard/pages/startpage.ui rename to ground/openpilotgcs/src/plugins/setupwizard/pages/opstartpage.ui index a2b90f170..a87c2e18f 100644 --- a/ground/openpilotgcs/src/plugins/setupwizard/pages/startpage.ui +++ b/ground/openpilotgcs/src/plugins/setupwizard/pages/opstartpage.ui @@ -1,7 +1,7 @@ - StartPage - + OPStartPage + 0 diff --git a/ground/openpilotgcs/src/plugins/setupwizard/setupwizard.cpp b/ground/openpilotgcs/src/plugins/setupwizard/setupwizard.cpp index 86b009314..de3b20063 100644 --- a/ground/openpilotgcs/src/plugins/setupwizard/setupwizard.cpp +++ b/ground/openpilotgcs/src/plugins/setupwizard/setupwizard.cpp @@ -26,8 +26,8 @@ */ #include "setupwizard.h" -#include "pages/startpage.h" -#include "pages/endpage.h" +#include "pages/opstartpage.h" +#include "pages/opendpage.h" #include "pages/controllerpage.h" #include "pages/vehiclepage.h" #include "pages/multipage.h" @@ -285,7 +285,7 @@ QString SetupWizard::getSummaryText() void SetupWizard::createPages() { - setPage(PAGE_START, new StartPage(this)); + setPage(PAGE_START, new OPStartPage(this)); setPage(PAGE_UPDATE, new AutoUpdatePage(this)); setPage(PAGE_CONTROLLER, new ControllerPage(this)); setPage(PAGE_VEHICLES, new VehiclePage(this)); @@ -302,7 +302,7 @@ void SetupWizard::createPages() setPage(PAGE_SAVE, new SavePage(this)); setPage(PAGE_REBOOT, new RebootPage(this)); setPage(PAGE_NOTYETIMPLEMENTED, new NotYetImplementedPage(this)); - setPage(PAGE_END, new EndPage(this)); + setPage(PAGE_END, new OPEndPage(this)); setStartId(PAGE_START); diff --git a/ground/openpilotgcs/src/plugins/setupwizard/setupwizard.pro b/ground/openpilotgcs/src/plugins/setupwizard/setupwizard.pro index cd864f7c7..366b7eae9 100644 --- a/ground/openpilotgcs/src/plugins/setupwizard/setupwizard.pro +++ b/ground/openpilotgcs/src/plugins/setupwizard/setupwizard.pro @@ -12,8 +12,8 @@ include(../../plugins/config/config.pri) LIBS *= -l$$qtLibraryName(Uploader) HEADERS += setupwizardplugin.h \ setupwizard.h \ - pages/startpage.h \ - pages/endpage.h \ + pages/opstartpage.h \ + pages/opendpage.h \ pages/controllerpage.h \ pages/vehiclepage.h \ pages/notyetimplementedpage.h \ @@ -39,8 +39,8 @@ HEADERS += setupwizardplugin.h \ SOURCES += setupwizardplugin.cpp \ setupwizard.cpp \ - pages/startpage.cpp \ - pages/endpage.cpp \ + pages/opstartpage.cpp \ + pages/opendpage.cpp \ pages/controllerpage.cpp \ pages/vehiclepage.cpp \ pages/notyetimplementedpage.cpp \ @@ -67,8 +67,8 @@ SOURCES += setupwizardplugin.cpp \ OTHER_FILES += SetupWizard.pluginspec FORMS += \ - pages/startpage.ui \ - pages/endpage.ui \ + pages/opstartpage.ui \ + pages/opendpage.ui \ pages/controllerpage.ui \ pages/vehiclepage.ui \ pages/notyetimplementedpage.ui \ diff --git a/ground/openpilotgcs/src/plugins/setupwizard/setupwizardplugin.cpp b/ground/openpilotgcs/src/plugins/setupwizard/setupwizardplugin.cpp index 2055c8e63..6e8903cd1 100644 --- a/ground/openpilotgcs/src/plugins/setupwizard/setupwizardplugin.cpp +++ b/ground/openpilotgcs/src/plugins/setupwizard/setupwizardplugin.cpp @@ -92,5 +92,3 @@ void SetupWizardPlugin::wizardTerminated() wizardRunning = false; disconnect(this, SLOT(wizardTerminated())); } - -Q_EXPORT_PLUGIN(SetupWizardPlugin) diff --git a/ground/openpilotgcs/src/plugins/setupwizard/setupwizardplugin.h b/ground/openpilotgcs/src/plugins/setupwizard/setupwizardplugin.h index f0765d993..8bebd41a2 100644 --- a/ground/openpilotgcs/src/plugins/setupwizard/setupwizardplugin.h +++ b/ground/openpilotgcs/src/plugins/setupwizard/setupwizardplugin.h @@ -33,6 +33,7 @@ class SetupWizardPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "OpenPilot.SetupWizard") public: SetupWizardPlugin(); ~SetupWizardPlugin(); diff --git a/ground/openpilotgcs/src/plugins/systemhealth/systemhealthplugin.cpp b/ground/openpilotgcs/src/plugins/systemhealth/systemhealthplugin.cpp index db5bc6aa9..41f68c643 100644 --- a/ground/openpilotgcs/src/plugins/systemhealth/systemhealthplugin.cpp +++ b/ground/openpilotgcs/src/plugins/systemhealth/systemhealthplugin.cpp @@ -62,4 +62,3 @@ void SystemHealthPlugin::shutdown() { // Do nothing } -Q_EXPORT_PLUGIN(SystemHealthPlugin) diff --git a/ground/openpilotgcs/src/plugins/systemhealth/systemhealthplugin.h b/ground/openpilotgcs/src/plugins/systemhealth/systemhealthplugin.h index 332c7eee6..9a4fdb82f 100644 --- a/ground/openpilotgcs/src/plugins/systemhealth/systemhealthplugin.h +++ b/ground/openpilotgcs/src/plugins/systemhealth/systemhealthplugin.h @@ -33,6 +33,8 @@ class SystemHealthGadgetFactory; class SystemHealthPlugin : public ExtensionSystem::IPlugin { + Q_OBJECT + Q_PLUGIN_METADATA(IID "OpenPilot.SystemHealth") public: SystemHealthPlugin(); ~SystemHealthPlugin(); diff --git a/ground/openpilotgcs/src/plugins/uavobjectbrowser/browserplugin.cpp b/ground/openpilotgcs/src/plugins/uavobjectbrowser/browserplugin.cpp index 703ea1290..b29c40903 100644 --- a/ground/openpilotgcs/src/plugins/uavobjectbrowser/browserplugin.cpp +++ b/ground/openpilotgcs/src/plugins/uavobjectbrowser/browserplugin.cpp @@ -59,4 +59,3 @@ void BrowserPlugin::shutdown() { // Do nothing } -Q_EXPORT_PLUGIN(BrowserPlugin) diff --git a/ground/openpilotgcs/src/plugins/uavobjectbrowser/browserplugin.h b/ground/openpilotgcs/src/plugins/uavobjectbrowser/browserplugin.h index aac119a59..253477426 100644 --- a/ground/openpilotgcs/src/plugins/uavobjectbrowser/browserplugin.h +++ b/ground/openpilotgcs/src/plugins/uavobjectbrowser/browserplugin.h @@ -33,6 +33,8 @@ class UAVObjectBrowserFactory; class BrowserPlugin : public ExtensionSystem::IPlugin { + Q_OBJECT + Q_PLUGIN_METADATA(IID "OpenPilot.Browser") public: BrowserPlugin(); ~BrowserPlugin(); diff --git a/ground/openpilotgcs/src/plugins/uavobjectbrowser/fieldtreeitem.h b/ground/openpilotgcs/src/plugins/uavobjectbrowser/fieldtreeitem.h index 256775172..cbdab0cb5 100644 --- a/ground/openpilotgcs/src/plugins/uavobjectbrowser/fieldtreeitem.h +++ b/ground/openpilotgcs/src/plugins/uavobjectbrowser/fieldtreeitem.h @@ -30,11 +30,11 @@ #include "treeitem.h" #include -#include -#include -#include +#include +#include +#include #include -#include +#include #include #define QINT8MIN std::numeric_limits::min() diff --git a/ground/openpilotgcs/src/plugins/uavobjectbrowser/uavobjectbrowserconfiguration.h b/ground/openpilotgcs/src/plugins/uavobjectbrowser/uavobjectbrowserconfiguration.h index 43152d9d6..6dcae4bf5 100644 --- a/ground/openpilotgcs/src/plugins/uavobjectbrowser/uavobjectbrowserconfiguration.h +++ b/ground/openpilotgcs/src/plugins/uavobjectbrowser/uavobjectbrowserconfiguration.h @@ -29,7 +29,7 @@ #define UAVOBJECTBROWSERCONFIGURATION_H #include -#include +#include using namespace Core; diff --git a/ground/openpilotgcs/src/plugins/uavobjectbrowser/uavobjectbrowseroptionspage.cpp b/ground/openpilotgcs/src/plugins/uavobjectbrowser/uavobjectbrowseroptionspage.cpp index a6cce1027..90d1b2b9f 100644 --- a/ground/openpilotgcs/src/plugins/uavobjectbrowser/uavobjectbrowseroptionspage.cpp +++ b/ground/openpilotgcs/src/plugins/uavobjectbrowser/uavobjectbrowseroptionspage.cpp @@ -27,12 +27,12 @@ #include "uavobjectbrowseroptionspage.h" #include "uavobjectbrowserconfiguration.h" -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include #include "ui_uavobjectbrowseroptionspage.h" diff --git a/ground/openpilotgcs/src/plugins/uavobjectbrowser/uavobjectbrowseroptionspage.h b/ground/openpilotgcs/src/plugins/uavobjectbrowser/uavobjectbrowseroptionspage.h index ebe3e21eb..6ee56da8c 100644 --- a/ground/openpilotgcs/src/plugins/uavobjectbrowser/uavobjectbrowseroptionspage.h +++ b/ground/openpilotgcs/src/plugins/uavobjectbrowser/uavobjectbrowseroptionspage.h @@ -29,7 +29,7 @@ #define UAVOBJECTBROWSEROPTIONSPAGE_H #include "coreplugin/dialogs/ioptionspage.h" -#include +#include #include diff --git a/ground/openpilotgcs/src/plugins/uavobjectbrowser/uavobjectbrowserwidget.cpp b/ground/openpilotgcs/src/plugins/uavobjectbrowser/uavobjectbrowserwidget.cpp index 178499c14..bcca753e3 100644 --- a/ground/openpilotgcs/src/plugins/uavobjectbrowser/uavobjectbrowserwidget.cpp +++ b/ground/openpilotgcs/src/plugins/uavobjectbrowser/uavobjectbrowserwidget.cpp @@ -32,12 +32,12 @@ #include "ui_viewoptions.h" #include "uavobjectmanager.h" #include -#include -#include -#include -#include +#include +#include +#include +#include #include -#include +#include #include "extensionsystem/pluginmanager.h" UAVObjectBrowserWidget::UAVObjectBrowserWidget(QWidget *parent) : QWidget(parent) diff --git a/ground/openpilotgcs/src/plugins/uavobjectbrowser/uavobjectbrowserwidget.h b/ground/openpilotgcs/src/plugins/uavobjectbrowser/uavobjectbrowserwidget.h index 707473e3d..dfc3bb394 100644 --- a/ground/openpilotgcs/src/plugins/uavobjectbrowser/uavobjectbrowserwidget.h +++ b/ground/openpilotgcs/src/plugins/uavobjectbrowser/uavobjectbrowserwidget.h @@ -28,8 +28,8 @@ #ifndef UAVOBJECTBROWSERWIDGET_H_ #define UAVOBJECTBROWSERWIDGET_H_ -#include -#include +#include +#include #include "objectpersistence.h" #include "uavobjecttreemodel.h" diff --git a/ground/openpilotgcs/src/plugins/uavobjectbrowser/uavobjecttreemodel.cpp b/ground/openpilotgcs/src/plugins/uavobjectbrowser/uavobjecttreemodel.cpp index 5986204a3..23e4849ac 100644 --- a/ground/openpilotgcs/src/plugins/uavobjectbrowser/uavobjecttreemodel.cpp +++ b/ground/openpilotgcs/src/plugins/uavobjectbrowser/uavobjecttreemodel.cpp @@ -32,8 +32,8 @@ #include "uavmetaobject.h" #include "uavobjectfield.h" #include "extensionsystem/pluginmanager.h" -#include -// #include +#include +// #include #include #include #include diff --git a/ground/openpilotgcs/src/plugins/uavobjectbrowser/uavobjecttreemodel.h b/ground/openpilotgcs/src/plugins/uavobjectbrowser/uavobjecttreemodel.h index 04adb3ca9..86e5c90c8 100644 --- a/ground/openpilotgcs/src/plugins/uavobjectbrowser/uavobjecttreemodel.h +++ b/ground/openpilotgcs/src/plugins/uavobjectbrowser/uavobjecttreemodel.h @@ -32,7 +32,7 @@ #include #include #include -#include +#include class TopTreeItem; class ObjectTreeItem; diff --git a/ground/openpilotgcs/src/plugins/uavobjects/uavobjectfield.cpp b/ground/openpilotgcs/src/plugins/uavobjects/uavobjectfield.cpp index 4e0c5c613..e6c01d831 100644 --- a/ground/openpilotgcs/src/plugins/uavobjects/uavobjectfield.cpp +++ b/ground/openpilotgcs/src/plugins/uavobjects/uavobjectfield.cpp @@ -1102,7 +1102,7 @@ void UAVObjectField::setValue(const QVariant & value, quint32 index) case STRING: { QString str = value.toString(); - QByteArray barray = str.toAscii(); + QByteArray barray = str.toLatin1(); quint32 index; for (index = 0; index < (quint32)barray.length() && index < (numElements - 1); ++index) { data[offset + index] = barray[index]; diff --git a/ground/openpilotgcs/src/plugins/uavobjects/uavobjectsplugin.cpp b/ground/openpilotgcs/src/plugins/uavobjects/uavobjectsplugin.cpp index 892f2e11e..44d53f61a 100644 --- a/ground/openpilotgcs/src/plugins/uavobjects/uavobjectsplugin.cpp +++ b/ground/openpilotgcs/src/plugins/uavobjects/uavobjectsplugin.cpp @@ -53,5 +53,3 @@ bool UAVObjectsPlugin::initialize(const QStringList & arguments, QString *errorS void UAVObjectsPlugin::shutdown() {} - -Q_EXPORT_PLUGIN(UAVObjectsPlugin) diff --git a/ground/openpilotgcs/src/plugins/uavobjects/uavobjectsplugin.h b/ground/openpilotgcs/src/plugins/uavobjects/uavobjectsplugin.h index 4a9238752..a684dcc21 100644 --- a/ground/openpilotgcs/src/plugins/uavobjects/uavobjectsplugin.h +++ b/ground/openpilotgcs/src/plugins/uavobjects/uavobjectsplugin.h @@ -36,6 +36,7 @@ class UAVOBJECTS_EXPORT UAVObjectsPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "OpenPilot.UAVObjects") public: UAVObjectsPlugin(); diff --git a/ground/openpilotgcs/src/plugins/uavobjectutil/uavobjectutilplugin.cpp b/ground/openpilotgcs/src/plugins/uavobjectutil/uavobjectutilplugin.cpp index 6ec8cda12..10399554c 100644 --- a/ground/openpilotgcs/src/plugins/uavobjectutil/uavobjectutilplugin.cpp +++ b/ground/openpilotgcs/src/plugins/uavobjectutil/uavobjectutilplugin.cpp @@ -51,5 +51,3 @@ bool UAVObjectUtilPlugin::initialize(const QStringList & arguments, QString *err void UAVObjectUtilPlugin::shutdown() {} - -Q_EXPORT_PLUGIN(UAVObjectUtilPlugin) diff --git a/ground/openpilotgcs/src/plugins/uavobjectutil/uavobjectutilplugin.h b/ground/openpilotgcs/src/plugins/uavobjectutil/uavobjectutilplugin.h index 87cbd838a..ed3a20efc 100644 --- a/ground/openpilotgcs/src/plugins/uavobjectutil/uavobjectutilplugin.h +++ b/ground/openpilotgcs/src/plugins/uavobjectutil/uavobjectutilplugin.h @@ -35,6 +35,7 @@ class UAVOBJECTUTIL_EXPORT UAVObjectUtilPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "OpenPilot.UAVObjectUtil") public: UAVObjectUtilPlugin(); @@ -45,4 +46,4 @@ public: void shutdown(); }; -#endif +#endif // ifndef UAVOBJECTUTILPLUGIN_H diff --git a/ground/openpilotgcs/src/plugins/uavobjectwidgetutils/configtaskwidget.cpp b/ground/openpilotgcs/src/plugins/uavobjectwidgetutils/configtaskwidget.cpp index df6cf2236..ac6951d3a 100644 --- a/ground/openpilotgcs/src/plugins/uavobjectwidgetutils/configtaskwidget.cpp +++ b/ground/openpilotgcs/src/plugins/uavobjectwidgetutils/configtaskwidget.cpp @@ -25,8 +25,8 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "configtaskwidget.h" -#include -#include +#include +#include #include "uavsettingsimportexport/uavsettingsimportexportfactory.h" /** diff --git a/ground/openpilotgcs/src/plugins/uavobjectwidgetutils/configtaskwidget.h b/ground/openpilotgcs/src/plugins/uavobjectwidgetutils/configtaskwidget.h index 191647fac..3382c7f39 100644 --- a/ground/openpilotgcs/src/plugins/uavobjectwidgetutils/configtaskwidget.h +++ b/ground/openpilotgcs/src/plugins/uavobjectwidgetutils/configtaskwidget.h @@ -33,7 +33,7 @@ #include "uavobject.h" #include "uavobjectutilmanager.h" #include -#include +#include #include #include #include "smartsavebutton.h" diff --git a/ground/openpilotgcs/src/plugins/uavobjectwidgetutils/mixercurvepoint.h b/ground/openpilotgcs/src/plugins/uavobjectwidgetutils/mixercurvepoint.h index 6da0bcb95..27ad9eb11 100644 --- a/ground/openpilotgcs/src/plugins/uavobjectwidgetutils/mixercurvepoint.h +++ b/ground/openpilotgcs/src/plugins/uavobjectwidgetutils/mixercurvepoint.h @@ -32,6 +32,7 @@ #include #include #include +#include "uavobjectwidgetutils_global.h" class Edge; class MixerCurveWidget; @@ -39,8 +40,10 @@ QT_BEGIN_NAMESPACE class QGraphicsSceneMouseEvent; QT_END_NAMESPACE -class MixerNode : public QObject, public QGraphicsItem { + +class UAVOBJECTWIDGETUTILS_EXPORT MixerNode : public QObject, public QGraphicsItem { Q_OBJECT + Q_INTERFACES(QGraphicsItem) public: MixerNode(MixerCurveWidget *graphWidget); void addEdge(Edge *edge); diff --git a/ground/openpilotgcs/src/plugins/uavobjectwidgetutils/popupwidget.cpp b/ground/openpilotgcs/src/plugins/uavobjectwidgetutils/popupwidget.cpp index 727e1b0e3..59beacf67 100644 --- a/ground/openpilotgcs/src/plugins/uavobjectwidgetutils/popupwidget.cpp +++ b/ground/openpilotgcs/src/plugins/uavobjectwidgetutils/popupwidget.cpp @@ -1,6 +1,10 @@ #include "popupwidget.h" #include +#include +#include +#include +#include PopupWidget::PopupWidget(QWidget *parent) : QDialog(parent) diff --git a/ground/openpilotgcs/src/plugins/uavobjectwidgetutils/popupwidget.h b/ground/openpilotgcs/src/plugins/uavobjectwidgetutils/popupwidget.h index 6f828eb67..01e8b0919 100644 --- a/ground/openpilotgcs/src/plugins/uavobjectwidgetutils/popupwidget.h +++ b/ground/openpilotgcs/src/plugins/uavobjectwidgetutils/popupwidget.h @@ -3,6 +3,7 @@ #include #include +#include #include diff --git a/ground/openpilotgcs/src/plugins/uavobjectwidgetutils/uavobjectwidgetutilsplugin.cpp b/ground/openpilotgcs/src/plugins/uavobjectwidgetutils/uavobjectwidgetutilsplugin.cpp index 43f044bb0..f56277130 100644 --- a/ground/openpilotgcs/src/plugins/uavobjectwidgetutils/uavobjectwidgetutilsplugin.cpp +++ b/ground/openpilotgcs/src/plugins/uavobjectwidgetutils/uavobjectwidgetutilsplugin.cpp @@ -46,5 +46,3 @@ bool UAVObjectWidgetUtilsPlugin::initialize(const QStringList & arguments, QStri void UAVObjectWidgetUtilsPlugin::shutdown() {} - -Q_EXPORT_PLUGIN(UAVObjectWidgetUtilsPlugin) diff --git a/ground/openpilotgcs/src/plugins/uavobjectwidgetutils/uavobjectwidgetutilsplugin.h b/ground/openpilotgcs/src/plugins/uavobjectwidgetutils/uavobjectwidgetutilsplugin.h index 4bce47bb3..dc988ef7f 100644 --- a/ground/openpilotgcs/src/plugins/uavobjectwidgetutils/uavobjectwidgetutilsplugin.h +++ b/ground/openpilotgcs/src/plugins/uavobjectwidgetutils/uavobjectwidgetutilsplugin.h @@ -33,6 +33,7 @@ class UAVOBJECTWIDGETUTILS_EXPORT UAVObjectWidgetUtilsPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "OpenPilot.UAVObjectWidgetUtils") public: UAVObjectWidgetUtilsPlugin(); diff --git a/ground/openpilotgcs/src/plugins/uavsettingsimportexport/uavsettingsimportexport.cpp b/ground/openpilotgcs/src/plugins/uavsettingsimportexport/uavsettingsimportexport.cpp index 6f20de57c..8b4fe1ec3 100644 --- a/ground/openpilotgcs/src/plugins/uavsettingsimportexport/uavsettingsimportexport.cpp +++ b/ground/openpilotgcs/src/plugins/uavsettingsimportexport/uavsettingsimportexport.cpp @@ -75,4 +75,3 @@ void UAVSettingsImportExportPlugin::shutdown() } void UAVSettingsImportExportPlugin::extensionsInitialized() {} -Q_EXPORT_PLUGIN(UAVSettingsImportExportPlugin) diff --git a/ground/openpilotgcs/src/plugins/uavsettingsimportexport/uavsettingsimportexport.h b/ground/openpilotgcs/src/plugins/uavsettingsimportexport/uavsettingsimportexport.h index 286650cfb..08d92a114 100644 --- a/ground/openpilotgcs/src/plugins/uavsettingsimportexport/uavsettingsimportexport.h +++ b/ground/openpilotgcs/src/plugins/uavsettingsimportexport/uavsettingsimportexport.h @@ -31,9 +31,9 @@ #include "uavobjectutil/uavobjectutilmanager.h" #include "uavsettingsimportexport_global.h" #include "uavsettingsimportexportfactory.h" - class UAVSETTINGSIMPORTEXPORT_EXPORT UAVSettingsImportExportPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "OpenPilot.UAVSettingsImportExport") public: UAVSettingsImportExportPlugin(); diff --git a/ground/openpilotgcs/src/plugins/uavsettingsimportexport/uavsettingsimportexportfactory.cpp b/ground/openpilotgcs/src/plugins/uavsettingsimportexport/uavsettingsimportexportfactory.cpp index 10fcc70cd..e3b058fae 100644 --- a/ground/openpilotgcs/src/plugins/uavsettingsimportexport/uavsettingsimportexportfactory.cpp +++ b/ground/openpilotgcs/src/plugins/uavsettingsimportexport/uavsettingsimportexportfactory.cpp @@ -357,7 +357,7 @@ void UAVSettingsImportExportFactory::exportUAVSettings() // save file QFile file(fileName); if (file.open(QIODevice::WriteOnly) && - (file.write(xml.toAscii()) != -1)) { + (file.write(xml.toLatin1()) != -1)) { file.close(); } else { QMessageBox::critical(0, @@ -408,7 +408,7 @@ void UAVSettingsImportExportFactory::exportUAVData() // save file QFile file(fileName); if (file.open(QIODevice::WriteOnly) && - (file.write(xml.toAscii()) != -1)) { + (file.write(xml.toLatin1()) != -1)) { file.close(); } else { QMessageBox::critical(0, diff --git a/ground/openpilotgcs/src/plugins/uavtalk/telemetry.cpp b/ground/openpilotgcs/src/plugins/uavtalk/telemetry.cpp index bc7cfc6a3..15dc5ad47 100644 --- a/ground/openpilotgcs/src/plugins/uavtalk/telemetry.cpp +++ b/ground/openpilotgcs/src/plugins/uavtalk/telemetry.cpp @@ -26,7 +26,6 @@ */ #include "telemetry.h" -#include "qxtlogger.h" #include "oplinksettings.h" #include "objectpersistence.h" #include @@ -295,7 +294,7 @@ void Telemetry::processObjectUpdates(UAVObject *obj, EventMask event, bool allIn } else { ++txErrors; obj->emitTransactionCompleted(false); - qxtLog->warning(tr("Telemetry: priority event queue is full, event lost (%1)").arg(obj->getName())); + qDebug() << tr("Telemetry: priority event queue is full, event lost (%1)").arg(obj->getName()); } } else { if (objQueue.length() < MAX_QUEUE_SIZE) { diff --git a/ground/openpilotgcs/src/plugins/uavtalk/telemetrymonitor.cpp b/ground/openpilotgcs/src/plugins/uavtalk/telemetrymonitor.cpp index 6d1a8268e..3e177a0bb 100644 --- a/ground/openpilotgcs/src/plugins/uavtalk/telemetrymonitor.cpp +++ b/ground/openpilotgcs/src/plugins/uavtalk/telemetrymonitor.cpp @@ -26,7 +26,6 @@ */ #include "telemetrymonitor.h" -#include "qxtlogger.h" #include "coreplugin/connectionmanager.h" #include "coreplugin/icore.h" @@ -98,8 +97,8 @@ void TelemetryMonitor::startRetrievingObjects() } } // Start retrieving - qxtLog->debug(tr("Starting to retrieve meta and settings objects from the autopilot (%1 objects)") - .arg(queue.length())); + qDebug() << tr("Starting to retrieve meta and settings objects from the autopilot (%1 objects)") + .arg(queue.length()); retrieveNextObject(); } @@ -108,7 +107,7 @@ void TelemetryMonitor::startRetrievingObjects() */ void TelemetryMonitor::stopRetrievingObjects() { - qxtLog->debug("Object retrieval has been cancelled"); + qDebug("Object retrieval has been cancelled"); queue.clear(); } @@ -119,13 +118,13 @@ void TelemetryMonitor::retrieveNextObject() { // If queue is empty return if (queue.isEmpty()) { - qxtLog->debug("Object retrieval completed"); + qDebug("Object retrieval completed"); emit connected(); return; } // Get next object from the queue UAVObject *obj = queue.dequeue(); - // qxtLog->trace( tr("Retrieving object: %1").arg(obj->getName()) ); + // qDebug( tr("Retrieving object: %1").arg(obj->getName()) ); // Connect to object connect(obj, SIGNAL(transactionCompleted(UAVObject *, bool)), this, SLOT(transactionCompleted(UAVObject *, bool))); // Request update @@ -232,13 +231,13 @@ void TelemetryMonitor::processStatsUpdates() // Act on new connections or disconnections if (gcsStats.Status == GCSTelemetryStats::STATUS_CONNECTED && gcsStats.Status != oldStatus) { statsTimer->setInterval(STATS_UPDATE_PERIOD_MS); - qxtLog->info("Connection with the autopilot established"); + qDebug("Connection with the autopilot established"); startRetrievingObjects(); } if (gcsStats.Status == GCSTelemetryStats::STATUS_DISCONNECTED && gcsStats.Status != oldStatus) { statsTimer->setInterval(STATS_CONNECT_PERIOD_MS); - qxtLog->info("Connection with the autopilot lost"); - qxtLog->info("Trying to connect to the autopilot"); + qDebug("Connection with the autopilot lost"); + qDebug("Trying to connect to the autopilot"); emit disconnected(); } } diff --git a/ground/openpilotgcs/src/plugins/uavtalk/uavtalk.cpp b/ground/openpilotgcs/src/plugins/uavtalk/uavtalk.cpp index 13f621880..366aa56e4 100644 --- a/ground/openpilotgcs/src/plugins/uavtalk/uavtalk.cpp +++ b/ground/openpilotgcs/src/plugins/uavtalk/uavtalk.cpp @@ -31,8 +31,7 @@ #include // #define UAVTALK_DEBUG #ifdef UAVTALK_DEBUG - #include "qxtlogger.h" - #define UAVTALK_QXTLOG_DEBUG(args ...) qxtLog->debug(args ...) + #define UAVTALK_QXTLOG_DEBUG(args ...) #else // UAVTALK_DEBUG #define UAVTALK_QXTLOG_DEBUG(args ...) #endif // UAVTALK_DEBUG diff --git a/ground/openpilotgcs/src/plugins/uavtalk/uavtalkplugin.cpp b/ground/openpilotgcs/src/plugins/uavtalk/uavtalkplugin.cpp index 398e0b016..370c699d2 100644 --- a/ground/openpilotgcs/src/plugins/uavtalk/uavtalkplugin.cpp +++ b/ground/openpilotgcs/src/plugins/uavtalk/uavtalkplugin.cpp @@ -77,5 +77,3 @@ void UAVTalkPlugin::onDeviceDisconnect() { telMngr->stop(); } - -Q_EXPORT_PLUGIN(UAVTalkPlugin) diff --git a/ground/openpilotgcs/src/plugins/uavtalk/uavtalkplugin.h b/ground/openpilotgcs/src/plugins/uavtalk/uavtalkplugin.h index e28acfc1f..4d5aaa598 100644 --- a/ground/openpilotgcs/src/plugins/uavtalk/uavtalkplugin.h +++ b/ground/openpilotgcs/src/plugins/uavtalk/uavtalkplugin.h @@ -38,6 +38,7 @@ class UAVTALK_EXPORT UAVTalkPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "OpenPilot.UAVTalk") public: UAVTalkPlugin(); diff --git a/ground/openpilotgcs/src/plugins/uploader/SSP/port.cpp b/ground/openpilotgcs/src/plugins/uploader/SSP/port.cpp index 54ff148c8..28d3db811 100644 --- a/ground/openpilotgcs/src/plugins/uploader/SSP/port.cpp +++ b/ground/openpilotgcs/src/plugins/uploader/SSP/port.cpp @@ -26,12 +26,18 @@ */ #include "port.h" #include "delay.h" -port::port(PortSettings settings, QString name) : mstatus(port::closed) +port::port(QString name) : mstatus(port::closed) { timer.start(); - sport = new QextSerialPort(name, settings, QextSerialPort::Polling); + sport = new QSerialPort(name); if (sport->open(QIODevice::ReadWrite | QIODevice::Unbuffered)) { - mstatus = port::open; + if (sport->setBaudRate(57600) + && sport->setDataBits(QSerialPort::Data8) + && sport->setParity(QSerialPort::NoParity) + && sport->setStopBits(QSerialPort::OneStop) + && sport->setFlowControl(QSerialPort::NoFlowControl)) { + mstatus = port::open; + } // sport->setDtr(); } else { mstatus = port::error; diff --git a/ground/openpilotgcs/src/plugins/uploader/SSP/port.h b/ground/openpilotgcs/src/plugins/uploader/SSP/port.h index 8cc87f48f..8f141625f 100644 --- a/ground/openpilotgcs/src/plugins/uploader/SSP/port.h +++ b/ground/openpilotgcs/src/plugins/uploader/SSP/port.h @@ -27,7 +27,8 @@ #ifndef PORT_H #define PORT_H #include -#include +#include +#include #include #include #include "common.h" @@ -62,13 +63,13 @@ public: uint32_t RxError; uint32_t TxError; uint16_t flags; - port(PortSettings settings, QString name); + port(QString name); ~port(); portstatus status(); private: portstatus mstatus; QTime timer; - QextSerialPort *sport; + QSerialPort *sport; }; #endif // PORT_H diff --git a/ground/openpilotgcs/src/plugins/uploader/SSP/qsspt.h b/ground/openpilotgcs/src/plugins/uploader/SSP/qsspt.h index e7e61c5ee..2a4714bcb 100644 --- a/ground/openpilotgcs/src/plugins/uploader/SSP/qsspt.h +++ b/ground/openpilotgcs/src/plugins/uploader/SSP/qsspt.h @@ -31,6 +31,7 @@ #include #include #include +#include class qsspt : public qssp, public QThread { public: qsspt(port *info, bool debug); diff --git a/ground/openpilotgcs/src/plugins/uploader/op_dfu.cpp b/ground/openpilotgcs/src/plugins/uploader/op_dfu.cpp index 67a0a080f..2ebb1495e 100644 --- a/ground/openpilotgcs/src/plugins/uploader/op_dfu.cpp +++ b/ground/openpilotgcs/src/plugins/uploader/op_dfu.cpp @@ -29,7 +29,7 @@ #include #include #include -#include +#include using namespace OP_DFU; @@ -42,14 +42,7 @@ DFUObject::DFUObject(bool _debug, bool _use_serial, QString portname) : qRegisterMetaType("Status"); if (use_serial) { - PortSettings settings; - settings.BaudRate = BAUD57600; - settings.DataBits = DATA_8; - settings.FlowControl = FLOW_OFF; - settings.Parity = PAR_NONE; - settings.StopBits = STOP_1; - settings.Timeout_Millisec = 1000; - info = new port(settings, portname); + info = new port(portname); info->rxBuf = sspRxBuf; info->rxBufSize = MAX_PACKET_DATA_LEN; info->txBuf = sspTxBuf; @@ -316,7 +309,7 @@ OP_DFU::Status DFUObject::UploadDescription(QVariant desc) padding.fill(' ', pad); description.append(padding); } - array = description.toAscii(); + array = description.toLatin1(); } else if (desc.type() == QMetaType::QByteArray) { array = desc.toByteArray(); } diff --git a/ground/openpilotgcs/src/plugins/uploader/op_dfu.h b/ground/openpilotgcs/src/plugins/uploader/op_dfu.h index ea3629587..33cef9abb 100644 --- a/ground/openpilotgcs/src/plugins/uploader/op_dfu.h +++ b/ground/openpilotgcs/src/plugins/uploader/op_dfu.h @@ -16,7 +16,8 @@ #include #include #include "delay.h" -#include +#include +#include #include #include #include "SSP/qssp.h" diff --git a/ground/openpilotgcs/src/plugins/uploader/uploader.pro b/ground/openpilotgcs/src/plugins/uploader/uploader.pro index 6fc9bc488..2b52a8649 100644 --- a/ground/openpilotgcs/src/plugins/uploader/uploader.pro +++ b/ground/openpilotgcs/src/plugins/uploader/uploader.pro @@ -1,10 +1,12 @@ TEMPLATE = lib TARGET = Uploader DEFINES += UPLOADER_LIBRARY -QT += svg + +QT += svg serialport + include(uploader_dependencies.pri) include(../../libs/version_info/version_info.pri) -INCLUDEPATH += ../../libs/qextserialport/src + macx { QMAKE_CXXFLAGS += -fpermissive } @@ -25,6 +27,7 @@ HEADERS += uploadergadget.h \ runningdevicewidget.h \ uploader_global.h \ enums.h + SOURCES += uploadergadget.cpp \ uploadergadgetconfiguration.cpp \ uploadergadgetfactory.cpp \ @@ -38,6 +41,7 @@ SOURCES += uploadergadget.cpp \ SSP/qssp.cpp \ SSP/qsspt.cpp \ runningdevicewidget.cpp + OTHER_FILES += Uploader.pluginspec \ FORMS += \ @@ -47,6 +51,7 @@ FORMS += \ RESOURCES += \ uploader.qrc + exists( ../../../../../build/openpilotgcs-synthetics/opfw_resource.qrc ) { RESOURCES += ../../../../../build/openpilotgcs-synthetics/opfw_resource.qrc } else { diff --git a/ground/openpilotgcs/src/plugins/uploader/uploadergadgetconfiguration.cpp b/ground/openpilotgcs/src/plugins/uploader/uploadergadgetconfiguration.cpp index 91e08c15f..75f3de00e 100644 --- a/ground/openpilotgcs/src/plugins/uploader/uploadergadgetconfiguration.cpp +++ b/ground/openpilotgcs/src/plugins/uploader/uploadergadgetconfiguration.cpp @@ -26,7 +26,8 @@ */ #include "uploadergadgetconfiguration.h" -#include +#include +#include /** * Loads a saved configuration or defaults if non exist. @@ -35,20 +36,20 @@ UploaderGadgetConfiguration::UploaderGadgetConfiguration(QString classId, QSettings *qSettings, QObject *parent) : IUAVGadgetConfiguration(classId, parent), m_defaultPort("Unknown"), - m_defaultSpeed(BAUD19200), - m_defaultDataBits(DATA_8), - m_defaultFlow(FLOW_OFF), - m_defaultParity(PAR_NONE), - m_defaultStopBits(STOP_1), + m_defaultSpeed(QSerialPort::UnknownBaud), + m_defaultDataBits(QSerialPort::UnknownDataBits), + m_defaultFlow(QSerialPort::UnknownFlowControl), + m_defaultParity(QSerialPort::UnknownParity), + m_defaultStopBits(QSerialPort::UnknownStopBits), m_defaultTimeOut(5000) { // if a saved configuration exists load it if (qSettings != 0) { - BaudRateType speed; - DataBitsType databits; - FlowType flow; - ParityType parity; - StopBitsType stopbits; + QSerialPort::BaudRate speed; + QSerialPort::DataBits databits; + QSerialPort::FlowControl flow; + QSerialPort::Parity parity; + QSerialPort::StopBits stopbits; int ispeed = qSettings->value("defaultSpeed").toInt(); int idatabits = qSettings->value("defaultDataBits").toInt(); @@ -57,11 +58,11 @@ UploaderGadgetConfiguration::UploaderGadgetConfiguration(QString classId, QSetti int istopbits = qSettings->value("defaultStopBits").toInt(); QString port = qSettings->value("defaultPort").toString(); - databits = (DataBitsType)idatabits; - flow = (FlowType)iflow; - parity = (ParityType)iparity; - stopbits = (StopBitsType)istopbits; - speed = (BaudRateType)ispeed; + databits = (QSerialPort::DataBits)idatabits; + flow = (QSerialPort::FlowControl)iflow; + parity = (QSerialPort::Parity)iparity; + stopbits = (QSerialPort::StopBits)istopbits; + speed = (QSerialPort::BaudRate)ispeed; m_defaultPort = port; m_defaultSpeed = speed; m_defaultDataBits = databits; diff --git a/ground/openpilotgcs/src/plugins/uploader/uploadergadgetconfiguration.h b/ground/openpilotgcs/src/plugins/uploader/uploadergadgetconfiguration.h index 558cb96ae..2d1ee84e8 100644 --- a/ground/openpilotgcs/src/plugins/uploader/uploadergadgetconfiguration.h +++ b/ground/openpilotgcs/src/plugins/uploader/uploadergadgetconfiguration.h @@ -29,34 +29,47 @@ #define UPLOADERGADGETCONFIGURATION_H #include -#include +#include +#include #include "uploader_global.h" using namespace Core; +/** + * structure to contain port settings + */ +struct PortSettings { + QSerialPort::BaudRate BaudRate; + QSerialPort::DataBits DataBits; + QSerialPort::Parity Parity; + QSerialPort::StopBits StopBits; + QSerialPort::FlowControl FlowControl; + long Timeout_Millisec; +}; + class UPLOADER_EXPORT UploaderGadgetConfiguration : public IUAVGadgetConfiguration { Q_OBJECT public: explicit UploaderGadgetConfiguration(QString classId, QSettings *qSettings = 0, QObject *parent = 0); // set port configuration functions - void setSpeed(BaudRateType speed) + void setSpeed(QSerialPort::BaudRate speed) { m_defaultSpeed = speed; } - void setDataBits(DataBitsType databits) + void setDataBits(QSerialPort::DataBits databits) { m_defaultDataBits = databits; } - void setFlow(FlowType flow) + void setFlow(QSerialPort::FlowControl flow) { m_defaultFlow = flow; } - void setParity(ParityType parity) + void setParity(QSerialPort::Parity parity) { m_defaultParity = parity; } - void setStopBits(StopBitsType stopbits) + void setStopBits(QSerialPort::StopBits stopbits) { m_defaultStopBits = stopbits; } @@ -70,45 +83,44 @@ public: } // get port configuration functions - BaudRateType Speed() - { - return m_defaultSpeed; - } - DataBitsType DataBits() - { - return m_defaultDataBits; - } - FlowType Flow() - { - return m_defaultFlow; - } - ParityType Parity() - { - return m_defaultParity; - } - StopBitsType StopBits() - { - return m_defaultStopBits; - } - QString Port() + QString port() { return m_defaultPort; } - long TimeOut() + QSerialPort::BaudRate speed() + { + return m_defaultSpeed; + } + QSerialPort::FlowControl flow() + { + return m_defaultFlow; + } + QSerialPort::DataBits dataBits() + { + return m_defaultDataBits; + } + QSerialPort::StopBits stopBits() + { + return m_defaultStopBits; + } + QSerialPort::Parity parity() + { + return m_defaultParity; + } + long timeOut() { return m_defaultTimeOut; } - void saveConfig(QSettings *settings) const; IUAVGadgetConfiguration *clone(); private: QString m_defaultPort; - BaudRateType m_defaultSpeed; - DataBitsType m_defaultDataBits; - FlowType m_defaultFlow; - ParityType m_defaultParity; - StopBitsType m_defaultStopBits; + QSerialPort::BaudRate m_defaultSpeed; + QSerialPort::DataBits m_defaultDataBits; + QSerialPort::FlowControl m_defaultFlow; + QSerialPort::Parity m_defaultParity; + QSerialPort::StopBits m_defaultStopBits; long m_defaultTimeOut; }; diff --git a/ground/openpilotgcs/src/plugins/uploader/uploadergadgetoptionspage.cpp b/ground/openpilotgcs/src/plugins/uploader/uploadergadgetoptionspage.cpp index ccaa091a1..46d27667f 100644 --- a/ground/openpilotgcs/src/plugins/uploader/uploadergadgetoptionspage.cpp +++ b/ground/openpilotgcs/src/plugins/uploader/uploadergadgetoptionspage.cpp @@ -27,13 +27,13 @@ #include "uploadergadgetoptionspage.h" #include "uploadergadgetconfiguration.h" -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include #include #include diff --git a/ground/openpilotgcs/src/plugins/uploader/uploadergadgetoptionspage.h b/ground/openpilotgcs/src/plugins/uploader/uploadergadgetoptionspage.h index 63a72b936..afbd235bf 100644 --- a/ground/openpilotgcs/src/plugins/uploader/uploadergadgetoptionspage.h +++ b/ground/openpilotgcs/src/plugins/uploader/uploadergadgetoptionspage.h @@ -27,7 +27,8 @@ #ifndef UPLOADERGADGETOPTIONSPAGE_H #define UPLOADERGADGETOPTIONSPAGE_H -#include +#include +#include #include "coreplugin/dialogs/ioptionspage.h" #include "QString" #include @@ -62,15 +63,6 @@ private: QComboBox *m_parityCB; QComboBox *m_stopbitsCB; QSpinBox *m_timeoutSpin; - QStringList BaudRateTypeString; - QStringList BaudRateTypeStringALL; - QStringList DataBitsTypeStringALL; - QStringList ParityTypeStringALL; - QStringList StopBitsTypeStringALL; - QStringList DataBitsTypeString; - QStringList ParityTypeString; - QStringList StopBitsTypeString; - QStringList FlowTypeString; }; #endif // UPLOADERGADGETOPTIONSPAGE_H diff --git a/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.cpp b/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.cpp index f90ad751c..2063fea3a 100644 --- a/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.cpp +++ b/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.cpp @@ -84,9 +84,9 @@ UploaderGadgetWidget::UploaderGadgetWidget(QWidget *parent) : QWidget(parent) } -bool sortPorts(const QextPortInfo &s1, const QextPortInfo &s2) +bool sortPorts(const QSerialPortInfo &s1, const QSerialPortInfo &s2) { - return s1.portName < s2.portName; + return s1.portName() < s2.portName(); } /** @@ -100,12 +100,12 @@ void UploaderGadgetWidget::getSerialPorts() m_config->telemetryLink->clear(); list.append(QString("USB")); - QList ports = QextSerialEnumerator::getPorts(); + QList ports = QSerialPortInfo::availablePorts(); // sort the list by port number (nice idea from PT_Dreamer :)) qSort(ports.begin(), ports.end(), sortPorts); - foreach(QextPortInfo port, ports) { - list.append(port.friendName); + foreach(QSerialPortInfo port, ports) { + list.append(port.portName()); } m_config->telemetryLink->addItems(list); @@ -114,14 +114,11 @@ void UploaderGadgetWidget::getSerialPorts() QString UploaderGadgetWidget::getPortDevice(const QString &friendName) { - QList ports = QextSerialEnumerator::getPorts(); - foreach(QextPortInfo port, ports) { - if (port.friendName == friendName) -#ifdef Q_OS_WIN - { return port.portName; } -#else - { return port.physName; } -#endif + QList ports = QSerialPortInfo::availablePorts(); + foreach(QSerialPortInfo port, ports) { + if (port.portName() == friendName) { + return port.portName(); + } } return ""; } @@ -959,6 +956,7 @@ void UploaderGadgetWidget::versionMatchCheck() QByteArray uavoHashArray; QString uavoHash = VersionInfo::uavoHashArray(); + uavoHash.chop(2); uavoHash.remove(0, 2); uavoHash = uavoHash.trimmed(); diff --git a/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.h b/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.h index cf7f39586..3a59de352 100644 --- a/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.h +++ b/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.h @@ -33,9 +33,8 @@ #include "devicewidget.h" #include "runningdevicewidget.h" #include "op_dfu.h" -#include -#include - +#include +#include #include "uavtalk/telemetrymanager.h" #include "extensionsystem/pluginmanager.h" @@ -46,7 +45,7 @@ #include "coreplugin/connectionmanager.h" #include "ophid/inc/ophid_plugin.h" -#include +#include #include #include #include diff --git a/ground/openpilotgcs/src/plugins/uploader/uploaderplugin.cpp b/ground/openpilotgcs/src/plugins/uploader/uploaderplugin.cpp index 629eb82d6..e58a1eee6 100644 --- a/ground/openpilotgcs/src/plugins/uploader/uploaderplugin.cpp +++ b/ground/openpilotgcs/src/plugins/uploader/uploaderplugin.cpp @@ -58,4 +58,3 @@ void UploaderPlugin::shutdown() { // Do nothing } -Q_EXPORT_PLUGIN(UploaderPlugin) diff --git a/ground/openpilotgcs/src/plugins/uploader/uploaderplugin.h b/ground/openpilotgcs/src/plugins/uploader/uploaderplugin.h index 082519f43..27fa2eae7 100644 --- a/ground/openpilotgcs/src/plugins/uploader/uploaderplugin.h +++ b/ground/openpilotgcs/src/plugins/uploader/uploaderplugin.h @@ -34,6 +34,8 @@ class UploaderGadgetFactory; class UPLOADER_EXPORT UploaderPlugin : public ExtensionSystem::IPlugin { + Q_OBJECT + Q_PLUGIN_METADATA(IID "OpenPilot.Uploader") public: UploaderPlugin(); ~UploaderPlugin(); diff --git a/ground/openpilotgcs/src/plugins/welcome/welcomemode.cpp b/ground/openpilotgcs/src/plugins/welcome/welcomemode.cpp index 895597672..501c4ba7a 100644 --- a/ground/openpilotgcs/src/plugins/welcome/welcomemode.cpp +++ b/ground/openpilotgcs/src/plugins/welcome/welcomemode.cpp @@ -39,7 +39,7 @@ #include #include -#include +#include #include #include diff --git a/ground/openpilotgcs/src/plugins/welcome/welcomeplugin.cpp b/ground/openpilotgcs/src/plugins/welcome/welcomeplugin.cpp index 85e427739..aedfbd330 100644 --- a/ground/openpilotgcs/src/plugins/welcome/welcomeplugin.cpp +++ b/ground/openpilotgcs/src/plugins/welcome/welcomeplugin.cpp @@ -39,10 +39,10 @@ #include #include -#include -#include -#include -#include +#include +#include +#include +#include using namespace Welcome::Internal; @@ -90,5 +90,3 @@ void WelcomePlugin::extensionsInitialized() { Core::ModeManager::instance()->activateMode(m_welcomeMode->uniqueModeName()); } - -Q_EXPORT_PLUGIN(WelcomePlugin) diff --git a/ground/openpilotgcs/src/plugins/welcome/welcomeplugin.h b/ground/openpilotgcs/src/plugins/welcome/welcomeplugin.h index 0a9d65604..a272d9550 100644 --- a/ground/openpilotgcs/src/plugins/welcome/welcomeplugin.h +++ b/ground/openpilotgcs/src/plugins/welcome/welcomeplugin.h @@ -38,6 +38,7 @@ namespace Internal { class WelcomePlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "OpenPilot.Welcome") public: WelcomePlugin();