feat: replace messageboxes with notifications

Closes #157
This commit is contained in:
2024-04-08 16:47:27 +03:00
parent 960640f5bc
commit 332d78eb25
20 changed files with 76 additions and 150 deletions

View File

@ -51,6 +51,12 @@ ConfigModel {
source: "dataengine.qml"
}
ConfigCategory {
name: i18n("Report bug")
icon: "tools-report-bug"
source: "bug.qml"
}
ConfigCategory {
name: i18n("About")
icon: "help-about"

View File

@ -27,8 +27,8 @@ KCM.SimpleKCM {
id: advancedPage
// backend
AWActions {
id: awActions
AWConfigHelper {
id: awConfig
}
property alias cfg_background: background.checked
@ -52,7 +52,6 @@ KCM.SimpleKCM {
property alias cfg_telemetryId: telemetryId.value
Column {
id: pageColumn
anchors.fill: parent
CheckBoxSelector {
@ -198,7 +197,7 @@ KCM.SimpleKCM {
ButtonSelector {
value: i18n("Drop key cache")
onButtonActivated: awActions.dropCache()
onButtonActivated: awConfig.dropCache()
}
ButtonSelector {

View File

@ -42,7 +42,6 @@ KCM.SimpleKCM {
property string cfg_textStyle: textStyle.value
Column {
id: pageColumn
anchors.fill: parent
FontSelector {

View File

@ -0,0 +1,159 @@
/***************************************************************************
* 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.15
import QtQuick.Controls
import QtQuick.Dialogs
import QtQuick.Layouts
import org.kde.kcmutils as KCM
import org.kde.plasma.awesomewidgets
import org.kde.plasma.private.awesomewidget
KCM.SimpleKCM {
id: bugPage
AWActions {
id: awActions
}
AWBugReporter {
id: awBugReporter
}
ColumnLayout {
anchors.fill: parent
TextField {
id: title
Layout.fillWidth: true
placeholderText: i18n("Report subject")
}
ColumnLayout {
Layout.fillWidth: true
GroupBox {
Layout.fillWidth: true
title: i18n("Description")
TextArea {
id: description
anchors.fill: parent
textFormat: TextEdit.PlainText
}
}
GroupBox {
Layout.fillWidth: true
title: i18n("Steps to reproduce")
TextArea {
id: reproduce
anchors.fill: parent
textFormat: TextEdit.PlainText
}
}
GroupBox {
Layout.fillWidth: true
title: i18n("Expected result")
TextArea {
id: expected
anchors.fill: parent
textFormat: TextEdit.PlainText
}
}
GroupBox {
Layout.fillWidth: true
Layout.alignment: Qt.AlignBottom
title: i18n("Logs")
ColumnLayout {
anchors.fill: parent
Layout.fillWidth: true
Row {
Layout.fillWidth: true
Label {
width: parent.width * 2 / 5
horizontalAlignment: Text.AlignJustify
verticalAlignment: Text.AlignVCenter
wrapMode: Text.WordWrap
text: i18n("Use command")
}
TextField {
width: parent.width * 3 / 5
readOnly: true
text: "QT_LOGGING_RULES=*=true plasmawindowed org.kde.plasma.awesomewidget"
}
}
Button {
Layout.fillWidth: true
text: i18n("Load log file")
onClicked: logPath.open()
}
TextArea {
id: logBody
Layout.fillWidth: true
Layout.alignment: Qt.AlignBottom
textFormat: TextEdit.PlainText
}
}
FileDialog {
id: logPath
title: i18n("Open log file")
onAccepted: logBody.text = awActions.getFileContent(logPath.selectedFile.toString().replace("file://", ""))
}
}
DialogButtonBox {
Layout.fillWidth: true
standardButtons: DialogButtonBox.Ok | DialogButtonBox.Reset
alignment: Qt.AlignRight
onAccepted: sendBugReport()
onReset: resetDialog()
}
}
}
function sendBugReport() {
const text = awBugReporter.generateText(description.text, reproduce.text, expected.text, logBody.text)
awBugReporter.sendBugReport(title.text, text)
}
function resetDialog() {
title.text = ""
description.text = ""
reproduce.text = ""
expected.text = ""
logBody.text = ""
}
Component.onCompleted: {
resetDialog()
awBugReporter.doConnect()
}
}

View File

@ -37,7 +37,6 @@ KCM.SimpleKCM {
property variant cfg_dataengine: awConfig.readDataEngineConfiguration()
Column {
id: pageColumn
anchors.fill: parent
GroupBox {

View File

@ -16,8 +16,6 @@
***************************************************************************/
import QtQuick 2.15
import QtQuick.Controls
import QtQuick.Dialogs
import QtQuick.Layouts
import org.kde.plasma.core as PlasmaCore
import org.kde.plasma.plasmoid 2.0
@ -39,9 +37,6 @@ PlasmoidItem {
AWTelemetryHandler {
id: awTelemetryHandler
}
BugReport {
id: bugReport
}
property variant tooltipSettings: {
"tooltipNumber": plasmoid.configuration.tooltipNumber,
@ -92,7 +87,7 @@ PlasmoidItem {
color: plasmoid.configuration.fontColor
font.family: plasmoid.configuration.fontFamily
font.italic: plasmoid.configuration.fontStyle === "italic" ? true : false
font.italic: plasmoid.configuration.fontStyle === "italic"
font.pointSize: plasmoid.configuration.fontSize
font.weight: General.fontWeight[plasmoid.configuration.fontWeight]
@ -111,35 +106,11 @@ PlasmoidItem {
}
}
Dialog {
id: tagSelector
title: i18n("Select tag")
ComboBox {
id: tagSelectorBox
width: parent.width
editable: true
}
onAccepted: {
const tag = tagSelectorBox.editText
let message = i18n("Tag: %1", tag)
message += "<br>"
message += i18n("Value: %1", awKeys.valueByKey(tag))
message += "<br>"
message += i18n("Info: %1", awKeys.infoByKey(tag))
awActions.sendNotification("tag", message)
}
}
Plasmoid.contextualActions: [
PlasmaCore.Action {
text: i18n("Request key")
text: i18n("Run monitor")
icon.name: "utilities-system-monitor"
onTriggered: {
tagSelectorBox.model = awKeys.dictKeys(true)
tagSelector.open()
}
onTriggered: awActions.runCmd("plasma-systemmonitor", [])
},
PlasmaCore.Action {
text: i18n("Show README")
@ -150,14 +121,6 @@ PlasmoidItem {
text: i18n("Check updates")
icon.name: "system-software-update"
onTriggered: awActions.checkUpdates(true)
},
PlasmaCore.Action {
text: i18n("Report bug")
icon.name: "tools-report-bug"
onTriggered: {
bugReport.reset()
bugReport.open()
}
}
]

View File

@ -45,7 +45,6 @@ KCM.SimpleKCM {
property alias cfg_batInTooltipColor: batInTooltipColor.value
Column {
id: pageColumn
anchors.fill: parent
Label {

View File

@ -40,7 +40,6 @@ KCM.SimpleKCM {
signal needTextUpdate(string newText)
Column {
id: pageColumn
anchors.fill: parent
AWInfoLabel {}