Merge pull request #8049 from nextcloud/backport/8045/stable-3.16

[stable-3.16] explicitly set colours for header items
This commit is contained in:
Matthieu Gallien 2025-03-19 14:10:39 +01:00 committed by GitHub
commit 445b465b36
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 20 additions and 4 deletions

View File

@ -162,9 +162,11 @@ Button {
id: currentAccountStatusIndicatorBackground
visible: UserModel.currentUser && UserModel.currentUser.isConnected
&& UserModel.currentUser.serverHasUserStatus
&& UserModel.currentUser.status !== UserStatus.Invisible
&& UserModel.currentUser.status !== UserStatus.Offline
width: Style.accountAvatarStateIndicatorSize + + Style.trayFolderStatusIndicatorSizeOffset
height: width
color: root.parentBackgroundColor
color: "white"
anchors.bottom: currentAccountAvatar.bottom
anchors.right: currentAccountAvatar.right
radius: width * Style.trayFolderStatusIndicatorRadiusFactor
@ -174,6 +176,8 @@ Button {
id: currentAccountStatusIndicator
visible: UserModel.currentUser && UserModel.currentUser.isConnected
&& UserModel.currentUser.serverHasUserStatus
&& UserModel.currentUser.status !== UserStatus.Invisible
&& UserModel.currentUser.status !== UserStatus.Offline
source: UserModel.currentUser ? UserModel.currentUser.statusIcon : ""
cache: false
x: currentAccountStatusIndicatorBackground.x + 1
@ -198,6 +202,7 @@ Button {
id: currentAccountUser
Layout.alignment: Qt.AlignLeft | Qt.AlignBottom
width: Style.currentAccountLabelWidth
color: Style.currentUserHeaderTextColor
text: UserModel.currentUser ? UserModel.currentUser.name : ""
elide: Text.ElideRight
@ -209,6 +214,7 @@ Button {
id: currentAccountServer
Layout.alignment: Qt.AlignLeft | Qt.AlignBottom
width: Style.currentAccountLabelWidth
color: Style.currentUserHeaderTextColor
text: UserModel.currentUser ? UserModel.currentUser.server : ""
elide: Text.ElideRight
visible: UserModel.numUsers() > 1
@ -225,6 +231,7 @@ Button {
id: emoji
visible: UserModel.currentUser && UserModel.currentUser.statusEmoji !== ""
width: Style.userStatusEmojiSize
color: Style.currentUserHeaderTextColor
text: UserModel.currentUser ? UserModel.currentUser.statusEmoji : ""
}
EnforcedPlainTextLabel {
@ -233,6 +240,7 @@ Button {
Layout.fillWidth: true
visible: UserModel.currentUser && UserModel.currentUser.statusMessage !== ""
width: Style.currentAccountLabelWidth
color: Style.currentUserHeaderTextColor
text: UserModel.currentUser && UserModel.currentUser.statusMessage !== ""
? UserModel.currentUser.statusMessage
: UserModel.currentUser ? UserModel.currentUser.server : ""

View File

@ -32,6 +32,7 @@ Button {
icon.width: Style.headerButtonIconSize
icon.height: Style.headerButtonIconSize
icon.color: "transparent"
Layout.alignment: Qt.AlignRight
Layout.preferredWidth: Style.trayWindowHeaderHeight

View File

@ -50,9 +50,10 @@ AbstractButton {
visible: model.isConnected && model.serverHasUserStatus
width: accountStatusIndicator.sourceSize.width + 2
height: width
color: "white"
anchors.bottom: accountAvatar.bottom
anchors.right: accountAvatar.right
radius: width * Style.trayFolderStatusIndicatorRadiusFactor
radius: width * Style.trayFolderStatusIndicatorRadiusFactor
}
Image {

View File

@ -1349,8 +1349,9 @@ void UserModel::addUser(AccountStatePtr &user, const bool &isCurrent)
});
connect(u, &User::statusChanged, this, [this, row] {
emit dataChanged(index(row, 0), index(row, 0), {UserModel::StatusIconRole,
UserModel::StatusEmojiRole,
emit dataChanged(index(row, 0), index(row, 0), {UserModel::StatusRole,
UserModel::StatusIconRole,
UserModel::StatusEmojiRole,
UserModel::StatusMessageRole});
});
@ -1542,6 +1543,8 @@ QVariant UserModel::data(const QModelIndex &index, int role) const
return _users[index.row()]->server();
} else if (role == ServerHasUserStatusRole) {
return _users[index.row()]->serverHasUserStatus();
} else if (role == StatusRole) {
return QVariant::fromValue(_users[index.row()]->status());
} else if (role == StatusIconRole) {
return _users[index.row()]->statusIcon();
} else if (role == StatusEmojiRole) {
@ -1568,6 +1571,7 @@ QHash<int, QByteArray> UserModel::roleNames() const
roles[NameRole] = "name";
roles[ServerRole] = "server";
roles[ServerHasUserStatusRole] = "serverHasUserStatus";
roles[StatusRole] = "status";
roles[StatusIconRole] = "statusIcon";
roles[StatusEmojiRole] = "statusEmoji";
roles[StatusMessageRole] = "statusMessage";

View File

@ -51,6 +51,7 @@ class User : public QObject
Q_PROPERTY(QColor headerTextColor READ headerTextColor NOTIFY headerTextColorChanged)
Q_PROPERTY(QColor accentColor READ accentColor NOTIFY accentColorChanged)
Q_PROPERTY(bool serverHasUserStatus READ serverHasUserStatus CONSTANT)
Q_PROPERTY(UserStatus::OnlineStatus status READ status NOTIFY statusChanged)
Q_PROPERTY(QUrl statusIcon READ statusIcon NOTIFY statusChanged)
Q_PROPERTY(QString statusEmoji READ statusEmoji NOTIFY statusChanged)
Q_PROPERTY(QString statusMessage READ statusMessage NOTIFY statusChanged)
@ -238,6 +239,7 @@ public:
NameRole = Qt::UserRole + 1,
ServerRole,
ServerHasUserStatusRole,
StatusRole,
StatusIconRole,
StatusEmojiRole,
StatusMessageRole,