Warning, /education/marble/examples/qml/google-search/google-search.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-License-Identifier: LGPL-2.1-or-later 0002 // 0003 // SPDX-FileCopyrightText: 2010 Dennis Nienhüser <nienhueser@kde.org> 0004 // 0005 0006 import Qt 4.7 0007 import org.kde.marble 0.20 0008 0009 Rectangle { 0010 width: 700 0011 height: 700 0012 0013 SystemPalette { id: activePalette } 0014 0015 Image { 0016 x: 113 0017 y: 0 0018 source: "marble.png" 0019 anchors.horizontalCenter: parent.horizontalCenter 0020 } 0021 0022 Rectangle { 0023 id: searchinput 0024 x: 38 0025 y: 117 0026 width: 565 0027 height: 49 0028 border.color: "black" 0029 border.width: 1 0030 anchors.horizontalCenter: parent.horizontalCenter 0031 0032 TextInput { 0033 anchors.fill: parent 0034 anchors.margins: 10 0035 id: searchterm 0036 text: "" 0037 font.pointSize: 18 0038 focus: true 0039 } 0040 } 0041 0042 Item { 0043 id: buttonlayouter 0044 anchors.top: searchinput.bottom 0045 anchors.horizontalCenter: parent.horizontalCenter 0046 anchors.margins: 10 0047 height: button1.height 0048 0049 Button { 0050 id: button1 0051 anchors.right: buttonlayouter.horizontalCenter 0052 anchors.margins: 10 0053 width: 126 0054 height: 25 0055 label: "Marble Search" 0056 0057 onClicked: { map.search.find( searchterm.text ) } 0058 } 0059 0060 Button { 0061 id: button2 0062 anchors.left: buttonlayouter.horizontalCenter 0063 anchors.margins: 10 0064 width: 140 0065 height: 25 0066 label: "I'm Feeling Lucky" 0067 } 0068 } 0069 0070 Item { 0071 id: mapcontainer 0072 width: 600 0073 height: 400 0074 anchors.horizontalCenter: buttonlayouter.horizontalCenter 0075 anchors.top: buttonlayouter.bottom 0076 anchors.margins: 30 0077 clip: true 0078 0079 MarbleWidget { 0080 id: map 0081 width: 600 0082 height: 400 0083 activeRenderPlugins: [ "navigation", "scalebar" ] 0084 0085 property Search search: Search { 0086 map: map 0087 placemarkDelegate: myDelegate 0088 } 0089 } 0090 0091 Component { 0092 id: myDelegate 0093 0094 Image { 0095 source: "marker.svg" 0096 fillMode: Image.PreserveAspectFit 0097 width: 64; 0098 height: 64 0099 0100 property bool showDetails: false 0101 0102 Text { 0103 anchors.horizontalCenter: parent.horizontalCenter 0104 anchors.bottom: parent.bottom 0105 width: parent.width 0106 height: parent.height 0107 wrapMode: Text.WrapAtWordBoundaryOrAnywhere 0108 color: "white" 0109 text: index+1 0110 horizontalAlignment: Text.AlignHCenter 0111 } 0112 0113 Rectangle 0114 { 0115 anchors.left: parent.right 0116 id: itemdetails 0117 scale: 0.75 0118 width: 140 0119 height: 60 0120 color: "yellow" 0121 radius: 10 0122 border.width: 1 0123 border.color: "gray" 0124 z: 42 0125 0126 visible: parent.showDetails 0127 0128 Text { 0129 id: itemdetailtext 0130 x: 10 0131 y: 5 0132 width: parent.width - 20 0133 height: parent.height - 10 0134 text: display 0135 wrapMode: "WrapAtWordBoundaryOrAnywhere" 0136 clip: true 0137 } 0138 0139 states: State { 0140 name: "back" 0141 PropertyChanges { target: itemdetails; scale: 1 } 0142 when: itemdetailtext.visible 0143 } 0144 0145 transitions: Transition { 0146 NumberAnimation { properties: "scale"; duration: 100 } 0147 } 0148 } 0149 0150 MouseArea { 0151 anchors.fill: parent 0152 onClicked: showDetails = !showDetails 0153 } 0154 } 0155 } 0156 } 0157 }