Improve the error box QML component

Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
This commit is contained in:
Claudio Cambra 2022-09-26 13:12:59 +02:00
parent 0d8a70eec7
commit 9781e896a1
4 changed files with 64 additions and 46 deletions

View File

@ -1,34 +1,80 @@
import QtQuick 2.15 import QtQuick 2.15
import QtQuick.Layouts 1.15
import QtQuick.Controls 2.15 import QtQuick.Controls 2.15
import Style 1.0 import Style 1.0
Item { Item {
id: errorBox id: errorBox
property var text: ""
property color color: Style.errorBoxTextColor signal closeButtonClicked
property color backgroundColor: Style.errorBoxBackgroundColor
property color borderColor: Style.errorBoxBorderColor
implicitHeight: errorMessage.implicitHeight + 2 * 8 property string text: ""
property color backgroundColor: Style.errorBoxBackgroundColor
property bool showCloseButton: false
implicitHeight: errorMessageLayout.implicitHeight + (2 * Style.standardSpacing)
Rectangle {
id: solidStripe
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.left: parent.left
width: Style.errorBoxStripeWidth
color: errorBox.backgroundColor
}
Rectangle { Rectangle {
anchors.fill: parent anchors.fill: parent
color: errorBox.backgroundColor color: errorBox.backgroundColor
border.color: errorBox.borderColor opacity: 0.2
} }
Label { GridLayout {
id: errorMessage id: errorMessageLayout
anchors.fill: parent anchors.fill: parent
anchors.margins: 8 anchors.margins: Style.standardSpacing
width: parent.width anchors.leftMargin: Style.standardSpacing + solidStripe.width
color: errorBox.color
wrapMode: Text.WordWrap columns: 2
text: errorBox.text
textFormat: Text.PlainText Label {
Layout.fillWidth: true
color: Style.ncTextColor
font.bold: true
text: qsTr("Error")
visible: errorBox.showCloseButton
}
Button {
Layout.preferredWidth: Style.iconButtonWidth
Layout.preferredHeight: Style.iconButtonWidth
background: null
icon.color: Style.ncTextColor
icon.source: "qrc:///client/theme/close.svg"
visible: errorBox.showCloseButton
enabled: visible
onClicked: errorBox.closeButtonClicked()
}
Label {
id: errorMessage
Layout.fillWidth: true
Layout.fillHeight: true
Layout.columnSpan: 2
color: Style.ncTextColor
wrapMode: Text.WordWrap
text: errorBox.text
textFormat: Text.PlainText
}
} }
} }

View File

@ -887,21 +887,6 @@ QColor Theme::defaultColor()
return QColor{NEXTCLOUD_BACKGROUND_COLOR}; return QColor{NEXTCLOUD_BACKGROUND_COLOR};
} }
QColor Theme::errorBoxTextColor() const
{
return QColor{"white"};
}
QColor Theme::errorBoxBackgroundColor() const
{
return QColor{"red"};
}
QColor Theme::errorBoxBorderColor() const
{
return QColor{"black"};
}
void Theme::connectToPaletteSignal() void Theme::connectToPaletteSignal()
{ {
if (!_paletteSignalsConnected) { if (!_paletteSignalsConnected) {

View File

@ -64,9 +64,6 @@ class OWNCLOUDSYNC_EXPORT Theme : public QObject
Q_PROPERTY(QString updateCheckUrl READ updateCheckUrl CONSTANT) Q_PROPERTY(QString updateCheckUrl READ updateCheckUrl CONSTANT)
Q_PROPERTY(QColor defaultColor READ defaultColor CONSTANT) Q_PROPERTY(QColor defaultColor READ defaultColor CONSTANT)
Q_PROPERTY(QColor errorBoxTextColor READ errorBoxTextColor CONSTANT)
Q_PROPERTY(QColor errorBoxBackgroundColor READ errorBoxBackgroundColor CONSTANT)
Q_PROPERTY(QColor errorBoxBorderColor READ errorBoxBorderColor CONSTANT)
Q_PROPERTY(QPalette systemPalette READ systemPalette NOTIFY systemPaletteChanged) Q_PROPERTY(QPalette systemPalette READ systemPalette NOTIFY systemPaletteChanged)
Q_PROPERTY(bool darkMode READ darkMode NOTIFY darkModeChanged) Q_PROPERTY(bool darkMode READ darkMode NOTIFY darkModeChanged)
@ -583,15 +580,6 @@ public:
static QColor defaultColor(); static QColor defaultColor();
/** @return color for the ErrorBox text. */
virtual QColor errorBoxTextColor() const;
/** @return color for the ErrorBox background. */
virtual QColor errorBoxBackgroundColor() const;
/** @return color for the ErrorBox border. */
virtual QColor errorBoxBorderColor() const;
static constexpr const char *themePrefix = ":/client/theme/"; static constexpr const char *themePrefix = ":/client/theme/";
QPalette systemPalette(); QPalette systemPalette();

View File

@ -19,9 +19,8 @@ QtObject {
readonly property color buttonBackgroundColor: Theme.systemPalette.button readonly property color buttonBackgroundColor: Theme.systemPalette.button
// ErrorBox colors // ErrorBox colors
readonly property color errorBoxTextColor: Theme.errorBoxTextColor readonly property color errorBoxBackgroundColor: Qt.rgba(0.89, 0.18, 0.18, 1)
readonly property color errorBoxBackgroundColor: Theme.errorBoxBackgroundColor readonly property int errorBoxStripeWidth: 4
readonly property color errorBoxBorderColor: Theme.errorBoxBorderColor
// Fonts // Fonts
// We are using pixel size because this is cross platform comparable, point size isn't // We are using pixel size because this is cross platform comparable, point size isn't