QuickGraphLib 0.1.0a16__tar.gz → 0.1.0a18__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (304) hide show
  1. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/.gitignore +1 -0
  2. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/PKG-INFO +1 -1
  3. quickgraphlib-0.1.0a18/QuickGraphLib/GraphItems/BarHorizontal.qml +51 -0
  4. quickgraphlib-0.1.0a18/QuickGraphLib/GraphItems/BarVertical.qml +51 -0
  5. quickgraphlib-0.1.0a18/QuickGraphLib/GraphItems/BoxPlotHorizontal.qml +82 -0
  6. quickgraphlib-0.1.0a18/QuickGraphLib/GraphItems/BoxPlotVertical.qml +82 -0
  7. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/GraphItems/CMakeLists.txt +4 -0
  8. quickgraphlib-0.1.0a18/QuickGraphLib/_version.py +24 -0
  9. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/doc/export.qdoc +2 -0
  10. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/helpers/Helpers.cpp +198 -2
  11. quickgraphlib-0.1.0a18/ci/fixup_qt.py +16 -0
  12. quickgraphlib-0.1.0a18/examples/BarChartHorizontal.png +0 -0
  13. quickgraphlib-0.1.0a18/examples/BarChartHorizontal.qdoc +13 -0
  14. quickgraphlib-0.1.0a18/examples/BarChartHorizontal.qml +80 -0
  15. quickgraphlib-0.1.0a18/examples/BarChartVertical.png +0 -0
  16. quickgraphlib-0.1.0a18/examples/BarChartVertical.qdoc +13 -0
  17. quickgraphlib-0.1.0a18/examples/BarChartVertical.qml +80 -0
  18. quickgraphlib-0.1.0a18/examples/BoxPlots.png +0 -0
  19. quickgraphlib-0.1.0a18/examples/BoxPlots.qdoc +13 -0
  20. quickgraphlib-0.1.0a18/examples/BoxPlots.qml +46 -0
  21. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/LogGraph.qdoc +1 -1
  22. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/pyproject.toml +3 -1
  23. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/requirements.txt +3 -3
  24. quickgraphlib-0.1.0a18/tests/extra_examples/500px-Kittyply_edit1.jpg +0 -0
  25. quickgraphlib-0.1.0a18/tests/extra_examples/ImageExport.qml +63 -0
  26. quickgraphlib-0.1.0a18/tests/extra_examples/SVG_Logo.svg +56 -0
  27. quickgraphlib-0.1.0a18/tests/extra_examples/VectorImageExport.qml +49 -0
  28. quickgraphlib-0.1.0a18/tests/reference_images/BarChartHorizontal.dat +0 -0
  29. quickgraphlib-0.1.0a18/tests/reference_images/BarChartHorizontal.png +0 -0
  30. quickgraphlib-0.1.0a18/tests/reference_images/BarChartHorizontal.svg +751 -0
  31. quickgraphlib-0.1.0a18/tests/reference_images/BarChartHorizontal_grab.png +0 -0
  32. quickgraphlib-0.1.0a18/tests/reference_images/BarChartVertical.dat +0 -0
  33. quickgraphlib-0.1.0a18/tests/reference_images/BarChartVertical.png +0 -0
  34. quickgraphlib-0.1.0a18/tests/reference_images/BarChartVertical.svg +751 -0
  35. quickgraphlib-0.1.0a18/tests/reference_images/BarChartVertical_grab.png +0 -0
  36. quickgraphlib-0.1.0a18/tests/reference_images/BoxPlots.dat +0 -0
  37. quickgraphlib-0.1.0a18/tests/reference_images/BoxPlots.png +0 -0
  38. quickgraphlib-0.1.0a18/tests/reference_images/BoxPlots.svg +773 -0
  39. quickgraphlib-0.1.0a18/tests/reference_images/BoxPlots_grab.png +0 -0
  40. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/Contours.dat +0 -0
  41. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/Contours.svg +1 -1
  42. quickgraphlib-0.1.0a18/tests/reference_images/ImageExport.dat +0 -0
  43. quickgraphlib-0.1.0a18/tests/reference_images/ImageExport.png +0 -0
  44. quickgraphlib-0.1.0a18/tests/reference_images/ImageExport.svg +122 -0
  45. quickgraphlib-0.1.0a18/tests/reference_images/ImageExport_grab.png +0 -0
  46. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/LogGraph.dat +0 -0
  47. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/LogGraph.svg +0 -42
  48. quickgraphlib-0.1.0a18/tests/reference_images/VectorImageExport.dat +0 -0
  49. quickgraphlib-0.1.0a18/tests/reference_images/VectorImageExport.png +0 -0
  50. quickgraphlib-0.1.0a18/tests/reference_images/VectorImageExport.svg +2106 -0
  51. quickgraphlib-0.1.0a18/tests/reference_images/VectorImageExport_grab.png +0 -0
  52. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/test_exports.py +6 -3
  53. quickgraphlib-0.1.0a16/QuickGraphLib/_version.py +0 -34
  54. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/.clang-format +0 -0
  55. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/.pre-commit-config.yaml +0 -0
  56. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/CMakeLists.txt +0 -0
  57. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/LICENCE +0 -0
  58. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/AntialiasingContainer.qml +0 -0
  59. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/Axis.qml +0 -0
  60. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/CMakeLists.txt +0 -0
  61. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/ColorMaps.cpp +0 -0
  62. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/ColorMaps.hpp +0 -0
  63. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/DataTypes.cpp +0 -0
  64. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/DataTypes.hpp +0 -0
  65. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/Global.hpp +0 -0
  66. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/GraphArea.qml +0 -0
  67. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/GraphItems/AxHLine.qml +0 -0
  68. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/GraphItems/AxHSpan.qml +0 -0
  69. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/GraphItems/AxVLine.qml +0 -0
  70. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/GraphItems/AxVSpan.qml +0 -0
  71. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/GraphItems/BasicLegend.qml +0 -0
  72. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/GraphItems/BasicLegendItem.qml +0 -0
  73. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/GraphItems/ColorMesh.qml +0 -0
  74. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/GraphItems/Contour.qml +0 -0
  75. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/GraphItems/GraphItemDragHandler.qml +0 -0
  76. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/GraphItems/Grid.qml +0 -0
  77. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/GraphItems/Histogram.qml +0 -0
  78. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/GraphItems/Line.qml +0 -0
  79. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/GraphItems/Marker.qml +0 -0
  80. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/GraphItems/helpers/GridHelper.cpp +0 -0
  81. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/GraphItems/helpers/GridHelper.hpp +0 -0
  82. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/GraphItems/helpers/HistogramHelper.cpp +0 -0
  83. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/GraphItems/helpers/HistogramHelper.hpp +0 -0
  84. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/ImageView.cpp +0 -0
  85. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/ImageView.hpp +0 -0
  86. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/Plugin.cpp +0 -0
  87. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/PreFabs/CMakeLists.txt +0 -0
  88. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/PreFabs/ImageAxes.qml +0 -0
  89. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/PreFabs/XYAxes.qml +0 -0
  90. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/QuickGraphLib.hpp +0 -0
  91. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/ScalingContainer.qml +0 -0
  92. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/ShapeRepeater.qml +0 -0
  93. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/TickLabel.qml +0 -0
  94. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/ZoomPanHandler.qml +0 -0
  95. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/__init__.py +0 -0
  96. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/bindings/Bindings.hpp +0 -0
  97. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/bindings/Bindings.xml +0 -0
  98. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/bindings/CMakeLists.txt +0 -0
  99. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/bindings/ShibokenHelpers.cpp +0 -0
  100. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/bindings/ShibokenHelpers.hpp +0 -0
  101. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/bindings/glue/DataTypes.cpp +0 -0
  102. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/bindings/pyigen.py +0 -0
  103. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/consts.py +0 -0
  104. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/contours.py +0 -0
  105. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/doc/AxesGridLayout.drawio +0 -0
  106. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/doc/AxesGridLayout.svg +0 -0
  107. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/doc/graphitems.qdoc +0 -0
  108. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/doc/graphstructure.qdoc +0 -0
  109. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/doc/index.qdoc +0 -0
  110. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/doc/interaction.qdoc +0 -0
  111. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/doc/module-cpp.qdoc +0 -0
  112. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/doc/module.qdoc +0 -0
  113. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/doc/prefabs.qdoc +0 -0
  114. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/doc/python_helpers.qdoc +0 -0
  115. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/helpers/AxisHelper.cpp +0 -0
  116. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/helpers/AxisHelper.hpp +0 -0
  117. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/helpers/Foreign.hpp +0 -0
  118. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/helpers/Helpers.hpp +0 -0
  119. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/helpers/ShapeRepeaterHelper.cpp +0 -0
  120. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/helpers/ShapeRepeaterHelper.hpp +0 -0
  121. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/QuickGraphLib/py.typed +0 -0
  122. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/README.md +0 -0
  123. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/activate_venv.ps1 +0 -0
  124. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/ci/find_qt.py +0 -0
  125. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/ci/setup_qt.py +0 -0
  126. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/docs/build_docs.py +0 -0
  127. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/docs/config.qdocconf +0 -0
  128. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/docs/style.css +0 -0
  129. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/AllTheAxes.png +0 -0
  130. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/AllTheAxes.qdoc +0 -0
  131. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/AllTheAxes.qml +0 -0
  132. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/BasicHistogram.png +0 -0
  133. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/BasicHistogram.qdoc +0 -0
  134. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/BasicHistogram.qml +0 -0
  135. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/BasicSinGraph.png +0 -0
  136. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/BasicSinGraph.qdoc +0 -0
  137. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/BasicSinGraph.qml +0 -0
  138. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/BasicSinGraphNoPrefabs.png +0 -0
  139. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/BasicSinGraphNoPrefabs.qdoc +0 -0
  140. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/BasicSinGraphNoPrefabs.qml +0 -0
  141. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/BuiltinColormaps.png +0 -0
  142. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/BuiltinColormaps.qdoc +0 -0
  143. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/BuiltinColormaps.qml +0 -0
  144. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/ColorMappedImages.png +0 -0
  145. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/ColorMappedImages.qdoc +0 -0
  146. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/ColorMappedImages.qml +0 -0
  147. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/ColorMesh.png +0 -0
  148. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/ColorMesh.qdoc +0 -0
  149. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/ColorMesh.qml +0 -0
  150. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/Complex.png +0 -0
  151. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/Complex.qdoc +0 -0
  152. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/Complex.qml +0 -0
  153. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/Contours.png +0 -0
  154. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/Contours.qdoc +0 -0
  155. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/Contours.qml +0 -0
  156. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/Conway.png +0 -0
  157. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/Conway.qdoc +0 -0
  158. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/Conway.qml +0 -0
  159. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/DarkSinGraph.png +0 -0
  160. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/DarkSinGraph.qdoc +0 -0
  161. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/DarkSinGraph.qml +0 -0
  162. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/DraggableRegion.png +0 -0
  163. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/DraggableRegion.qdoc +0 -0
  164. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/DraggableRegion.qml +0 -0
  165. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/ExampleGallery.png +0 -0
  166. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/ExampleGallery.qml +0 -0
  167. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/ImageAlignment.png +0 -0
  168. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/ImageAlignment.qdoc +0 -0
  169. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/ImageAlignment.qml +0 -0
  170. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/InvertedAxes.png +0 -0
  171. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/InvertedAxes.qdoc +0 -0
  172. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/InvertedAxes.qml +0 -0
  173. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/LogGraph.png +0 -0
  174. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/LogGraph.qml +0 -0
  175. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/PeakButtons.png +0 -0
  176. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/PeakButtons.qdoc +0 -0
  177. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/PeakButtons.qml +0 -0
  178. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/ReadoutLine.png +0 -0
  179. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/ReadoutLine.qdoc +0 -0
  180. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/ReadoutLine.qml +0 -0
  181. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/ScalingGraph.png +0 -0
  182. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/ScalingGraph.qdoc +0 -0
  183. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/ScalingGraph.qml +0 -0
  184. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/Scatter.png +0 -0
  185. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/Scatter.qdoc +0 -0
  186. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/Scatter.qml +0 -0
  187. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/SpansAndLines.png +0 -0
  188. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/SpansAndLines.qdoc +0 -0
  189. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/SpansAndLines.qml +0 -0
  190. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/Subgraphs.png +0 -0
  191. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/Subgraphs.qdoc +0 -0
  192. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/Subgraphs.qml +0 -0
  193. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/TwinX.png +0 -0
  194. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/TwinX.qdoc +0 -0
  195. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/TwinX.qml +0 -0
  196. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/ZoomableAsImage.png +0 -0
  197. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/ZoomableAsImage.qdoc +0 -0
  198. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/ZoomableAsImage.qml +0 -0
  199. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/ZoomableAxes.png +0 -0
  200. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/ZoomableAxes.qdoc +0 -0
  201. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/ZoomableAxes.qml +0 -0
  202. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/__init__.py +0 -0
  203. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/conway.py +0 -0
  204. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/examples/gallery.py +0 -0
  205. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/setup_venv.ps1 +0 -0
  206. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/__init__.py +0 -0
  207. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/fonts/DejaVuSans-Bold.ttf +0 -0
  208. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/fonts/DejaVuSans-BoldOblique.ttf +0 -0
  209. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/fonts/DejaVuSans-Oblique.ttf +0 -0
  210. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/fonts/DejaVuSans.ttf +0 -0
  211. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/fonts/LICENSE +0 -0
  212. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/python_exporter.py +0 -0
  213. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/AllTheAxes.dat +0 -0
  214. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/AllTheAxes.png +0 -0
  215. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/AllTheAxes.svg +0 -0
  216. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/AllTheAxes_grab.png +0 -0
  217. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/BasicHistogram.dat +0 -0
  218. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/BasicHistogram.png +0 -0
  219. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/BasicHistogram.svg +0 -0
  220. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/BasicHistogram_grab.png +0 -0
  221. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/BasicSinGraph.dat +0 -0
  222. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/BasicSinGraph.png +0 -0
  223. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/BasicSinGraph.svg +0 -0
  224. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/BasicSinGraphNoPrefabs.dat +0 -0
  225. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/BasicSinGraphNoPrefabs.png +0 -0
  226. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/BasicSinGraphNoPrefabs.svg +0 -0
  227. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/BasicSinGraphNoPrefabs_grab.png +0 -0
  228. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/BasicSinGraph_grab.png +0 -0
  229. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/BuiltinColormaps.dat +0 -0
  230. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/BuiltinColormaps.png +0 -0
  231. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/BuiltinColormaps.svg +0 -0
  232. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/BuiltinColormaps_grab.png +0 -0
  233. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/ColorMappedImages.dat +0 -0
  234. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/ColorMappedImages.png +0 -0
  235. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/ColorMappedImages.svg +0 -0
  236. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/ColorMappedImages_grab.png +0 -0
  237. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/ColorMesh.dat +0 -0
  238. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/ColorMesh.png +0 -0
  239. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/ColorMesh.svg +0 -0
  240. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/ColorMesh_grab.png +0 -0
  241. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/Complex.dat +0 -0
  242. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/Complex.png +0 -0
  243. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/Complex.svg +0 -0
  244. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/Complex_grab.png +0 -0
  245. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/Contours.png +0 -0
  246. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/Contours_grab.png +0 -0
  247. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/Conway.dat +0 -0
  248. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/Conway.png +0 -0
  249. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/Conway.svg +0 -0
  250. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/Conway_grab.png +0 -0
  251. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/DarkSinGraph.dat +0 -0
  252. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/DarkSinGraph.png +0 -0
  253. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/DarkSinGraph.svg +0 -0
  254. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/DarkSinGraph_grab.png +0 -0
  255. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/DraggableRegion.dat +0 -0
  256. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/DraggableRegion.png +0 -0
  257. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/DraggableRegion.svg +0 -0
  258. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/DraggableRegion_grab.png +0 -0
  259. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/ImageAlignment.dat +0 -0
  260. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/ImageAlignment.png +0 -0
  261. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/ImageAlignment.svg +0 -0
  262. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/ImageAlignment_grab.png +0 -0
  263. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/InvertedAxes.dat +0 -0
  264. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/InvertedAxes.png +0 -0
  265. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/InvertedAxes.svg +0 -0
  266. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/InvertedAxes_grab.png +0 -0
  267. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/LogGraph.png +0 -0
  268. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/LogGraph_grab.png +0 -0
  269. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/PeakButtons.dat +0 -0
  270. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/PeakButtons.png +0 -0
  271. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/PeakButtons.svg +0 -0
  272. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/PeakButtons_grab.png +0 -0
  273. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/ReadoutLine.dat +0 -0
  274. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/ReadoutLine.png +0 -0
  275. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/ReadoutLine.svg +0 -0
  276. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/ReadoutLine_grab.png +0 -0
  277. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/ScalingGraph.dat +0 -0
  278. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/ScalingGraph.png +0 -0
  279. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/ScalingGraph.svg +0 -0
  280. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/ScalingGraph_grab.png +0 -0
  281. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/Scatter.dat +0 -0
  282. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/Scatter.png +0 -0
  283. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/Scatter.svg +0 -0
  284. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/Scatter_grab.png +0 -0
  285. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/SpansAndLines.dat +0 -0
  286. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/SpansAndLines.png +0 -0
  287. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/SpansAndLines.svg +0 -0
  288. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/SpansAndLines_grab.png +0 -0
  289. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/Subgraphs.dat +0 -0
  290. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/Subgraphs.png +0 -0
  291. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/Subgraphs.svg +0 -0
  292. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/Subgraphs_grab.png +0 -0
  293. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/TwinX.dat +0 -0
  294. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/TwinX.png +0 -0
  295. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/TwinX.svg +0 -0
  296. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/TwinX_grab.png +0 -0
  297. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/ZoomableAsImage.dat +0 -0
  298. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/ZoomableAsImage.png +0 -0
  299. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/ZoomableAsImage.svg +0 -0
  300. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/ZoomableAsImage_grab.png +0 -0
  301. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/ZoomableAxes.dat +0 -0
  302. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/ZoomableAxes.png +0 -0
  303. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/ZoomableAxes.svg +0 -0
  304. {quickgraphlib-0.1.0a16 → quickgraphlib-0.1.0a18}/tests/reference_images/ZoomableAxes_grab.png +0 -0
