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
06b0fbeb
Commit
06b0fbeb
authored
Mar 06, 2019
by
Gus Grubba
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Allow filtering parameters to only show those different from the default (changed)
parent
2542a7c0
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
41 additions
and
17 deletions
+41
-17
ParameterEditor.qml
src/QmlControls/ParameterEditor.qml
+18
-9
ParameterEditorController.cc
src/QmlControls/ParameterEditorController.cc
+16
-7
ParameterEditorController.h
src/QmlControls/ParameterEditorController.h
+7
-1
No files found.
src/QmlControls/ParameterEditor.qml
View file @
06b0fbeb
...
...
@@ -28,9 +28,9 @@ QGCView {
property
Fact
_editorDialogFact
:
Fact
{
}
property
int
_rowHeight
:
ScreenTools
.
defaultFontPixelHeight
*
2
property
int
_rowWidth
:
10
// Dynamic adjusted at runtime
property
int
_rowWidth
:
10
// Dynamic adjusted at runtime
property
bool
_searchFilter
:
searchText
.
text
.
trim
()
!=
""
///< true: showing results of search
property
var
_searchResults
///< List of parameter names from search results
property
var
_searchResults
///< List of parameter names from search results
property
bool
_showRCToParam
:
!
ScreenTools
.
isMobile
&&
QGroundControl
.
multiVehicleManager
.
activeVehicle
.
px4Firmware
property
var
_activeVehicle
:
QGroundControl
.
multiVehicleManager
.
activeVehicle
property
var
_appSettings
:
QGroundControl
.
settingsManager
.
appSettings
...
...
@@ -69,19 +69,18 @@ QGCView {
}
QGCLabel
{
anchors.
baseline
:
clearButton
.
baseline
anchors.
verticalCenter
:
parent
.
verticalCenter
text
:
qsTr
(
"
Search:
"
)
}
QGCTextField
{
id
:
searchText
anchors.baseline
:
clearButton
.
baseline
text
:
controller
.
searchText
onDisplayTextChanged
:
controller
.
searchText
=
displayText
anchors.verticalCenter
:
parent
.
verticalCenter
}
QGCButton
{
id
:
clearButton
text
:
qsTr
(
"
Clear
"
)
onClicked
:
{
if
(
ScreenTools
.
isMobile
)
{
...
...
@@ -89,6 +88,16 @@ QGCView {
}
clearTimer
.
start
()
}
anchors
.
verticalCenter
:
parent
.
verticalCenter
}
QGCCheckBox
{
text
:
qsTr
(
"
Show modified only
"
)
checked
:
controller
.
showModifiedOnly
anchors.verticalCenter
:
parent
.
verticalCenter
onClicked
:
{
controller
.
showModifiedOnly
=
!
controller
.
showModifiedOnly
}
}
}
// Row - Header
...
...
@@ -152,7 +161,7 @@ QGCView {
pixelAligned
:
true
contentHeight
:
groupedViewCategoryColumn
.
height
flickableDirection
:
Flickable
.
VerticalFlick
visible
:
!
_searchFilter
visible
:
!
_searchFilter
&&
!
controller
.
showModifiedOnly
ColumnLayout
{
id
:
groupedViewCategoryColumn
...
...
@@ -172,7 +181,7 @@ QGCView {
SectionHeader
{
id
:
categoryHeader
text
:
category
checked
:
controller
.
currentCategory
==
text
checked
:
controller
.
currentCategory
==
=
text
exclusiveGroup
:
sectionGroup
onCheckedChanged
:
{
...
...
@@ -192,7 +201,7 @@ QGCView {
width
:
ScreenTools
.
defaultFontPixelWidth
*
25
text
:
groupName
height
:
_rowHeight
checked
:
controller
.
currentGroup
==
text
checked
:
controller
.
currentGroup
==
=
text
exclusiveGroup
:
buttonGroup
readonly
property
string
groupName
:
modelData
...
...
@@ -214,7 +223,7 @@ QGCView {
QGCListView
{
id
:
editorListView
anchors.leftMargin
:
ScreenTools
.
defaultFontPixelWidth
anchors.left
:
_searchFilter
?
parent
.
left
:
groupScroll
.
right
anchors.left
:
(
_searchFilter
||
controller
.
showModifiedOnly
)
?
parent
.
left
:
groupScroll
.
right
anchors.right
:
parent
.
right
anchors.top
:
header
.
bottom
anchors.bottom
:
parent
.
bottom
...
...
src/QmlControls/ParameterEditorController.cc
View file @
06b0fbeb
...
...
@@ -26,6 +26,7 @@ ParameterEditorController::ParameterEditorController(void)
,
_parameters
(
new
QmlObjectListModel
(
this
))
,
_parameterMgr
(
_vehicle
->
parameterManager
())
,
_componentCategoryPrefix
(
tr
(
"Component "
))
,
_showModifiedOnly
(
false
)
{
const
QMap
<
QString
,
QMap
<
QString
,
QStringList
>
>&
categoryMap
=
_parameterMgr
->
getDefaultComponentCategoryMap
();
_categories
=
categoryMap
.
keys
();
...
...
@@ -50,6 +51,7 @@ ParameterEditorController::ParameterEditorController(void)
connect
(
this
,
&
ParameterEditorController
::
searchTextChanged
,
this
,
&
ParameterEditorController
::
_updateParameters
);
connect
(
this
,
&
ParameterEditorController
::
currentCategoryChanged
,
this
,
&
ParameterEditorController
::
_updateParameters
);
connect
(
this
,
&
ParameterEditorController
::
currentGroupChanged
,
this
,
&
ParameterEditorController
::
_updateParameters
);
connect
(
this
,
&
ParameterEditorController
::
showModifiedOnlyChanged
,
this
,
&
ParameterEditorController
::
_updateParameters
);
}
ParameterEditorController
::~
ParameterEditorController
()
...
...
@@ -163,12 +165,18 @@ void ParameterEditorController::setRCToParam(const QString& paramName)
#endif
}
bool
ParameterEditorController
::
_shouldShow
(
Fact
*
fact
)
{
bool
show
=
_showModifiedOnly
?
(
fact
->
defaultValueAvailable
()
?
(
fact
->
valueEqualsDefault
()
?
false
:
true
)
:
false
)
:
true
;
return
show
;
}
void
ParameterEditorController
::
_updateParameters
(
void
)
{
QObjectList
newParameterList
;
QStringList
searchItems
=
_searchText
.
split
(
' '
,
QString
::
SkipEmptyParts
);
if
(
searchItems
.
isEmpty
())
{
if
(
searchItems
.
isEmpty
()
&&
!
_showModifiedOnly
)
{
if
(
_currentCategory
.
startsWith
(
_componentCategoryPrefix
))
{
int
compId
=
_currentCategory
.
right
(
_currentCategory
.
length
()
-
_componentCategoryPrefix
.
length
()).
toInt
();
for
(
const
QString
&
paramName
:
_parameterMgr
->
parameterNames
(
compId
))
{
...
...
@@ -184,14 +192,15 @@ void ParameterEditorController::_updateParameters(void)
}
else
{
for
(
const
QString
&
parameter
:
_parameterMgr
->
parameterNames
(
_vehicle
->
defaultComponentId
()))
{
Fact
*
fact
=
_parameterMgr
->
getParameter
(
_vehicle
->
defaultComponentId
(),
parameter
);
bool
matched
=
true
;
// all of the search items must match in order for the parameter to be added to the list
for
(
const
auto
&
searchItem
:
searchItems
)
{
if
(
!
fact
->
name
().
contains
(
searchItem
,
Qt
::
CaseInsensitive
)
&&
bool
matched
=
_shouldShow
(
fact
)
;
// All of the search items must match in order for the parameter to be added to the list
if
(
matched
)
{
for
(
const
auto
&
searchItem
:
searchItems
)
{
if
(
!
fact
->
name
().
contains
(
searchItem
,
Qt
::
CaseInsensitive
)
&&
!
fact
->
shortDescription
().
contains
(
searchItem
,
Qt
::
CaseInsensitive
)
&&
!
fact
->
longDescription
().
contains
(
searchItem
,
Qt
::
CaseInsensitive
))
{
matched
=
false
;
matched
=
false
;
}
}
}
if
(
matched
)
{
...
...
src/QmlControls/ParameterEditorController.h
View file @
06b0fbeb
...
...
@@ -36,7 +36,8 @@ public:
Q_PROPERTY
(
QString
currentGroup
MEMBER
_currentGroup
NOTIFY
currentGroupChanged
)
Q_PROPERTY
(
QmlObjectListModel
*
parameters
MEMBER
_parameters
CONSTANT
)
Q_PROPERTY
(
QStringList
categories
MEMBER
_categories
CONSTANT
)
Q_PROPERTY
(
bool
showModifiedOnly
MEMBER
_showModifiedOnly
NOTIFY
showModifiedOnlyChanged
)
Q_INVOKABLE
QStringList
getGroupsForCategory
(
const
QString
&
category
);
Q_INVOKABLE
QStringList
searchParameters
(
const
QString
&
searchText
,
bool
searchInName
=
true
,
bool
searchInDescriptions
=
true
);
...
...
@@ -54,10 +55,14 @@ signals:
void
currentCategoryChanged
(
QString
category
);
void
currentGroupChanged
(
QString
group
);
void
showErrorMessage
(
const
QString
&
errorMsg
);
void
showModifiedOnlyChanged
();
private
slots
:
void
_updateParameters
(
void
);
private:
bool
_shouldShow
(
Fact
*
fact
);
private:
QStringList
_categories
;
QString
_searchText
;
...
...
@@ -66,6 +71,7 @@ private:
QmlObjectListModel
*
_parameters
;
ParameterManager
*
_parameterMgr
;
QString
_componentCategoryPrefix
;
bool
_showModifiedOnly
;
};
#endif
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