Browse Source

Change to how configuration view operates, menu on the left side rather than top

QGC4.4
Michael Carpenter 12 years ago
parent
commit
1ecc3f0836
  1. 4
      files/styles/style-indoor.css
  2. 4
      files/styles/style-outdoor.css
  3. 68
      src/ui/QGCVehicleConfig.cc
  4. 9
      src/ui/QGCVehicleConfig.h
  5. 978
      src/ui/QGCVehicleConfig.ui

4
files/styles/style-indoor.css

@ -178,8 +178,8 @@ QDoubleSpinBox::down-button { @@ -178,8 +178,8 @@ QDoubleSpinBox::down-button {
}
QPushButton {
min-height: 20px;
max-height: 20px;
/*min-height: 20px;*/
/*max-height: 20px;*/
border: 1px solid #465158;
margin: 1px;
border-radius: 2px;

4
files/styles/style-outdoor.css

@ -184,8 +184,8 @@ QDoubleSpinBox::down-button { @@ -184,8 +184,8 @@ QDoubleSpinBox::down-button {
QPushButton {
font-weight: bold;
min-height: 18px;
max-height: 18px;
/*min-height: 18px;*/
/*max-height: 18px;*/
border: 2px solid #4A4A4F;
border-radius: 5px;
padding-left: 10px;

68
src/ui/QGCVehicleConfig.cc

@ -45,6 +45,12 @@ QGCVehicleConfig::QGCVehicleConfig(QWidget *parent) : @@ -45,6 +45,12 @@ QGCVehicleConfig::QGCVehicleConfig(QWidget *parent) :
setObjectName("QGC_VEHICLECONFIG");
ui->setupUi(this);
connect(ui->rcMenuButton,SIGNAL(clicked()),this,SLOT(rcMenuButtonClicked()));
connect(ui->sensorMenuButton,SIGNAL(clicked()),this,SLOT(sensorMenuButtonClicked()));
connect(ui->generalMenuButton,SIGNAL(clicked()),this,SLOT(generalMenuButtonClicked()));
connect(ui->advancedMenuButton,SIGNAL(clicked()),this,SLOT(advancedMenuButtonClicked()));
requestCalibrationRC();
if (mav) mav->requestParameter(0, "RC_TYPE");
@ -90,6 +96,25 @@ QGCVehicleConfig::QGCVehicleConfig(QWidget *parent) : @@ -90,6 +96,25 @@ QGCVehicleConfig::QGCVehicleConfig(QWidget *parent) :
connect(&updateTimer, SIGNAL(timeout()), this, SLOT(updateView()));
updateTimer.start();
}
void QGCVehicleConfig::rcMenuButtonClicked()
{
ui->stackedWidget->setCurrentIndex(0);
}
void QGCVehicleConfig::sensorMenuButtonClicked()
{
ui->stackedWidget->setCurrentIndex(1);
}
void QGCVehicleConfig::generalMenuButtonClicked()
{
ui->stackedWidget->setCurrentIndex(ui->stackedWidget->count()-2);
}
void QGCVehicleConfig::advancedMenuButtonClicked()
{
ui->stackedWidget->setCurrentIndex(ui->stackedWidget->count()-1);
}
QGCVehicleConfig::~QGCVehicleConfig()
{
@ -249,8 +274,18 @@ void QGCVehicleConfig::loadQgcConfig(bool primary) @@ -249,8 +274,18 @@ void QGCVehicleConfig::loadQgcConfig(bool primary)
//Load tabs for general configuration
foreach (QString dir,generaldir.entryList(QDir::Dirs | QDir::NoDotAndDotDot))
{
QWidget *tab = new QWidget(ui->tabWidget);
ui->tabWidget->insertTab(2,tab,dir);
QPushButton *button = new QPushButton(ui->scrollAreaWidgetContents_3);
connect(button,SIGNAL(clicked()),this,SLOT(menuButtonClicked()));
ui->navBarLayout->insertWidget(2,button);
button->setMinimumHeight(100);
button->setMinimumWidth(100);
button->show();
button->setText(dir);
//QWidget *tab = new QWidget(ui->tabWidget);
//ui->tabWidget->insertTab(2,tab,dir);
QWidget *tab = new QWidget(ui->stackedWidget);
ui->stackedWidget->insertWidget(2,tab);
buttonToWidgetMap[button] = tab;
tab->setLayout(new QVBoxLayout());
tab->show();
QScrollArea *area = new QScrollArea();
@ -285,8 +320,20 @@ void QGCVehicleConfig::loadQgcConfig(bool primary) @@ -285,8 +320,20 @@ void QGCVehicleConfig::loadQgcConfig(bool primary)
//Load tabs for vehicle specific configuration
foreach (QString dir,vehicledir.entryList(QDir::Dirs | QDir::NoDotAndDotDot))
{
QWidget *tab = new QWidget(ui->tabWidget);
ui->tabWidget->insertTab(2,tab,dir);
//QWidget *tab = new QWidget(ui->tabWidget);
//ui->tabWidget->insertTab(2,tab,dir);
QPushButton *button = new QPushButton(ui->scrollAreaWidgetContents_3);
connect(button,SIGNAL(clicked()),this,SLOT(menuButtonClicked()));
ui->navBarLayout->insertWidget(2,button);
QWidget *tab = new QWidget(ui->stackedWidget);
ui->stackedWidget->insertWidget(2,tab);
buttonToWidgetMap[button] = tab;
button->setMinimumHeight(100);
button->setMinimumWidth(100);
button->show();
button->setText(dir);
tab->setLayout(new QVBoxLayout());
tab->show();
QScrollArea *area = new QScrollArea();
@ -358,6 +405,19 @@ void QGCVehicleConfig::loadQgcConfig(bool primary) @@ -358,6 +405,19 @@ void QGCVehicleConfig::loadQgcConfig(bool primary)
ui->sensorTips->setHtml(sensortipsfile.readAll());
sensortipsfile.close();
}
void QGCVehicleConfig::menuButtonClicked()
{
QPushButton *button = qobject_cast<QPushButton*>(sender());
if (!button)
{
return;
}
if (buttonToWidgetMap.contains(button))
{
ui->stackedWidget->setCurrentWidget(buttonToWidgetMap[button]);
}
}
void QGCVehicleConfig::loadConfig()
{

9
src/ui/QGCVehicleConfig.h

@ -5,6 +5,7 @@ @@ -5,6 +5,7 @@
#include <QTimer>
#include <QList>
#include <QGroupBox>
#include <QPushButton>
#include "QGCToolWidget.h"
#include "UASInterface.h"
@ -29,6 +30,11 @@ public: @@ -29,6 +30,11 @@ public:
};
public slots:
void rcMenuButtonClicked();
void sensorMenuButtonClicked();
void generalMenuButtonClicked();
void advancedMenuButtonClicked();
/** Set the MAV currently being calibrated */
void setActiveUAS(UASInterface* active);
/** Fallback function, automatically called by loadConfig() upon failure to find and xml file*/
@ -125,6 +131,7 @@ public slots: @@ -125,6 +131,7 @@ public slots:
}
protected slots:
void menuButtonClicked();
/** Reset the RC calibration */
void resetCalibrationRC();
/** Write the RC calibration */
@ -183,7 +190,7 @@ protected: @@ -183,7 +190,7 @@ protected:
private:
Ui::QGCVehicleConfig *ui;
QMap<QPushButton*,QWidget*> buttonToWidgetMap;
signals:
void visibilityChanged(bool visible);
};

978
src/ui/QGCVehicleConfig.ui

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save