Warning, /office/klevernotes/src/contents/ui/settings/PluginsTab.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-License-Identifier: GPL-2.0-or-later 0002 // SPDX-FileCopyrightText: 2023 Louis Schul <schul9louis@gmail.com> 0003 0004 import QtQuick 2.15 0005 import QtQuick.Layouts 1.15 0006 0007 import org.kde.kirigami 2.19 as Kirigami 0008 import org.kde.kirigamiaddons.formcard 1.0 as FormCard 0009 0010 import org.kde.Klever 1.0 0011 0012 import "qrc:/contents/ui/sharedComponents" 0013 0014 ColumnLayout { 0015 id: root 0016 0017 Layout.fillWidth: true 0018 Layout.fillHeight: true 0019 0020 FormCard.FormHeader { 0021 title: i18nc("@title", "Utility plugins") 0022 Layout.fillWidth: true 0023 } 0024 0025 FormCard.FormCard { 0026 id: utilityCard 0027 0028 Layout.fillWidth: true 0029 0030 FormCard.FormSwitchDelegate { 0031 id: noteMapperCheck 0032 0033 text: i18nc("@label:checkbox", "Enable note linking") 0034 description: i18nc("@description:checkbox", "Note linking allows you to create a link from one note to another.") 0035 + "\n" + i18nc("@description:checkbox", "Advice: restart the app once activated.") 0036 checked: Config.noteMapEnabled 0037 0038 onCheckedChanged: if (checked != Config.noteMapEnabled) { 0039 Config.noteMapEnabled = checked 0040 } 0041 } 0042 0043 ExpendingFormSwitch { 0044 id: pumlCheck 0045 0046 text: i18nc("@label:checkbox", "Enable PlantUML") 0047 description: i18nc("@description:checkbox", "PlantUML let's you create diagram.") 0048 + "\n" + i18nc("@description:checkbox", "Note: creating diagrams can be slow. If you have a large number of diagrams, displaying them as images would be easier.") 0049 checked: Config.pumlEnabled 0050 0051 onCheckedChanged: if (checked != Config.pumlEnabled) { 0052 Config.pumlEnabled = checked 0053 } 0054 0055 FormCard.FormSwitchDelegate { 0056 id: pumlDarkSwitch 0057 0058 text: i18nc("@lable:switch", "Enable dark background") 0059 description: i18nc("@description:switch", "PlantUML diagram will have a dark background.") 0060 checked: Config.pumlDark 0061 0062 onCheckedChanged: if (checked != Config.pumlDark) { 0063 Config.pumlDark = checked 0064 } 0065 } 0066 } 0067 } 0068 0069 FormCard.FormHeader { 0070 title: i18nc("@title", "Cosmetic plugins") 0071 Layout.fillWidth: true 0072 } 0073 0074 FormCard.FormCard { 0075 id: appearanceCard 0076 0077 Layout.fillWidth: true 0078 0079 ExpendingFormSwitch { 0080 id: highlitingCheck 0081 0082 text: i18nc("@label:checkbox", "Enable code syntax highlighting") 0083 description: "<a href='https://invent.kde.org/office/klevernotes#syntax-highlighting'>" + i18nc("@description:checkbox", "List of supported highlighters") + "</a>" 0084 checked: Config.codeSynthaxHighlightEnabled 0085 0086 onCheckedChanged: if (checked != Config.codeSynthaxHighlightEnabled) { 0087 Config.codeSynthaxHighlightEnabled = checked 0088 } 0089 0090 FormCard.FormComboBoxDelegate { 0091 id: highlighterCombobox 0092 0093 text: i18nc("@label:combobox", "Highlighter") 0094 model: HighlightHelper.highlighters 0095 0096 onModelChanged: if (model.length !== 0) { 0097 const baseIndex = 0; 0098 0099 if (Config.codeSynthaxHighlighter.length === 0) { 0100 highlighterCombobox.currentIndex = baseIndex 0101 return 0102 } 0103 0104 const inModelIndex = indexOfValue(Config.codeSynthaxHighlighter) 0105 0106 highlighterCombobox.currentIndex = inModelIndex === -1 0107 ? baseIndex 0108 : inModelIndex 0109 } 0110 onCurrentValueChanged: { 0111 const highlighter = highlighterCombobox.currentValue 0112 if (highlighter != Config.codeSynthaxHighlighter) Config.codeSynthaxHighlighter = highlighter 0113 } 0114 } 0115 0116 FormCard.FormComboBoxDelegate { 0117 id: styleCombobox 0118 0119 property bool configStyleSet: false 0120 0121 text: i18nc("@label:combobox", "Highlighter style") 0122 model: HighlightHelper.getHighlighterStyle(highlighterCombobox.currentValue) 0123 0124 onCurrentValueChanged: { 0125 if (!styleCombobox.configStyleSet) { 0126 const baseIndex = 0; 0127 0128 if (Config.codeSynthaxHighlighterStyle.length === 0) { 0129 styleCombobox.currentIndex = baseIndex 0130 return 0131 } 0132 0133 const inModelIndex = indexOfValue(Config.codeSynthaxHighlighterStyle) 0134 0135 styleCombobox.currentIndex = inModelIndex === -1 0136 ? baseIndex 0137 : inModelIndex 0138 0139 styleCombobox.configStyleSet = true 0140 } 0141 if (currentValue != Config.codeSynthaxHighlighterStyle) Config.codeSynthaxHighlighterStyle = currentValue 0142 } 0143 } 0144 } 0145 0146 FormCard.FormDelegateSeparator { above: highlitingCheck; below: emojiCheck } 0147 0148 ExpendingFormSwitch { 0149 id: emojiCheck 0150 0151 text: i18nc("@label:checkbox", "Enable quick emoji") 0152 description: i18nc("@description:checkbox, will be followed by the corresponding syntax, spacing between the end of the sentence and the syntax is already there", 0153 "Quickly write emoji using the following syntax") + " :<i>" + i18nc("@exemple, something representing a possible emoji short name", "emoji_name") + "</i>:" 0154 checked: Config.quickEmojiEnabled 0155 0156 onCheckedChanged: if (checked != Config.quickEmojiEnabled) { 0157 Config.quickEmojiEnabled = checked 0158 } 0159 0160 FormCard.FormComboBoxDelegate { 0161 id: tonesCombobox 0162 0163 0164 text: i18nc("@label:combobox", "Default emoji tone") 0165 textRole: "text" 0166 valueRole: "value" 0167 model: [ 0168 { value: "None", text: i18nc("@combobox:entry, As in 'default skin tone' (for an emoji), see '🫶'", "Default") + " 🫶" }, 0169 { value: "light skin tone", text: i18nc("@combobox:entry, As in 'light skin tone' (for an emoji), see '🫶🏻'", "Light") + " 🫶🏻" }, 0170 { value: "medium-light skin tone", text: i18nc("@combobox:entry, As in 'medium light skin tone' (for an emoji), see '🫶🏼'", "Medium light") + " 🫶🏼" }, 0171 { value: "medium skin tone", text: i18nc("@combobox:entry, As in 'Medium skin tone' (for an emoji), see '🫶🏽'", "Medium") + " 🫶🏽" }, 0172 { value: "medium-dark skin tone", text: i18nc("@combobox:entry, As in 'Medium-dark skin tone' (for an emoji), see '🫶🏾'", "Medium dark") + " 🫶🏾" }, 0173 { value: "dark skin tone", text: i18nc("@combobox:entry, As in 'dark skin tone' (for an emoji), see '🫶🏿'", "Dark") + " 🫶🏿" } 0174 ] 0175 0176 Component.onCompleted: { 0177 currentIndex = indexOfValue(Config.emojiTone) 0178 } 0179 onCurrentValueChanged: { 0180 if (currentValue != Config.emojiTone) Config.emojiTone = currentValue 0181 } 0182 } 0183 0184 FormCard.FormSwitchDelegate { 0185 id: quickEmojiDialogSwitch 0186 0187 text: i18nc("@lable:switch", "Enable quick emoji dialog") 0188 description: i18nc("@description:switch", "The emoji dialog insert the 'quick emoji' syntax instead of the actual emoji inside the text.") 0189 checked: Config.quickEmojiDialogEnabled 0190 0191 onCheckedChanged: if (checked != Config.quickEmojiDialogEnabled) { 0192 Config.quickEmojiDialogEnabled = checked 0193 } 0194 } 0195 } 0196 } 0197 }