Skip to content
Snippets Groups Projects
QGCSettingsWidget.cc 2.44 KiB
Newer Older
  • Learn to ignore specific revisions
  • lm's avatar
    lm committed
    #include "QGCSettingsWidget.h"
    
    lm's avatar
    lm committed
    #include "ui_QGCSettingsWidget.h"
    
    
    #include "LinkManager.h"
    #include "MAVLinkProtocol.h"
    #include "MAVLinkSettingsWidget.h"
    
    #include "GAudioOutput.h"
    
    
    //, Qt::WindowFlags flags
    
    QGCSettingsWidget::QGCSettingsWidget(QWidget *parent, Qt::WindowFlags flags) :
        QDialog(parent, flags),
    
    lm's avatar
    lm committed
        ui(new Ui::QGCSettingsWidget)
    {
        ui->setupUi(this);
    
    
        // Add all protocols
        QList<ProtocolInterface*> protocols = LinkManager::instance()->getProtocols();
        foreach (ProtocolInterface* protocol, protocols)
        {
            MAVLinkProtocol* mavlink = dynamic_cast<MAVLinkProtocol*>(protocol);
            if (mavlink)
            {
                MAVLinkSettingsWidget* msettings = new MAVLinkSettingsWidget(mavlink, this);
                ui->tabWidget->addTab(msettings, "MAVLink");
            }
        }
    
        this->window()->setWindowTitle(tr("QGroundControl Settings"));
    
    
        // Audio preferences
        ui->audioMuteCheckBox->setChecked(GAudioOutput::instance()->isMuted());
        connect(ui->audioMuteCheckBox, SIGNAL(toggled(bool)), GAudioOutput::instance(), SLOT(mute(bool)));
        connect(GAudioOutput::instance(), SIGNAL(mutedChanged(bool)), ui->audioMuteCheckBox, SLOT(setChecked(bool)));
    
    
        // Reconnect
        ui->reconnectCheckBox->setChecked(MainWindow::instance()->autoReconnectEnabled());
        connect(ui->reconnectCheckBox, SIGNAL(clicked(bool)), MainWindow::instance(), SLOT(enableAutoReconnect(bool)));
    
        // Style
        MainWindow::QGC_MAINWINDOW_STYLE style = (MainWindow::QGC_MAINWINDOW_STYLE)MainWindow::instance()->getStyle();
        switch (style)
        {
        case MainWindow::QGC_MAINWINDOW_STYLE_NATIVE:
            ui->nativeStyle->setChecked(true);
            break;
        case MainWindow::QGC_MAINWINDOW_STYLE_INDOOR:
            ui->indoorStyle->setChecked(true);
            break;
        case MainWindow::QGC_MAINWINDOW_STYLE_OUTDOOR:
            ui->outdoorStyle->setChecked(true);
            break;
        }
        connect(ui->nativeStyle, SIGNAL(clicked()), MainWindow::instance(), SLOT(loadNativeStyle()));
        connect(ui->indoorStyle, SIGNAL(clicked()), MainWindow::instance(), SLOT(loadIndoorStyle()));
        connect(ui->outdoorStyle, SIGNAL(clicked()), MainWindow::instance(), SLOT(loadOutdoorStyle()));
    
    
        // Close / destroy
        connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(deleteLater()));
    
    
        // Set layout options
        ui->generalPaneGridLayout->setAlignment(Qt::AlignTop);
    
    lm's avatar
    lm committed
    }
    
    QGCSettingsWidget::~QGCSettingsWidget()
    {
        delete ui;
    }