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
cdaa0296
Commit
cdaa0296
authored
Feb 04, 2015
by
Don Gagne
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Coding style examples
parent
c152d257
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
189 additions
and
0 deletions
+189
-0
CodingStyle.cc
CodingStyle.cc
+96
-0
CodingStyle.h
CodingStyle.h
+93
-0
No files found.
CodingStyle.cc
0 → 100644
View file @
cdaa0296
/*=====================================================================
QGroundControl Open Source Ground Control Station
(c) 2009 - 2014 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
This file is part of the QGROUNDCONTROL project
QGROUNDCONTROL is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
QGROUNDCONTROL is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with QGROUNDCONTROL. If not, see <http://www.gnu.org/licenses/>.
======================================================================*/
// The above copyright block should be at the top of every file.
/// @file
/// @brief This is an example class c++ file which is used to describe the QGroundControl
/// coding style. In general almost everything in here has some coding style meaning.
/// For example, note how this doxygen block uses the /// variant as the preferred style
/// of doxygen marker. Not all style choices are explained.
///
/// @author Don Gagne <don@thegagnes.com>
#include "CodingStyle.h"
#include "QGCApplication.h"
#include <QFile>
#include <QDebug>
// Note how the Qt headers and the QGroundControl headers above are kept seperate
Q_LOGGING_CATEGORY
(
CodingStyleLog
,
"CodingStyleLog"
)
CodingStyle
::
CodingStyle
(
QObject
*
parent
)
:
QObject
(
parent
),
_protectedVariable
(
1
),
_privateVariable1
(
2
),
_privateVariable2
(
3
)
{
}
/// Document non-obvious private methods in the code file.
void
CodingStyle
::
_privateMethod
(
void
)
{
// Always include braces even for single line if/for/...
if
(
uas
!=
_uasId
)
{
return
;
}
// Note the brace placement
if
(
_lastSeenComponent
==
-
1
)
{
_lastSeenComponent
=
component
;
}
else
{
Q_ASSERT
(
component
==
_lastSeenComponent
);
// Asserts are your friend
}
}
void
CodingStyle
::
_privateMethod2
(
void
)
{
Fact
*
fact
=
qobject_cast
<
Fact
*>
(
sender
());
Q_ASSERT
(
fact
);
QVariant
typedValue
;
switch
(
fact
->
type
())
{
case
FactMetaData
:
:
valueTypeInt8
:
case
FactMetaData
:
:
valueTypeInt16
:
case
FactMetaData
:
:
valueTypeInt32
:
typedValue
.
setValue
(
QVariant
(
value
.
toInt
()));
break
;
case
FactMetaData
:
:
valueTypeUint8
:
case
FactMetaData
:
:
valueTypeUint16
:
case
FactMetaData
:
:
valueTypeUint32
:
typedValue
.
setValue
(
value
.
toUInt
());
break
;
case
FactMetaData
:
:
valueTypeFloat
:
typedValue
.
setValue
(
value
.
toFloat
());
break
;
case
FactMetaData
:
:
valueTypeDouble
:
typedValue
.
setValue
(
value
.
toDouble
());
break
;
}
}
CodingStyle.h
0 → 100644
View file @
cdaa0296
/*=====================================================================
QGroundControl Open Source Ground Control Station
(c) 2009 - 2015 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
This file is part of the QGROUNDCONTROL project
QGROUNDCONTROL is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
QGROUNDCONTROL is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with QGROUNDCONTROL. If not, see <http://www.gnu.org/licenses/>.
======================================================================*/
// The above copyright block should be at the top of every file.
/// @file
/// @brief This is an example class header file which is used to describe the QGroundControl
/// coding style. In general almost everything in here has some coding style meaning.
/// For example, note how this doxygen block uses the /// variant as the preferred style
/// of doxygen marker. Not all style choices are explained.
///
/// @author Don Gagne <don@thegagnes.com>
#ifndef CodingStyle_h
#define CodingStyle_h
#include <QObject>
#include <QMap>
#include <QXmlStreamReader>
#include <QLoggingCategory>
#include "Fact.h"
#include "UASInterface.h"
// Note how the Qt headers and the QGroundControl headers above are kept seperate
// If you are going to use a logging category for a class it should have the same name as the class
// with a suffix of Log.
Q_DECLARE_LOGGING_CATEGORY
(
CodingStyleLog
)
/// Here is the class documentation. Class names are PascalCase.
class
CodingStyle
:
public
QObject
{
Q_OBJECT
public:
CodingStyle
(
QObject
*
parent
=
NULL
);
~
CodingStyle
();
/// Document public methods which are non-obvious in the header file
bool
publicMethod1
(
void
);
signals:
/// Document signals which are non-obvious in the header file
void
qtSignal
(
void
);
public
slots
:
// Public slots should only be used if the slot is connected to from another class. Majority of slots
// should be private.
void
publicSlot
(
void
);
// Don't use protected methods or variables unless the class is specifically meant to be used as a base class.
protected:
int
_protectedVariable
;
///< variable names are camelCase
void
_protectedMethod
(
void
);
///< method names are camelCase
private
slots
:
void
_privateSlot
(
void
);
private:
// Private methods and variable names begin with an "_". Documentation for
// non-obvious private methods goes in the code file, not the header.
void
_privateMethod
(
void
);
/// Document non-obvious variables in the header file. Long descriptions go here.
int
_privateVariable1
;
int
_privateVariable2
;
///< Short descriptions go here
};
#endif
\ No newline at end of file
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