mirror of
https://github.com/bolucat/Archive.git
synced 2026-04-23 00:17:16 +08:00
52 lines
2.1 KiB
Markdown
52 lines
2.1 KiB
Markdown
# Contributing Qv2ray
|
|
|
|
Let's make Qv2ray great
|
|
|
|
## Branches
|
|
|
|
- ***Do not*** fix/push the code in/into the `master` branch.
|
|
- When submitting a small bugfix (code change less than 10 lines), please use the `version-v*` branch.
|
|
- `*` is the target major version.
|
|
- When submitting a larger bugfix, using `dev` is required since the stability of your patch needs to be examined.
|
|
- When submitting a new feature, it's recommended to checkout a new branch, named `dev-**`
|
|
- Where the feature should be briefly explained by the branch name, e.g. `dev-plugin-system` or `dev-qr-code`
|
|
|
|
## Code style
|
|
|
|
- Always run `clang-format` before submitting your patch, this is to prevent git changes caused by the code formatter.
|
|
- A `.clang-format` spec file has been placed at the root directory of the project.
|
|
- There's no strict limit of the naming style, but typically:
|
|
- All function names, class names are in UpperCamelCase
|
|
- All namespaces should be lowercase except `::Qv2ray`, where the corresponding file location should be the same as your namespace
|
|
- All local variables, member variables should be in normal CamelCase
|
|
- Unused variables should be wrapped with `Q_UNUSED`
|
|
- Try to use forward declaration instead of including headers in another head file, except UI file.
|
|
- Try not to modify the `.ui` files, if that is necessary, please note that you should also be capable fixing the git merge conflict if occurs.
|
|
- For header files, use `hpp` suffix.
|
|
|
|
E.g.: A file named UpperCamelCase.cpp/hpp should be located at `./src/components/featuretype/featuresubtype/`
|
|
|
|
```c++
|
|
namespace Qv2ray::components::featuretype::featuresubtype {
|
|
class UpperCamelCase : QObject {
|
|
Q_OBJECT
|
|
signals:
|
|
void OK();
|
|
public:
|
|
explicit UpperCamelCase(QObject *parent);
|
|
void DoWork() {
|
|
auto [data, status, isDataValid, hasErrorOccured] = CallSomethingElse();
|
|
Q_UNUSED(data)
|
|
status.clear();
|
|
if(isDataValid && !hasErrorOccured) {
|
|
emit OK();
|
|
}
|
|
}
|
|
~UpperCamelCase();
|
|
private:
|
|
UpperCamelCase *normalCamelCase;
|
|
QWidget *myNewWidget;
|
|
}
|
|
}
|
|
```
|