Skip to content

Commit

Permalink
Merge pull request #252 from cneben/develop
Browse files Browse the repository at this point in the history
2.5.0
  • Loading branch information
cneben committed Sep 22, 2024
2 parents 6009c79 + 1c8576b commit 56bdf78
Show file tree
Hide file tree
Showing 243 changed files with 3,481 additions and 2,815 deletions.
37 changes: 0 additions & 37 deletions .github/workflows/build-linux-qt5.yml

This file was deleted.

49 changes: 0 additions & 49 deletions .github/workflows/build-win64-qt5.yml

This file was deleted.

4 changes: 2 additions & 2 deletions .github/workflows/build-win64-qt6.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
version: '6.4.*'
version: '6.6.*'
host: 'windows'
target: 'desktop'
arch: 'win64_msvc2019_64'
Expand All @@ -35,7 +35,7 @@ jobs:

- name: Install dependencies and generate project files
run: |
cmake -S '${{ github.workspace }}/' -B '${{ github.workspace }}/Build' -DCMAKE_GENERATOR:STRING=Ninja -DCMAKE_BUILD_TYPE:STRING=Release
cmake -S '${{ github.workspace }}/' -B '${{ github.workspace }}/Build' -DCMAKE_GENERATOR:STRING=Ninja -DCMAKE_BUILD_TYPE:STRING=Release -DQUICK_QANAVA_CI=ON
- name: Compiling QuickQanava
shell: cmd
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,5 @@ samples/build*
.idea
.DS_Store
build-tests-*

build
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# CHANGELOG

## 20240922 2.5.0:
- #248: Add full support for cmake qt_add_qml_module(), QuickQanava must now be used
as a static QML module (qml compiler is automatically applied, it look like it is a lot faster...).
- #244: Add scrollbar support to qan::Navigable, better graph view area support.
- #238: Change group layout, add header support in group delegate.
- #228: Add preliminary support for auto tree layouts.

## 20240812 2.4.2:
- Merge #230 by @emmenlau, enhance node/group factory methods template signature.
- Merge #236 by @emmenlau, fix a memory leak.
- Merge #233 by @emmenlau, fix a compilation issue in graph.h.
- Change group dragging default behaviour: group are now only draggable by their
header. Old policy can be restored with qan::GroupItem::DragPolicy.

## 20231116 2.4.0:
- Rewrite the Qt5/6 CMake configuration.
- Remove all QUICKQANAVA_QT_MAJOR_VERSION and all compilation options, compilation is now always "static".
Expand Down
7 changes: 0 additions & 7 deletions CMakeLists.qt5.txt

This file was deleted.

9 changes: 0 additions & 9 deletions CMakeLists.qt6.txt

This file was deleted.

37 changes: 27 additions & 10 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,21 +1,38 @@
cmake_minimum_required(VERSION 3.5.0)
cmake_minimum_required(VERSION 3.16)

project(QuickQanava VERSION 2.4.0 LANGUAGES CXX)
project(QuickQanava VERSION 2.5.0 LANGUAGES CXX)
set_property(GLOBAL PROPERTY USE_FOLDERS ON)

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core Quick Qml Quick QuickControls2)
find_package(Qt6 REQUIRED COMPONENTS Core Quick Qml Quick QuickControls2)

message("Building QuickQanava for Qt${QT_VERSION_MAJOR}")

option(QUICK_QANAVA_BUILD_SAMPLES "Build the samples" FALSE)
add_compile_definitions(QT_DISABLE_DEPRECATED_BEFORE=0x050F00)

if (${QT_VERSION_MAJOR} EQUAL 5)
include(CMakeLists.qt5.txt)
else()
include(CMakeLists.qt6.txt)
add_subdirectory(src)

option(QUICK_QANAVA_BUILD_SAMPLES "Build QuickQanava samples" OFF)
if (${QUICK_QANAVA_CI})
add_subdirectory(samples/groups) # Used to test CI
endif()

add_subdirectory(src)
if (${QUICK_QANAVA_BUILD_SAMPLES})
add_subdirectory(samples/advanced)
add_subdirectory(samples/connector)
add_subdirectory(samples/cpp)

add_subdirectory(samples/dataflow)
add_subdirectory(samples/edges)
add_subdirectory(samples/navigable)

