From 5b9984d9502105ebc6c2c17f2d2cf3362210b526 Mon Sep 17 00:00:00 2001 From: Evgeniy Alekseev Date: Tue, 23 Aug 2016 12:30:11 +0300 Subject: [PATCH] add frontend for bug reporting (#104) --- .../package/contents/ui/BugReport.qml | 109 ++++++++++++++++++ .../package/contents/ui/main.qml | 11 ++ .../awesome-widget/package/contents/ui/qmldir | 1 + 3 files changed, 121 insertions(+) create mode 100644 sources/awesome-widget/package/contents/ui/BugReport.qml diff --git a/sources/awesome-widget/package/contents/ui/BugReport.qml b/sources/awesome-widget/package/contents/ui/BugReport.qml new file mode 100644 index 0000000..a0bfac4 --- /dev/null +++ b/sources/awesome-widget/package/contents/ui/BugReport.qml @@ -0,0 +1,109 @@ +/*************************************************************************** + * This file is part of awesome-widgets * + * * + * awesome-widgets is free software: you can redistribute it and/or * + * modify it under the terms of the GNU General Public License as * + * published by the Free Software Foundation, either version 3 of the * + * License, or (at your option) any later version. * + * * + * awesome-widgets is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with awesome-widgets. If not, see http://www.gnu.org/licenses/ * + ***************************************************************************/ + +import QtQuick 2.0 +import QtQuick.Controls 1.3 as QtControls +import QtQuick.Dialogs 1.2 as QtDialogs + +import org.kde.plasma.private.awesomewidget 1.0 + + +QtDialogs.Dialog { + id: reportDialog + AWActions { + id: awActions + } + AWBugReporter { + id: awBugReporter + } + + width: 640 + height: 480 + property bool debug: awActions.isDebugEnabled() + + + title: i18n("Report a bug") + standardButtons: QtDialogs.StandardButton.Ok | QtDialogs.StandardButton.Cancel | QtDialogs.StandardButton.Reset + + QtControls.TextField { + id: title + width: parent.width + placeholderText: i18n("Report subject") + } + Column { + id: body + width: parent.width + anchors.top: title.bottom + anchors.bottom: parent.bottom + + QtControls.GroupBox { + width: parent.width + height: parent.height / 3 + title: i18n("Description") + QtControls.TextArea { + id: description + width: parent.width + height: parent.height + textFormat: TextEdit.PlainText + } + } + QtControls.GroupBox { + width: parent.width + height: parent.height / 3 + title: i18n("Steps to reproduce") + QtControls.TextArea { + id: reproduce + width: parent.width + height: parent.height + textFormat: TextEdit.PlainText + } + } + QtControls.GroupBox { + width: parent.width + height: parent.height / 3 + title: i18n("Expected result") + QtControls.TextArea { + id: expected + width: parent.width + height: parent.height + textFormat: TextEdit.PlainText + } + } + } + + onAccepted: { + if (debug) console.debug() + + var text = awBugReporter.generateText(description.text, reproduce.text, + expected.text) + awBugReporter.sendBugReport(title.text, text) + } + + onReset: { + if (debug) console.debug() + + title.text = "" + description.text = "" + reproduce.text = "" + expected.text = "" + } + + Component.onCompleted: { + if (debug) console.debug() + } +} + diff --git a/sources/awesome-widget/package/contents/ui/main.qml b/sources/awesome-widget/package/contents/ui/main.qml index 0e20bc9..41abc9a 100644 --- a/sources/awesome-widget/package/contents/ui/main.qml +++ b/sources/awesome-widget/package/contents/ui/main.qml @@ -36,6 +36,9 @@ Item { AWActions { id: awActions } + BugReport { + id: bugReport + } property bool debug: awActions.isDebugEnabled() property variant tooltipSettings: { @@ -141,6 +144,7 @@ Item { plasmoid.setAction("requestKey", i18n("Request key"), "utilities-system-monitor") plasmoid.setAction("showReadme", i18n("Show README"), "text-x-readme") plasmoid.setAction("checkUpdates", i18n("Check updates"), "system-software-update") + plasmoid.setAction("reportBug", i18n("Report bug"), "tools-report-bug") // init submodule Plasmoid.userConfiguringChanged(false) // connect data @@ -215,6 +219,13 @@ Item { return awActions.showReadme() } + function action_reportBug() { + if (debug) console.debug() + + bugReport.reset() + bugReport.open() + } + function action_requestKey() { if (debug) console.debug() diff --git a/sources/awesome-widget/package/contents/ui/qmldir b/sources/awesome-widget/package/contents/ui/qmldir index c5315a3..b31d53f 100644 --- a/sources/awesome-widget/package/contents/ui/qmldir +++ b/sources/awesome-widget/package/contents/ui/qmldir @@ -1 +1,2 @@ singleton general 1.0 general.qml +BugReport ./BugReport.qml