@@ -7,3 +7,4 @@ dist
7
7
  aqtinstall.log
8
8
  qt
9
9
  QuickGraphLib/_version.py
10
+ build/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: QuickGraphLib
3
- Version: 0.1.0a16
3
+ Version: 0.1.0a18
4
4
  Summary: A scientific graphing library for QtQuick
5
5
  Author-Email: Matthew Joyce <matthew.joyce@refeyn.com>
6
6
  License: MIT License
@@ -0,0 +1,51 @@
1
+ // SPDX-FileCopyrightText: Copyright (c) 2024 Refeyn Ltd and other QuickGraphLib contributors
2
+ // SPDX-License-Identifier: MIT
3
+
4
+ import QtQuick
5
+ import QtQuick.Shapes as QQS
6
+
7
+ /*!
8
+ \qmltype BarHorizontal
9
+ \inqmlmodule QuickGraphLib.GraphItems
10
+ \inherits QtQuick::Shapes::ShapePath
11
+ \brief Displays a horizontal bar for a bar graph.
12
+ */
13
+ QQS.ShapePath {
14
+ id: root
15
+
16
+ /*!
17
+ The height (Y) of the bar in data coordinates.
18
+ */
19
+ required property double barHeight
20
+ /*!
21
+ The length (X) of the bar in data coordinates.
22
+ */
23
+ required property double barLength
24
+
25
+ /*!
26
+ Must be assigned the data transform of the graph area this axis is paired to.
27
+
28
+ \sa GraphArea::dataTransform
29
+ */
30
+ required property matrix4x4 dataTransform
31
+ /*!
32
+ The X position of the bar in data coordinates.
33
+ */
34
+ required property double position
35
+ /*!
36
+ The starting X position of the bar in data coordinates.
37
+ */
38
+ property double xStart: 0
39
+
40
+ pathHints: QQS.ShapePath.PathLinear | QQS.ShapePath.PathConvex | QQS.ShapePath.PathSolid
41
+
42
+ PathRectangle {
43
+ readonly property point bottomRightPoint: dataTransform.map(Qt.point(barLength >= 0 ? xStart + barLength : xStart, position - barHeight / 2))
44
+ readonly property point topLeftPoint: dataTransform.map(Qt.point(barLength >= 0 ? xStart : xStart + barLength, position + barHeight / 2))
45
+
46
+ height: bottomRightPoint.y - topLeftPoint.y
47
+ width: bottomRightPoint.x - topLeftPoint.x
48
+ x: topLeftPoint.x
49
+ y: topLeftPoint.y
50
+ }
51
+ }
@@ -0,0 +1,51 @@
1
+ // SPDX-FileCopyrightText: Copyright (c) 2024 Refeyn Ltd and other QuickGraphLib contributors
2
+ // SPDX-License-Identifier: MIT
3
+
4
+ import QtQuick
5
+ import QtQuick.Shapes as QQS
6
+
7
+ /*!
8
+ \qmltype BarVertical
9
+ \inqmlmodule QuickGraphLib.GraphItems
10
+ \inherits QtQuick::Shapes::ShapePath
11
+ \brief Displays a vertical bar for a bar graph.
12
+ */
13
+ QQS.ShapePath {
14
+ id: root
15
+
16
+ /*!
17
+ The height of the bar in data coordinates.
18
+ */
19
+ required property double barHeight
20
+ /*!
21
+ The width of the bar in data coordinates.
22
+ */
23
+ required property double barWidth
24
+
25
+ /*!
26
+ Must be assigned the data transform of the graph area this axis is paired to.
27
+
28
+ \sa GraphArea::dataTransform
29
+ */
30
+ required property matrix4x4 dataTransform
31
+ /*!
32
+ The X position of the bar in data coordinates.
33
+ */
34
+ required property double position
35
+ /*!
36
+ The starting Y position of the bar in data coordinates.
37
+ */
38
+ property double yStart: 0
39
+
40
+ pathHints: QQS.ShapePath.PathLinear | QQS.ShapePath.PathConvex | QQS.ShapePath.PathSolid
41
+
42
+ PathRectangle {
43
+ readonly property point bottomRightPoint: dataTransform.map(Qt.point(position + barWidth / 2, barHeight >= 0 ? yStart : yStart - barHeight))
44
+ readonly property point topLeftPoint: dataTransform.map(Qt.point(position - barWidth / 2, barHeight >= 0 ? yStart + barHeight : yStart))
45
+
46
+ height: bottomRightPoint.y - topLeftPoint.y
47
+ width: bottomRightPoint.x - topLeftPoint.x
48
+ x: topLeftPoint.x
49
+ y: topLeftPoint.y
50
+ }
51
+ }
@@ -0,0 +1,82 @@
1
+ // SPDX-FileCopyrightText: Copyright (c) 2024 Refeyn Ltd and other QuickGraphLib contributors
2
+ // SPDX-License-Identifier: MIT
3
+
4
+ import QtQuick
5
+ import QtQuick.Shapes as QQS
6
+
7
+ /*!
8
+ \qmltype BoxPLotVertical
9
+ \inqmlmodule QuickGraphLib.GraphItems
10
+ \inherits QtQuick::Shapes::ShapePath
11
+ \brief Displays a vertical box plot
12
+ */
13
+ QQS.ShapePath {
14
+ id: root
15
+
16
+ /*!
17
+ The height of the box in data coordinates.
18
+ */
19
+ required property double boxHeight
20
+
21
+ /*!
22
+ Must be assigned the data transform of the graph area this axis is paired to.
23
+
24
+ \sa GraphArea::dataTransform
25
+ */
26
+ required property matrix4x4 dataTransform
27
+ /*!
28
+ The Y position of the plot in data coordinates.
29
+ */
30
+ required property double position
31
+ /*!
32
+ The position of the Q0 whisker (minimum) in data coordinates.
33
+ */
34
+ required property double quartile0
35
+ /*!
36
+ The position of the Q1 line (first quartile) in data coordinates.
37
+ */
38
+ required property double quartile1
39
+ /*!
40
+ The position of the Q2 line (median) in data coordinates.
41
+ */
42
+ required property double quartile2
43
+ /*!
44
+ The position of the Q3 line (third quartile) in data coordinates.
45
+ */
46
+ required property double quartile3
47
+ /*!
48
+ The position of the Q4 whisker (maxiumum) in data coordinates.
49
+ */
50
+ required property double quartile4
51
+ /*!
52
+ The height of the whiskers in data coordinates.
53
+ */
54
+ required property double whiskerHeight
55
+
56
+ pathHints: QQS.ShapePath.PathLinear | QQS.ShapePath.PathSolid
57
+
58
+ PathMultiline {
59
+ paths: [[root.dataTransform.map(Qt.point(root.quartile0, root.position + root.whiskerHeight / 2)), root.dataTransform.map(Qt.point(root.quartile0, root.position - root.whiskerHeight / 2))], [root.dataTransform.map(Qt.point(root.quartile0, root.position)), root.dataTransform.map(Qt.point(root.quartile1, root.position))]]
60
+ }
61
+ PathRectangle {
62
+ readonly property point bottomRightPoint: root.dataTransform.map(Qt.point(root.quartile2, root.position - root.boxHeight / 2))
63
+ readonly property point topLeftPoint: root.dataTransform.map(Qt.point(root.quartile1, root.position + root.boxHeight / 2))
64
+
65
+ height: bottomRightPoint.y - topLeftPoint.y
66
+ width: bottomRightPoint.x - topLeftPoint.x
67
+ x: topLeftPoint.x
68
+ y: topLeftPoint.y
69
+ }
70
+ PathRectangle {
71
+ readonly property point bottomRightPoint: root.dataTransform.map(Qt.point(root.quartile3, root.position - root.boxHeight / 2))
72
+ readonly property point topLeftPoint: root.dataTransform.map(Qt.point(root.quartile2, root.position + root.boxHeight / 2))
73
+
74
+ height: bottomRightPoint.y - topLeftPoint.y
75
+ width: bottomRightPoint.x - topLeftPoint.x
76
+ x: topLeftPoint.x
77
+ y: topLeftPoint.y
78
+ }
79
+ PathMultiline {
80
+ paths: [[root.dataTransform.map(Qt.point(root.quartile3, root.position)), root.dataTransform.map(Qt.point(root.quartile4, root.position))], [root.dataTransform.map(Qt.point(root.quartile4, root.position + root.whiskerHeight / 2)), root.dataTransform.map(Qt.point(root.quartile4, root.position - root.whiskerHeight / 2))]]
81
+ }
82
+ }
@@ -0,0 +1,82 @@
1
+ // SPDX-FileCopyrightText: Copyright (c) 2024 Refeyn Ltd and other QuickGraphLib contributors
2
+ // SPDX-License-Identifier: MIT
3
+
4
+ import QtQuick
5
+ import QtQuick.Shapes as QQS
6
+
7
+ /*!
8
+ \qmltype BoxPLotVertical
9
+ \inqmlmodule QuickGraphLib.GraphItems
10
+ \inherits QtQuick::Shapes::ShapePath
11
+ \brief Displays a vertical box plot
12
+ */
13
+ QQS.ShapePath {
14
+ id: root
15
+
16
+ /*!
17
+ The width of the box in data coordinates.
18
+ */
19
+ required property double boxWidth
20
+
21
+ /*!
22
+ Must be assigned the data transform of the graph area this axis is paired to.
23
+
24
+ \sa GraphArea::dataTransform
25
+ */
26
+ required property matrix4x4 dataTransform
27
+ /*!
28
+ The X position of the plot in data coordinates.
29
+ */
30
+ required property double position
31
+ /*!
32
+ The position of the Q0 whisker (minimum) in data coordinates.
33
+ */
34
+ required property double quartile0
35
+ /*!
36
+ The position of the Q1 line (first quartile) in data coordinates.
37
+ */
38
+ required property double quartile1
39
+ /*!
40
+ The position of the Q2 line (median) in data coordinates.
41
+ */
42
+ required property double quartile2
43
+ /*!
44
+ The position of the Q3 line (third quartile) in data coordinates.
45
+ */
46
+ required property double quartile3
47
+ /*!
48
+ The position of the Q4 whisker (maxiumum) in data coordinates.
49
+ */
50
+ required property double quartile4
51
+ /*!
52
+ The width of the whiskers in data coordinates.
53
+ */
54
+ required property double whiskerWidth
55
+
56
+ pathHints: QQS.ShapePath.PathLinear | QQS.ShapePath.PathSolid
57
+
58
+ PathMultiline {
59
+ paths: [[root.dataTransform.map(Qt.point(root.position - root.whiskerWidth / 2, root.quartile4)), root.dataTransform.map(Qt.point(root.position + root.whiskerWidth / 2, root.quartile4))], [root.dataTransform.map(Qt.point(root.position, root.quartile4)), root.dataTransform.map(Qt.point(root.position, root.quartile3))]]
60
+ }
61
+ PathRectangle {
62
+ readonly property point bottomRightPoint: root.dataTransform.map(Qt.point(root.position + root.boxWidth / 2, root.quartile2))
63
+ readonly property point topLeftPoint: root.dataTransform.map(Qt.point(root.position - root.boxWidth / 2, root.quartile3))
64
+
65
+ height: bottomRightPoint.y - topLeftPoint.y
66
+ width: bottomRightPoint.x - topLeftPoint.x
67
+ x: topLeftPoint.x
68
+ y: topLeftPoint.y
69
+ }
70
+ PathRectangle {
71
+ readonly property point bottomRightPoint: root.dataTransform.map(Qt.point(root.position + root.boxWidth / 2, root.quartile1))
72
+ readonly property point topLeftPoint: root.dataTransform.map(Qt.point(root.position - root.boxWidth / 2, root.quartile2))
73
+
74
+ height: bottomRightPoint.y - topLeftPoint.y
75
+ width: bottomRightPoint.x - topLeftPoint.x
76
+ x: topLeftPoint.x
77
+ y: topLeftPoint.y
78
+ }
79
+ PathMultiline {
80
+ paths: [[root.dataTransform.map(Qt.point(root.position, root.quartile1)), root.dataTransform.map(Qt.point(root.position, root.quartile0))], [root.dataTransform.map(Qt.point(root.position - root.whiskerWidth / 2, root.quartile0)), root.dataTransform.map(Qt.point(root.position + root.whiskerWidth / 2, root.quartile0))]]
81
+ }
82
+ }
@@ -4,7 +4,11 @@
4
4
  set(QGL_GI_QML_FILES
5
5
  AxHLine.qml
6
6
  AxVLine.qml
7
+ BarHorizontal.qml
8
+ BarVertical.qml
7
9
  BasicLegend.qml
10
+ BoxPlotHorizontal.qml
11
+ BoxPlotVertical.qml
8
12
  GraphItemDragHandler.qml
9
13
  Histogram.qml
10
14
  Marker.qml
@@ -0,0 +1,24 @@
1
+ # file generated by vcs-versioning
2
+ # don't change, don't track in version control
3
+ from __future__ import annotations
4
+
5
+ __all__ = [
6
+ "__version__",
7
+ "__version_tuple__",
8
+ "version",
9
+ "version_tuple",
10
+ "__commit_id__",
11
+ "commit_id",
12
+ ]
13
+
14
+ version: str
15
+ __version__: str
16
+ __version_tuple__: tuple[int | str, ...]
17
+ version_tuple: tuple[int | str, ...]
18
+ commit_id: str | None
19
+ __commit_id__: str | None
20
+
21
+ __version__ = version = '0.1.0a18'
22
+ __version_tuple__ = version_tuple = (0, 1, 0, 'a18')
23
+
24
+ __commit_id__ = commit_id = 'g4e72ebf27'
@@ -42,6 +42,8 @@ If an element is not rendered correctly, create a \l {https://github.com/refeyn/
42
42
 
43
43
  \list
44
44
  \li \l Rectangle items must have \l {Rectangle::border.width} {border.width} set to zero if the border should be hidden. This is because the border width defaults to 1, and there is no public API for checking if the width or color has been set.
45
+ \li For \l Image items, the \c Image.Tile, \c Image.TileVertically, and \c Image.TileHorizontally options for \l {Image::fillMode} are not yet supported.
46
+ \li Network sources are not supported for \l Image and \l VectorImage items.
45
47
  \endlist
46
48
 
47
49
  */
@@ -3,12 +3,15 @@
3
3
 
4
4
  #include "Helpers.hpp"
5
5
 
6
+ #include <QAbstractTextDocumentLayout>
6
7
  #include <QFile>
7
8
  #include <QMatrix4x4>
8
9
  #include <QPainter>
9
10
  #include <QPainterPath>
11
+ #include <QQmlContext>
10
12
  #include <QTextDocument>
11
13
  #include <QtSvg/QSvgGenerator>
14
+ #include <QtSvg/QSvgRenderer>
12
15
 
13
16
  #include "ImageView.hpp"
14
17
 
@@ -186,6 +189,82 @@ void exportPathElementToPainterPath(QObject* element, QPainterPath& path) {
186
189
  else if (element->inherits("QQuickPathMove")) {
187
190
  path.moveTo(element->property("x").toDouble(), element->property("y").toDouble());
188
191
  }
192
+ else if (element->inherits("QQuickPathRectangle")) {
193
+ // Based on the Qt code in qtdeclarative/src/quick/util/qquickpath.cpp
194
+ auto bottomLeftBevel = element->property("bottomLeftBevel").toBool();
195
+ auto bottomRightBevel = element->property("bottomRightBevel").toBool();
196
+ auto topLeftBevel = element->property("topLeftBevel").toBool();
197
+ auto topRightBevel = element->property("topRightBevel").toBool();
198
+ auto bottomLeftRadius = element->property("bottomLeftRadius").toDouble();
199
+ auto bottomRightRadius = element->property("bottomRightRadius").toDouble();
200
+ auto topLeftRadius = element->property("topLeftRadius").toDouble();
201
+ auto topRightRadius = element->property("topRightRadius").toDouble();
202
+ auto strokeAdjustment = element->property("strokeAdjustment").toDouble();
203
+ auto height = element->property("height").toDouble();
204
+ auto width = element->property("width").toDouble();
205
+ auto x = element->property("x").toDouble();
206
+ auto y = element->property("y").toDouble();
207
+
208
+ auto rect = QRect(x, y, width, height);
209
+ auto halfStroke = strokeAdjustment * 0.5;
210
+ rect.adjust(halfStroke, halfStroke, -halfStroke, -halfStroke);
211
+ if (rect.isEmpty())
212
+ return;
213
+
214
+ // Radii must not exceed half of the width or half of the height
215
+ const qreal maxDiameter = qMin(rect.width(), rect.height());
216
+ const qreal diamTL = qMin(maxDiameter, 2 * topLeftRadius);
217
+ const qreal diamTR = qMin(maxDiameter, 2 * topRightRadius);
218
+ const qreal diamBL = qMin(maxDiameter, 2 * bottomLeftRadius);
219
+ const qreal diamBR = qMin(maxDiameter, 2 * bottomRightRadius);
220
+
221
+ path.moveTo(rect.left() + diamTL * 0.5, rect.top());
222
+ if (diamTR) {
223
+ if (!topRightBevel) {
224
+ // Rounded corners.
225
+ path.arcTo(QRectF(QPointF(rect.right() - diamTR, rect.top()), QSizeF(diamTR, diamTR)), 90, -90);
226
+ } else {
227
+ // Beveled corners.
228
+ path.lineTo(QPointF(rect.right() - diamTR * 0.5, rect.top()));
229
+ path.lineTo(QPointF(rect.right(), rect.top() + diamTR * 0.5));
230
+ }
231
+ } else {
232
+ // Regular corners.
233
+ path.lineTo(rect.topRight());
234
+ }
235
+
236
+ if (diamBR) {
237
+ if (!bottomRightBevel) {
238
+ path.arcTo(QRectF(QPointF(rect.right() - diamBR, rect.bottom() - diamBR), QSizeF(diamBR, diamBR)), 0, -90);
239
+ } else {
240
+ path.lineTo(QPointF(rect.right(), rect.bottom() - diamBR * 0.5));
241
+ path.lineTo(QPointF(rect.right() - diamBR * 0.5, rect.bottom()));
242
+ }
243
+ } else {
244
+ path.lineTo(rect.bottomRight());
245
+ }
246
+
247
+ if (diamBL) {
248
+ if (!bottomLeftBevel) {
249
+ path.arcTo(QRectF(QPointF(rect.left(), rect.bottom() - diamBL), QSizeF(diamBL, diamBL)), 270, -90);
250
+ } else {
251
+ path.lineTo(QPointF(rect.left() + diamBL * 0.5, rect.bottom()));
252
+ path.lineTo(QPointF(rect.left(), rect.bottom() - diamBL * 0.5));
253
+ }
254
+ } else {
255
+ path.lineTo(rect.bottomLeft());
256
+ }
257
+
258
+ if (diamTL) {
259
+ if (!topLeftBevel)
260
+ path.arcTo(QRectF(rect.topLeft(), QSizeF(diamTL, diamTL)), 180, -90);
261
+ else
262
+ path.lineTo(QPointF(rect.left(), rect.top() + diamTL * 0.5));
263
+ } else {
264
+ path.lineTo(rect.topLeft());
265
+ }
266
+ path.closeSubpath();
267
+ }
189
268
  }
190
269
 
191
270
  QBrush brushFromColorAndGradient(QVariant fillGradient, QVariant color, std::optional<QSizeF> simpleGradient) {
@@ -264,6 +343,31 @@ void exportShapePathToPainter(QObject* shapePath, QPainter* painter) {
264
343
  painter->restore();
265
344
  }
266
345
 
346
+ QRectF alignSizeInsideRect(QRectF area, QSizeF size, Qt::Alignment alignment) {
347
+ qreal x;
348
+ if (alignment & Qt::AlignLeft) {
349
+ x = 0;
350
+ }
351
+ else if (alignment & Qt::AlignRight) {
352
+ x = area.width() - size.width();
353
+ }
354
+ else {
355
+ x = (area.width() - size.width()) / 2;
356
+ }
357
+
358
+ qreal y;
359
+ if (alignment & Qt::AlignTop) {
360
+ y = 0;
361
+ }
362
+ else if (alignment & Qt::AlignBottom) {
363
+ y = area.height() - size.height();
364
+ }
365
+ else {
366
+ y = (area.height() - size.height()) / 2;
367
+ }
368
+ return QRectF(QPointF(x, y), size);
369
+ }
370
+
267
371
  void exportItemToPainter(QQuickItem* item, QPainter* painter) {
268
372
  if (!item->isVisible()) {
269
373
  return;
@@ -313,7 +417,8 @@ void exportItemToPainter(QQuickItem* item, QPainter* painter) {
313
417
  if (item->inherits("QQuickText")) {
314
418
  painter->save();
315
419
  painter->setFont(item->property("font").value<QFont>());
316
- painter->setPen(item->property("color").value<QColor>());
420
+ auto color = item->property("color").value<QColor>();
421
+ painter->setPen(color);
317
422
  auto textFormat = static_cast<Qt::TextFormat>(item->property("textFormat").toInt());
318
423
  auto text = item->property("text").toString();
319
424
  auto alignment = static_cast<Qt::AlignmentFlag>(
@@ -340,7 +445,9 @@ void exportItemToPainter(QQuickItem* item, QPainter* painter) {
340
445
  option.setAlignment(alignment);
341
446
  doc.setDefaultTextOption(option);
342
447
  doc.setDefaultFont(painter->font());
343
- doc.drawContents(painter, rect);
448
+ QAbstractTextDocumentLayout::PaintContext ctx{};
449
+ ctx.palette.setColor(QPalette::Text, color);
450
+ doc.documentLayout()->draw(painter, ctx);
344
451
  }
345
452
  painter->restore();
346
453
  }
@@ -385,6 +492,95 @@ void exportItemToPainter(QQuickItem* item, QPainter* painter) {
385
492
  painter->drawImage(imageView->paintedRect(), imageView->image().flipped(flippedFlags));
386
493
  }
387
494
 
495
+ else if (item->inherits("QQuickImage")) {
496
+ if (item->property("smooth").toBool()) {
497
+ painter->setRenderHint(QPainter::RenderHint::SmoothPixmapTransform, true);
498
+ }
499
+ auto flippedFlags = Qt::Orientations();
500
+ flippedFlags.setFlag(Qt::Horizontal, item->property("mirror").toBool());
501
+ flippedFlags.setFlag(Qt::Vertical, item->property("mirrorVertically").toBool());
502
+ auto source = item->property("source").toString();
503
+ auto ctx = qmlContext(item);
504
+ if (ctx) {
505
+ auto url = ctx->resolvedUrl(source);
506
+ source = url.scheme() == "file" ? url.toLocalFile() : url.toString();
507
+ }
508
+ auto image = QImage(source);
509
+ if (image.isNull()) {
510
+ qWarning() << __func__ << "Could not load" << source;
511
+ }
512
+ auto sourceClipRect = item->property("sourceClipRect").toRectF();
513
+ if (!sourceClipRect.isValid()) {
514
+ sourceClipRect = QRectF(0, 0, image.width(), image.height());
515
+ }
516
+ auto alignment = static_cast<Qt::Alignment>(
517
+ item->property("horizontalAlignment").toUInt() | item->property("verticalAlignment").toUInt()
518
+ );
519
+ auto sourceSize = item->property("sourceSize").toSizeF();
520
+ if (sourceSize.isNull()) {
521
+ sourceSize = sourceClipRect.size();
522
+ }
523
+ else {
524
+ sourceSize = sourceClipRect.size().scaled(sourceSize, Qt::KeepAspectRatio);
525
+ }
526
+ switch (item->property("fillMode").toInt()) {
527
+ case 0: // QQuickImage::FillMode::Stretch
528
+ break; // Don't need to do anything
529
+ case 1: // QQuickImage::FillMode::PreserveAspectFit
530
+ rect = alignSizeInsideRect(
531
+ rect, sourceClipRect.size().scaled(rect.size(), Qt::KeepAspectRatio), alignment
532
+ );
533
+ break;
534
+ case 2: // QQuickImage::FillMode::PreserveAspectCrop
535
+ sourceClipRect = alignSizeInsideRect(
536
+ sourceClipRect, rect.size().scaled(sourceClipRect.size(), Qt::KeepAspectRatio), alignment
537
+ );
538
+ break;
539
+ case 3: // QQuickImage::FillMode::Tile
540
+ case 4: // QQuickImage::FillMode::TileVertically
541
+ case 5: // QQuickImage::FillMode::TileHorizontally
542
+ qWarning() << __func__ << "Unsupported fillMode for QQuickImage";
543
+ break;
544
+ case 6: // QQuickImage::FillMode::Pad
545
+ rect = alignSizeInsideRect(rect, sourceSize, alignment);
546
+ break;
547
+ }
548
+ painter->drawImage(rect, image.flipped(flippedFlags), sourceClipRect);
549
+ }
550
+
551
+ else if (item->inherits("QQuickVectorImage")) {
552
+ auto source = item->property("source").toString();
553
+ auto ctx = qmlContext(item);
554
+ if (ctx) {
555
+ auto url = ctx->resolvedUrl(source);
556
+ source = url.scheme() == "file" ? url.toLocalFile() : url.toString();
557
+ }
558
+ QSvgRenderer renderer(source);
559
+ if (!renderer.isValid()) {
560
+ qWarning() << __func__ << "Could not load" << source;
561
+ }
562
+ switch (item->property("fillMode").toInt()) {
563
+ case 0: // QQuickVectorImage::FillMode::NoResize
564
+ rect = renderer.viewBoxF();
565
+ break;
566
+ case 1: // QQuickVectorImage::FillMode::PreserveAspectFit
567
+ rect = alignSizeInsideRect(
568
+ rect, renderer.viewBoxF().size().scaled(rect.size(), Qt::KeepAspectRatio),
569
+ Qt::AlignLeft | Qt::AlignTop
570
+ );
571
+ break;
572
+ case 2: // QQuickVectorImage::FillMode::PreserveAspectCrop
573
+ rect = alignSizeInsideRect(
574
+ rect, renderer.viewBoxF().size().scaled(rect.size(), Qt::KeepAspectRatioByExpanding),
575
+ Qt::AlignLeft | Qt::AlignTop
576
+ );
577
+ break;
578
+ case 3: // QQuickVectorImage::FillMode::Stretch
579
+ break; // Don't need to do anything
580
+ }
581
+ renderer.render(painter, rect);
582
+ }
583
+
388
584
  for (auto c : children) {
389
585
  if (c->z() >= 0) {
390
586
  exportItemToPainter(c, painter);
@@ -0,0 +1,16 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024 Refeyn Ltd and other QuickGraphLib contributors
2
+ # SPDX-License-Identifier: MIT
3
+
4
+ import os
5
+ import pathlib
6
+ import shutil
7
+ import sys
8
+
9
+ import PySide6
10
+
11
+ # Fix for PYSIDE-3267 (for some reason the linux tests don't need a fixup)
12
+
13
+ if sys.platform == "win32":
14
+ from_ = pathlib.Path(os.environ["QT_PATH"]) / "bin/Qt6QuickVectorImageHelpers.dll"
15
+ print("Copying", from_, "to", PySide6.__path__[0])
16
+ shutil.copy(from_, PySide6.__path__[0])
@@ -0,0 +1,13 @@
1
+ // SPDX-FileCopyrightText: Copyright (c) 2024 Refeyn Ltd and other QuickGraphLib contributors
2
+ // SPDX-License-Identifier: MIT
3
+
4
+ /*!
5
+ \title Horizontal bar chart
6
+ \ingroup quickgraphlibdemos
7
+ \brief A simple horizontal bar chart
8
+ \example barchartHorizontal
9
+
10
+ \image examples/BarChartHorizontal.png
11
+
12
+ \quotefile examples/BarChartHorizontal.qml
13
+ */