Skip to content

Commit

Permalink
Fix bugs with setting away user state and handling of default/unset u…
Browse files Browse the repository at this point in the history
…ser status

Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
  • Loading branch information
claucambra committed Aug 5, 2022
1 parent 227e0ed commit 5a69fc2
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 4 deletions.
1 change: 1 addition & 0 deletions src/gui/userstatusselectormodel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -330,6 +330,7 @@ QVector<UserStatus> UserStatusSelectorModel::predefinedStatuses() const

void UserStatusSelectorModel::setPredefinedStatus(const UserStatus &predefinedStatus)
{
_userStatus.setState(UserStatus::OnlineStatus::Online);
_userStatus.setMessagePredefined(true);
_userStatus.setId(predefinedStatus.id());
_userStatus.setMessage(predefinedStatus.message());
Expand Down
5 changes: 3 additions & 2 deletions src/libsync/ocsuserstatusconnector.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ QString onlineStatusToString(OCC::UserStatus::OnlineStatus status)
case OCC::UserStatus::OnlineStatus::DoNotDisturb:
return QStringLiteral("dnd");
case OCC::UserStatus::OnlineStatus::Away:
return QStringLiteral("offline");
return QStringLiteral("away");
case OCC::UserStatus::OnlineStatus::Offline:
return QStringLiteral("offline");
case OCC::UserStatus::OnlineStatus::Invisible:
Expand Down Expand Up @@ -402,7 +402,7 @@ void OcsUserStatusConnector::setUserStatus(const UserStatus &userStatus)
return;
}

if (userStatus.state() != _userStatus.state()) {
if (userStatus.state() != _userStatus.state() && userStatus.state() != UserStatus::OnlineStatus::Unknown) {
setUserStatusOnlineStatus(userStatus.state());
}
setUserStatusMessage(userStatus);
Expand Down Expand Up @@ -473,3 +473,4 @@ void OcsUserStatusConnector::onMessageCleared(const QJsonDocument &json, int sta
emit messageCleared();
}
}

4 changes: 3 additions & 1 deletion src/libsync/userstatusconnector.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ QString UserStatus::icon() const
return _icon;
}

auto UserStatus::state() const -> OnlineStatus
UserStatus::OnlineStatus UserStatus::state() const
{
return _state;
}
Expand All @@ -67,6 +67,7 @@ QUrl UserStatus::stateIcon() const

case UserStatus::OnlineStatus::Invisible:
case UserStatus::OnlineStatus::Offline:
case UserStatus::OnlineStatus::Unknown:
return Theme::instance()->statusInvisibleImageSource();

case UserStatus::OnlineStatus::Online:
Expand Down Expand Up @@ -119,3 +120,4 @@ UserStatusConnector::UserStatusConnector(QObject *parent)

UserStatusConnector::~UserStatusConnector() = default;
}

4 changes: 3 additions & 1 deletion src/libsync/userstatusconnector.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ class OWNCLOUDSYNC_EXPORT UserStatus

public:
enum class OnlineStatus : quint8 {
Unknown,
Online,
DoNotDisturb,
Away,
Expand Down Expand Up @@ -93,7 +94,7 @@ class OWNCLOUDSYNC_EXPORT UserStatus
QString _id;
QString _message;
QString _icon;
OnlineStatus _state = OnlineStatus::Online;
OnlineStatus _state = OnlineStatus::Unknown;
bool _messagePredefined;
Optional<ClearAt> _clearAt;
};
Expand Down Expand Up @@ -139,3 +140,4 @@ class OWNCLOUDSYNC_EXPORT UserStatusConnector : public QObject

Q_DECLARE_METATYPE(OCC::UserStatusConnector *)
Q_DECLARE_METATYPE(OCC::UserStatus)

0 comments on commit 5a69fc2

Please sign in to comment.