Warning, /education/marble/src/plasma/wallpapers/worldmap/contents/ui/main.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 SPDX-FileCopyrightText: 2016 Friedrich W. H. Kossebau <kossebau@kde.org> 0003 SPDX-License-Identifier: LGPL-2.1-or-later 0004 */ 0005 0006 import QtQuick 2.1 0007 0008 import org.kde.plasma.core 2.0 as PlasmaCore 0009 import org.kde.plasma.extras 2.0 as PlasmaExtras 0010 0011 import org.kde.marble.private.plasma 0.20 0012 0013 MarbleItem { 0014 id: marbleItem 0015 0016 readonly property int centerMode: wallpaper.configuration.centerMode 0017 readonly property double fixedLongitude: wallpaper.configuration.fixedLongitude 0018 readonly property double locationLongitude: geolocationDataSource.data.longitude 0019 0020 enabled: false // do not handle input 0021 0022 radius: { 0023 var ratio = width/height; 0024 if (projection === MarbleItem.Equirectangular) { 0025 if (ratio > 2) { 0026 return height / 2; 0027 } 0028 return width / 4; 0029 } else { 0030 if (ratio > 1) { 0031 return height / 4; 0032 } 0033 return width / 4 0034 } 0035 } 0036 0037 // Theme settings. 0038 projection: (wallpaper.configuration.projection === 0) ? MarbleItem.Equirectangular : MarbleItem.Mercator 0039 mapThemeId: "earth/bluemarble/bluemarble.dgml" 0040 0041 // Visibility of layers/plugins. 0042 showAtmosphere: false 0043 showClouds: false 0044 showBackground: false 0045 0046 showGrid: false 0047 showCrosshairs: false 0048 showCompass: false 0049 showOverviewMap: false 0050 showScaleBar: false 0051 0052 onCenterModeChanged: handleCenterModeChange() 0053 function handleCenterModeChange() { 0054 if (centerMode === 0) { 0055 marbleMap.setLockToSubSolarPoint(true); 0056 } else if (centerMode === 1) { 0057 marbleMap.setLockToSubSolarPoint(false); 0058 marbleMap.centerOn(fixedLongitude, 0.0); 0059 } else { 0060 marbleMap.setLockToSubSolarPoint(false); 0061 marbleMap.centerOn(locationLongitude, 0.0); 0062 } 0063 } 0064 0065 onFixedLongitudeChanged: { 0066 if (centerMode === 1) { 0067 marbleMap.centerOn(fixedLongitude, 0.0); 0068 } 0069 } 0070 0071 onLocationLongitudeChanged: { 0072 if (centerMode === 2) { 0073 marbleMap.centerOn(locationLongitude, 0.0); 0074 } 0075 } 0076 0077 Component.onCompleted: { 0078 marbleMap.setShowSunShading(true); 0079 marbleMap.setShowCityLights(true); 0080 0081 marbleMap.setShowPlaces(false); 0082 marbleMap.setShowCities(false); 0083 marbleMap.setShowTerrain(false); 0084 marbleMap.setShowOtherPlaces(false); 0085 0086 handleCenterModeChange(); 0087 } 0088 0089 PlasmaCore.DataSource { 0090 id: geolocationDataSource 0091 engine: "geolocation" 0092 connectedSources: (marbleItem.centerMode === 2) ? ["location"] : [] 0093 interval: 10 * 60 * 1000 // every 30 minutes, might be still too large for users on the ISS :P 0094 } 0095 }