@@ -884,6 +884,16 @@ const QVariantList &User::groupFolders() const
884
884
return _trayFolderInfos;
885
885
}
886
886
887
+ bool User::canLogout () const
888
+ {
889
+ return !isPublicShareLink ();
890
+ }
891
+
892
+ bool User::isPublicShareLink () const
893
+ {
894
+ return _account->account ()->isPublicShareLink ();
895
+ }
896
+
887
897
void User::slotItemCompleted (const QString &folder, const SyncFileItemPtr &item)
888
898
{
889
899
auto folderInstance = FolderMan::instance ()->folder (folder);
@@ -988,17 +998,27 @@ void User::logout() const
988
998
989
999
QString User::name () const
990
1000
{
1001
+ if (isPublicShareLink ()) {
1002
+ return tr (" Public Share Link" );
1003
+ }
1004
+
991
1005
return _account->account ()->prettyName ();
992
1006
}
993
1007
994
1008
QString User::server (bool shortened) const
995
1009
{
996
- QString serverUrl = _account->account ()->url ().toString ();
1010
+ auto serverUrl = _account->account ()->url ();
1011
+
1012
+ if (isPublicShareLink ()) {
1013
+ serverUrl.setUserName ({});
1014
+ }
1015
+ QString stringServerUrl = serverUrl.toString ();
997
1016
if (shortened) {
998
- serverUrl.replace (QLatin1String (" https://" ), QLatin1String (" " ));
999
- serverUrl.replace (QLatin1String (" http://" ), QLatin1String (" " ));
1017
+ stringServerUrl.replace (QLatin1String (" https://" ), QLatin1String (" " ));
1018
+ stringServerUrl.replace (QLatin1String (" http://" ), QLatin1String (" " ));
1019
+
1000
1020
}
1001
- return serverUrl ;
1021
+ return stringServerUrl ;
1002
1022
}
1003
1023
1004
1024
UserStatus::OnlineStatus User::status () const
@@ -1509,34 +1529,51 @@ int UserModel::rowCount(const QModelIndex &parent) const
1509
1529
1510
1530
QVariant UserModel::data (const QModelIndex &index, int role) const
1511
1531
{
1512
- if (index .row () < 0 || index .row () >= _users.count ()) {
1513
- return QVariant ();
1514
- }
1515
-
1516
- if (role == NameRole) {
1517
- return _users[index .row ()]->name ();
1518
- } else if (role == ServerRole) {
1519
- return _users[index .row ()]->server ();
1520
- } else if (role == ServerHasUserStatusRole) {
1521
- return _users[index .row ()]->serverHasUserStatus ();
1522
- } else if (role == StatusIconRole) {
1523
- return _users[index .row ()]->statusIcon ();
1524
- } else if (role == StatusEmojiRole) {
1525
- return _users[index .row ()]->statusEmoji ();
1526
- } else if (role == StatusMessageRole) {
1527
- return _users[index .row ()]->statusMessage ();
1528
- } else if (role == DesktopNotificationsAllowedRole) {
1529
- return _users[index .row ()]->isDesktopNotificationsAllowed ();
1530
- } else if (role == AvatarRole) {
1531
- return _users[index .row ()]->avatarUrl ();
1532
- } else if (role == IsCurrentUserRole) {
1533
- return _users[index .row ()]->isCurrentUser ();
1534
- } else if (role == IsConnectedRole) {
1535
- return _users[index .row ()]->isConnected ();
1536
- } else if (role == IdRole) {
1537
- return index .row ();
1538
- }
1539
- return QVariant ();
1532
+ auto result = QVariant{};
1533
+ switch (role)
1534
+ {
1535
+ case NameRole:
1536
+ result = _users[index .row ()]->name ();
1537
+ break ;
1538
+ case ServerRole:
1539
+ result = _users[index .row ()]->server ();
1540
+ break ;
1541
+ case ServerHasUserStatusRole:
1542
+ result = _users[index .row ()]->serverHasUserStatus ();
1543
+ break ;
1544
+ case StatusIconRole:
1545
+ result = _users[index .row ()]->statusIcon ();
1546
+ break ;
1547
+ case StatusEmojiRole:
1548
+ result = _users[index .row ()]->statusEmoji ();
1549
+ break ;
1550
+ case StatusMessageRole:
1551
+ result = _users[index .row ()]->statusMessage ();
1552
+ break ;
1553
+ case DesktopNotificationsAllowedRole:
1554
+ result = _users[index .row ()]->isDesktopNotificationsAllowed ();
1555
+ break ;
1556
+ case AvatarRole:
1557
+ result = _users[index .row ()]->avatarUrl ();
1558
+ break ;
1559
+ case IsCurrentUserRole:
1560
+ result = _users[index .row ()]->isCurrentUser ();
1561
+ break ;
1562
+ case IsConnectedRole:
1563
+ result = _users[index .row ()]->isConnected ();
1564
+ break ;
1565
+ case IdRole:
1566
+ result = index .row ();
1567
+ break ;
1568
+ case CanLogoutRole:
1569
+ result = _users[index .row ()]->canLogout ();
1570
+ break ;
1571
+ case RemoveAccountTextRole:
1572
+ result = _users[index .row ()]->isPublicShareLink () ? tr (" Leave share" ) : tr (" Remove account" );
1573
+ break ;
1574
+ }
1575
+
1576
+ return result;
1540
1577
}
1541
1578
1542
1579
QHash<int , QByteArray> UserModel::roleNames () const
@@ -1545,6 +1582,8 @@ QHash<int, QByteArray> UserModel::roleNames() const
1545
1582
roles[NameRole] = " name" ;
1546
1583
roles[ServerRole] = " server" ;
1547
1584
roles[ServerHasUserStatusRole] = " serverHasUserStatus" ;
1585
+ roles[CanLogoutRole] = " canLogout" ;
1586
+ roles[RemoveAccountTextRole] = " removeAccountText" ;
1548
1587
roles[StatusIconRole] = " statusIcon" ;
1549
1588
roles[StatusEmojiRole] = " statusEmoji" ;
1550
1589
roles[StatusMessageRole] = " statusMessage" ;
0 commit comments