Warning, /plasma/drkonqi/src/qml/main.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0002 // SPDX-FileCopyrightText: 2021-2022 Harald Sitter <sitter@kde.org>
0003
0004 import QtQuick 2.15
0005 import QtQuick.Layouts 1.15
0006 import org.kde.kirigami 2.19 as Kirigami
0007
0008 import org.kde.drkonqi 1.0
0009
0010 Kirigami.ApplicationWindow {
0011 id: appWindow
0012
0013 property var reportInterface: ReportInterface
0014 property var bugzilla: reportInterface.bugzilla
0015 property bool canReport: false // can file a bug report
0016 property bool canAutoReport: false // can file a sentry report
0017 readonly property bool generatorFailure: BacktraceGenerator.hasAnyFailure
0018
0019 property string canReportText: {
0020 canReport = false
0021 canAutoReport = false
0022
0023 if (CrashedApplication.bugReportAddress.length <= 0) {
0024 return xi18nc("@info",
0025 '<para>You cannot report this error, because <application>%1</application> does not provide a bug reporting address.</para>',
0026 CrashedApplication.name);
0027 }
0028
0029 if (CrashedApplication.fakeExecutableBaseName === "drkonqi") {
0030 canAutoReport = true
0031 return xi18nc("@info",
0032 `<para>As the Crash Handler itself has failed, the
0033 automatic reporting process is disabled to reduce the
0034 risks of failing again.<nl /><nl />
0035 Please, <link url='%1'>manually report</link> this error
0036 to the KDE bug tracking system. Do not forget to include
0037 the backtrace from the <interface>Developer Information</interface>
0038 page.</para>`,
0039 Globals.ownBugzillaUrl);
0040 }
0041
0042 if (DrKonqi.isSafer()) {
0043 return xi18nc("@info",
0044 `<para>The reporting assistant is disabled because the crash handler dialog was started in safe mode.<nl />
0045 You can manually report this bug to <link>%1</link> (including the backtrace from the <interface>Developer Information</interface> page.)</para>`,
0046 CrashedApplication.bugReportAddress);
0047 }
0048
0049 if (CrashedApplication.hasDeletedFiles) {
0050 return xi18nc("@info",
0051 `<para>The reporting assistant is disabled because
0052 the crashed application appears to have been updated or
0053 uninstalled since it had been started. This prevents accurate
0054 crash reporting and can also be the cause of this crash.</para>
0055 <para>After updating it is always a good idea to log out and back
0056 in to make sure the update is fully applied and will not cause
0057 any side effects.</para>`);
0058 }
0059
0060 canReport = true
0061 canAutoReport = true
0062 return xi18nc("@info",
0063 "<para>You can help us improve KDE Software by reporting this error.<nl /><link url='%1'>Learn more about bug reporting.</link></para>",
0064 Globals.aboutBugReportingUrl);
0065 }
0066
0067 pageStack.globalToolBar.style: Kirigami.ApplicationHeaderStyle.ToolBar
0068 pageStack.globalToolBar.showNavigationButtons: Kirigami.ApplicationHeaderStyle.ShowBackButton | Kirigami.ApplicationHeaderStyle.ShowForwardButton
0069
0070 title: CrashedApplication.name
0071 minimumWidth: Kirigami.Settings.isMobile ? 0 : Kirigami.Units.gridUnit * 30
0072 minimumHeight: Kirigami.Settings.isMobile ? 0 : Kirigami.Units.gridUnit * 22
0073 height: minimumHeight
0074
0075 header: generatorFailure ? warningComponent.createObject(appWindow) : null
0076
0077 contextDrawer: Kirigami.ContextDrawer {
0078 id: contextDrawer
0079 }
0080
0081 Component {
0082 id: warningComponent
0083 Kirigami.InlineMessage {
0084 text: i18nc("@label", "Gathering crash information failed for unknown reasons. You can retry, or close the window.")
0085 type: Kirigami.MessageType.Warning
0086 visible: true
0087 actions: [
0088 Kirigami.Action {
0089 text: i18nc("@action retry gathering crash data", "Retry")
0090 onTriggered: BacktraceGenerator.start()
0091 }
0092 ]
0093 }
0094 }
0095
0096 pageStack.initialPage: MainPage {}
0097 pageStack.defaultColumnWidth: appWindow.width // show single page
0098
0099 function goToSentry() {
0100 pageStack.replace("qrc:/ui/SentryPage.qml")
0101 }
0102 }