FileDialogDelegate.qml 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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.impl
  38. import QtQuick.Controls.Material
  39. import QtQuick.Controls.Material.impl
  40. import QtQuick.Dialogs.quickimpl as DialogsQuickImpl
  41. DialogsQuickImpl.FileDialogDelegate {
  42. id: control
  43. implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
  44. implicitContentWidth + leftPadding + rightPadding)
  45. implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
  46. implicitContentHeight + topPadding + bottomPadding,
  47. implicitIndicatorHeight + topPadding + bottomPadding)
  48. padding: 16
  49. verticalPadding: 8
  50. spacing: 16
  51. icon.width: 16
  52. icon.height: 16
  53. icon.color: enabled ? Material.foreground : Material.hintTextColor
  54. icon.source: "qrc:/qt-project.org/imports/QtQuick/Dialogs/quickimpl/images/"
  55. + (fileIsDir ? "folder" : "file") + "-icon-square.png"
  56. file: fileUrl
  57. required property int index
  58. required property string fileName
  59. required property url fileUrl
  60. required property int fileSize
  61. required property date fileModified
  62. required property bool fileIsDir
  63. required property int fileDetailRowWidth
  64. contentItem: FileDialogDelegateLabel {
  65. delegate: control
  66. fileDetailRowTextColor: control.Material.hintTextColor
  67. fileDetailRowWidth: control.fileDetailRowWidth
  68. }
  69. background: Rectangle {
  70. implicitHeight: control.Material.delegateHeight
  71. color: control.highlighted ? Color.transparent(control.Material.accentColor, 0.08) : "transparent"
  72. Ripple {
  73. width: parent.width
  74. height: parent.height
  75. clip: visible
  76. pressed: control.pressed
  77. anchor: control
  78. active: control.down || control.visualFocus || control.hovered
  79. color: control.highlighted ? control.Material.highlightedRippleColor : control.Material.rippleColor
  80. }
  81. }
  82. }