QuickGraphLib 0.1.0a15__tar.gz → 0.1.0a17__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 (278) hide show
  1. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/CMakeLists.txt +5 -0
  2. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/PKG-INFO +1 -1
  3. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/CMakeLists.txt +52 -26
  4. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/ImageView.cpp +1 -1
  5. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/_version.py +3 -3
  6. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/doc/export.qdoc +2 -0
  7. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/helpers/Helpers.cpp +122 -2
  8. quickgraphlib-0.1.0a17/ci/fixup_qt.py +16 -0
  9. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/LogGraph.qdoc +1 -1
  10. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/pyproject.toml +2 -1
  11. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/requirements.txt +2 -2
  12. quickgraphlib-0.1.0a17/tests/extra_examples/500px-Kittyply_edit1.jpg +0 -0
  13. quickgraphlib-0.1.0a17/tests/extra_examples/ImageExport.qml +63 -0
  14. quickgraphlib-0.1.0a17/tests/extra_examples/SVG_Logo.svg +56 -0
  15. quickgraphlib-0.1.0a17/tests/extra_examples/VectorImageExport.qml +49 -0
  16. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/Contours.dat +0 -0
  17. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/Contours.svg +1 -1
  18. quickgraphlib-0.1.0a17/tests/reference_images/ImageExport.dat +0 -0
  19. quickgraphlib-0.1.0a17/tests/reference_images/ImageExport.png +0 -0
  20. quickgraphlib-0.1.0a17/tests/reference_images/ImageExport.svg +122 -0
  21. quickgraphlib-0.1.0a17/tests/reference_images/ImageExport_grab.png +0 -0
  22. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/LogGraph.dat +0 -0
  23. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/LogGraph.svg +0 -42
  24. quickgraphlib-0.1.0a17/tests/reference_images/VectorImageExport.dat +0 -0
  25. quickgraphlib-0.1.0a17/tests/reference_images/VectorImageExport.png +0 -0
  26. quickgraphlib-0.1.0a17/tests/reference_images/VectorImageExport.svg +2106 -0
  27. quickgraphlib-0.1.0a17/tests/reference_images/VectorImageExport_grab.png +0 -0
  28. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/test_exports.py +6 -3
  29. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/.clang-format +0 -0
  30. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/.gitignore +0 -0
  31. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/.pre-commit-config.yaml +0 -0
  32. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/LICENCE +0 -0
  33. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/AntialiasingContainer.qml +0 -0
  34. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/Axis.qml +0 -0
  35. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/ColorMaps.cpp +0 -0
  36. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/ColorMaps.hpp +0 -0
  37. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/DataTypes.cpp +0 -0
  38. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/DataTypes.hpp +0 -0
  39. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/Global.hpp +0 -0
  40. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/GraphArea.qml +0 -0
  41. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/GraphItems/AxHLine.qml +0 -0
  42. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/GraphItems/AxHSpan.qml +0 -0
  43. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/GraphItems/AxVLine.qml +0 -0
  44. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/GraphItems/AxVSpan.qml +0 -0
  45. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/GraphItems/BasicLegend.qml +0 -0
  46. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/GraphItems/BasicLegendItem.qml +0 -0
  47. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/GraphItems/CMakeLists.txt +0 -0
  48. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/GraphItems/ColorMesh.qml +0 -0
  49. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/GraphItems/Contour.qml +0 -0
  50. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/GraphItems/GraphItemDragHandler.qml +0 -0
  51. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/GraphItems/Grid.qml +0 -0
  52. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/GraphItems/Histogram.qml +0 -0
  53. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/GraphItems/Line.qml +0 -0
  54. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/GraphItems/Marker.qml +0 -0
  55. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/GraphItems/helpers/GridHelper.cpp +0 -0
  56. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/GraphItems/helpers/GridHelper.hpp +0 -0
  57. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/GraphItems/helpers/HistogramHelper.cpp +0 -0
  58. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/GraphItems/helpers/HistogramHelper.hpp +0 -0
  59. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/ImageView.hpp +0 -0
  60. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/Plugin.cpp +0 -0
  61. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/PreFabs/CMakeLists.txt +0 -0
  62. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/PreFabs/ImageAxes.qml +0 -0
  63. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/PreFabs/XYAxes.qml +0 -0
  64. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/QuickGraphLib.hpp +0 -0
  65. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/ScalingContainer.qml +0 -0
  66. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/ShapeRepeater.qml +0 -0
  67. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/TickLabel.qml +0 -0
  68. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/ZoomPanHandler.qml +0 -0
  69. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/__init__.py +0 -0
  70. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/bindings/Bindings.hpp +0 -0
  71. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/bindings/Bindings.xml +0 -0
  72. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/bindings/CMakeLists.txt +0 -0
  73. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/bindings/ShibokenHelpers.cpp +0 -0
  74. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/bindings/ShibokenHelpers.hpp +0 -0
  75. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/bindings/glue/DataTypes.cpp +0 -0
  76. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/bindings/pyigen.py +0 -0
  77. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/consts.py +0 -0
  78. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/contours.py +0 -0
  79. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/doc/AxesGridLayout.drawio +0 -0
  80. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/doc/AxesGridLayout.svg +0 -0
  81. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/doc/graphitems.qdoc +0 -0
  82. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/doc/graphstructure.qdoc +0 -0
  83. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/doc/index.qdoc +0 -0
  84. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/doc/interaction.qdoc +0 -0
  85. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/doc/module-cpp.qdoc +0 -0
  86. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/doc/module.qdoc +0 -0
  87. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/doc/prefabs.qdoc +0 -0
  88. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/doc/python_helpers.qdoc +0 -0
  89. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/helpers/AxisHelper.cpp +0 -0
  90. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/helpers/AxisHelper.hpp +0 -0
  91. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/helpers/Foreign.hpp +0 -0
  92. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/helpers/Helpers.hpp +0 -0
  93. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/helpers/ShapeRepeaterHelper.cpp +0 -0
  94. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/helpers/ShapeRepeaterHelper.hpp +0 -0
  95. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/QuickGraphLib/py.typed +0 -0
  96. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/README.md +0 -0
  97. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/activate_venv.ps1 +0 -0
  98. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/ci/find_qt.py +0 -0
  99. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/ci/setup_qt.py +0 -0
  100. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/docs/build_docs.py +0 -0
  101. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/docs/config.qdocconf +0 -0
  102. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/docs/style.css +0 -0
  103. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/AllTheAxes.png +0 -0
  104. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/AllTheAxes.qdoc +0 -0
  105. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/AllTheAxes.qml +0 -0
  106. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/BasicHistogram.png +0 -0
  107. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/BasicHistogram.qdoc +0 -0
  108. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/BasicHistogram.qml +0 -0
  109. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/BasicSinGraph.png +0 -0
  110. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/BasicSinGraph.qdoc +0 -0
  111. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/BasicSinGraph.qml +0 -0
  112. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/BasicSinGraphNoPrefabs.png +0 -0
  113. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/BasicSinGraphNoPrefabs.qdoc +0 -0
  114. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/BasicSinGraphNoPrefabs.qml +0 -0
  115. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/BuiltinColormaps.png +0 -0
  116. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/BuiltinColormaps.qdoc +0 -0
  117. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/BuiltinColormaps.qml +0 -0
  118. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/ColorMappedImages.png +0 -0
  119. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/ColorMappedImages.qdoc +0 -0
  120. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/ColorMappedImages.qml +0 -0
  121. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/ColorMesh.png +0 -0
  122. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/ColorMesh.qdoc +0 -0
  123. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/ColorMesh.qml +0 -0
  124. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/Complex.png +0 -0
  125. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/Complex.qdoc +0 -0
  126. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/Complex.qml +0 -0
  127. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/Contours.png +0 -0
  128. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/Contours.qdoc +0 -0
  129. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/Contours.qml +0 -0
  130. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/Conway.png +0 -0
  131. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/Conway.qdoc +0 -0
  132. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/Conway.qml +0 -0
  133. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/DarkSinGraph.png +0 -0
  134. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/DarkSinGraph.qdoc +0 -0
  135. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/DarkSinGraph.qml +0 -0
  136. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/DraggableRegion.png +0 -0
  137. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/DraggableRegion.qdoc +0 -0
  138. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/DraggableRegion.qml +0 -0
  139. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/ExampleGallery.png +0 -0
  140. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/ExampleGallery.qml +0 -0
  141. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/ImageAlignment.png +0 -0
  142. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/ImageAlignment.qdoc +0 -0
  143. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/ImageAlignment.qml +0 -0
  144. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/InvertedAxes.png +0 -0
  145. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/InvertedAxes.qdoc +0 -0
  146. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/InvertedAxes.qml +0 -0
  147. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/LogGraph.png +0 -0
  148. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/LogGraph.qml +0 -0
  149. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/PeakButtons.png +0 -0
  150. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/PeakButtons.qdoc +0 -0
  151. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/PeakButtons.qml +0 -0
  152. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/ReadoutLine.png +0 -0
  153. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/ReadoutLine.qdoc +0 -0
  154. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/ReadoutLine.qml +0 -0
  155. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/ScalingGraph.png +0 -0
  156. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/ScalingGraph.qdoc +0 -0
  157. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/ScalingGraph.qml +0 -0
  158. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/Scatter.png +0 -0
  159. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/Scatter.qdoc +0 -0
  160. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/Scatter.qml +0 -0
  161. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/SpansAndLines.png +0 -0
  162. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/SpansAndLines.qdoc +0 -0
  163. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/SpansAndLines.qml +0 -0
  164. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/Subgraphs.png +0 -0
  165. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/Subgraphs.qdoc +0 -0
  166. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/Subgraphs.qml +0 -0
  167. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/TwinX.png +0 -0
  168. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/TwinX.qdoc +0 -0
  169. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/TwinX.qml +0 -0
  170. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/ZoomableAsImage.png +0 -0
  171. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/ZoomableAsImage.qdoc +0 -0
  172. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/ZoomableAsImage.qml +0 -0
  173. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/ZoomableAxes.png +0 -0
  174. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/ZoomableAxes.qdoc +0 -0
  175. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/ZoomableAxes.qml +0 -0
  176. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/__init__.py +0 -0
  177. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/conway.py +0 -0
  178. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/examples/gallery.py +0 -0
  179. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/setup_venv.ps1 +0 -0
  180. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/__init__.py +0 -0
  181. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/fonts/DejaVuSans-Bold.ttf +0 -0
  182. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/fonts/DejaVuSans-BoldOblique.ttf +0 -0
  183. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/fonts/DejaVuSans-Oblique.ttf +0 -0
  184. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/fonts/DejaVuSans.ttf +0 -0
  185. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/fonts/LICENSE +0 -0
  186. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/python_exporter.py +0 -0
  187. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/AllTheAxes.dat +0 -0
  188. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/AllTheAxes.png +0 -0
  189. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/AllTheAxes.svg +0 -0
  190. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/AllTheAxes_grab.png +0 -0
  191. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/BasicHistogram.dat +0 -0
  192. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/BasicHistogram.png +0 -0
  193. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/BasicHistogram.svg +0 -0
  194. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/BasicHistogram_grab.png +0 -0
  195. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/BasicSinGraph.dat +0 -0
  196. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/BasicSinGraph.png +0 -0
  197. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/BasicSinGraph.svg +0 -0
  198. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/BasicSinGraphNoPrefabs.dat +0 -0
  199. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/BasicSinGraphNoPrefabs.png +0 -0
  200. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/BasicSinGraphNoPrefabs.svg +0 -0
  201. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/BasicSinGraphNoPrefabs_grab.png +0 -0
  202. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/BasicSinGraph_grab.png +0 -0
  203. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/BuiltinColormaps.dat +0 -0
  204. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/BuiltinColormaps.png +0 -0
  205. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/BuiltinColormaps.svg +0 -0
  206. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/BuiltinColormaps_grab.png +0 -0
  207. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/ColorMappedImages.dat +0 -0
  208. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/ColorMappedImages.png +0 -0
  209. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/ColorMappedImages.svg +0 -0
  210. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/ColorMappedImages_grab.png +0 -0
  211. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/ColorMesh.dat +0 -0
  212. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/ColorMesh.png +0 -0
  213. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/ColorMesh.svg +0 -0
  214. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/ColorMesh_grab.png +0 -0
  215. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/Complex.dat +0 -0
  216. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/Complex.png +0 -0
  217. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/Complex.svg +0 -0
  218. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/Complex_grab.png +0 -0
  219. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/Contours.png +0 -0
  220. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/Contours_grab.png +0 -0
  221. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/Conway.dat +0 -0
  222. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/Conway.png +0 -0
  223. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/Conway.svg +0 -0
  224. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/Conway_grab.png +0 -0
  225. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/DarkSinGraph.dat +0 -0
  226. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/DarkSinGraph.png +0 -0
  227. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/DarkSinGraph.svg +0 -0
  228. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/DarkSinGraph_grab.png +0 -0
  229. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/DraggableRegion.dat +0 -0
  230. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/DraggableRegion.png +0 -0
  231. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/DraggableRegion.svg +0 -0
  232. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/DraggableRegion_grab.png +0 -0
  233. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/ImageAlignment.dat +0 -0
  234. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/ImageAlignment.png +0 -0
  235. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/ImageAlignment.svg +0 -0
  236. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/ImageAlignment_grab.png +0 -0
  237. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/InvertedAxes.dat +0 -0
  238. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/InvertedAxes.png +0 -0
  239. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/InvertedAxes.svg +0 -0
  240. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/InvertedAxes_grab.png +0 -0
  241. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/LogGraph.png +0 -0
  242. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/LogGraph_grab.png +0 -0
  243. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/PeakButtons.dat +0 -0
  244. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/PeakButtons.png +0 -0
  245. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/PeakButtons.svg +0 -0
  246. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/PeakButtons_grab.png +0 -0
  247. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/ReadoutLine.dat +0 -0
  248. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/ReadoutLine.png +0 -0
  249. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/ReadoutLine.svg +0 -0
  250. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/ReadoutLine_grab.png +0 -0
  251. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/ScalingGraph.dat +0 -0
  252. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/ScalingGraph.png +0 -0
  253. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/ScalingGraph.svg +0 -0
  254. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/ScalingGraph_grab.png +0 -0
  255. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/Scatter.dat +0 -0
  256. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/Scatter.png +0 -0
  257. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/Scatter.svg +0 -0
  258. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/Scatter_grab.png +0 -0
  259. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/SpansAndLines.dat +0 -0
  260. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/SpansAndLines.png +0 -0
  261. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/SpansAndLines.svg +0 -0
  262. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/SpansAndLines_grab.png +0 -0
  263. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/Subgraphs.dat +0 -0
  264. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/Subgraphs.png +0 -0
  265. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/Subgraphs.svg +0 -0
  266. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/Subgraphs_grab.png +0 -0
  267. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/TwinX.dat +0 -0
  268. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/TwinX.png +0 -0
  269. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/TwinX.svg +0 -0
  270. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/TwinX_grab.png +0 -0
  271. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/ZoomableAsImage.dat +0 -0
  272. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/ZoomableAsImage.png +0 -0
  273. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/ZoomableAsImage.svg +0 -0
  274. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/ZoomableAsImage_grab.png +0 -0
  275. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/ZoomableAxes.dat +0 -0
  276. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/ZoomableAxes.png +0 -0
  277. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/ZoomableAxes.svg +0 -0
  278. {quickgraphlib-0.1.0a15 → quickgraphlib-0.1.0a17}/tests/reference_images/ZoomableAxes_grab.png +0 -0
