Warning, /frameworks/knewstuff/src/qtquick/qml/Dialog.qml is written in an unsupported language. File is not indexed.
0001 /*
0002 SPDX-FileCopyrightText: 2019 Dan Leinir Turthra Jensen <admin@leinir.dk>
0003 SPDX-FileCopyrightText: 2023 ivan tkachenko <me@ratijas.tk>
0004
0005 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0006 */
0007
0008 /**
0009 * @brief A dialog which has a NewStuff.Page at the base
0010 *
0011 * This component is equivalent to the old DownloadDialog, but you should consider
0012 * using NewStuff.Page instead for a more modern style of integration into your
0013 * application's flow.
0014 * @see KNewStuff::DownloadDialog
0015 * @since 5.63
0016 */
0017
0018 import QtQuick
0019 import QtQuick.Window
0020 import org.kde.kirigami 2 as Kirigami
0021 import org.kde.newstuff as NewStuff
0022
0023 Window {
0024 id: component
0025
0026 width: Math.min(Kirigami.Units.gridUnit * 44, Screen.width)
0027 height: Math.min(Kirigami.Units.gridUnit * 30, Screen.height)
0028
0029 /**
0030 * The configuration file to use for this button
0031 */
0032 property alias configFile: newStuffPage.configFile
0033
0034 /**
0035 * Set the text that should appear as the dialog's title. Will be set as
0036 * i18nd("knewstuff6", "Download New %1").
0037 *
0038 * @default The name defined by your knsrc config file
0039 * @note For the sake of consistency, you should NOT override the title property, just set this one
0040 */
0041 property string downloadNewWhat: engine.name
0042 title: component.downloadNewWhat.length > 0 ? i18ndc("knewstuff6", "The dialog title when we know which type of stuff is being requested", "Download New %1", component.downloadNewWhat) : i18ndc("knewstuff6", "A placeholder title used in the dialog when there is no better title available", "Download New Stuff")
0043
0044 /**
0045 * The engine which handles the content in this dialog
0046 */
0047 property alias engine: newStuffPage.engine
0048
0049 /**
0050 * The default view mode of the dialog spawned by this button. This should be
0051 * set using the NewStuff.Page.ViewMode enum
0052 * @see NewStuff.Page.ViewMode
0053 */
0054 property alias viewMode: newStuffPage.viewMode
0055
0056 /**
0057 * emitted when the Hot New Stuff dialog is about to be shown, usually
0058 * as a result of the user having click on the button
0059 */
0060 signal aboutToShowDialog()
0061
0062 /**
0063 * This forwards the entryEvent from the QtQuick engine
0064 * @see Engine::entryEvent
0065 * @since 5.82
0066 */
0067 signal entryEvent(var entry, int event)
0068
0069 property Connections engineConnections: Connections {
0070 target: component.engine
0071
0072 function onEntryEvent(entry, event) {
0073 component.entryEvent(entry, event);
0074 }
0075 }
0076
0077 /**
0078 * Show the details page for a specific entry.
0079 * If you call this function before the engine initialisation has been completed,
0080 * the action itself will be postponed until that has happened.
0081 * @param providerId The provider ID for the entry you wish to show details for
0082 * @param entryId The unique ID for the entry you wish to show details for
0083 * @since 5.79
0084 */
0085 function showEntryDetails(providerId, entryId) {
0086 newStuffPage.__showEntryDetails(providerId, entryId);
0087 }
0088
0089 function open() {
0090 component.visible = true;
0091 }
0092
0093 onVisibleChanged: {
0094 if (visible) {
0095 newStuffPage.engine.revalidateCacheEntries();
0096 }
0097 }
0098
0099 color: Kirigami.Theme.backgroundColor
0100
0101 NewStuff.DialogContent {
0102 id: newStuffPage
0103 anchors.fill: parent
0104 downloadNewWhat: component.downloadNewWhat
0105 Keys.onEscapePressed: component.close()
0106 }
0107
0108 Component {
0109 id: uploadPage
0110 NewStuff.UploadPage {
0111 objectName: "uploadPage"
0112 engine: newStuffPage.engine
0113 }
0114 }
0115 }