AboutDialog.qml 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. // Copyright (c) 2018 Ultimaker B.V.
  2. // Cura is released under the terms of the LGPLv3 or higher.
  3. import QtQuick 2.2
  4. import QtQuick.Controls 1.1
  5. import QtQuick.Window 2.1
  6. import UM 1.1 as UM
  7. UM.Dialog
  8. {
  9. id: base
  10. //: About dialog title
  11. title: catalog.i18nc("@title:window","About Cura")
  12. minimumWidth: 500 * screenScaleFactor
  13. minimumHeight: 650 * screenScaleFactor
  14. width: minimumWidth
  15. height: minimumHeight
  16. Rectangle
  17. {
  18. id: header
  19. width: parent.width + 2 * margin // margin from Dialog.qml
  20. height: childrenRect.height + topPadding
  21. anchors.top: parent.top
  22. anchors.topMargin: -margin
  23. anchors.horizontalCenter: parent.horizontalCenter
  24. property real topPadding: UM.Theme.getSize("wide_margin").height
  25. color: UM.Theme.getColor("main_window_header_background")
  26. Image
  27. {
  28. id: logo
  29. width: (base.minimumWidth * 0.85) | 0
  30. height: (width * (UM.Theme.getSize("logo").height / UM.Theme.getSize("logo").width)) | 0
  31. source: UM.Theme.getImage("logo")
  32. sourceSize.width: width
  33. sourceSize.height: height
  34. anchors.top: parent.top
  35. anchors.topMargin: parent.topPadding
  36. anchors.horizontalCenter: parent.horizontalCenter
  37. UM.I18nCatalog{id: catalog; name: "cura"}
  38. }
  39. Label
  40. {
  41. id: version
  42. text: catalog.i18nc("@label","version: %1").arg(UM.Application.version)
  43. font: UM.Theme.getFont("large_bold")
  44. color: UM.Theme.getColor("button_text")
  45. anchors.right : logo.right
  46. anchors.top: logo.bottom
  47. anchors.topMargin: (UM.Theme.getSize("default_margin").height / 2) | 0
  48. }
  49. }
  50. Label
  51. {
  52. id: description
  53. width: parent.width
  54. //: About dialog application description
  55. text: catalog.i18nc("@label","End-to-end solution for fused filament 3D printing.")
  56. font: UM.Theme.getFont("system")
  57. wrapMode: Text.WordWrap
  58. anchors.top: header.bottom
  59. anchors.topMargin: UM.Theme.getSize("default_margin").height
  60. }
  61. Label
  62. {
  63. id: creditsNotes
  64. width: parent.width
  65. //: About dialog application author note
  66. text: catalog.i18nc("@info:credit","Cura is developed by Ultimaker B.V. in cooperation with the community.\nCura proudly uses the following open source projects:")
  67. font: UM.Theme.getFont("system")
  68. wrapMode: Text.WordWrap
  69. anchors.top: description.bottom
  70. anchors.topMargin: UM.Theme.getSize("default_margin").height
  71. }
  72. ScrollView
  73. {
  74. id: credits
  75. anchors.top: creditsNotes.bottom
  76. anchors.topMargin: UM.Theme.getSize("default_margin").height
  77. width: parent.width
  78. height: base.height - y - (2 * UM.Theme.getSize("default_margin").height + closeButton.height)
  79. ListView
  80. {
  81. id: projectsList
  82. width: parent.width
  83. delegate: Row
  84. {
  85. Label
  86. {
  87. text: "<a href='%1' title='%2'>%2</a>".arg(model.url).arg(model.name)
  88. width: (projectsList.width * 0.25) | 0
  89. elide: Text.ElideRight
  90. onLinkActivated: Qt.openUrlExternally(link)
  91. }
  92. Label
  93. {
  94. text: model.description
  95. elide: Text.ElideRight
  96. width: (projectsList.width * 0.6) | 0
  97. }
  98. Label
  99. {
  100. text: model.license
  101. elide: Text.ElideRight
  102. width: (projectsList.width * 0.15) | 0
  103. }
  104. }
  105. model: ListModel
  106. {
  107. id: projectsModel
  108. }
  109. Component.onCompleted:
  110. {
  111. projectsModel.append({ name: "Cura", description: catalog.i18nc("@label", "Graphical user interface"), license: "LGPLv3", url: "https://github.com/Ultimaker/Cura" });
  112. projectsModel.append({ name: "Uranium", description: catalog.i18nc("@label", "Application framework"), license: "LGPLv3", url: "https://github.com/Ultimaker/Uranium" });
  113. projectsModel.append({ name: "CuraEngine", description: catalog.i18nc("@label", "G-code generator"), license: "AGPLv3", url: "https://github.com/Ultimaker/CuraEngine" });
  114. projectsModel.append({ name: "libArcus", description: catalog.i18nc("@label", "Interprocess communication library"), license: "LGPLv3", url: "https://github.com/Ultimaker/libArcus" });
  115. projectsModel.append({ name: "Python", description: catalog.i18nc("@label", "Programming language"), license: "Python", url: "http://python.org/" });
  116. projectsModel.append({ name: "Qt5", description: catalog.i18nc("@label", "GUI framework"), license: "LGPLv3", url: "https://www.qt.io/" });
  117. projectsModel.append({ name: "PyQt", description: catalog.i18nc("@label", "GUI framework bindings"), license: "GPL", url: "https://riverbankcomputing.com/software/pyqt" });
  118. projectsModel.append({ name: "SIP", description: catalog.i18nc("@label", "C/C++ Binding library"), license: "GPL", url: "https://riverbankcomputing.com/software/sip" });
  119. projectsModel.append({ name: "Protobuf", description: catalog.i18nc("@label", "Data interchange format"), license: "BSD", url: "https://developers.google.com/protocol-buffers" });
  120. projectsModel.append({ name: "SciPy", description: catalog.i18nc("@label", "Support library for scientific computing"), license: "BSD-new", url: "https://www.scipy.org/" });
  121. projectsModel.append({ name: "NumPy", description: catalog.i18nc("@label", "Support library for faster math"), license: "BSD", url: "http://www.numpy.org/" });
  122. projectsModel.append({ name: "NumPy-STL", description: catalog.i18nc("@label", "Support library for handling STL files"), license: "BSD", url: "https://github.com/WoLpH/numpy-stl" });
  123. projectsModel.append({ name: "Shapely", description: catalog.i18nc("@label", "Support library for handling planar objects"), license: "BSD", url: "https://github.com/Toblerity/Shapely" });
  124. projectsModel.append({ name: "Trimesh", description: catalog.i18nc("@label", "Support library for handling triangular meshes"), license: "MIT", url: "https://trimsh.org" });
  125. projectsModel.append({ name: "NetworkX", description: catalog.i18nc("@label", "Support library for analysis of complex networks"), license: "3-clause BSD", url: "https://networkx.github.io/" });
  126. projectsModel.append({ name: "libSavitar", description: catalog.i18nc("@label", "Support library for handling 3MF files"), license: "LGPLv3", url: "https://github.com/ultimaker/libsavitar" });
  127. projectsModel.append({ name: "libCharon", description: catalog.i18nc("@label", "Support library for file metadata and streaming"), license: "LGPLv3", url: "https://github.com/ultimaker/libcharon" });
  128. projectsModel.append({ name: "PySerial", description: catalog.i18nc("@label", "Serial communication library"), license: "Python", url: "http://pyserial.sourceforge.net/" });
  129. projectsModel.append({ name: "python-zeroconf", description: catalog.i18nc("@label", "ZeroConf discovery library"), license: "LGPL", url: "https://github.com/jstasiak/python-zeroconf" });
  130. projectsModel.append({ name: "Clipper", description: catalog.i18nc("@label", "Polygon clipping library"), license: "Boost", url: "http://www.angusj.com/delphi/clipper.php" });
  131. projectsModel.append({ name: "Requests", description: catalog.i18nc("@Label", "Python HTTP library"), license: "GPL", url: "http://docs.python-requests.org" });
  132. projectsModel.append({ name: "Noto Sans", description: catalog.i18nc("@label", "Font"), license: "Apache 2.0", url: "https://www.google.com/get/noto/" });
  133. projectsModel.append({ name: "Font-Awesome-SVG-PNG", description: catalog.i18nc("@label", "SVG icons"), license: "SIL OFL 1.1", url: "https://github.com/encharm/Font-Awesome-SVG-PNG" });
  134. projectsModel.append({ name: "AppImageKit", description: catalog.i18nc("@label", "Linux cross-distribution application deployment"), license: "MIT", url: "https://github.com/AppImage/AppImageKit" });
  135. }
  136. }
  137. }
  138. rightButtons: Button
  139. {
  140. //: Close about dialog button
  141. id: closeButton
  142. text: catalog.i18nc("@action:button","Close");
  143. onClicked: base.visible = false;
  144. }
  145. }