@@ -15,6 +15,11 @@ else()
15
15
  add_compile_options(-Wextra -Wpedantic -fno-visibility-inlines-hidden)
16
16
  endif()
17
17
 
18
+ option(
19
+ ENABLE_PYTHON
20
+ "Enable python binding. C++ only if disabled. (default is on)"
21
+ ON
22
+ )
18
23
  option(ENABLE_STUB_GENERATION "Enable .pyi stub generation (defaults to on)" ON)
19
24
  option(
20
25
  ENABLE_MANYLINUX_BUILD
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: QuickGraphLib
3
- Version: 0.1.0a15
3
+ Version: 0.1.0a17
4
4
  Summary: A scientific graphing library for QtQuick
5
5
  Author-Email: Matthew Joyce <matthew.joyce@refeyn.com>
6
6
  License: MIT License
@@ -11,6 +11,28 @@ set(QGL_QML_FILES
11
11
  ShapeRepeater.qml
12
12
  )
13
13
 
14
+ set(QGL_SOURCES
15
+ helpers/Helpers.cpp
16
+ helpers/Helpers.hpp
17
+ helpers/AxisHelper.hpp
18
+ helpers/AxisHelper.cpp
19
+ helpers/Foreign.hpp
20
+ helpers/ShapeRepeaterHelper.hpp
21
+ helpers/ShapeRepeaterHelper.cpp
22
+ ImageView.hpp
23
+ ImageView.cpp
24
+ ColorMaps.hpp
25
+ ColorMaps.cpp
26
+ DataTypes.hpp
27
+ DataTypes.cpp
28
+ QuickGraphLib.hpp
29
+ Global.hpp
30
+ )
31
+
32
+ if(ENABLE_PYTHON)
33
+ list(APPEND QGL_SOURCES bindings/Bindings.hpp)
34
+ endif()
35
+
14
36
  add_library(QuickGraphLibPlugin SHARED Plugin.cpp)
15
37
  target_link_libraries(QuickGraphLibPlugin PRIVATE Qt6::Gui)
16
38
  qt_add_qml_module(QuickGraphLib
@@ -22,11 +44,7 @@ qt_add_qml_module(QuickGraphLib
22
44
  NO_GENERATE_PLUGIN_SOURCE
23
45
  NO_PLUGIN_OPTIONAL
24
46
  DEPENDENCIES QtQuick
25
- SOURCES
26
- helpers/Helpers.cpp helpers/Helpers.hpp helpers/AxisHelper.hpp helpers/AxisHelper.cpp helpers/Foreign.hpp
27
- helpers/ShapeRepeaterHelper.hpp helpers/ShapeRepeaterHelper.cpp
28
- ImageView.hpp ImageView.cpp ColorMaps.hpp ColorMaps.cpp DataTypes.hpp DataTypes.cpp bindings/Bindings.hpp QuickGraphLib.hpp
29
- Global.hpp
47
+ SOURCES ${QGL_SOURCES}
30
48
  )
31
49
  set_property(
32
50
  TARGET QuickGraphLib
@@ -48,25 +66,6 @@ target_include_directories(
48
66
  PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/helpers
49
67
  )
50
68
 
51
- set(QGL_PYTHON_FILES
52
- __init__.py
53
- consts.py
54
- contours.py
55
- py.typed
56
- _version.py
57
- )
58
- foreach(PYTHON_FILE ${QGL_PYTHON_FILES})
59
- add_custom_command(
60
- OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${PYTHON_FILE}
61
- COMMAND
62
- ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/${PYTHON_FILE}
63
- ${CMAKE_CURRENT_BINARY_DIR}/${PYTHON_FILE}
64
- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${PYTHON_FILE}
65
- )
66
- endforeach()
67
- list(TRANSFORM QGL_PYTHON_FILES PREPEND "${CMAKE_CURRENT_BINARY_DIR}/")
68
- add_custom_target(QuickGraphLibPythonFiles ALL DEPENDS ${QGL_PYTHON_FILES})
69
-
70
69
  install(
71
70
  TARGETS QuickGraphLib
72
71
  RUNTIME DESTINATION ${INSTALL_SUBPATH}/QuickGraphLib
@@ -84,8 +83,35 @@ install(
84
83
  ${CMAKE_CURRENT_BINARY_DIR}/QuickGraphLib.qmltypes
85
84
  DESTINATION ${INSTALL_SUBPATH}/QuickGraphLib
86
85
  )
87
- install(FILES ${QGL_PYTHON_FILES} DESTINATION ${INSTALL_SUBPATH}/QuickGraphLib)
88
86
 
89
87
  add_subdirectory(PreFabs)
90
88
  add_subdirectory(GraphItems)
91
- add_subdirectory(bindings)
89
+
90
+ if(ENABLE_PYTHON)
91
+ set(QGL_PYTHON_FILES
92
+ __init__.py
93
+ consts.py
94
+ contours.py
95
+ py.typed
96
+ _version.py
97
+ )
98
+ foreach(PYTHON_FILE ${QGL_PYTHON_FILES})
99
+ add_custom_command(
100
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${PYTHON_FILE}
101
+ COMMAND
102
+ ${CMAKE_COMMAND} -E copy
103
+ ${CMAKE_CURRENT_SOURCE_DIR}/${PYTHON_FILE}
104
+ ${CMAKE_CURRENT_BINARY_DIR}/${PYTHON_FILE}
105
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${PYTHON_FILE}
106
+ )
107
+ endforeach()
108
+ list(TRANSFORM QGL_PYTHON_FILES PREPEND "${CMAKE_CURRENT_BINARY_DIR}/")
109
+ add_custom_target(QuickGraphLibPythonFiles ALL DEPENDS ${QGL_PYTHON_FILES})
110
+
111
+ install(
112
+ FILES ${QGL_PYTHON_FILES}
113
+ DESTINATION ${INSTALL_SUBPATH}/QuickGraphLib
114
+ )
115
+
116
+ add_subdirectory(bindings)
117
+ endif()
@@ -482,7 +482,7 @@ void ImageView::updatePolish() {
482
482
  }
483
483
 
484
484
  setImplicitSize(_coloredImage.width(), _coloredImage.height());
485
- if (_sourceSize != _coloredImage.size()) {
485
+ if (!_coloredImage.isNull() && _sourceSize != _coloredImage.size()) {
486
486
  _sourceSize = _coloredImage.size();
487
487
  emit sourceSizeChanged();
488
488
  }
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '0.1.0a15'
32
- __version_tuple__ = version_tuple = (0, 1, 0, 'a15')
31
+ __version__ = version = '0.1.0a17'
32
+ __version_tuple__ = version_tuple = (0, 1, 0, 'a17')
33
33
 
34
- __commit_id__ = commit_id = 'g26c4cf9a2'
34
+ __commit_id__ = commit_id = 'g5ab61e44b'
@@ -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
 
@@ -264,6 +267,31 @@ void exportShapePathToPainter(QObject* shapePath, QPainter* painter) {
264
267
  painter->restore();
265
268
  }
266
269
 
270
+ QRectF alignSizeInsideRect(QRectF area, QSizeF size, Qt::Alignment alignment) {
271
+ qreal x;
272
+ if (alignment & Qt::AlignLeft) {
273
+ x = 0;
274
+ }
275
+ else if (alignment & Qt::AlignRight) {
276
+ x = area.width() - size.width();
277
+ }
278
+ else {
279
+ x = (area.width() - size.width()) / 2;
280
+ }
281
+
282
+ qreal y;
283
+ if (alignment & Qt::AlignTop) {
284
+ y = 0;
285
+ }
286
+ else if (alignment & Qt::AlignBottom) {
287
+ y = area.height() - size.height();
288
+ }
289
+ else {
290
+ y = (area.height() - size.height()) / 2;
291
+ }
292
+ return QRectF(QPointF(x, y), size);
293
+ }
294
+
267
295
  void exportItemToPainter(QQuickItem* item, QPainter* painter) {
268
296
  if (!item->isVisible()) {
269
297
  return;
@@ -313,7 +341,8 @@ void exportItemToPainter(QQuickItem* item, QPainter* painter) {
313
341
  if (item->inherits("QQuickText")) {
314
342
  painter->save();
315
343
  painter->setFont(item->property("font").value<QFont>());
316
- painter->setPen(item->property("color").value<QColor>());
344
+ auto color = item->property("color").value<QColor>();
345
+ painter->setPen(color);
317
346
  auto textFormat = static_cast<Qt::TextFormat>(item->property("textFormat").toInt());
318
347
  auto text = item->property("text").toString();
319
348
  auto alignment = static_cast<Qt::AlignmentFlag>(
@@ -340,7 +369,9 @@ void exportItemToPainter(QQuickItem* item, QPainter* painter) {
340
369
  option.setAlignment(alignment);
341
370
  doc.setDefaultTextOption(option);
342
371
  doc.setDefaultFont(painter->font());
343
- doc.drawContents(painter, rect);
372
+ QAbstractTextDocumentLayout::PaintContext ctx{};
373
+ ctx.palette.setColor(QPalette::Text, color);
374
+ doc.documentLayout()->draw(painter, ctx);
344
375
  }
345
376
  painter->restore();
346
377
  }
@@ -385,6 +416,95 @@ void exportItemToPainter(QQuickItem* item, QPainter* painter) {
385
416
  painter->drawImage(imageView->paintedRect(), imageView->image().flipped(flippedFlags));
386
417
  }
387
418
 
419
+ else if (item->inherits("QQuickImage")) {
420
+ if (item->property("smooth").toBool()) {
421
+ painter->setRenderHint(QPainter::RenderHint::SmoothPixmapTransform, true);
422
+ }
423
+ auto flippedFlags = Qt::Orientations();
424
+ flippedFlags.setFlag(Qt::Horizontal, item->property("mirror").toBool());
425
+ flippedFlags.setFlag(Qt::Vertical, item->property("mirrorVertically").toBool());
426
+ auto source = item->property("source").toString();
427
+ auto ctx = qmlContext(item);
428
+ if (ctx) {
429
+ auto url = ctx->resolvedUrl(source);
430
+ source = url.scheme() == "file" ? url.toLocalFile() : url.toString();
431
+ }
432
+ auto image = QImage(source);
433
+ if (image.isNull()) {
434
+ qWarning() << __func__ << "Could not load" << source;
435
+ }
436
+ auto sourceClipRect = item->property("sourceClipRect").toRectF();
437
+ if (!sourceClipRect.isValid()) {
438
+ sourceClipRect = QRectF(0, 0, image.width(), image.height());
439
+ }
440
+ auto alignment = static_cast<Qt::Alignment>(
441
+ item->property("horizontalAlignment").toUInt() | item->property("verticalAlignment").toUInt()
442
+ );
443
+ auto sourceSize = item->property("sourceSize").toSizeF();
444
+ if (sourceSize.isNull()) {
445
+ sourceSize = sourceClipRect.size();
446
+ }
447
+ else {
448
+ sourceSize = sourceClipRect.size().scaled(sourceSize, Qt::KeepAspectRatio);
449
+ }
450
+ switch (item->property("fillMode").toInt()) {
451
+ case 0: // QQuickImage::FillMode::Stretch
452
+ break; // Don't need to do anything
453
+ case 1: // QQuickImage::FillMode::PreserveAspectFit
454
+ rect = alignSizeInsideRect(
455
+ rect, sourceClipRect.size().scaled(rect.size(), Qt::KeepAspectRatio), alignment
456
+ );
457
+ break;
458
+ case 2: // QQuickImage::FillMode::PreserveAspectCrop
459
+ sourceClipRect = alignSizeInsideRect(
460
+ sourceClipRect, rect.size().scaled(sourceClipRect.size(), Qt::KeepAspectRatio), alignment
461
+ );
462
+ break;
463
+ case 3: // QQuickImage::FillMode::Tile
464
+ case 4: // QQuickImage::FillMode::TileVertically
465
+ case 5: // QQuickImage::FillMode::TileHorizontally
466
+ qWarning() << __func__ << "Unsupported fillMode for QQuickImage";
467
+ break;
468
+ case 6: // QQuickImage::FillMode::Pad
469
+ rect = alignSizeInsideRect(rect, sourceSize, alignment);
470
+ break;
471
+ }
472
+ painter->drawImage(rect, image.flipped(flippedFlags), sourceClipRect);
473
+ }
474
+
475
+ else if (item->inherits("QQuickVectorImage")) {
476
+ auto source = item->property("source").toString();
477
+ auto ctx = qmlContext(item);
478
+ if (ctx) {
479
+ auto url = ctx->resolvedUrl(source);
480
+ source = url.scheme() == "file" ? url.toLocalFile() : url.toString();
481
+ }
482
+ QSvgRenderer renderer(source);
483
+ if (!renderer.isValid()) {
484
+ qWarning() << __func__ << "Could not load" << source;
485
+ }
486
+ switch (item->property("fillMode").toInt()) {
487
+ case 0: // QQuickVectorImage::FillMode::NoResize
488
+ rect = renderer.viewBoxF();
489
+ break;
490
+ case 1: // QQuickVectorImage::FillMode::PreserveAspectFit
491
+ rect = alignSizeInsideRect(
492
+ rect, renderer.viewBoxF().size().scaled(rect.size(), Qt::KeepAspectRatio),
493
+ Qt::AlignLeft | Qt::AlignTop
494
+ );
495
+ break;
496
+ case 2: // QQuickVectorImage::FillMode::PreserveAspectCrop
497
+ rect = alignSizeInsideRect(
498
+ rect, renderer.viewBoxF().size().scaled(rect.size(), Qt::KeepAspectRatioByExpanding),
499
+ Qt::AlignLeft | Qt::AlignTop
500
+ );
501
+ break;
502
+ case 3: // QQuickVectorImage::FillMode::Stretch
503
+ break; // Don't need to do anything
504
+ }
505
+ renderer.render(painter, rect);
506
+ }
507
+
388
508
  for (auto c : children) {
389
509
  if (c->z() >= 0) {
390
510
  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])
@@ -4,7 +4,7 @@
4
4
  /*!
5
5
  \title Log graph
6
6
  \ingroup quickgraphlibdemos
7
- \brief A tan graph with a logarithmic axis
7
+ \brief A tan graph with a logarithmic axis.
8
8
  \example loggraph
9
9
 
10
10
  \image examples/LogGraph.png
@@ -69,10 +69,11 @@ build = [
69
69
  before-all = "python ci/setup_qt.py"
70
70
  repair-wheel-command = ""
71
71
  build-frontend = "build"
72
- test-command = "pytest -sv {project}/tests --import-mode=append"
72
+ test-command = "python {project}/ci/fixup_qt.py && pytest -sv {project}/tests --import-mode=append"
73
73
  test-extras = ["analyse"]
74
74
 
75
75
  [tool.cibuildwheel.environment]
76
+ QT_PATH = "\"$(python ci/find_qt.py)\""
76
77
  SKBUILD_CMAKE_DEFINE = "CMAKE_PREFIX_PATH=\"$(python ci/find_qt.py)/lib/cmake\""
77
78
 
78
79
  [tool.cibuildwheel.macos]
@@ -4,7 +4,7 @@ colorama==0.4.6
4
4
  contourpy==1.3.3
5
5
  coverage==7.12.0
6
6
  distlib==0.4.0
7
- filelock==3.20.1
7
+ filelock==3.20.3
8
8
  gersemi==0.23.1
9
9
  identify==2.6.15
10
10
  iniconfig==2.3.0
@@ -33,4 +33,4 @@ setuptools-scm==9.2.2
33
33
  shiboken6==6.10.0
34
34
  shiboken6_generator==6.10.0
35
35
  typing_extensions==4.15.0
36
- virtualenv==20.35.4
36
+ virtualenv==20.36.1
@@ -0,0 +1,63 @@
1
+ pragma ComponentBehavior: Bound
2
+ // SPDX-FileCopyrightText: Copyright (c) 2024 Refeyn Ltd and other QuickGraphLib contributors
3
+ // SPDX-License-Identifier: MIT
4
+ // Tests for exporting Image items
5
+
6
+ import QtQuick
7
+ import QtQuick.Layouts as QQL
8
+
9
+ QQL.GridLayout {
10
+ id: root
11
+
12
+ property url source: "500px-Kittyply_edit1.jpg"
13
+
14
+ columnSpacing: 10
15
+ columns: 3
16
+ rowSpacing: 10
17
+ uniformCellHeights: true
18
+ uniformCellWidths: true
19
+
20
+ Image {
21
+ QQL.Layout.fillHeight: true
22
+ QQL.Layout.fillWidth: true
23
+ fillMode: Image.Stretch
24
+ source: root.source
25
+ }
26
+ Image {
27
+ QQL.Layout.fillHeight: true
28
+ QQL.Layout.fillWidth: true
29
+ fillMode: Image.PreserveAspectFit
30
+ source: root.source
31
+ }
32
+ Image {
33
+ QQL.Layout.fillHeight: true
34
+ QQL.Layout.fillWidth: true
35
+ fillMode: Image.PreserveAspectCrop
36
+ source: root.source
37
+ }
38
+ Image {
39
+ QQL.Layout.fillHeight: true
40
+ QQL.Layout.fillWidth: true
41
+ fillMode: Image.Pad
42
+ source: root.source
43
+ sourceSize: Qt.size(100, 100)
44
+ }
45
+ Image {
46
+ QQL.Layout.fillHeight: true
47
+ QQL.Layout.fillWidth: true
48
+ fillMode: Image.Pad
49
+ horizontalAlignment: Image.AlignLeft
50
+ source: root.source
51
+ sourceSize: Qt.size(100, 100)
52
+ verticalAlignment: Image.AlignTop
53
+ }
54
+ Image {
55
+ QQL.Layout.fillHeight: true
56
+ QQL.Layout.fillWidth: true
57
+ fillMode: Image.Pad
58
+ horizontalAlignment: Image.AlignRight
59
+ source: root.source
60
+ sourceSize: Qt.size(100, 100)
61
+ verticalAlignment: Image.AlignBottom
62
+ }
63
+ }
@@ -0,0 +1,56 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="100%" viewBox="0 0 300 300">
2
+
3
+ <title>SVG Logo</title>
4
+ <desc>Designed for the SVG Logo Contest in 2006 by Harvey Rayner, and adopted by W3C in 2009. It is available under the Creative Commons license for those who have an SVG product or who are using SVG on their site.</desc>
5
+
6
+ <metadata id="license">
7
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://web.resource.org/cc/">
8
+ <cc:Work rdf:about="">
9
+ <dc:title>SVG Logo</dc:title>
10
+ <dc:date>14-08-2009</dc:date>
11
+ <dc:creator>
12
+ <cc:Agent><dc:title>W3C</dc:title></cc:Agent>
13
+ <cc:Agent><dc:title>Harvey Rayner, designer</dc:title></cc:Agent>
14
+ </dc:creator>
15
+ <dc:description>See document description</dc:description>
16
+ <cc:license rdf:resource="http://creativecommons.org/licenses/by-nc-sa/2.5/"/>
17
+ <dc:format>image/svg+xml</dc:format>
18
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
19
+ </cc:Work>
20
+ <cc:License rdf:about="http://creativecommons.org/licenses/by-nc-sa/2.5/">
21
+ <cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
22
+ <cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/>
23
+ <cc:requires rdf:resource="http://web.resource.org/cc/Notice"/>
24
+ <cc:requires rdf:resource="http://web.resource.org/cc/Attribution"/>
25
+ <cc:prohibits rdf:resource="http://web.resource.org/cc/CommercialUse"/>
26
+ <cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
27
+ <cc:requires rdf:resource="http://web.resource.org/cc/ShareAlike"/>
28
+ </cc:License>
29
+ </rdf:RDF>
30
+ </metadata>
31
+
32
+
33
+ <defs>
34
+ <g id="SVG" fill="#ffffff" transform="scale(2) translate(20,79)">
35
+ <path id="S" d="M 5.482,31.319 C2.163,28.001 0.109,23.419 0.109,18.358 C0.109,8.232 8.322,0.024 18.443,0.024 C28.569,0.024 36.782,8.232 36.782,18.358 L26.042,18.358 C26.042,14.164 22.638,10.765 18.443,10.765 C14.249,10.765 10.850,14.164 10.850,18.358 C10.850,20.453 11.701,22.351 13.070,23.721 L13.075,23.721 C14.450,25.101 15.595,25.500 18.443,25.952 L18.443,25.952 C23.509,26.479 28.091,28.006 31.409,31.324 L31.409,31.324 C34.728,34.643 36.782,39.225 36.782,44.286 C36.782,54.412 28.569,62.625 18.443,62.625 C8.322,62.625 0.109,54.412 0.109,44.286 L10.850,44.286 C10.850,48.480 14.249,51.884 18.443,51.884 C22.638,51.884 26.042,48.480 26.042,44.286 C26.042,42.191 25.191,40.298 23.821,38.923 L23.816,38.923 C22.441,37.548 20.468,37.074 18.443,36.697 L18.443,36.692 C13.533,35.939 8.800,34.638 5.482,31.319 L5.482,31.319 L5.482,31.319 Z"/>
36
+
37
+ <path id="V" d="M 73.452,0.024 L60.482,62.625 L49.742,62.625 L36.782,0.024 L47.522,0.024 L55.122,36.687 L62.712,0.024 L73.452,0.024 Z"/>
38
+
39
+ <path id="G" d="M 91.792,25.952 L110.126,25.952 L110.126,44.286 L110.131,44.286 C110.131,54.413 101.918,62.626 91.792,62.626 C81.665,62.626 73.458,54.413 73.458,44.286 L73.458,44.286 L73.458,18.359 L73.453,18.359 C73.453,8.233 81.665,0.025 91.792,0.025 C101.913,0.025 110.126,8.233 110.126,18.359 L99.385,18.359 C99.385,14.169 95.981,10.765 91.792,10.765 C87.597,10.765 84.198,14.169 84.198,18.359 L84.198,44.286 L84.198,44.286 C84.198,48.481 87.597,51.880 91.792,51.880 C95.981,51.880 99.380,48.481 99.385,44.291 L99.385,44.286 L99.385,36.698 L91.792,36.698 L91.792,25.952 L91.792,25.952 Z"/>
40
+ </g>
41
+ </defs>
42
+
43
+ <path id="base" fill="#000" d="M8.5,150 H291.5 V250 C291.5,273.5 273.5,291.5 250,291.5 H50 C26.5,291.5 8.5,273.5 8.5,250 Z"/>
44
+ <g stroke-width="38.0086" stroke="#000">
45
+ <g id="svgstar" transform="translate(150, 150)">
46
+ <path id="svgbar" fill="#ffb13b" d="M-84.1487,-15.8513 a22.4171,22.4171 0 1 0 0,31.7026 h168.2974 a22.4171,22.4171 0 1 0 0,-31.7026 Z"/>
47
+ <use xlink:href="#svgbar" transform="rotate(45)"/>
48
+ <use xlink:href="#svgbar" transform="rotate(90)"/>
49
+ <use xlink:href="#svgbar" transform="rotate(135)"/>
50
+ </g>
51
+ </g>
52
+ <use xlink:href="#svgstar"/>
53
+ <use xlink:href="#base" opacity="0.85"/>
54
+ <use xlink:href="#SVG"/>
55
+
56
+ </svg>
@@ -0,0 +1,49 @@
1
+ pragma ComponentBehavior: Bound
2
+ // SPDX-FileCopyrightText: Copyright (c) 2024 Refeyn Ltd and other QuickGraphLib contributors
3
+ // SPDX-License-Identifier: MIT
4
+ // Tests for exporting Image items
5
+
6
+ import QtQuick
7
+ import QtQuick.Layouts as QQL
8
+ import QtQuick.VectorImage as QQV
9
+
10
+ Item {
11
+ QQL.GridLayout {
12
+ id: root
13
+
14
+ property url source: "SVG_Logo.svg"
15
+
16
+ anchors.fill: parent
17
+ anchors.margins: 100
18
+ columnSpacing: 10
19
+ columns: 2
20
+ rowSpacing: 10
21
+ uniformCellHeights: true
22
+ uniformCellWidths: true
23
+
24
+ QQV.VectorImage {
25
+ QQL.Layout.fillHeight: true
26
+ QQL.Layout.fillWidth: true
27
+ fillMode: QQV.VectorImage.NoResize
28
+ source: root.source
29
+ }
30
+ QQV.VectorImage {
31
+ QQL.Layout.fillHeight: true
32
+ QQL.Layout.fillWidth: true
33
+ fillMode: QQV.VectorImage.Stretch
34
+ source: root.source
35
+ }
36
+ QQV.VectorImage {
37
+ QQL.Layout.fillHeight: true
38
+ QQL.Layout.fillWidth: true
39
+ fillMode: QQV.VectorImage.PreserveAspectFit
40
+ source: root.source
41
+ }
42
+ QQV.VectorImage {
43
+ QQL.Layout.fillHeight: true
44
+ QQL.Layout.fillWidth: true
45
+ fillMode: QQV.VectorImage.PreserveAspectCrop
46
+ source: root.source
47
+ }
48
+ }
49
+ }
@@ -125,7 +125,7 @@ font-family="DejaVuSans" font-size="14.6667" font-weight="400" font-style="norma
125
125
  <g clip-path="url(#clipPath1)"><g fill="#000000" fill-opacity="0" stroke="#008000" stroke-opacity="1" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" transform="matrix(1,0,0,1,64,15)"
126
126
  font-family="DejaVuSans" font-size="14.6667" font-weight="400" font-style="normal"
127
127
  >
128
- <path vector-effect="none" fill-rule="evenodd" d="M0,203.25 L240.333,29.0357 L471.423,271 L480.667,325.2 L587.481,542 M480.667,0 L560.778,271 L721,348.429"/>
128
+ <path vector-effect="none" fill-rule="evenodd" d="M587.481,542 L480.667,325.2 L471.423,271 L240.333,29.0357 L0,203.25 M480.667,0 L560.778,271 L721,348.429"/>
129
129
  </g>
130
130
  </g>
131
131