AboutDialog.qml 8.3 KB

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