Warning, /office/klevernotes/src/contents/ui/dialogs/FontPickerDialog.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 Kirigami.Dialog {
0011     id: scrollableDialog
0012 
0013     property string checkedFamily
0014     property int checkedSize
0015     property var caller
0016 
0017     title: i18nc("@title:dialog", "Font selector")
0018 
0019     standardButtons: Kirigami.Dialog.Apply | Kirigami.Dialog.Cancel
0020     
0021     onCallerChanged: if (caller) {
0022         const familyDefaultIndex = 0
0023         const sizeDefaultIndex = 4
0024         const fontInfo = caller.fontInfo
0025         const familyModelIndex = fontBox.model.indexOf(fontInfo.family)
0026         const sizeModelIndex = sizeBox.model.indexOf(fontInfo.pointSize)
0027 
0028         fontBox.currentIndex = familyModelIndex > -1 ? familyModelIndex : familyDefaultIndex 
0029         sizeBox.currentIndex = sizeModelIndex > -1 ? sizeModelIndex : sizeDefaultIndex 
0030     }
0031     onClosed: {
0032         caller = undefined
0033     }
0034 
0035     GridLayout {
0036         rows: 1
0037         columns: 2
0038         FormCard.FormComboBoxDelegate {
0039             id: fontBox
0040 
0041             model: Qt.fontFamilies() 
0042 
0043             Layout.row: 0
0044             Layout.column: 0
0045 
0046             onCurrentValueChanged: {
0047                 scrollableDialog.checkedFamily = currentValue;
0048             }
0049         }
0050 
0051         FormCard.FormComboBoxDelegate {
0052             id: sizeBox
0053 
0054             model: [6, 7, 8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72]
0055 
0056             Layout.row: 0
0057             Layout.column: 1
0058 
0059             onCurrentValueChanged: {
0060                 scrollableDialog.checkedSize = currentValue
0061             }
0062         }
0063 
0064         FormCard.FormSectionText {
0065             id: displayText
0066 
0067             text: fontBox.currentValue ? fontBox.currentValue : "Note Sans"
0068             font.family: text
0069             font.pointSize: sizeBox.currentValue ? sizeBox.currentValue : 10
0070 
0071             Layout.row: 1
0072             Layout.column: 0
0073             Layout.rowSpan: 2
0074         }
0075     }
0076 }