AboutDialog.qml 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. // Copyright (c) 2015 Ultimaker B.V.
  2. // Cura is released under the terms of the AGPLv3 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: 450 * Screen.devicePixelRatio
  13. minimumHeight: 550 * Screen.devicePixelRatio
  14. width: minimumWidth
  15. height: minimumHeight
  16. Image
  17. {
  18. id: logo
  19. width: base.minimumWidth * 0.85
  20. height: width * (1/4.25)
  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
  26. anchors.horizontalCenter: parent.horizontalCenter
  27. UM.I18nCatalog{id: catalog; name:"cura"}
  28. }
  29. Label
  30. {
  31. id: version
  32. text: "Cura %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
  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. ListView
  61. {
  62. id: projectsList
  63. anchors.top: creditsNotes.bottom
  64. anchors.topMargin: 10
  65. width: parent.width
  66. height: childrenRect.height
  67. delegate: Row
  68. {
  69. Label
  70. {
  71. text: "<a href='%1' title='%2'>%2</a>".arg(model.url).arg(model.name)
  72. width: projectsList.width * 0.25
  73. elide: Text.ElideRight
  74. onLinkActivated: Qt.openUrlExternally(link)
  75. }
  76. Label
  77. {
  78. text: model.description
  79. elide: Text.ElideRight
  80. width: projectsList.width * 0.6
  81. }
  82. Label
  83. {
  84. text: model.license
  85. elide: Text.ElideRight
  86. width: projectsList.width * 0.15
  87. }
  88. }
  89. model: ListModel
  90. {
  91. id: projectsModel
  92. }
  93. Component.onCompleted:
  94. {
  95. projectsModel.append({ name:"Cura", description: catalog.i18nc("@label", "Graphical user interface"), license: "AGPLv3", url: "https://github.com/Ultimaker/Cura" });
  96. projectsModel.append({ name:"Uranium", description: catalog.i18nc("@label", "Application framework"), license: "AGPLv3", url: "https://github.com/Ultimaker/Uranium" });
  97. projectsModel.append({ name:"CuraEngine", description: catalog.i18nc("@label", "GCode generator"), license: "AGPLv3", url: "https://github.com/Ultimaker/CuraEngine" });
  98. projectsModel.append({ name:"libArcus", description: catalog.i18nc("@label", "Interprocess communication library"), license: "AGPLv3", url: "https://github.com/Ultimaker/libArcus" });
  99. projectsModel.append({ name:"Python", description: catalog.i18nc("@label", "Programming language"), license: "Python", url: "http://python.org/" });
  100. projectsModel.append({ name:"Qt5", description: catalog.i18nc("@label", "GUI framework"), license: "LGPLv3", url: "https://www.qt.io/" });
  101. projectsModel.append({ name:"PyQt", description: catalog.i18nc("@label", "GUI framework bindings"), license: "GPL", url: "https://riverbankcomputing.com/software/pyqt" });
  102. projectsModel.append({ name:"SIP", description: catalog.i18nc("@label", "C/C++ Binding library"), license: "GPL", url: "https://riverbankcomputing.com/software/sip" });
  103. projectsModel.append({ name:"Protobuf", description: catalog.i18nc("@label", "Data interchange format"), license: "BSD", url: "https://developers.google.com/protocol-buffers" });
  104. projectsModel.append({ name:"SciPy", description: catalog.i18nc("@label", "Support library for scientific computing "), license: "BSD-new", url: "https://www.scipy.org/" });
  105. projectsModel.append({ name:"NumPy", description: catalog.i18nc("@label", "Support library for faster math"), license: "BSD", url: "http://www.numpy.org/" });
  106. projectsModel.append({ name:"NumPy-STL", description: catalog.i18nc("@label", "Support library for handling STL files"), license: "BSD", url: "https://github.com/WoLpH/numpy-stl" });
  107. projectsModel.append({ name:"PySerial", description: catalog.i18nc("@label", "Serial communication library"), license: "Python", url: "http://pyserial.sourceforge.net/" });
  108. projectsModel.append({ name:"python-zeroconf", description: catalog.i18nc("@label", "ZeroConf discovery library"), license: "LGPL", url: "https://github.com/jstasiak/python-zeroconf" });
  109. projectsModel.append({ name:"Clipper", description: catalog.i18nc("@label", "Polygon clipping library"), license: "Boost", url: "http://www.angusj.com/delphi/clipper.php" });
  110. projectsModel.append({ name:"Open Sans", description: catalog.i18nc("@label", "Font"), license: "Apache 2.0", url: "https://fonts.google.com/specimen/Open+Sans" });
  111. 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" });
  112. }
  113. }
  114. rightButtons: Button
  115. {
  116. //: Close about dialog button
  117. text: catalog.i18nc("@action:button","Close");
  118. onClicked: base.visible = false;
  119. }
  120. }