GridDelegate.qml 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. /****************************************************************************
  2. **
  3. ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  4. ** All rights reserved.
  5. ** Contact: Nokia Corporation (qt-info@nokia.com)
  6. **
  7. ** This file is part of the QtDeclarative module of the Qt Toolkit.
  8. **
  9. ** $QT_BEGIN_LICENSE:LGPL$
  10. ** Commercial Usage
  11. ** Licensees holding valid Qt Commercial licenses may use this file in
  12. ** accordance with the Qt Commercial License Agreement provided with the
  13. ** Software or, alternatively, in accordance with the terms contained in
  14. ** a written agreement between you and Nokia.
  15. **
  16. ** GNU Lesser General Public License Usage
  17. ** Alternatively, this file may be used under the terms of the GNU Lesser
  18. ** General Public License version 2.1 as published by the Free Software
  19. ** Foundation and appearing in the file LICENSE.LGPL included in the
  20. ** packaging of this file. Please review the following information to
  21. ** ensure the GNU Lesser General Public License version 2.1 requirements
  22. ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
  23. **
  24. ** In addition, as a special exception, Nokia gives you certain additional
  25. ** rights. These rights are described in the Nokia Qt LGPL Exception
  26. ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
  27. **
  28. ** GNU General Public License Usage
  29. ** Alternatively, this file may be used under the terms of the GNU
  30. ** General Public License version 3.0 as published by the Free Software
  31. ** Foundation and appearing in the file LICENSE.GPL included in the
  32. ** packaging of this file. Please review the following information to
  33. ** ensure the GNU General Public License version 3.0 requirements will be
  34. ** met: http://www.gnu.org/copyleft/gpl.html.
  35. **
  36. ** If you have questions regarding the use of this file, please contact
  37. ** Nokia at qt-info@nokia.com.
  38. ** $QT_END_LICENSE$
  39. **
  40. ****************************************************************************/
  41. import Qt 4.7
  42. Component {
  43. id: photoDelegate
  44. Item {
  45. id: wrapper; width: 79; height: 79
  46. function photoClicked() {
  47. imageDetails.photoTitle = title;
  48. imageDetails.photoTags = tags;
  49. imageDetails.photoWidth = photoWidth;
  50. imageDetails.photoHeight = photoHeight;
  51. imageDetails.photoType = photoType;
  52. imageDetails.photoAuthor = photoAuthor;
  53. imageDetails.photoDate = photoDate;
  54. imageDetails.photoUrl = url;
  55. imageDetails.rating = 0;
  56. scaleMe.state = "Details";
  57. }
  58. Item {
  59. anchors.centerIn: parent
  60. scale: 0.0
  61. Behavior on scale { NumberAnimation { easing.type: Easing.InOutQuad} }
  62. id: scaleMe
  63. Rectangle { height: 79; width: 79; id: blackRect; anchors.centerIn: parent; color: "black"; smooth: true }
  64. Rectangle {
  65. id: whiteRect; width: 77; height: 77; anchors.centerIn: parent; color: "#dddddd"; smooth: true
  66. Image { id: thumb; source: imagePath; x: 1; y: 1; smooth: true}
  67. Image { source: "images/gloss.png" }
  68. }
  69. Connections {
  70. target: toolBar
  71. onButton2Clicked: if (scaleMe.state == 'Details' ) scaleMe.state = 'Show'
  72. }
  73. states: [
  74. State {
  75. name: "Show"; when: thumb.status == Image.Ready
  76. PropertyChanges { target: scaleMe; scale: 1 }
  77. },
  78. State {
  79. name: "Details"
  80. PropertyChanges { target: scaleMe; scale: 1 }
  81. ParentChange { target: wrapper; parent: imageDetails.frontContainer }
  82. PropertyChanges { target: wrapper; x: 20; y: 60; z: 1000 }
  83. PropertyChanges { target: background; state: "DetailedView" }
  84. }
  85. ]
  86. transitions: [
  87. Transition {
  88. from: "Show"; to: "Details"
  89. ParentAnimation {
  90. NumberAnimation { properties: "x,y"; duration: 500; easing.type: Easing.InOutQuad }
  91. }
  92. },
  93. Transition {
  94. from: "Details"; to: "Show"
  95. SequentialAnimation {
  96. ParentAnimation {
  97. NumberAnimation { properties: "x,y"; duration: 500; easing.type: Easing.InOutQuad }
  98. }
  99. PropertyAction { targets: wrapper; properties: "z" }
  100. }
  101. }
  102. ]
  103. }
  104. MouseArea { anchors.fill: wrapper; onClicked: { photoClicked() } }
  105. }
  106. }