Warning, /maui/strike/src/views/widgets/SettingsDialog.qml is written in an unsupported language. File is not indexed.
0001 import QtQuick 2.13 0002 import QtQuick.Controls 2.13 0003 import QtQuick.Layouts 1.3 0004 0005 import org.mauikit.controls 1.3 as Maui 0006 import org.mauikit.texteditor 1.0 as TE 0007 0008 import org.slike.strike 1.0 as Strike 0009 0010 Maui.SettingsDialog 0011 { 0012 id: control 0013 0014 Component 0015 { 0016 id: _editorPageComponent 0017 Maui.SettingsPage 0018 { 0019 title: i18n("Editor") 0020 Maui.SectionGroup 0021 { 0022 title: i18n("Editor") 0023 description: i18n("Configure the look and feel of the editor. The settings are applied globally") 0024 0025 0026 Maui.SectionItem 0027 { 0028 label1.text: i18n("Auto Save") 0029 label2.text: i18n("Auto saves your file every 5 seconds.") 0030 Switch 0031 { 0032 checkable: true 0033 checked: settings.autoSave 0034 onToggled: settings.autoSave = !settings.autoSave 0035 } 0036 } 0037 0038 0039 Maui.SectionItem 0040 { 0041 label1.text: i18n("Syntax Highlighting") 0042 Switch 0043 { 0044 checkable: true 0045 // checked: settings.autoSave 0046 // onToggled: settings.autoSave = !settings.autoSave 0047 } 0048 } 0049 0050 Maui.SectionItem 0051 { 0052 label1.text: i18n("Line Numbers") 0053 label2.text: i18n("Display the line numbers on the left side") 0054 0055 Switch 0056 { 0057 checkable: true 0058 checked: settings.showLineNumbers 0059 onToggled: settings.showLineNumbers = !settings.showLineNumbers 0060 } 0061 } 0062 } 0063 0064 Maui.SectionGroup 0065 { 0066 title: i18n("Style") 0067 description: i18n("Configure the style of the syntax highlighting. This configuration in not applied for rich text formats") 0068 visible: settings.enableSyntaxHighlighting 0069 0070 Maui.SectionItem 0071 { 0072 label1.text: i18n("Tab Spacing") 0073 0074 SpinBox 0075 { 0076 from: 0; to : 500 0077 value: settings.tabSpace 0078 onValueChanged: settings.tabSpace = value 0079 } 0080 } 0081 0082 Maui.SectionItem 0083 { 0084 label1.text: i18n("Fonts") 0085 label2.text: i18n("Configure the fonts family and style.") 0086 0087 ToolButton 0088 { 0089 checkable: true 0090 onToggled: control.addPage(_fontsPageComponent) 0091 icon.name: "go-next" 0092 } 0093 } 0094 0095 Maui.SectionItem 0096 { 0097 label1.text: i18n("Colors") 0098 label2.text: i18n("Configure the color scheme of the syntax highlighting.") 0099 enabled: settings.enableSyntaxHighlighting 0100 ToolButton 0101 { 0102 checkable: true 0103 onToggled: control.addPage(_stylePageComponent) 0104 icon.name: "go-next" 0105 } 0106 } 0107 } 0108 } 0109 } 0110 0111 Component 0112 { 0113 id: _fontsPageComponent 0114 0115 Maui.SettingsPage 0116 { 0117 title: i18n("Fonts") 0118 Maui.FontPicker 0119 { 0120 Layout.fillWidth: true 0121 mfont: settings.font 0122 model.onlyMonospaced: true 0123 onFontModified: 0124 { 0125 settings.font = font 0126 } 0127 } 0128 } 0129 } 0130 0131 Maui.SectionItem 0132 { 0133 label1.text: i18n("Editor") 0134 label2.text: i18n("Configure the look and feel of the text editor.") 0135 ToolButton 0136 { 0137 checkable: true 0138 onToggled: control.addPage(_editorPageComponent) 0139 icon.name: "go-next" 0140 } 0141 } 0142 0143 Maui.SectionItem 0144 { 0145 label1.text: i18n("Builder") 0146 label2.text: i18n("Configure the build steps commands.") 0147 ToolButton 0148 { 0149 checkable: true 0150 // onToggled: control.addPage(_stylePageComponent) 0151 icon.name: "go-next" 0152 } 0153 } 0154 0155 Maui.SectionItem 0156 { 0157 label1.text: i18n("Plugins") 0158 label2.text: i18n("Toggle available plugins.") 0159 ToolButton 0160 { 0161 checkable: true 0162 // onToggled: control.addPage(_stylePageComponent) 0163 icon.name: "go-next" 0164 } 0165 } 0166 0167 Maui.SectionItem 0168 { 0169 label1.text: i18n("Tools") 0170 label2.text: i18n("More tools.") 0171 ToolButton 0172 { 0173 checkable: true 0174 // onToggled: control.addPage(_stylePageComponent) 0175 icon.name: "go-next" 0176 } 0177 } 0178 0179 Component 0180 { 0181 id:_stylePageComponent 0182 Maui.SettingsPage 0183 { 0184 title: i18n("Style") 0185 0186 Maui.SectionGroup 0187 { 0188 title: i18n("Style") 0189 description: i18n("Configure the style of the syntax highliting. This configuration in not applied for rich text formats") 0190 0191 Maui.SectionItem 0192 { 0193 label1.text: i18n("Color") 0194 label2.text: i18n("Editor background color") 0195 Maui.ColorsRow 0196 { 0197 spacing: Maui.Style.space.medium 0198 currentColor: appSettings.backgroundColor 0199 colors: ["#333", "#fafafa", "#fff3e6", "#4c425b"] 0200 0201 onColorPicked: 0202 { 0203 currentColor = color 0204 0205 var textColor 0206 0207 switch(color) 0208 { 0209 case "#333": textColor = "#fafafa"; break; 0210 case "#fafafa": textColor = "#333"; break; 0211 case "#fff3e6": textColor = Qt.darker(color, 2); break; 0212 case "#4c425b": textColor = Qt.lighter(color, 2.5); break; 0213 default: textColor = Maui.Theme.textColor; 0214 } 0215 0216 switchBackgroundColor(color, textColor) 0217 } 0218 0219 } 0220 } 0221 0222 Maui.SectionItem 0223 { 0224 label1.text: i18n("Theme") 0225 label2.text: i18n("Editor color scheme style") 0226 columns: 1 0227 0228 GridLayout 0229 { 0230 columns: 3 0231 Layout.fillWidth: true 0232 opacity: enabled ? 1 : 0.5 0233 Repeater 0234 { 0235 model: TE.ColorSchemesModel 0236 { 0237 } 0238 0239 delegate: Maui.GridBrowserDelegate 0240 { 0241 Layout.fillWidth: true 0242 checked: model.name === settings.theme 0243 onClicked: settings.theme = model.name 0244 0245 template.iconComponent: Rectangle 0246 { 0247 implicitHeight: _previewLayout.implicitHeight + Maui.Style.space.small*2 0248 color: appSettings.backgroundColor 0249 radius: Maui.Style.radiusV 0250 0251 Column 0252 { 0253 id: _previewLayout 0254 anchors.fill: parent 0255 anchors.margins: Maui.Style.space.small 0256 spacing: 2 0257 0258 Text 0259 { 0260 wrapMode: Text.NoWrap 0261 elide: Text.ElideLeft 0262 width: parent.width 0263 // font.pointSize: Maui.Style.fontSizes.small 0264 text: "Hello world!" 0265 color: model.foreground 0266 font.family: settings.font.family 0267 } 0268 0269 Rectangle 0270 { 0271 radius: 2 0272 height: 8 0273 width: parent.width 0274 color: model.highlight 0275 } 0276 0277 Rectangle 0278 { 0279 radius: 2 0280 height: 8 0281 width: parent.width 0282 color: model.color3 0283 } 0284 0285 Rectangle 0286 { 0287 radius: 2 0288 height: 8 0289 width: parent.width 0290 color: model.color4 0291 } 0292 0293 Rectangle 0294 { 0295 radius: 2 0296 height: 8 0297 width: parent.width 0298 color: model.color5 0299 } 0300 } 0301 } 0302 0303 label1.text: model.name 0304 } 0305 } 0306 } 0307 } 0308 0309 } 0310 } 0311 } 0312 0313 function switchBackgroundColor(backgroundColor, textColor) 0314 { 0315 settings.backgroundColor = backgroundColor 0316 settings.textColor = textColor 0317 } 0318 }