Warning, /graphics/peruse/src/app/qml/Store.qml is written in an unsupported language. File is not indexed.
0001 /*
0002 * Copyright (C) 2015 Dan Leinir Turthra Jensen <admin@leinir.dk>
0003 *
0004 * This library is free software; you can redistribute it and/or
0005 * modify it under the terms of the GNU Lesser General Public
0006 * License as published by the Free Software Foundation; either
0007 * version 2.1 of the License, or (at your option) version 3, or any
0008 * later version accepted by the membership of KDE e.V. (or its
0009 * successor approved by the membership of KDE e.V.), which shall
0010 * act as a proxy defined in Section 6 of version 3 of the license.
0011 *
0012 * This library is distributed in the hope that it will be useful,
0013 * but WITHOUT ANY WARRANTY; without even the implied warranty of
0014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
0015 * Lesser General Public License for more details.
0016 *
0017 * You should have received a copy of the GNU Lesser General Public
0018 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
0019 *
0020 */
0021
0022 import QtQuick 2.12
0023 import QtQuick.Controls 2.12 as QtControls
0024 import QtQuick.Dialogs 1.3
0025
0026 import org.kde.kirigami 2.7 as Kirigami
0027 import org.kde.newstuff 1.0 as NewStuff
0028
0029 import org.kde.peruse 0.1 as Peruse
0030
0031 /**
0032 * @brief This holds the NewStuff list, for getting new books from the KDE store.
0033 */
0034 Kirigami.ScrollablePage {
0035 id: root;
0036 property string categoryName: "storePage";
0037 title: i18nc("title of the book store page", "Book Store");
0038 NewStuff.NewStuffList {
0039 configFile: peruseConfig.newstuffLocation;
0040 onMessage: { busy = false; messageLabel.text = message; }
0041 onIdleMessage: { busy = false; messageLabel.text = message; }
0042 onBusyMessage: { busy = true; messageLabel.text = message; }
0043 onErrorMessage: { busy = false; messageLabel.text = message; }
0044 property bool busy: false;
0045 onDownloadedItemClicked: {
0046 if(Array.isArray(installedFiles) && installedFiles.length > 0) {
0047 applicationWindow().showBook(installedFiles[0], 0);
0048 }
0049 else if(installedFiles.length > 0) {
0050 applicationWindow().showBook(installedFiles, 0);
0051 }
0052 }
0053 Item {
0054 anchors.fill: parent
0055 opacity: parent.busy ? 1 : 0
0056 Behavior on opacity { NumberAnimation { duration: Kirigami.Units.shortDuration; } }
0057 Rectangle {
0058 anchors.fill: parent
0059 opacity: 0.8
0060 color: Kirigami.Theme.backgroundColor
0061 }
0062 QtControls.BusyIndicator {
0063 anchors {
0064 top: parent.top
0065 topMargin: parent.width / 3
0066 left: parent.left
0067 right: parent.right
0068 }
0069 running: parent.opacity > 0
0070 QtControls.Label {
0071 id: messageLabel
0072 anchors {
0073 horizontalCenter: parent.horizontalCenter
0074 top: parent.bottom
0075 topMargin: Kirigami.Units.largeSpacing
0076 }
0077 }
0078 }
0079 }
0080 Item {
0081 anchors.fill: parent;
0082 opacity: parent.count === 0 && !parent.busy ? 1 : 0
0083 Behavior on opacity { NumberAnimation { duration: Kirigami.Units.shortDuration; } }
0084 Rectangle {
0085 anchors.fill: parent
0086 opacity: 0.8
0087 color: Kirigami.Theme.backgroundColor
0088 }
0089 QtControls.Label {
0090 anchors {
0091 top: parent.top
0092 topMargin: width / 3
0093 left: parent.left
0094 right: parent.right
0095 }
0096 horizontalAlignment: Text.AlignHCenter
0097 text: i18nc("Message shown when the engine is not busy and there are no entries (which means the store connection is broken in some way, usually caused by a broken internet connection, or the store being down)", "Sorry, no books.\nThis is unusual, and likely means your internet is down, or the store is.");
0098 }
0099 }
0100 }
0101 }