Skip to content

Commit

Permalink
doxygen added
Browse files Browse the repository at this point in the history
  • Loading branch information
Chunosov committed Apr 18, 2018
1 parent d9acfc3 commit c433270
Show file tree
Hide file tree
Showing 8 changed files with 2,477 additions and 22 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ bin/test/_tmp*
bin/rezonator
bin/rezonator.app
bin/rezonator.exe
bin/*muparser*
*.autosave
*.user
*.exe
*.log
tmp
out
2,427 changes: 2,427 additions & 0 deletions Doxyfile

Large diffs are not rendered by default.

33 changes: 26 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ This is official port of reZonator to [Qt](qt.io) framework. The goal is to make
Currently version 2 is working but it is in early alpha state and does not implement most functions of version 1.
[Here](http://rezonator.orion-project.org/index.php?page=ver2) are some details and prebuild packages.


## Prepare build environment

### Clone git repository
Expand All @@ -21,23 +22,41 @@ Note that submodules are in 'detached head' state by default.

### Prepare third-party libraries

#### Unix
#### Linux/MacOS
```
./prepare.sh
chmod +x ./scripts/prepare_deps.sh
./scripts/prepare_deps.sh
```

#### Windows
Ensure you have MinGW `bin` directory in your `PATH`. It is recommended to use the same MinGW version as Qt uses, e.g.: `set PATH=C:\Qt\Tools\mingw530_32\bin;%PATH%`.
Ensure that MinGW `bin` directory is in your `PATH`. It is recommended to use the same MinGW version as Qt uses.
```
prepare.bat
set PATH=C:\Qt\Tools\mingw530_32\bin;%PATH%
scripts\prepare_deps.bat
```
**TODO:** Update preparation script


## Building
Only building via Qt Creator IDE is currently supported.
## Build

### Application
Only building via *Qt Creator IDE* is currently supported.
Just open project file `rezonator.pro` in IDE and configure it to use some of installed Qt-kits.
Any of modern Qt 5.* kits should suit.

### Source code documentation
```
sudo apt install doxygen
sudo apt install graphviz
mkdir -p out/src-doc
doxygen
```

### User manual
TODO

## Run
Target file is `bin/rezonator` (Linux) or `bin\rezonator.exe` (Windows).

On Linux you should run program via `bin/rezonator.sh` script. It modifies `LD_LIBRARY_PATH` environment variable allowing program to load shared libraries from its `bin` directory.
To run program outside of IDE on Linux, you should use script `bin/rezonator.sh`.
It modifies `LD_LIBRARY_PATH` environment variable allowing program to load shared libraries from its `bin` directory.
10 changes: 9 additions & 1 deletion make_runnable.mac → docs/load-local-libs-on-macos.md
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
#!/bin/sh
# How to load local libs on MacOS

This is example of how to load `muparser` library located in application bundle.

Libraries should be placed into `Frameworks` subdir of application bundle.

Then we have to use `install_name_tool` to adjust resolving rules in application executable file:

```
install_name_tool -id \
@executable_path/../Frameworks/libmuparser.2.dylib \
bin/rezonator.app/Contents/Frameworks/libmuparser.2.dylib
Expand All @@ -8,3 +15,4 @@ install_name_tool -change \
/usr/local/lib/libmuparser.2.dylib \
@executable_path/../Frameworks/libmuparser.2.dylib \
bin/rezonator.app/Contents/MacOS/rezonator
```
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion src/core/Parameters.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ class ParameterBase
/// Storable name of parameter.
const QString& alias() const { return _alias; }

/// Label of parameter. E.g.: L, alpha, n<sub>0</sub>.
/// Label of parameter. E.g.: `L`, `alpha`, `n<sub>0</sub>`.
/// Can contains some html tags (subscript or superscript).
const QString& label() const { return _label; }

Expand Down
25 changes: 13 additions & 12 deletions src/core/Schema.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ class Schema;
Schema listener interface.
Any object who wants "listen" any schema changes or other events should
implements this interface and registers himself as listener in a schema
through the method Schema::registerListener(). Schema will call appropriate
through the method @a Schema::registerListener(). Schema will call appropriate
method of interface when something occures.
*/
class SchemaListener : public SchemaClient
Expand Down Expand Up @@ -69,18 +69,19 @@ class SchemaState

//------------------------------------------------------------------------------

/**
Schema event system.
Steps to add new event:
1. Add new member to @a SchemaEvents enum.
2. Add new notification method to @a SchemaListener interface.
3. Add calling of that method to @a SchemaEvents::notify() method.
4. Define props of new event in @a SchemaEvents::propsOf() method.
*/
class SchemaEvents
{
public:
/**
@brief Event types that can be sent to schema listeners.
Steps to add new event:
1) Add new enum member here
2) Add new notification method to @a SchemaListener interface
3) Add calling of that method to @a SchemaEvents::notify() method
4) Define props of new event in @a SchemaEvents::propsOf() method
*/
/// Event types that can be sent to schema listeners.
enum Event
{
Created, ///< Schema just was created, called from constructor
Expand Down Expand Up @@ -133,8 +134,8 @@ class SchemaEvents
/**
Interface of element selector.
A widged displaying schema elements can allow user to select one or several
elements by mouse or keyboard (like SchemaTable does). This widged can implement this interface
and register itself in a schema via `schema->selection().registerSelector(selecting_widget)`
elements by mouse or keyboard (like @a SchemaElemsTable does). This widged can implement this interface
and register itself in a schema via `schema->selection().registerSelector(selecting_widget)`.
Then any others will be able to obtain selected element(s) via `schema->selectedElements()`
without any redundant knowledge about who exactly made this selection.
*/
Expand Down

0 comments on commit c433270

Please sign in to comment.