Warning, /plasma/plasma-workspace/kcms/style/ui/GtkStylePage.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 SPDX-FileCopyrightText: 2020 Mikhail Zolotukhin <zomial@protonmail.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 0007 import QtCore 0008 import QtQuick 2.7 0009 import QtQuick.Layouts 1.1 0010 import QtQuick.Dialogs 6.3 as QtDialogs 0011 import QtQuick.Controls 2.10 as QtControls 0012 import org.kde.kirigami 2.10 as Kirigami 0013 import org.kde.newstuff 1.91 as NewStuff 0014 0015 Kirigami.Page { 0016 id: gtkStylePage 0017 title: i18n("GNOME/GTK Application Style") 0018 0019 ColumnLayout { 0020 anchors.fill: parent 0021 0022 Kirigami.InlineMessage { 0023 id: infoLabel 0024 Layout.fillWidth: true 0025 0026 showCloseButton: true 0027 visible: false 0028 0029 Connections { 0030 target: kcm.gtkPage 0031 function onShowErrorMessage(message) { 0032 infoLabel.type = Kirigami.MessageType.Error; 0033 infoLabel.text = message; 0034 infoLabel.visible = true; 0035 } 0036 } 0037 } 0038 0039 Kirigami.FormLayout { 0040 wideMode: true 0041 0042 Row { 0043 Kirigami.FormData.label: i18n("GTK theme:") 0044 0045 Flow { 0046 spacing: Kirigami.Units.smallSpacing 0047 0048 QtControls.ComboBox { 0049 id: gtkThemeCombo 0050 model: kcm.gtkPage.gtkThemesModel 0051 currentIndex: model.findThemeIndex(kcm.gtkPage.gtkThemesModel.selectedTheme) 0052 onCurrentTextChanged: function() { 0053 model.selectedTheme = currentText 0054 gtkRemoveButton.enabled = model.selectedThemeRemovable() 0055 } 0056 onActivated: model.setSelectedThemeDirty() 0057 textRole: "theme-name" 0058 } 0059 0060 QtControls.Button { 0061 id: gtkRemoveButton 0062 icon.name: "edit-delete" 0063 onClicked: gtkThemeCombo.model.removeSelectedTheme() 0064 } 0065 0066 QtControls.Button { 0067 icon.name: "preview" 0068 text: i18n("Preview…") 0069 onClicked: kcm.gtkPage.showGtkPreview() 0070 visible: kcm.gtkPage.gtkPreviewAvailable() 0071 } 0072 0073 } 0074 } 0075 0076 } 0077 0078 Item { 0079 Layout.fillHeight: true 0080 } 0081 0082 Kirigami.ActionToolBar { 0083 flat: false 0084 alignment: Qt.AlignRight 0085 actions: [ 0086 Kirigami.Action { 0087 text: i18n("Install from File…") 0088 icon.name: "document-import" 0089 onTriggered: fileDialogLoader.active = true 0090 }, 0091 NewStuff.Action { 0092 text: i18n("Get New GNOME/GTK Application Styles…") 0093 configFile: "gtk_themes.knsrc" 0094 onEntryEvent: function (entry, event) { 0095 if (event == NewStuff.Entry.StatusChangedEvent) { 0096 kcm.load(); 0097 } 0098 } 0099 } 0100 ] 0101 } 0102 } 0103 0104 Loader { 0105 id: fileDialogLoader 0106 active: false 0107 sourceComponent: QtDialogs.FileDialog { 0108 title: i18n("Select GTK Theme Archive") 0109 currentFolder: StandardPaths.standardLocations(StandardPaths.HomeLocation)[0] 0110 nameFilters: [ i18n("GTK Theme Archive (*.tar.xz *.tar.gz *.tar.bz2)") ] 0111 Component.onCompleted: open() 0112 onAccepted: { 0113 kcm.gtkPage.installGtkThemeFromFile(selectedFile) 0114 fileDialogLoader.active = false 0115 } 0116 onRejected: { 0117 fileDialogLoader.active = false 0118 } 0119 } 0120 } 0121 }