FileDialogDelegate.qml 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. /****************************************************************************
  2. **
  3. ** Copyright (C) 2021 The Qt Company Ltd.
  4. ** Contact: http://www.qt.io/licensing/
  5. **
  6. ** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
  7. **
  8. ** $QT_BEGIN_LICENSE:LGPL3$
  9. ** Commercial License Usage
  10. ** Licensees holding valid commercial Qt licenses may use this file in
  11. ** accordance with the commercial license agreement provided with the
  12. ** Software or, alternatively, in accordance with the terms contained in
  13. ** a written agreement between you and The Qt Company. For licensing terms
  14. ** and conditions see http://www.qt.io/terms-conditions. For further
  15. ** information use the contact form at http://www.qt.io/contact-us.
  16. **
  17. ** GNU Lesser General Public License Usage
  18. ** Alternatively, this file may be used under the terms of the GNU Lesser
  19. ** General Public License version 3 as published by the Free Software
  20. ** Foundation and appearing in the file LICENSE.LGPLv3 included in the
  21. ** packaging of this file. Please review the following information to
  22. ** ensure the GNU Lesser General Public License version 3 requirements
  23. ** will be met: https://www.gnu.org/licenses/lgpl.html.
  24. **
  25. ** GNU General Public License Usage
  26. ** Alternatively, this file may be used under the terms of the GNU
  27. ** General Public License version 2.0 or later as published by the Free
  28. ** Software Foundation and appearing in the file LICENSE.GPL included in
  29. ** the packaging of this file. Please review the following information to
  30. ** ensure the GNU General Public License version 2.0 requirements will be
  31. ** met: http://www.gnu.org/licenses/gpl-2.0.html.
  32. **
  33. ** $QT_END_LICENSE$
  34. **
  35. ****************************************************************************/
  36. import QtQuick
  37. import QtQuick.Controls
  38. import QtQuick.Controls.impl as ControlsImpl
  39. import QtQuick.Controls.Fusion
  40. import QtQuick.Controls.Fusion.impl
  41. import QtQuick.Dialogs.quickimpl as DialogsQuickImpl
  42. DialogsQuickImpl.FileDialogDelegate {
  43. id: control
  44. implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
  45. implicitContentWidth + leftPadding + rightPadding)
  46. implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
  47. implicitContentHeight + topPadding + bottomPadding,
  48. implicitIndicatorHeight + topPadding + bottomPadding)
  49. padding: 6
  50. spacing: 6
  51. file: fileUrl
  52. icon.width: 16
  53. icon.height: 16
  54. icon.color: highlighted ? palette.highlightedText : palette.text
  55. icon.source: "qrc:/qt-project.org/imports/QtQuick/Dialogs/quickimpl/images/"
  56. + (fileIsDir ? "folder" : "file") + "-icon-round.png"
  57. // We don't use index here, but in C++. Since we're using required
  58. // properties, the index context property will not be injected, so we can't
  59. // use its QQmlContext to access it.
  60. required property int index
  61. required property string fileName
  62. required property url fileUrl
  63. required property int fileSize
  64. required property date fileModified
  65. required property bool fileIsDir
  66. required property int fileDetailRowWidth
  67. contentItem: FileDialogDelegateLabel {
  68. delegate: control
  69. fileDetailRowTextColor: control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text
  70. fileDetailRowWidth: control.fileDetailRowWidth
  71. }
  72. background: Rectangle {
  73. implicitWidth: 100
  74. implicitHeight: 20
  75. color: control.down ? Fusion.buttonColor(control.palette, false, true, true)
  76. : control.highlighted ? Fusion.highlight(control.palette) : control.palette.base
  77. }
  78. }