add_subdirectory(samples/groups)
add_subdirectory(samples/nodes)
add_subdirectory(samples/layouts)
add_subdirectory(samples/selection)

add_subdirectory(samples/style)
add_subdirectory(samples/topology)
endif()
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
# QuickQanava

![Linux Qt5 g++ qmake](https://github.com/cneben/QuickQanava/actions/workflows/build-linux-qt5.yml/badge.svg)
![Win64 Qt5 msvc qmake](https://github.com/cneben/QuickQanava/actions/workflows/build-win64-qt5.yml/badge.svg)
![Win64 Qt6 msvc CMake](https://github.com/cneben/QuickQanava/actions/workflows/build-win64-qt6.yml/badge.svg)

[![Documentation](https://img.shields.io/badge/docs-mkdocs-blue.svg)](http://cneben.github.io/QuickQanava/)
[![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)
![](https://img.shields.io/badge/version-2.1.0-blue.svg)
![](https://img.shields.io/badge/version-2.5.0-blue.svg)
[![Twitter URL](https://img.shields.io/twitter/url/https/twitter.com/fold_left.svg?style=social&label=Follow%20%40QuickQanava)](https://twitter.com/QuickQanava)

![](https://github.com/cneben/QuickQanava/blob/master/doc/web/docs/images/home.png)

`QuickQanava` is a C++14 library designed to display graphs and relational content in a Qt/QML application. QuickQanava provide QML components and C++ classes to visualize medium-sized directed graphs in a C++/QML application. QuickQanava focus on displaying relational content into a dynamic user interface with DnD support, resizable content and visual creation of topology. QuickQanava focus on writing topology delegates in pure QML.
`QuickQanava` is a C++17 library developed for rendering graphs and relational content within a Qt/QML application. It offers QML components and C++ classes designed for visualizing medium-sized directed graphs in a C++/QML application. QuickQanava emphasizes the presentation of relational content in a dynamic user interface, featuring Drag-and-Drop support, resizable content, and visual creation of topology. `QuickQanava` focus authoring of topology delegates in pure QML.

QuickQanava main repository is hosted on GitHub: http://cneben.github.io/QuickQanava/index.html

QuickQanava is primarily developed for Linux with Qt 5.15 with MSVC2019 and g++9 (minimal required Qt version is **Qt 5.10**, recommended is **Qt 5.15.5**).
QuickQanava is primarily developed with Qt 6.6.1 with MSVC2019 and g++11 (minimal required Qt version is **Qt 6.5.0**, recommended is **Qt 6.6.1**).

If you are interested in **Qt5.15** support, last release supporting Qt5 is [2.4.0](https://github.com/cneben/QuickQanava/releases/tag/2.4.0)

- [CHANGELOG.md](CHANGELOG.md)
- Project homepage: http://cneben.github.io/QuickQanava/index.html
Expand Down Expand Up @@ -68,5 +68,5 @@ QuickQanava include `bezier` library distributed with MIT licence on https://git

[![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)

Copyright (c) 2017-2022 BA
Copyright (c) 2017-2024 BA

1 change: 1 addition & 0 deletions VERSION.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
2.5.0
29 changes: 0 additions & 29 deletions conanfile.py

This file was deleted.

47 changes: 9 additions & 38 deletions doc/BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Dependencies

- **Qt > 5.12** _is mandatory_ for Qt Quick Shapes support.
- **Qt > 6.5.0** _is mandatory_ for MultiEffect support.
- **Google Test** is optional only to build and run tests ![Google Test GitHub](https://github.com/google/googletest).


Expand All @@ -22,27 +22,11 @@ $ git submodule add https://github.com/cneben/QuickQanava
$ git submodule update
```

QuickQanava could be used with either _qmake_ or _CMake_ build configuration system.

| qmake (Qt5) | CMake (Qt6) |
| :---: | :---: |
| Static build, no QML module, all resources are linked statically trough QRC | Installable or embedable, QuickQanava is loaded using a QML module that need to be installed, resources can be linked statically trough QRC |


Using qmake (**preferred and supported way of integrating QuickQanava**):

1. Open _quickqanava.pro_ in QtCreator.

2. Select a kit, build and launch samples.


:warning: CMake support is "community maintained"

or with (CMake >= 3.5) and Qt Creator:
QuickQanava is configured with CMake >= 3.5.0.

1. Open _CMakeLists.txt_ in QtCreator.

2. In 'Projects' panel, set DQUICK_QANAVA_BUILD_SAMPLES option to true in CMake configuration panel.
2. In 'Projects' panel, set `QUICK_QANAVA_BUILD_SAMPLES` option to `ON` in CMake configuration panel.

3. Select a kit, build and launch samples.

Expand All @@ -53,30 +37,17 @@ $ cd QuickQanava
$ mkdir build
$ cd build

# IF QT_DIR IS CONFIGURED AND QMAKE IN PATH
$ cmake -DCMAKE_BUILD_TYPE=Release -DQUICK_QANAVA_BUILD_SAMPLES=TRUE -DBUILD_STATIC_QRC=TRUE ..
# IF QT_DIR IS CONFIGURED
$ cmake -DCMAKE_BUILD_TYPE=Release -DQUICK_QANAVA_BUILD_SAMPLES=OFF ..

# IF QT DIR IS NOT CONFIGURED, CONFIGURE KIT MANUALLY
$ cmake -DCMAKE_PREFIX_PATH="/home/b/Qt/5.11.0/gcc_64" -DQT_QMAKE_EXECUTABLE="/home/b/Qt/5.11.0/gcc_64/bin/qmake" -DQUICK_QANAVA_BUILD_SAMPLES=TRUE -DBUILD_STATIC_QRC=TRUE ../QuickQanava/
$ cmake -DCMAKE_PREFIX_PATH="/home/xxx/Qt/6.6.1/gcc_64" -DQUICK_QANAVA_BUILD_SAMPLES=OFF -DBUILD_STATIC_QRC=TRUE ../QuickQanava/

$ cmake --build .
# Then run the samples in ./samples

# Eventually make install
```
# Then run the samples in ./samples (with QUICK_QANAVA_BUILD_SAMPLES=ON)

Detailed instructions: [Installation](http://cneben.github.io/QuickQanava/installation/index.html)

Note that a previously installed "QML plugin" version of QuickQanava might interfere with a fully static build using direct .pri inclusion. Typical error message looks like:

```
QQmlApplicationEngine failed to load component
qrc:/nodes.qml:33 module "QuickQanava" plugin "quickqanavaplugin" not found
# DO NOT make install, QuickQanava is not designed for system installation, only for submodule inclusion
```

QuickQanava and QuickContainers plugins directories could be removed manually from `$QTDIR\..\qml` to fix the problem (ex: rm -rf '~/Qt/5.11.1/gcc_64/qml/QuickQanava').

On Ubuntu system, the following dependencies must be isntalled:
```
$ sudo apt install libopengl0 -y
```
Detailed instructions: [Installation](http://cneben.github.io/QuickQanava/installation/index.html)
6 changes: 4 additions & 2 deletions doc/web/docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,13 @@ weight: 0

## Introduction

`QuickQanava` is a C++14 library designed to display graphs and relational content in a QtQuick application. QuickQanava provide QML components and C++ classes to visualize medium-sized directed graphs in a C++/QML application. QuickQanava does not provide advanced layout algorithms, but rather focus on displaying relational content in advanced dynamic user interfaces (with DnD support, resizable content, visual connection of nodes).
`QuickQanava` is a C++17 library developed for rendering graphs and relational content within a Qt/QML application. It offers QML components and C++ classes designed for visualizing medium-sized directed graphs in a C++/QML application. QuickQanava emphasizes the presentation of relational content in a dynamic user interface, featuring Drag-and-Drop support, resizable content, and visual creation of topology. `QuickQanava` focus authoring of topology delegates in pure QML.

QuickQanava main repository is hosted on GitHub: https://github.com/cneben/quickqanava

QuickQanava is primarily developed on Linux and Qt 5.15. minimal required Qt version is **Qt 5.10**.
QuickQanava is primarily developed with Qt 6.6.1 with MSVC2019 and g++11 (minimal required Qt version is **Qt 6.5.0**, recommended is **Qt 6.6.1**).

If you are interested in **Qt5.15** support, last release supporting Qt5 is [2.4.0](https://github.com/cneben/QuickQanava/releases/tag/2.4.0)

+ Project homepage: [http://cneben.github.io/QuickQanava/index.html](http://cneben.github.io/QuickQanava/index.html)

Expand Down
Loading

0 comments on commit 56bdf78

Please sign in to comment.