mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-02-27 16:54:15 +01:00
Added some documentation to the new framework
This commit is contained in:
parent
1da2cf5166
commit
aea1e45de7
@ -28,6 +28,9 @@
|
|||||||
#include <QtGui/QWidget>
|
#include <QtGui/QWidget>
|
||||||
#include "uavsettingsimportexport/uavsettingsimportexportfactory.h"
|
#include "uavsettingsimportexport/uavsettingsimportexportfactory.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*/
|
||||||
ConfigTaskWidget::ConfigTaskWidget(QWidget *parent) : QWidget(parent),isConnected(false),smartsave(NULL),dirty(false),outOfLimitsStyle("background-color: rgb(255, 0, 0);")
|
ConfigTaskWidget::ConfigTaskWidget(QWidget *parent) : QWidget(parent),isConnected(false),smartsave(NULL),dirty(false),outOfLimitsStyle("background-color: rgb(255, 0, 0);")
|
||||||
{
|
{
|
||||||
pm = ExtensionSystem::PluginManager::instance();
|
pm = ExtensionSystem::PluginManager::instance();
|
||||||
@ -40,14 +43,30 @@ ConfigTaskWidget::ConfigTaskWidget(QWidget *parent) : QWidget(parent),isConnecte
|
|||||||
UAVSettingsImportExportFactory * importexportplugin = pm->getObject<UAVSettingsImportExportFactory>();
|
UAVSettingsImportExportFactory * importexportplugin = pm->getObject<UAVSettingsImportExportFactory>();
|
||||||
connect(importexportplugin,SIGNAL(importAboutToBegin()),this,SLOT(invalidateObjects()));
|
connect(importexportplugin,SIGNAL(importAboutToBegin()),this,SLOT(invalidateObjects()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a widget to the dirty detection pool
|
||||||
|
* @param widget to add to the detection pool
|
||||||
|
*/
|
||||||
void ConfigTaskWidget::addWidget(QWidget * widget)
|
void ConfigTaskWidget::addWidget(QWidget * widget)
|
||||||
{
|
{
|
||||||
addUAVObjectToWidgetRelation("","",widget);
|
addUAVObjectToWidgetRelation("","",widget);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Add an object to the management system
|
||||||
|
* @param objectName name of the object to add to the management system
|
||||||
|
*/
|
||||||
void ConfigTaskWidget::addUAVObject(QString objectName)
|
void ConfigTaskWidget::addUAVObject(QString objectName)
|
||||||
{
|
{
|
||||||
addUAVObjectToWidgetRelation(objectName,"",NULL);
|
addUAVObjectToWidgetRelation(objectName,"",NULL);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Add an UAVObject field to widget relation to the management system
|
||||||
|
* @param object name of the object to add
|
||||||
|
* @param field name of the field to add
|
||||||
|
* @param widget pointer to the widget whitch will display/define the field value
|
||||||
|
* @param index index of the field element to add to this relation
|
||||||
|
*/
|
||||||
void ConfigTaskWidget::addUAVObjectToWidgetRelation(QString object, QString field, QWidget * widget, QString index)
|
void ConfigTaskWidget::addUAVObjectToWidgetRelation(QString object, QString field, QWidget * widget, QString index)
|
||||||
{
|
{
|
||||||
UAVObject *obj=NULL;
|
UAVObject *obj=NULL;
|
||||||
@ -58,6 +77,17 @@ void ConfigTaskWidget::addUAVObjectToWidgetRelation(QString object, QString fiel
|
|||||||
Q_ASSERT(_field);
|
Q_ASSERT(_field);
|
||||||
addUAVObjectToWidgetRelation(object,field,widget,_field->getElementNames().indexOf(index));
|
addUAVObjectToWidgetRelation(object,field,widget,_field->getElementNames().indexOf(index));
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Add a UAVObject field to widget relation to the management system
|
||||||
|
* @param object name of the object to add
|
||||||
|
* @param field name of the field to add
|
||||||
|
* @param widget pointer to the widget whitch will display/define the field value
|
||||||
|
* @param element name of the element of the field element to add to this relation
|
||||||
|
* @param scale scale value of this relation
|
||||||
|
* @param isLimited bool to signal if this widget contents is limited in value
|
||||||
|
* @param defaultReloadGroups default and reload groups this relation belongs to
|
||||||
|
* @param instID instance ID of the object used on this relation
|
||||||
|
*/
|
||||||
void ConfigTaskWidget::addUAVObjectToWidgetRelation(QString object, QString field, QWidget *widget, QString element, double scale, bool isLimited, QList<int> *defaultReloadGroups, quint32 instID)
|
void ConfigTaskWidget::addUAVObjectToWidgetRelation(QString object, QString field, QWidget *widget, QString element, double scale, bool isLimited, QList<int> *defaultReloadGroups, quint32 instID)
|
||||||
{
|
{
|
||||||
UAVObject *obj=objManager->getObject(QString(object),instID);
|
UAVObject *obj=objManager->getObject(QString(object),instID);
|
||||||
@ -72,6 +102,17 @@ void ConfigTaskWidget::addUAVObjectToWidgetRelation(QString object, QString fiel
|
|||||||
}
|
}
|
||||||
addUAVObjectToWidgetRelation(object, field, widget,index,scale,isLimited,defaultReloadGroups,instID);
|
addUAVObjectToWidgetRelation(object, field, widget,index,scale,isLimited,defaultReloadGroups,instID);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Add an UAVObject field to widget relation to the management system
|
||||||
|
* @param object name of the object to add
|
||||||
|
* @param field name of the field to add
|
||||||
|
* @param widget pointer to the widget whitch will display/define the field value
|
||||||
|
* @param index index of the element of the field to add to this relation
|
||||||
|
* @param scale scale value of this relation
|
||||||
|
* @param isLimited bool to signal if this widget contents is limited in value
|
||||||
|
* @param defaultReloadGroups default and reload groups this relation belongs to
|
||||||
|
* @param instID instance ID of the object used on this relation
|
||||||
|
*/
|
||||||
void ConfigTaskWidget::addUAVObjectToWidgetRelation(QString object, QString field, QWidget * widget, int index,double scale,bool isLimited,QList<int>* defaultReloadGroups, quint32 instID)
|
void ConfigTaskWidget::addUAVObjectToWidgetRelation(QString object, QString field, QWidget * widget, int index,double scale,bool isLimited,QList<int>* defaultReloadGroups, quint32 instID)
|
||||||
{
|
{
|
||||||
if(addShadowWidget(object,field,widget,index,scale,isLimited,defaultReloadGroups,instID))
|
if(addShadowWidget(object,field,widget,index,scale,isLimited,defaultReloadGroups,instID))
|
||||||
@ -117,7 +158,9 @@ void ConfigTaskWidget::addUAVObjectToWidgetRelation(QString object, QString fiel
|
|||||||
loadWidgetLimits(widget,_field,index,isLimited,scale);
|
loadWidgetLimits(widget,_field,index,isLimited,scale);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* destructor
|
||||||
|
*/
|
||||||
ConfigTaskWidget::~ConfigTaskWidget()
|
ConfigTaskWidget::~ConfigTaskWidget()
|
||||||
{
|
{
|
||||||
if(smartsave)
|
if(smartsave)
|
||||||
@ -143,14 +186,21 @@ void ConfigTaskWidget::saveObjectToSD(UAVObject *obj)
|
|||||||
utilMngr->saveObjectToSD(obj);
|
utilMngr->saveObjectToSD(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Util function to get a pointer to the object manager
|
||||||
|
* @return pointer to the UAVObjectManager
|
||||||
|
*/
|
||||||
UAVObjectManager* ConfigTaskWidget::getObjectManager() {
|
UAVObjectManager* ConfigTaskWidget::getObjectManager() {
|
||||||
ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
|
ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
|
||||||
UAVObjectManager * objMngr = pm->getObject<UAVObjectManager>();
|
UAVObjectManager * objMngr = pm->getObject<UAVObjectManager>();
|
||||||
Q_ASSERT(objMngr);
|
Q_ASSERT(objMngr);
|
||||||
return objMngr;
|
return objMngr;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Utility function which calculates the Mean value of a list of values
|
||||||
|
* @param list list of double values
|
||||||
|
* @returns Mean value of the list of parameter values
|
||||||
|
*/
|
||||||
double ConfigTaskWidget::listMean(QList<double> list)
|
double ConfigTaskWidget::listMean(QList<double> list)
|
||||||
{
|
{
|
||||||
double accum = 0;
|
double accum = 0;
|
||||||
@ -177,7 +227,10 @@ void ConfigTaskWidget::onAutopilotConnect()
|
|||||||
enableControls(true);
|
enableControls(true);
|
||||||
refreshWidgetsValues();
|
refreshWidgetsValues();
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* SLOT Function used to populate the widgets with the initial values
|
||||||
|
* Overwrite this if you need to change the default behavior
|
||||||
|
*/
|
||||||
void ConfigTaskWidget::populateWidgets()
|
void ConfigTaskWidget::populateWidgets()
|
||||||
{
|
{
|
||||||
bool dirtyBack=dirty;
|
bool dirtyBack=dirty;
|
||||||
@ -193,7 +246,11 @@ void ConfigTaskWidget::populateWidgets()
|
|||||||
}
|
}
|
||||||
setDirty(dirtyBack);
|
setDirty(dirtyBack);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* SLOT function used to refresh the widgets contents of the widgets with relation to
|
||||||
|
* object field added to the framework pool
|
||||||
|
* Overwrite this if you need to change the default behavior
|
||||||
|
*/
|
||||||
void ConfigTaskWidget::refreshWidgetsValues()
|
void ConfigTaskWidget::refreshWidgetsValues()
|
||||||
{
|
{
|
||||||
bool dirtyBack=dirty;
|
bool dirtyBack=dirty;
|
||||||
@ -212,7 +269,11 @@ void ConfigTaskWidget::refreshWidgetsValues()
|
|||||||
}
|
}
|
||||||
setDirty(dirtyBack);
|
setDirty(dirtyBack);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* SLOT function used to update the uavobject fields from widgets with relation to
|
||||||
|
* object field added to the framework pool
|
||||||
|
* Overwrite this if you need to change the default behavior
|
||||||
|
*/
|
||||||
void ConfigTaskWidget::updateObjectsFromWidgets()
|
void ConfigTaskWidget::updateObjectsFromWidgets()
|
||||||
{
|
{
|
||||||
emit updateObjectsFromWidgetsRequested();
|
emit updateObjectsFromWidgetsRequested();
|
||||||
@ -227,14 +288,22 @@ void ConfigTaskWidget::updateObjectsFromWidgets()
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* SLOT function used handle help button presses
|
||||||
|
* Overwrite this if you need to change the default behavior
|
||||||
|
*/
|
||||||
void ConfigTaskWidget::helpButtonPressed()
|
void ConfigTaskWidget::helpButtonPressed()
|
||||||
{
|
{
|
||||||
QString url=helpButtonList.value((QPushButton*)sender(),QString::QString());
|
QString url=helpButtonList.value((QPushButton*)sender(),QString::QString());
|
||||||
if(!url.isEmpty())
|
if(!url.isEmpty())
|
||||||
QDesktopServices::openUrl( QUrl(url, QUrl::StrictMode) );
|
QDesktopServices::openUrl( QUrl(url, QUrl::StrictMode) );
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Add update and save buttons to the form
|
||||||
|
* multiple buttons can be added for the same function
|
||||||
|
* @param update pointer to the update button
|
||||||
|
* @param save pointer to the save button
|
||||||
|
*/
|
||||||
void ConfigTaskWidget::addApplySaveButtons(QPushButton *update, QPushButton *save)
|
void ConfigTaskWidget::addApplySaveButtons(QPushButton *update, QPushButton *save)
|
||||||
{
|
{
|
||||||
if(!smartsave)
|
if(!smartsave)
|
||||||
@ -264,7 +333,11 @@ void ConfigTaskWidget::addApplySaveButtons(QPushButton *update, QPushButton *sav
|
|||||||
else
|
else
|
||||||
enableControls(false);
|
enableControls(false);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* SLOT function used the enable or disable the SAVE, UPLOAD and RELOAD buttons
|
||||||
|
* @param enable set to true to enable the buttons or false to disable them
|
||||||
|
* @param field name of the field to add
|
||||||
|
*/
|
||||||
void ConfigTaskWidget::enableControls(bool enable)
|
void ConfigTaskWidget::enableControls(bool enable)
|
||||||
{
|
{
|
||||||
if(smartsave)
|
if(smartsave)
|
||||||
@ -273,7 +346,9 @@ void ConfigTaskWidget::enableControls(bool enable)
|
|||||||
button->setEnabled(enable);
|
button->setEnabled(enable);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* SLOT function called when on of the widgets contents added to the framework changes
|
||||||
|
*/
|
||||||
void ConfigTaskWidget::widgetsContentsChanged()
|
void ConfigTaskWidget::widgetsContentsChanged()
|
||||||
{
|
{
|
||||||
emit widgetContentsChanged((QWidget*)sender());
|
emit widgetContentsChanged((QWidget*)sender());
|
||||||
@ -319,15 +394,25 @@ void ConfigTaskWidget::widgetsContentsChanged()
|
|||||||
}
|
}
|
||||||
setDirty(true);
|
setDirty(true);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* SLOT function used clear the forms dirty status flag
|
||||||
|
*/
|
||||||
void ConfigTaskWidget::clearDirty()
|
void ConfigTaskWidget::clearDirty()
|
||||||
{
|
{
|
||||||
setDirty(false);
|
setDirty(false);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Sets the form's dirty status flag
|
||||||
|
* @param value
|
||||||
|
*/
|
||||||
void ConfigTaskWidget::setDirty(bool value)
|
void ConfigTaskWidget::setDirty(bool value)
|
||||||
{
|
{
|
||||||
dirty=value;
|
dirty=value;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Checks if the form is dirty (unsaved changes)
|
||||||
|
* @return true if the form has unsaved changes
|
||||||
|
*/
|
||||||
bool ConfigTaskWidget::isDirty()
|
bool ConfigTaskWidget::isDirty()
|
||||||
{
|
{
|
||||||
if(isConnected)
|
if(isConnected)
|
||||||
@ -335,7 +420,9 @@ bool ConfigTaskWidget::isDirty()
|
|||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* SLOT function used to disable widget contents changes when related object field changes
|
||||||
|
*/
|
||||||
void ConfigTaskWidget::disableObjUpdates()
|
void ConfigTaskWidget::disableObjUpdates()
|
||||||
{
|
{
|
||||||
foreach(objectToWidget * obj,objOfInterest)
|
foreach(objectToWidget * obj,objOfInterest)
|
||||||
@ -344,7 +431,9 @@ void ConfigTaskWidget::disableObjUpdates()
|
|||||||
disconnect(obj->object, SIGNAL(objectUpdated(UAVObject*)), this, SLOT(refreshWidgetsValues()));
|
disconnect(obj->object, SIGNAL(objectUpdated(UAVObject*)), this, SLOT(refreshWidgetsValues()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* SLOT function used to enable widget contents changes when related object field changes
|
||||||
|
*/
|
||||||
void ConfigTaskWidget::enableObjUpdates()
|
void ConfigTaskWidget::enableObjUpdates()
|
||||||
{
|
{
|
||||||
foreach(objectToWidget * obj,objOfInterest)
|
foreach(objectToWidget * obj,objOfInterest)
|
||||||
@ -353,12 +442,18 @@ void ConfigTaskWidget::enableObjUpdates()
|
|||||||
connect(obj->object, SIGNAL(objectUpdated(UAVObject*)), this, SLOT(refreshWidgetsValues()));
|
connect(obj->object, SIGNAL(objectUpdated(UAVObject*)), this, SLOT(refreshWidgetsValues()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Called when an uav object is updated
|
||||||
|
* @param obj pointer to the object whitch has just been updated
|
||||||
|
*/
|
||||||
void ConfigTaskWidget::objectUpdated(UAVObject *obj)
|
void ConfigTaskWidget::objectUpdated(UAVObject *obj)
|
||||||
{
|
{
|
||||||
objectUpdates[obj]=true;
|
objectUpdates[obj]=true;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Checks if all objects added to the pool have already been updated
|
||||||
|
* @return true if all objects added to the pool have already been updated
|
||||||
|
*/
|
||||||
bool ConfigTaskWidget::allObjectsUpdated()
|
bool ConfigTaskWidget::allObjectsUpdated()
|
||||||
{
|
{
|
||||||
bool ret=true;
|
bool ret=true;
|
||||||
@ -368,14 +463,20 @@ bool ConfigTaskWidget::allObjectsUpdated()
|
|||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Adds a new help button
|
||||||
|
* @param button pointer to the help button
|
||||||
|
* @param url url to open in the browser when the help button is pressed
|
||||||
|
*/
|
||||||
void ConfigTaskWidget::addHelpButton(QPushButton *button, QString url)
|
void ConfigTaskWidget::addHelpButton(QPushButton *button, QString url)
|
||||||
{
|
{
|
||||||
helpButtonList.insert(button,url);
|
helpButtonList.insert(button,url);
|
||||||
connect(button,SIGNAL(clicked()),this,SLOT(helpButtonPressed()));
|
connect(button,SIGNAL(clicked()),this,SLOT(helpButtonPressed()));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Invalidates all the uav objects "is updated" flag
|
||||||
|
*/
|
||||||
void ConfigTaskWidget::invalidateObjects()
|
void ConfigTaskWidget::invalidateObjects()
|
||||||
{
|
{
|
||||||
foreach(UAVObject *obj, objectUpdates.keys())
|
foreach(UAVObject *obj, objectUpdates.keys())
|
||||||
@ -383,19 +484,28 @@ void ConfigTaskWidget::invalidateObjects()
|
|||||||
objectUpdates[obj]=false;
|
objectUpdates[obj]=false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* SLOT call this to apply changes to uav objects
|
||||||
|
*/
|
||||||
void ConfigTaskWidget::apply()
|
void ConfigTaskWidget::apply()
|
||||||
{
|
{
|
||||||
if(smartsave)
|
if(smartsave)
|
||||||
smartsave->apply();
|
smartsave->apply();
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* SLOT call this to save changes to uav objects
|
||||||
|
*/
|
||||||
void ConfigTaskWidget::save()
|
void ConfigTaskWidget::save()
|
||||||
{
|
{
|
||||||
if(smartsave)
|
if(smartsave)
|
||||||
smartsave->save();
|
smartsave->save();
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Adds a new shadow widget
|
||||||
|
* shadow widgets are widgets whitch have a relation to an object already present on the framework pool i.e. already added trough addUAVObjectToWidgetRelation
|
||||||
|
* This function doesn't have to be used directly, addUAVObjectToWidgetRelation will call it if a previous relation exhists.
|
||||||
|
* @return returns false if the shadow widget relation failed to be added (no previous relation exhisted)
|
||||||
|
*/
|
||||||
bool ConfigTaskWidget::addShadowWidget(QString object, QString field, QWidget *widget, int index, double scale, bool isLimited,QList<int>* defaultReloadGroups,quint32 instID)
|
bool ConfigTaskWidget::addShadowWidget(QString object, QString field, QWidget *widget, int index, double scale, bool isLimited,QList<int>* defaultReloadGroups,quint32 instID)
|
||||||
{
|
{
|
||||||
foreach(objectToWidget * oTw,objOfInterest)
|
foreach(objectToWidget * oTw,objOfInterest)
|
||||||
@ -445,7 +555,10 @@ bool ConfigTaskWidget::addShadowWidget(QString object, QString field, QWidget *w
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Auto loads widgets based on the Dynamic property named "objrelation"
|
||||||
|
* Check the wiki for more information
|
||||||
|
*/
|
||||||
void ConfigTaskWidget::autoLoadWidgets()
|
void ConfigTaskWidget::autoLoadWidgets()
|
||||||
{
|
{
|
||||||
QPushButton * saveButtonWidget=NULL;
|
QPushButton * saveButtonWidget=NULL;
|
||||||
@ -552,7 +665,12 @@ void ConfigTaskWidget::autoLoadWidgets()
|
|||||||
}
|
}
|
||||||
refreshWidgetsValues();
|
refreshWidgetsValues();
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Adds a widget to a list of default/reload groups
|
||||||
|
* default/reload groups are groups of widgets to be set with default or reloaded (values from persistent memory) when a defined button is pressed
|
||||||
|
* @param widget pointer to the widget to be added to the groups
|
||||||
|
* @param groups list of the groups on which to add the widget
|
||||||
|
*/
|
||||||
void ConfigTaskWidget::addWidgetToDefaultReloadGroups(QWidget *widget, QList<int> * groups)
|
void ConfigTaskWidget::addWidgetToDefaultReloadGroups(QWidget *widget, QList<int> * groups)
|
||||||
{
|
{
|
||||||
foreach(objectToWidget * oTw,objOfInterest)
|
foreach(objectToWidget * oTw,objOfInterest)
|
||||||
@ -585,17 +703,30 @@ void ConfigTaskWidget::addWidgetToDefaultReloadGroups(QWidget *widget, QList<int
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Adds a button to a default group
|
||||||
|
* @param button pointer to the default button
|
||||||
|
* @param buttongroup number of the group
|
||||||
|
*/
|
||||||
void ConfigTaskWidget::addDefaultButton(QPushButton *button, int buttonGroup)
|
void ConfigTaskWidget::addDefaultButton(QPushButton *button, int buttonGroup)
|
||||||
{
|
{
|
||||||
button->setProperty("group",buttonGroup);
|
button->setProperty("group",buttonGroup);
|
||||||
connect(button,SIGNAL(clicked()),this,SLOT(defaultButtonClicked()));
|
connect(button,SIGNAL(clicked()),this,SLOT(defaultButtonClicked()));
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Adds a button to a reload group
|
||||||
|
* @param button pointer to the reload button
|
||||||
|
* @param buttongroup number of the group
|
||||||
|
*/
|
||||||
void ConfigTaskWidget::addReloadButton(QPushButton *button, int buttonGroup)
|
void ConfigTaskWidget::addReloadButton(QPushButton *button, int buttonGroup)
|
||||||
{
|
{
|
||||||
button->setProperty("group",buttonGroup);
|
button->setProperty("group",buttonGroup);
|
||||||
reloadButtonList.append(button);
|
reloadButtonList.append(button);
|
||||||
connect(button,SIGNAL(clicked()),this,SLOT(reloadButtonClicked()));
|
connect(button,SIGNAL(clicked()),this,SLOT(reloadButtonClicked()));
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Called when a default button is clicked
|
||||||
|
*/
|
||||||
void ConfigTaskWidget::defaultButtonClicked()
|
void ConfigTaskWidget::defaultButtonClicked()
|
||||||
{
|
{
|
||||||
int group=sender()->property("group").toInt();
|
int group=sender()->property("group").toInt();
|
||||||
@ -608,7 +739,9 @@ void ConfigTaskWidget::defaultButtonClicked()
|
|||||||
setWidgetFromField(oTw->widget,temp->getField(oTw->field->getName()),oTw->index,oTw->scale,oTw->isLimited);
|
setWidgetFromField(oTw->widget,temp->getField(oTw->field->getName()),oTw->index,oTw->scale,oTw->isLimited);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Called when a reload button is clicked
|
||||||
|
*/
|
||||||
void ConfigTaskWidget::reloadButtonClicked()
|
void ConfigTaskWidget::reloadButtonClicked()
|
||||||
{
|
{
|
||||||
int group=sender()->property("group").toInt();
|
int group=sender()->property("group").toInt();
|
||||||
@ -644,6 +777,9 @@ void ConfigTaskWidget::reloadButtonClicked()
|
|||||||
delete timeOut;
|
delete timeOut;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Connects widgets "contents changed" signals to a slot
|
||||||
|
*/
|
||||||
void ConfigTaskWidget::connectWidgetUpdatesToSlot(QWidget * widget,const char* function)
|
void ConfigTaskWidget::connectWidgetUpdatesToSlot(QWidget * widget,const char* function)
|
||||||
{
|
{
|
||||||
if(!widget)
|
if(!widget)
|
||||||
@ -684,6 +820,9 @@ void ConfigTaskWidget::connectWidgetUpdatesToSlot(QWidget * widget,const char* f
|
|||||||
qDebug()<<__FUNCTION__<<"widget to uavobject relation not implemented"<<widget->metaObject()->className();
|
qDebug()<<__FUNCTION__<<"widget to uavobject relation not implemented"<<widget->metaObject()->className();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Disconnects widgets "contents changed" signals to a slot
|
||||||
|
*/
|
||||||
void ConfigTaskWidget::disconnectWidgetUpdatesToSlot(QWidget * widget,const char* function)
|
void ConfigTaskWidget::disconnectWidgetUpdatesToSlot(QWidget * widget,const char* function)
|
||||||
{
|
{
|
||||||
if(!widget)
|
if(!widget)
|
||||||
@ -724,6 +863,14 @@ void ConfigTaskWidget::disconnectWidgetUpdatesToSlot(QWidget * widget,const char
|
|||||||
qDebug()<<__FUNCTION__<<"widget to uavobject relation not implemented"<<widget->metaObject()->className();
|
qDebug()<<__FUNCTION__<<"widget to uavobject relation not implemented"<<widget->metaObject()->className();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Sets a widget value from an UAVObject field
|
||||||
|
* @param widget pointer for the widget to set
|
||||||
|
* @param field pointer to the UAVObject field to use
|
||||||
|
* @param index index of the element to use
|
||||||
|
* @param scale scale to be used on the assignement
|
||||||
|
* @return returns true if the assignement was successfull
|
||||||
|
*/
|
||||||
bool ConfigTaskWidget::setFieldFromWidget(QWidget * widget,UAVObjectField * field,int index,double scale)
|
bool ConfigTaskWidget::setFieldFromWidget(QWidget * widget,UAVObjectField * field,int index,double scale)
|
||||||
{
|
{
|
||||||
if(!widget || !field)
|
if(!widget || !field)
|
||||||
@ -739,6 +886,12 @@ bool ConfigTaskWidget::setFieldFromWidget(QWidget * widget,UAVObjectField * fiel
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Gets a variant from a widget
|
||||||
|
* @param widget pointer to the widget from where to get the value
|
||||||
|
* @param scale scale to be used on the assignement
|
||||||
|
* @return returns the value of the widget times the scale
|
||||||
|
*/
|
||||||
QVariant ConfigTaskWidget::getVariantFromWidget(QWidget * widget,double scale)
|
QVariant ConfigTaskWidget::getVariantFromWidget(QWidget * widget,double scale)
|
||||||
{
|
{
|
||||||
if(QComboBox * cb=qobject_cast<QComboBox *>(widget))
|
if(QComboBox * cb=qobject_cast<QComboBox *>(widget))
|
||||||
@ -764,7 +917,13 @@ QVariant ConfigTaskWidget::getVariantFromWidget(QWidget * widget,double scale)
|
|||||||
else
|
else
|
||||||
return QVariant();
|
return QVariant();
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Sets a widget from a variant
|
||||||
|
* @param widget pointer for the widget to set
|
||||||
|
* @param scale scale to be used on the assignement
|
||||||
|
* @param value value to be used on the assignement
|
||||||
|
* @return returns true if the assignement was successfull
|
||||||
|
*/
|
||||||
bool ConfigTaskWidget::setWidgetFromVariant(QWidget *widget, QVariant value, double scale)
|
bool ConfigTaskWidget::setWidgetFromVariant(QWidget *widget, QVariant value, double scale)
|
||||||
{
|
{
|
||||||
if(QComboBox * cb=qobject_cast<QComboBox *>(widget))
|
if(QComboBox * cb=qobject_cast<QComboBox *>(widget))
|
||||||
@ -804,7 +963,15 @@ bool ConfigTaskWidget::setWidgetFromVariant(QWidget *widget, QVariant value, dou
|
|||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Sets a widget from a UAVObject field
|
||||||
|
* @param widget pointer to the widget to set
|
||||||
|
* @param field pointer to the field from where to get the value from
|
||||||
|
* @param index index of the element to use
|
||||||
|
* @param scale scale to be used on the assignement
|
||||||
|
* @param hasLimits set to true if you want to limit the values (check wiki)
|
||||||
|
* @return returns true if the assignement was successfull
|
||||||
|
*/
|
||||||
bool ConfigTaskWidget::setWidgetFromField(QWidget * widget,UAVObjectField * field,int index,double scale,bool hasLimits)
|
bool ConfigTaskWidget::setWidgetFromField(QWidget * widget,UAVObjectField * field,int index,double scale,bool hasLimits)
|
||||||
{
|
{
|
||||||
if(!widget || !field)
|
if(!widget || !field)
|
||||||
|
@ -122,11 +122,17 @@ public slots:
|
|||||||
void apply();
|
void apply();
|
||||||
void save();
|
void save();
|
||||||
signals:
|
signals:
|
||||||
|
//fired when a widgets contents changes
|
||||||
void widgetContentsChanged(QWidget * widget);
|
void widgetContentsChanged(QWidget * widget);
|
||||||
|
//fired when the framework requests that the widgets values be populated, use for custom behaviour
|
||||||
void populateWidgetsRequested();
|
void populateWidgetsRequested();
|
||||||
|
//fired when the framework requests that the widgets values be refreshed, use for custom behaviour
|
||||||
void refreshWidgetsValuesRequested();
|
void refreshWidgetsValuesRequested();
|
||||||
|
//fired when the framework requests that the UAVObject values be updated from the widgets value, use for custom behaviour
|
||||||
void updateObjectsFromWidgetsRequested();
|
void updateObjectsFromWidgetsRequested();
|
||||||
|
//fired when the autopilot connects
|
||||||
void autoPilotConnected();
|
void autoPilotConnected();
|
||||||
|
//fired when the autopilot disconnects
|
||||||
void autoPilotDisconnected();
|
void autoPilotDisconnected();
|
||||||
private slots:
|
private slots:
|
||||||
void objectUpdated(UAVObject*);
|
void objectUpdated(UAVObject*);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user