mirror of
https://github.com/rizinorg/cutter.git
synced 2024-12-23 21:35:28 +00:00
Added info about nullptr and connect() style
This commit is contained in:
parent
bebc2ec36d
commit
d34dab3925
@ -14,7 +14,12 @@ Note that cutter is still under development and many parts of the code are to be
|
|||||||
|
|
||||||
### CutterCore class
|
### CutterCore class
|
||||||
|
|
||||||
This is the main class where every link with r2 is made. It is *unique* accross the whole process. To access it, simply call `CutterCore::getInstance()`.
|
This is the main class where every link with r2 is made. It is *unique* accross the whole process. To access it, simply call `Core()`.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
```c++
|
||||||
|
Core()->getOffset();
|
||||||
|
```
|
||||||
|
|
||||||
### Calling a radare2 command
|
### Calling a radare2 command
|
||||||
|
|
||||||
@ -22,10 +27,20 @@ There are two ways to do it:
|
|||||||
* `CutterCore::cmd()` *(Discouraged)* Only use it for commands which yells no output
|
* `CutterCore::cmd()` *(Discouraged)* Only use it for commands which yells no output
|
||||||
* `CutterCore::cmdj()` To be used with json commands like `cmdj("agj")` or `cmdj("aflj")`. It is way easier to parse a json output.
|
* `CutterCore::cmdj()` To be used with json commands like `cmdj("agj")` or `cmdj("aflj")`. It is way easier to parse a json output.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
```c++
|
||||||
|
QJsonArray array = Core()->cmdj("pdj 1 @ main").array();
|
||||||
|
```
|
||||||
|
|
||||||
### Seek the current file
|
### Seek the current file
|
||||||
|
|
||||||
To modify radare2 seek use `CutterCore::seek(const RVA offset)`. This is important because it will emit a `CutterCore::seekChanged(RVA offset)` signal.
|
To modify radare2 seek use `CutterCore::seek(const RVA offset)`. This is important because it will emit a `CutterCore::seekChanged(RVA offset)` signal.
|
||||||
Never ever call cmd("s offset");
|
Never ever call `cmd("s offset")`;
|
||||||
|
|
||||||
|
Example:
|
||||||
|
```c++
|
||||||
|
Core()->seek(0xdeadbeef);
|
||||||
|
```
|
||||||
|
|
||||||
### Creating a widget
|
### Creating a widget
|
||||||
|
|
||||||
@ -33,7 +48,7 @@ Make sure to connect the `CutterCore::seekChanged(RVA offset)` signal so your wi
|
|||||||
|
|
||||||
## General coding guidelines
|
## General coding guidelines
|
||||||
|
|
||||||
### Code formatting
|
### Coding style
|
||||||
|
|
||||||
We follow [these guidelines](https://wiki.qt.io/Qt_Coding_Style) to format the code.
|
We follow [these guidelines](https://wiki.qt.io/Qt_Coding_Style) to format the code.
|
||||||
If in doubt, you can use [AStyle 2.06](https://sourceforge.net/projects/astyle/files/astyle/astyle%202.06/) to format the code. The command line for formatting the code according to the style is:
|
If in doubt, you can use [AStyle 2.06](https://sourceforge.net/projects/astyle/files/astyle/astyle%202.06/) to format the code. The command line for formatting the code according to the style is:
|
||||||
@ -42,6 +57,32 @@ If in doubt, you can use [AStyle 2.06](https://sourceforge.net/projects/astyle/f
|
|||||||
astyle --project=src/Cutter.astylerc src/filename.cpp
|
astyle --project=src/Cutter.astylerc src/filename.cpp
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### Loops
|
||||||
|
|
||||||
|
We use C++11 foreach loop style which means any "foreach" loop should look like:
|
||||||
|
```c++
|
||||||
|
for (QJsonValue value : importsArray) {
|
||||||
|
doSomething(value);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Nullptr
|
||||||
|
|
||||||
|
Please do not use `0` nor `Q_NULLPTR`, only use `nullptr`.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
```c++
|
||||||
|
QObject *object = nullptr;
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Connecting signals
|
||||||
|
|
||||||
|
To connect a signal to a slot, this is the preferred way to do it:
|
||||||
|
```c++
|
||||||
|
connect(sender, &QObject::destroyed, this, &MyObject::objectDestroyed);
|
||||||
|
```
|
||||||
|
The main reason is that this syntax allows the use of lambda functions.
|
||||||
|
|
||||||
### Functions documentation
|
### Functions documentation
|
||||||
|
|
||||||
It's good to add some documentation to your functions when needed. To do so we follow these [rules](http://doc.qt.io/qt-5/qdoc-guide-writing.html).
|
It's good to add some documentation to your functions when needed. To do so we follow these [rules](http://doc.qt.io/qt-5/qdoc-guide-writing.html).
|
||||||
|
Loading…
Reference in New Issue
Block a user