AboutDialog.qml 7.1 KB

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