Warning, /multimedia/elisa/src/qml/mobile/MobileSidebar.qml is written in an unsupported language. File is not indexed.

0001 /*
0002    SPDX-FileCopyrightText: 2020 (c) Devin Lin <espidev@gmail.com>
0003 
0004    SPDX-License-Identifier: LGPL-3.0-or-later
0005  */
0006 
0007 import org.kde.kirigami 2.11 as Kirigami
0008 import QtQuick 2.12
0009 import QtQuick.Layouts 1.3
0010 import QtQuick.Controls 2.1
0011 
0012 Kirigami.GlobalDrawer {
0013     id: drawer
0014 
0015     property alias model: repeater.model
0016     signal switchView(int viewIndex)
0017 
0018     property int viewIndex: 0
0019 
0020     title: i18nc("@title:window", "Elisa")
0021     titleIcon: "elisa"
0022 
0023     modal: true
0024     width: Kirigami.Units.gridUnit * 11
0025 
0026     actions: []
0027 
0028     Component {
0029         id: action
0030         Kirigami.Action {}
0031     }
0032 
0033     Component.onCompleted: {
0034         // disable default handle as it covers content
0035         handle.visible = false;
0036 
0037         let settings = action.createObject(drawer, {"icon.name": "settings-configure", text: i18nc("@title:window", "Settings")});
0038         settings.onTriggered.connect(() => {
0039             mainWindow.pageStack.layers.push("MobileSettingsPage.qml");
0040         });
0041         drawer.actions.push(settings);
0042     }
0043 
0044     // add sidebar actions
0045     Repeater {
0046         id: repeater
0047         Item {
0048             Component.onCompleted: {
0049                 // HACK: the images provided by the model are in the form "image://icon/view-media-genre"
0050                 // remove the "image://icon/" in order to use icons
0051                 let icon = String(model.image).substring(13);
0052                 let object = action.createObject(drawer, {"icon.name": icon, text: model.display});
0053                 object.onTriggered.connect(() => {
0054                     viewIndex = model.index;
0055                     switchView(model.index);
0056                 });
0057                 drawer.actions.push(object);
0058             }
0059         }
0060     }
0061 }