Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
qgroundcontrol
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Valentin Platzgummer
qgroundcontrol
Commits
dc568649
Commit
dc568649
authored
Aug 18, 2013
by
Lorenz Meier
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #337 from tstellanova/config_review
Cleanup pending items tree completely when we receive an update
parents
fb33f69e
9947f046
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
68 additions
and
15 deletions
+68
-15
QGCUASParamManager.cc
src/uas/QGCUASParamManager.cc
+9
-0
QGCUASParamManager.h
src/uas/QGCUASParamManager.h
+6
-0
QGCBaseParamWidget.cc
src/ui/QGCBaseParamWidget.cc
+4
-4
QGCPX4VehicleConfig.cc
src/ui/QGCPX4VehicleConfig.cc
+12
-6
QGCPendingParamWidget.cc
src/ui/QGCPendingParamWidget.cc
+37
-5
No files found.
src/uas/QGCUASParamManager.cc
View file @
dc568649
...
...
@@ -40,6 +40,15 @@ void QGCUASParamManager::connectToModelAndComms()
connect
(
paramCommsMgr
,
SIGNAL
(
parameterListUpToDate
()),
this
,
SIGNAL
(
parameterListUpToDate
()));
// Pass along data model updates
connect
(
&
paramDataModel
,
SIGNAL
(
parameterUpdated
(
int
,
QString
,
QVariant
)),
this
,
SIGNAL
(
parameterUpdated
(
int
,
QString
,
QVariant
)));
connect
(
&
paramDataModel
,
SIGNAL
(
pendingParamUpdate
(
int
,
const
QString
&
,
QVariant
,
bool
)),
this
,
SIGNAL
(
pendingParamUpdate
(
int
,
const
QString
&
,
QVariant
,
bool
)));
}
...
...
src/uas/QGCUASParamManager.h
View file @
dc568649
...
...
@@ -72,6 +72,12 @@ signals:
/** @brief We have received a complete list of all parameters onboard the MAV */
void
parameterListUpToDate
();
/** @brief We've received an update of a parameter's value */
void
parameterUpdated
(
int
compId
,
QString
paramName
,
QVariant
value
);
/** @brief Notifies listeners that a param was added to or removed from the pending list */
void
pendingParamUpdate
(
int
compId
,
const
QString
&
paramName
,
QVariant
value
,
bool
isPending
);
public
slots
:
...
...
src/ui/QGCBaseParamWidget.cc
View file @
dc568649
...
...
@@ -53,10 +53,10 @@ void QGCBaseParamWidget::connectToParamManager()
paramMgr
=
mav
->
getParamManager
();
//TODO route via paramManager instead?
// Listen to updated param signals from the data model
connect
(
paramMgr
->
dataModel
()
,
SIGNAL
(
parameterUpdated
(
int
,
QString
,
QVariant
)),
connect
(
paramMgr
,
SIGNAL
(
parameterUpdated
(
int
,
QString
,
QVariant
)),
this
,
SLOT
(
handleOnboardParamUpdate
(
int
,
QString
,
QVariant
)));
connect
(
paramMgr
->
dataModel
()
,
SIGNAL
(
pendingParamUpdate
(
int
,
const
QString
&
,
QVariant
,
bool
)),
connect
(
paramMgr
,
SIGNAL
(
pendingParamUpdate
(
int
,
const
QString
&
,
QVariant
,
bool
)),
this
,
SLOT
(
handlePendingParamUpdate
(
int
,
const
QString
&
,
QVariant
,
bool
)));
// Listen for param list reload finished
...
...
@@ -71,10 +71,10 @@ void QGCBaseParamWidget::connectToParamManager()
void
QGCBaseParamWidget
::
disconnectFromParamManager
()
{
disconnect
(
paramMgr
->
dataModel
()
,
SIGNAL
(
parameterUpdated
(
int
,
QString
,
QVariant
)),
disconnect
(
paramMgr
,
SIGNAL
(
parameterUpdated
(
int
,
QString
,
QVariant
)),
this
,
SLOT
(
handleOnboardParamUpdate
(
int
,
QString
,
QVariant
)));
disconnect
(
paramMgr
->
dataModel
()
,
SIGNAL
(
pendingParamUpdate
(
int
,
const
QString
&
,
QVariant
,
bool
)),
disconnect
(
paramMgr
,
SIGNAL
(
pendingParamUpdate
(
int
,
const
QString
&
,
QVariant
,
bool
)),
this
,
SLOT
(
handlePendingParamUpdate
(
int
,
const
QString
&
,
QVariant
,
bool
)));
disconnect
(
paramMgr
,
SIGNAL
(
parameterListUpToDate
()),
...
...
src/ui/QGCPX4VehicleConfig.cc
View file @
dc568649
...
...
@@ -103,12 +103,18 @@ QGCPX4VehicleConfig::QGCPX4VehicleConfig(QWidget *parent) :
ui
->
radio8Widget
->
setOrientation
(
Qt
::
Horizontal
);
ui
->
radio8Widget
->
setName
(
"Radio 8"
);
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
()));
connect
(
ui
->
airframeMenuButton
,
SIGNAL
(
clicked
()),
this
,
SLOT
(
airframeMenuButtonClicked
()));
connect
(
ui
->
firmwareMenuButton
,
SIGNAL
(
clicked
()),
this
,
SLOT
(
firmwareButtonClicked
()));
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
()));
connect
(
ui
->
airframeMenuButton
,
SIGNAL
(
clicked
()),
this
,
SLOT
(
airframeMenuButtonClicked
()));
connect
(
ui
->
firmwareMenuButton
,
SIGNAL
(
clicked
()),
this
,
SLOT
(
firmwareMenuButtonClicked
()));
ui
->
rcCalibrationButton
->
setCheckable
(
true
);
connect
(
ui
->
rcCalibrationButton
,
SIGNAL
(
clicked
(
bool
)),
this
,
SLOT
(
toggleCalibrationRC
(
bool
)));
...
...
src/ui/QGCPendingParamWidget.cc
View file @
dc568649
...
...
@@ -16,9 +16,9 @@ QGCPendingParamWidget::QGCPendingParamWidget(QObject *parent) :
void
QGCPendingParamWidget
::
connectToParamManager
()
{
paramMgr
=
mav
->
getParamManager
();
//TODO route via paramManager instead?
// Listen to updated param signals from the data model
connect
(
paramMgr
->
dataModel
()
,
SIGNAL
(
pendingParamUpdate
(
int
,
const
QString
&
,
QVariant
,
bool
)),
connect
(
paramMgr
,
SIGNAL
(
pendingParamUpdate
(
int
,
const
QString
&
,
QVariant
,
bool
)),
this
,
SLOT
(
handlePendingParamUpdate
(
int
,
const
QString
&
,
QVariant
,
bool
)));
// Listen to communications status messages so we can display them
...
...
@@ -29,9 +29,8 @@ void QGCPendingParamWidget::connectToParamManager()
void
QGCPendingParamWidget
::
disconnectFromParamManager
()
{
//TODO route via paramManager instead?
// Listen to updated param signals from the data model
disconnect
(
paramMgr
->
dataModel
()
,
SIGNAL
(
pendingParamUpdate
(
int
,
const
QString
&
,
QVariant
,
bool
)),
disconnect
(
paramMgr
,
SIGNAL
(
pendingParamUpdate
(
int
,
const
QString
&
,
QVariant
,
bool
)),
this
,
SLOT
(
handlePendingParamUpdate
(
int
,
const
QString
&
,
QVariant
,
bool
)));
// Listen to communications status messages so we can display them
...
...
@@ -76,7 +75,40 @@ void QGCPendingParamWidget::handlePendingParamUpdate(int compId, const QString&
}
else
{
//we don't display non-pending items
paramItem
->
parent
()
->
removeChild
(
paramItem
);
QTreeWidgetItem
*
groupItem
=
paramItem
->
parent
();
if
(
NULL
!=
groupItem
)
{
tree
->
setUpdatesEnabled
(
false
);
QTreeWidgetItem
*
componentItem
=
NULL
;
if
(
1
==
groupItem
->
childCount
())
{
componentItem
=
groupItem
->
parent
();
}
//always remove the actual paramItem from its parent
groupItem
->
removeChild
(
paramItem
);
//now we may need to remove the groupItem if it has no more children
if
(
NULL
!=
componentItem
)
{
//remove the group from our internal data structures
QMap
<
QString
,
QTreeWidgetItem
*>*
compParamGroups
=
paramGroups
.
value
(
compId
);
QString
groupStr
=
paramName
.
section
(
"_"
,
0
,
0
,
QString
::
SectionSkipEmpty
);
compParamGroups
->
remove
(
groupStr
);
//remove the group item from componentItems
componentItems
->
value
(
compId
)
->
removeChild
(
groupItem
);
// remove the group item from the tree widget itself
componentItem
->
removeChild
(
groupItem
);
if
(
0
==
componentItem
->
childCount
())
{
//the component itself no longer has any pending changes: remove it
paramGroups
.
remove
(
compId
);
componentItems
->
remove
(
compId
);
QTreeWidgetItem
*
compTop
=
tree
->
takeTopLevelItem
(
tree
->
indexOfTopLevelItem
(
componentItem
));
delete
compTop
;
//we own it after take
}
}
tree
->
setUpdatesEnabled
(
true
);
tree
->
update
();
}
}
updatingParamNameLock
.
clear
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment