FileDialogDelegate.qml 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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.Controls
  37. import QtQuick.Controls.Imagine
  38. import QtQuick.Controls.Imagine.impl
  39. import QtQuick.Controls.impl as ControlsImpl
  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. spacing: 12
  49. topPadding: background ? background.topPadding : 0
  50. leftPadding: background ? background.leftPadding : 0
  51. rightPadding: background ? background.rightPadding : 0
  52. bottomPadding: background ? background.bottomPadding : 0
  53. topInset: background ? -background.topInset || 0 : 0
  54. leftInset: background ? -background.leftInset || 0 : 0
  55. rightInset: background ? -background.rightInset || 0 : 0
  56. bottomInset: background ? -background.bottomInset || 0 : 0
  57. file: fileUrl
  58. icon.width: 16
  59. icon.height: 16
  60. icon.color: highlighted ? palette.highlightedText : palette.text
  61. icon.source: "qrc:/qt-project.org/imports/QtQuick/Dialogs/quickimpl/images/"
  62. + (fileIsDir ? "folder" : "file") + "-icon-round.png"
  63. required property int index
  64. required property string fileName
  65. required property url fileUrl
  66. required property int fileSize
  67. required property date fileModified
  68. required property bool fileIsDir
  69. required property int fileDetailRowWidth
  70. contentItem: FileDialogDelegateLabel {
  71. delegate: control
  72. fileDetailRowTextColor: control.icon.color
  73. fileDetailRowWidth: control.fileDetailRowWidth
  74. }
  75. background: NinePatchImage {
  76. source: "qrc:/qt-project.org/imports/QtQuick/Dialogs/quickimpl/images/imagine/filedialogdelegate-background"
  77. NinePatchImageSelector on source {
  78. states: [
  79. { "disabled": !control.enabled },
  80. { "pressed": control.down },
  81. { "focused": control.visualFocus },
  82. { "highlighted": control.highlighted },
  83. { "mirrored": control.mirrored },
  84. { "hovered": control.hovered }
  85. ]
  86. }
  87. }
  88. }