diff --git a/Core/module.h b/Core/module.h index 9cffe8b6fafafdccc58e405b13bc98c1d315dea4..07507d0a4c103f79cd2992451e4b75fd2c139e15 100644 --- a/Core/module.h +++ b/Core/module.h @@ -1,31 +1,32 @@ #ifndef MODULE_H #define MODULE_H - #include <QObject> -#include "skywardhubcore.h" -#include "moduleeventshandler.h" + #include "Core/xmlobject.h" +#include "moduleeventshandler.h" +#include "skywardhubcore.h" -class Module { - public: +class Module +{ +public: Module(); virtual ~Module(); - virtual void initialize(const XmlObject ¶ms); - virtual QWidget* toWidget() = 0; - virtual XmlObject toXmlObject() = 0; - virtual void fromXmlObject(const XmlObject &xmlObject) = 0; + virtual void initialize(const XmlObject& params); + virtual QWidget* toWidget() = 0; + virtual XmlObject toXmlObject() = 0; + virtual void fromXmlObject(const XmlObject& xmlObject) = 0; - //ModulesManagerProxy& getModuleManager(); + // ModulesManagerProxy& getModuleManager(); SkywardHubCoreProxy& getCore(); ModuleEventsHandler* getModuleEventsHandler(); - protected: - //virtual void onManagerSetted(ModulesManager *manager); +protected: + // virtual void onManagerSetted(ModulesManager *manager); - private: +private: SkywardHubCoreProxy coreProxy; ModuleEventsHandler eventsHandler; }; -#endif // MODULE_H +#endif // MODULE_H diff --git a/Modules/Mavlink/mavlinkmodule.cpp b/Modules/Mavlink/mavlinkmodule.cpp index 9f229c79535e1c34f6a5f61952113629df0f4a21..9ff74b90a39f9690ca12fac033c68c2eed2beddf 100644 --- a/Modules/Mavlink/mavlinkmodule.cpp +++ b/Modules/Mavlink/mavlinkmodule.cpp @@ -8,22 +8,13 @@ #include "Modules/skywardhubstrings.h" #include "ui_mavlinkmodule.h" -MavlinkModule::MavlinkModule(QWidget* parent) - : DefaultModule(parent), ui(new Ui::MavlinkModule), mavlinkReader(this), - serialPort(this) +MavlinkModule::MavlinkModule(QWidget *parent) + : DefaultModule(parent), mavlinkReader(this), serialPort(this) { - ui->setupUi(this); + setupUi(); defaultContextMenuSetup(); - initializeSerialPortView(); - ui->startStopButtonLayout->insertWidget(0, &startSerialStreamToggleButton); - connect(&startSerialStreamToggleButton, &ToggleButton::toggled, this, - &MavlinkModule::onStartStreamToggled); - connect(ui->openLogFolderButton, &QPushButton::clicked, this, - &MavlinkModule::onOpenLogFolderClick); - - qRegisterMetaType<ModuleMessage>(); connect(&mavlinkReader, &MavlinkReader::msgReceived, this, &MavlinkModule::onMsgReceived); connect(&linkQualityTimer, &QTimer::timeout, this, @@ -33,89 +24,54 @@ MavlinkModule::MavlinkModule(QWidget* parent) getCore()->getModuleMessagesBroker()->subscribe( {SkywardHubStrings::commandsTopic + "/*"}, this, - [this](const ModuleMessage& msg) { onCommandReceived(msg); }); + [this](const ModuleMessage &msg) { onCommandReceived(msg); }); } MavlinkModule::~MavlinkModule() { - mavlinkReader.stopReading(); - delete ui; onStopClicked(); + + delete portsLabel; + delete portsComboBox; + delete baudrateLabel; + delete baudrateComboBox; + delete startToggleButton; + delete rateLabel; + delete logCheckBox; + delete openLogFolderButton; } -QWidget* MavlinkModule::toWidget() { return this; } +QWidget *MavlinkModule::toWidget() { return this; } XmlObject MavlinkModule::toXmlObject() { XmlObject obj(getName(ModuleId::MAVLINK)); - obj.addAttribute("BaudRateIndex", - QString::number(ui->comboBoxBaudRate->currentIndex())); + obj.addAttribute("serial_port", portsComboBox->currentText()); + obj.addAttribute("baudrate", baudrateComboBox->currentData().toInt()); + obj.addAttribute("log_file", logCheckBox->isChecked() ? 1 : 0); return obj; } -void MavlinkModule::fromXmlObject(const XmlObject& xmlObject) +void MavlinkModule::fromXmlObject(const XmlObject &obj) { - if (xmlObject.getObjectName() == getName(ModuleId::MAVLINK)) + if (obj.getObjectName() == getName(ModuleId::MAVLINK)) { - bool ok; - int index = xmlObject.getAttribute("BaudRateIndex").toInt(&ok); - if (ok) - { - ui->comboBoxBaudRate->setCurrentIndex(index); - } + QString serialPort = obj.getAttribute("serial_port"); + int baudrate; + obj.getAttribute("baudrate", baudrate); + int logFile; + obj.getAttribute("log_file", logFile); + + portsComboBox->setCurrentText(serialPort); + baudrateComboBox->setCurrentText(QString::number(baudrate)); + logCheckBox->setChecked(logFile != 0); } } void MavlinkModule::closePort() { if (serialPort.isOpen()) - { serialPort.close(); - } -} - -void MavlinkModule::initializeSerialPortView() -{ - // Fill the baud rate combo box - ui->comboBoxBaudRate->addItem("115200", QSerialPort::Baud115200); - ui->comboBoxBaudRate->addItem("19200", QSerialPort::Baud19200); - ui->comboBoxBaudRate->addItem("9600", QSerialPort::Baud9600); - - // Check available port - const auto serialPortInfos = QSerialPortInfo::availablePorts(); - - for (auto serialPortInfo = serialPortInfos.rbegin(); - serialPortInfo != serialPortInfos.rend(); serialPortInfo++) - { - QVariant portName(serialPortInfo->portName()); - ui->comboBoxSerialPort->addItem(serialPortInfo->portName(), portName); - } - - ui->comboBoxSerialPort->setCurrentIndex(0); -} - -bool MavlinkModule::startReadingOnSerialPort() -{ - QString portName = ui->comboBoxSerialPort->currentData().toString(); - bool baudrateOk; - int baudRate = ui->comboBoxBaudRate->currentData().toInt(&baudrateOk); - - // Check if the parameters are ok - if (!baudrateOk) - return false; - - // The serial port should not be already open - if (serialPort.isOpen()) - return true; - - // Open the serial port - QSerialPortInfo port(portName); - serialPort.setPort(port); - serialPort.setBaudRate(baudRate); - serialPort.setDataBits(QSerialPort::Data8); - serialPort.setParity(QSerialPort::NoParity); - serialPort.setStopBits(QSerialPort::OneStop); - return serialPort.open(QIODevice::ReadWrite); } void MavlinkModule::onStartClicked() @@ -128,7 +84,7 @@ void MavlinkModule::onStartClicked() mavlinkCommandAdapter.setSerialPort(&serialPort); // TODO: Allow the checkbox to start and stop the logging - if (ui->logEnabledCheckBox->isChecked()) + if (logCheckBox->isChecked()) mavlinkReader.openLogFile(); mavlinkReader.startReading(); @@ -147,7 +103,7 @@ void MavlinkModule::onStopClicked() closePort(); } -void MavlinkModule::onMsgReceived(const ModuleMessage& msg) +void MavlinkModule::onMsgReceived(const ModuleMessage &msg) { msgArrived++; getCore()->getModuleMessagesBroker()->publish(msg); @@ -164,17 +120,8 @@ void MavlinkModule::onStartStreamToggled(bool state) void MavlinkModule::onLinkQualityTimerTick() { float ratio = (float)msgArrived / linkQualityPeriod * 1000.0; - updateLinkSignalIndicator(msgArrived, ratio); - msgArrived = 0; -} - -void MavlinkModule::updateLinkSignalIndicator(int msgArrived, float ratio) -{ - ui->rateText->setText(QString::number(ratio)); - ModuleMessage linkQuality(SkywardHubStrings::mavlink_quality_link_topic); - linkQuality.setField("ReceivedMsgNumber", {QString::number(msgArrived)}); - linkQuality.setField("ReceivedRatio", {QString::number(ratio)}); - getCore()->getModuleMessagesBroker()->publish(linkQuality); + msgArrived = 0; + rateLabel->setText("Rate: " + QString::number(ratio) + " msg/s"); } void MavlinkModule::onOpenLogFolderClick() @@ -192,7 +139,7 @@ void MavlinkModule::onOpenLogFolderClick() } } -void MavlinkModule::onCommandReceived(const ModuleMessage& msg) +void MavlinkModule::onCommandReceived(const ModuleMessage &msg) { mavlink_message_t encoded_mvl_msg; if (!mavlinkCommandAdapter.encodeCommand(msg, encoded_mvl_msg)) @@ -218,3 +165,96 @@ void MavlinkModule::onCommandReceived(const ModuleMessage& msg) getCore()->getModuleMessagesBroker()->publish(confirmationMsg); } } + +void MavlinkModule::setupUi() +{ + QHBoxLayout *outerLayout = new QHBoxLayout; + outerLayout->setContentsMargins(6, 0, 6, 0); + + portsLabel = new QLabel("Available ports:"); + portsLabel->setSizePolicy( + QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); + outerLayout->addWidget(portsLabel); + + portsComboBox = new QComboBox; + portsComboBox->setSizePolicy( + QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); + outerLayout->addWidget(portsComboBox); + + baudrateLabel = new QLabel("Baudrate:"); + baudrateLabel->setSizePolicy( + QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); + outerLayout->addWidget(baudrateLabel); + + baudrateComboBox = new QComboBox; + baudrateComboBox->setSizePolicy( + QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); + outerLayout->addWidget(baudrateComboBox); + + startToggleButton = new ToggleButton; + startToggleButton->setSizePolicy( + QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); + outerLayout->addWidget(startToggleButton); + connect(startToggleButton, &ToggleButton::toggled, this, + &MavlinkModule::onStartStreamToggled); + + spacer = new QSpacerItem(0, 10000, QSizePolicy::Expanding, + QSizePolicy::Expanding); + outerLayout->addSpacerItem(spacer); + + rateLabel = new QLabel("Rate: 0 msg/s"); + rateLabel->setSizePolicy( + QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); + outerLayout->addWidget(rateLabel); + + logCheckBox = new QCheckBox("Enable log"); + logCheckBox->setSizePolicy( + QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); + outerLayout->addWidget(logCheckBox); + + openLogFolderButton = new QPushButton("Log folder"); + openLogFolderButton->setSizePolicy( + QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); + outerLayout->addWidget(openLogFolderButton); + connect(openLogFolderButton, &QPushButton::clicked, this, + &MavlinkModule::onOpenLogFolderClick); + + setLayout(outerLayout); +} + +void MavlinkModule::initializeSerialPortView() +{ + const auto serialPortInfos = QSerialPortInfo::availablePorts(); + for (auto serialPortInfo : serialPortInfos) + portsComboBox->addItem(serialPortInfo.portName()); + + // portsComboBox->setCurrentIndex(0); + + baudrateComboBox->addItem("115200", QSerialPort::Baud115200); + baudrateComboBox->addItem("19200", QSerialPort::Baud19200); + baudrateComboBox->addItem("9600", QSerialPort::Baud9600); +} + +bool MavlinkModule::startReadingOnSerialPort() +{ + QString portName = portsComboBox->currentText(); + bool baudrateOk; + int baudRate = baudrateComboBox->currentData().toInt(&baudrateOk); + + // Check if the parameters are ok + if (!baudrateOk) + return false; + + // The serial port should not be already open + if (serialPort.isOpen()) + return true; + + // Open the serial port + QSerialPortInfo port(portName); + serialPort.setPort(port); + serialPort.setBaudRate(baudRate); + serialPort.setDataBits(QSerialPort::Data8); + serialPort.setParity(QSerialPort::NoParity); + serialPort.setStopBits(QSerialPort::OneStop); + return serialPort.open(QIODevice::ReadWrite); +} diff --git a/Modules/Mavlink/mavlinkmodule.h b/Modules/Mavlink/mavlinkmodule.h index ed1931e66593aef1bd729ed6c1b9a4d6bdfae1ab..e8e74e8c74f12922ccba06a2b635b8318e5006ce 100644 --- a/Modules/Mavlink/mavlinkmodule.h +++ b/Modules/Mavlink/mavlinkmodule.h @@ -40,31 +40,39 @@ public slots: void onLinkQualityTimerTick(); protected: - void initializeSerialPortView(); - mavlink_message_t parseMavlinkMsg(char *buffer, int readCount); void closePort(); void updateLinkSignalIndicator(); - void updateLinkSignalIndicator(int msgArrived, float ratio); void onOpenLogFolderClick(); private slots: - bool startReadingOnSerialPort(); void onStartStreamToggled(bool state); private: - Ui::MavlinkModule *ui; + void setupUi(); + void initializeSerialPortView(); + bool startReadingOnSerialPort(); ToggleButton startSerialStreamToggleButton; MavlinkReader mavlinkReader; MavlinkCommandAdapter mavlinkCommandAdapter; QSerialPort serialPort; + QLabel *portsLabel; + QComboBox *portsComboBox; + QLabel *baudrateLabel; + QComboBox *baudrateComboBox; + ToggleButton *startToggleButton; + QSpacerItem *spacer; + QLabel *rateLabel; + QCheckBox *logCheckBox; + QPushButton *openLogFolderButton; + QTimer linkQualityTimer; - int linkQualityPeriod = 2000; // [ms] - int msgArrived = 0; + const int linkQualityPeriod = 2000; // [ms] + int msgArrived = 0; bool portOpen; }; diff --git a/Modules/Mavlink/mavlinkmodule.ui b/Modules/Mavlink/mavlinkmodule.ui deleted file mode 100644 index c2aeaa9efb8ecde91c19e53bc0eebd4eb404712f..0000000000000000000000000000000000000000 --- a/Modules/Mavlink/mavlinkmodule.ui +++ /dev/null @@ -1,131 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>MavlinkModule</class> - <widget class="QWidget" name="MavlinkModule"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>596</width> - <height>91</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="windowTitle"> - <string>Form</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout" stretch="0"> - <item> - <layout class="QGridLayout" name="gridLayout_2"> - <item row="1" column="0"> - <widget class="QComboBox" name="comboBoxSerialPort"/> - </item> - <item row="0" column="3"> - <widget class="QCheckBox" name="logEnabledCheckBox"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Minimum" vsizetype="Minimum"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string>Enable Log</string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - </widget> - </item> - <item row="1" column="3"> - <widget class="QPushButton" name="openLogFolderButton"> - <property name="text"> - <string>Log Folder</string> - </property> - </widget> - </item> - <item row="0" column="2"> - <widget class="QLabel" name="startStopLabel"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string>Start/Stop</string> - </property> - <property name="alignment"> - <set>Qt::AlignBottom|Qt::AlignHCenter</set> - </property> - </widget> - </item> - <item row="1" column="1"> - <widget class="QComboBox" name="comboBoxBaudRate"/> - </item> - <item row="0" column="0"> - <widget class="QLabel" name="availablePortsLabel"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string>Available ports</string> - </property> - <property name="alignment"> - <set>Qt::AlignBottom|Qt::AlignHCenter</set> - </property> - </widget> - </item> - <item row="0" column="1"> - <widget class="QLabel" name="baudrateLabel"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string>Baudrate</string> - </property> - <property name="alignment"> - <set>Qt::AlignBottom|Qt::AlignHCenter</set> - </property> - </widget> - </item> - <item row="1" column="2"> - <layout class="QHBoxLayout" name="startStopButtonLayout"/> - </item> - <item row="0" column="4"> - <widget class="QLabel" name="rateLabel"> - <property name="text"> - <string>Rate</string> - </property> - <property name="alignment"> - <set>Qt::AlignCenter</set> - </property> - </widget> - </item> - <item row="1" column="4"> - <widget class="QLabel" name="rateText"> - <property name="text"> - <string/> - </property> - <property name="alignment"> - <set>Qt::AlignCenter</set> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - <resources/> - <connections/> -</ui> diff --git a/Modules/Splitter/splittermodule.cpp b/Modules/Splitter/splittermodule.cpp index 0b1d7e300c65d0755fa8e200ca9d38f64dac6df6..5c691be1c1cc00970947269899fcde338e1f79d2 100644 --- a/Modules/Splitter/splittermodule.cpp +++ b/Modules/Splitter/splittermodule.cpp @@ -5,23 +5,17 @@ #include "Components/ContextMenuSeparator/contextmenuseparator.h" #include "Core/modulesmanager.h" -#include "ui_splittermodule.h" -SplitterModule::SplitterModule(Qt::Orientation orientation) - : DefaultModule(), ui(new Ui::SplitterModule) +SplitterModule::SplitterModule(Qt::Orientation orientation) : DefaultModule() { - ui->setupUi(this); + setupUi(orientation); defaultContextMenuSetup(); - buildUI(orientation); } SplitterModule::~SplitterModule() { - delete ui; while (!childList.isEmpty()) - { delete childList.takeFirst(); - } } QWidget* SplitterModule::toWidget() { return this; } @@ -30,17 +24,15 @@ XmlObject SplitterModule::toXmlObject() { XmlObject obj(getName(ModuleId::SPLITTER)); QString orientation; - if (splitter.orientation() == Qt::Horizontal) - { + if (splitter->orientation() == Qt::Horizontal) orientation = "Horizontal"; - } else orientation = "Vertical"; obj.addAttribute("Orientation", orientation); QString sizesString = ""; - for (int i : splitter.sizes()) + for (int i : splitter->sizes()) { sizesString.append(QString::number(i) + ","); } @@ -64,9 +56,9 @@ void SplitterModule::fromXmlObject(const XmlObject& xmlObject) if (orientation != "") { if (orientation == "Horizontal") - setOrientation(Qt::Horizontal); + splitter->setOrientation(Qt::Horizontal); else - setOrientation(Qt::Vertical); + splitter->setOrientation(Qt::Vertical); } QStringList sizes = xmlObject.getAttribute("Sizes").split(","); @@ -106,7 +98,7 @@ void SplitterModule::fromXmlObject(const XmlObject& xmlObject) } if (!intSizes.isEmpty()) - splitter.setSizes(intSizes); + splitter->setSizes(intSizes); } } @@ -116,17 +108,15 @@ void SplitterModule::initialize(const XmlObject& params) if (params.getAttribute("Orientation", orientation)) { if (orientation == Qt::Vertical) - { - setOrientation(Qt::Vertical); - } + splitter->setOrientation(Qt::Vertical); else - setOrientation(Qt::Horizontal); + splitter->setOrientation(Qt::Horizontal); } } void SplitterModule::addModule(Module* module) { - int count = splitter.count(); + int count = splitter->count(); addModule(module, count); } @@ -147,45 +137,30 @@ void SplitterModule::addModule(Module* module, int position) childList.insert(position, module); else childList.append(module); - splitter.insertWidget(position, module->toWidget()); + + splitter->insertWidget(position, module->toWidget()); } void SplitterModule::replace(Module* oldModule, Module* newModule) { if (oldModule != nullptr && newModule != nullptr) { - int i = splitter.indexOf(oldModule->toWidget()); + int i = splitter->indexOf(oldModule->toWidget()); addModule(newModule, i); - // oldModule->toWidget()->deleteLater(); } } -void SplitterModule::setOrientation(Qt::Orientation orientation) -{ - splitter.setOrientation(orientation); -} - Qt::Orientation SplitterModule::getOrientation() const { - return splitter.orientation(); + return splitter->orientation(); } void SplitterModule::swapOrientation() { if (getOrientation() == Qt::Horizontal) - setOrientation(Qt::Vertical); + splitter->setOrientation(Qt::Vertical); else - setOrientation(Qt::Horizontal); -} - -void SplitterModule::buildUI(Qt::Orientation orientation) -{ - setOrientation(orientation); - splitter.setChildrenCollapsible(false); - splitter.setHandleWidth(0); - ui->centralGrid->addWidget(&splitter); - addModule(getCore()->getModulesManager()->instantiateDefaultModule()); - addModule(getCore()->getModulesManager()->instantiateDefaultModule()); + splitter->setOrientation(Qt::Horizontal); } void SplitterModule::addCustomActionsToMenu() @@ -214,10 +189,27 @@ void SplitterModule::onModuleDelete(Module* module) childList.removeAt(index); } - if (splitter.count() == 1) + if (splitter->count() == 1) { // When this method is called, the last module has not been deleted yet, // so we have to use "deleteLater" to correctly chain the deletation of // module and then the splitter this->deleteLater(); } } + +void SplitterModule::setupUi(Qt::Orientation orientation) +{ + QVBoxLayout* outerLayout = new QVBoxLayout; + outerLayout->setContentsMargins(0, 0, 0, 0); + + splitter = new QSplitter(); + splitter->setOrientation(orientation); + splitter->setChildrenCollapsible(false); + splitter->setHandleWidth(0); + outerLayout->addWidget(splitter); + + addModule(getCore()->getModulesManager()->instantiateDefaultModule()); + addModule(getCore()->getModulesManager()->instantiateDefaultModule()); + + setLayout(outerLayout); +} diff --git a/Modules/Splitter/splittermodule.h b/Modules/Splitter/splittermodule.h index 73276c0ae5ca99d02ed25b4d7b3795462f16931f..c7b93744b8e7700c8817295b2df1436074074b87 100644 --- a/Modules/Splitter/splittermodule.h +++ b/Modules/Splitter/splittermodule.h @@ -1,47 +1,42 @@ #ifndef SPLITTERMODULE_H #define SPLITTERMODULE_H -#include <QWidget> #include <QSplitter> +#include <QWidget> #include "Core/module.h" #include "Modules/DefaultModule/defaultmodule.h" -namespace Ui { -class SplitterModule; -} - -class SplitterModule : public DefaultModule { +class SplitterModule : public DefaultModule +{ Q_OBJECT - public: +public: explicit SplitterModule(Qt::Orientation orientation = Qt::Horizontal); ~SplitterModule() override; QWidget *toWidget() override; + XmlObject toXmlObject() override; void fromXmlObject(const XmlObject &xmlObject) override; void initialize(const XmlObject ¶ms) override; void addCustomActionsToMenu() override; - void addModule(Module *module); void addModule(Module *module, int position); void replace(Module *oldModule, Module *newModule); - void setOrientation(Qt::Orientation orientation); Qt::Orientation getOrientation() const; void swapOrientation(); - protected: - void buildUI(Qt::Orientation orientation = Qt::Horizontal); +protected: + void setupUi(Qt::Orientation orientation = Qt::Horizontal); void onModuleDelete(Module *module); - private: - Ui::SplitterModule *ui; - QSplitter splitter; - QList<Module*> childList; +private: + QSplitter *splitter; + QList<Module *> childList; }; -#endif // SPLITTERMODULE_H +#endif // SPLITTERMODULE_H diff --git a/Modules/Splitter/splittermodule.ui b/Modules/Splitter/splittermodule.ui deleted file mode 100644 index cadbebfe17121f94cd63f2c5d19960725a64c9fe..0000000000000000000000000000000000000000 --- a/Modules/Splitter/splittermodule.ui +++ /dev/null @@ -1,43 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>SplitterModule</class> - <widget class="QWidget" name="SplitterModule"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>400</width> - <height>300</height> - </rect> - </property> - <property name="windowTitle"> - <string>Form</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout"> - <property name="spacing"> - <number>0</number> - </property> - <property name="leftMargin"> - <number>0</number> - </property> - <property name="topMargin"> - <number>0</number> - </property> - <property name="rightMargin"> - <number>0</number> - </property> - <property name="bottomMargin"> - <number>0</number> - </property> - <item> - <layout class="QGridLayout" name="centralGrid"> - <property name="spacing"> - <number>0</number> - </property> - </layout> - </item> - </layout> - </widget> - <resources/> - <connections/> -</ui> diff --git a/Modules/Tabs/tabsmodule.cpp b/Modules/Tabs/tabsmodule.cpp index d6daaeaa53ea6baf7c273f69ab0802534ec53fe1..656fd5f2a31db6f21232488f19c8349fcc0d9513 100644 --- a/Modules/Tabs/tabsmodule.cpp +++ b/Modules/Tabs/tabsmodule.cpp @@ -8,7 +8,6 @@ TabsModule::TabsModule(QWidget* parent) : DefaultModule{parent} { - setupUi(); defaultContextMenuSetup(); diff --git a/SkywardHub.pro b/SkywardHub.pro index bd2e71e719ca89dc814b4eb93b197b42ecff0079..fe27039ddda1a52cfbbb8cd810e92c534f83ddca 100644 --- a/SkywardHub.pro +++ b/SkywardHub.pro @@ -128,14 +128,12 @@ FORMS += \ Modules/Graph/graphmodule.ui \ Modules/MainWindow/skywardhubmainwindow.ui \ Modules/MainWindow/window.ui \ - Modules/Mavlink/mavlinkmodule.ui \ Modules/Mavlink/mavlinkrocketmsgtestingmodule.ui \ Modules/OutgoingMessagesViewer/outgoingmessagesviewermodule.ui \ Modules/SkywardHub/deployerpathpicker.ui \ Modules/SkywardHub/prefabdialog.ui \ Modules/SkywardHub/prefabviewelement.ui \ Modules/SkywardHub/skywardhubmodule.ui \ - Modules/Splitter/splittermodule.ui \ Modules/StateViewer/stateviewermodule.ui \ Modules/Test/testmodule.ui \ Modules/TimerController/timercontrollermodule.ui \