Warning, /education/kstars/kstars/kstarslite/qml/modules/popups/ColorSchemePopup.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-FileCopyrightText: 2016 Artem Fedoskin <afedoskin3@gmail.com> 0002 // SPDX-License-Identifier: GPL-2.0-or-later 0003 0004 import QtQuick.Controls 2.0 0005 import QtQuick 2.6 0006 import QtQuick.Layouts 1.1 0007 import "../../constants" 1.0 0008 import "../../modules" 0009 import QtQuick.Controls.Material 2.0 0010 0011 Popup { 0012 //Change it to Popup when it will become more stable 0013 id: colorSPopup 0014 focus: true 0015 modal: true 0016 height: parent.height > colorsList.implicitHeight ? colorsList.implicitHeight : parent.height 0017 signal colorSchemeChanged() 0018 0019 property string currentCScheme: colorsModel.get(colorsList.currentIndex).scheme 0020 0021 onCurrentCSchemeChanged: { 0022 updateTheme(currentCScheme) 0023 } 0024 0025 function updateTheme(colorScheme) { 0026 if ( Qt.platform.os == "android" ) { 0027 if ( colorScheme == "cs_night") { 0028 window.Material.theme = Material.Dark //On Android we want to have dark theme only for cs_night 0029 } else { 0030 window.Material.theme = Material.Light //Light theme for all other color schemes as on Android they are light 0031 } 0032 } else { 0033 window.Material.theme = Material.Dark //Dark theme is suitable for all color themes 0034 } 0035 } 0036 0037 function formatColorScheme(schemeName) { 0038 return schemeName.substring(3) + ".colors" 0039 } 0040 0041 background: Rectangle { 0042 anchors.fill: parent 0043 color: Num.sysPalette.base 0044 } 0045 0046 KSListView { 0047 id: colorsList 0048 anchors.centerIn: parent 0049 checkCurrent: true 0050 0051 model: ListModel { 0052 id: colorsModel 0053 0054 Component.onCompleted: { 0055 append({ name: xi18n("Classic"), scheme: "cs_classic" }); 0056 append({ name: xi18n("Star Chart"), scheme: "cs_chart" }); 0057 append({ name: xi18n("Night Vision"), scheme: "cs_night" }); 0058 append({ name: xi18n("Moonless Night"), scheme: "cs_moonless-night" }); 0059 } 0060 } 0061 0062 Connections { 0063 target: KStarsLite 0064 onDataLoadFinished: { 0065 //Set current index to current scheme color 0066 var colorScheme = KStarsData.colorSchemeName() 0067 for(var i = 0; i < colorsList.model.count; ++i) { 0068 if(formatColorScheme(colorsList.model.get(i).scheme) == colorScheme) { 0069 colorsList.currentIndex = i 0070 //KStarsLite.loadColorScheme(colorScheme) 0071 } 0072 } 0073 } 0074 } 0075 0076 onClicked: { 0077 var item = colorsModel.get(colorsList.currentIndex) 0078 0079 KStarsLite.loadColorScheme(formatColorScheme(item.scheme)); 0080 skyMapLite.notification.showNotification("Set color scheme to " + item.name) 0081 0082 colorSchemeChanged() 0083 close() 0084 } 0085 0086 textRole: "name" 0087 } 0088 }