mirror of
https://github.com/nextcloud/desktop.git
synced 2024-11-29 12:19:03 +03:00
Merge pull request #2058 from nextcloud/sbeyer-fix-nosync-crash
Fix/improve use case without local folder
This commit is contained in:
commit
6420725fb9
4 changed files with 15 additions and 8 deletions
|
@ -96,8 +96,7 @@ QVariant ActivityListModel::data(const QModelIndex &index, int role) const
|
|||
relPath.prepend(folder->remotePath());
|
||||
list = FolderMan::instance()->findFileInLocalFolders(relPath, ast->account());
|
||||
if (list.count() > 0) {
|
||||
QString path = "file:///" + QString(list.at(0));
|
||||
return QUrl(path);
|
||||
return QUrl::fromLocalFile(list.at(0));
|
||||
}
|
||||
// File does not exist anymore? Let's try to open its path
|
||||
if (QFileInfo(relPath).exists()) {
|
||||
|
|
|
@ -417,12 +417,11 @@ ActivityListModel *User::getActivityModel()
|
|||
|
||||
void User::openLocalFolder()
|
||||
{
|
||||
#ifdef Q_OS_WIN
|
||||
QString path = "file:///" + this->getFolder()->path();
|
||||
#else
|
||||
QString path = "file://" + this->getFolder()->path();
|
||||
#endif
|
||||
QDesktopServices::openUrl(path);
|
||||
const auto folder = getFolder();
|
||||
|
||||
if (folder != nullptr) {
|
||||
QDesktopServices::openUrl(QUrl::fromLocalFile(folder->path()));
|
||||
}
|
||||
}
|
||||
|
||||
void User::login() const
|
||||
|
@ -764,6 +763,11 @@ bool UserModel::currentUserHasActivities()
|
|||
return _users[currentUserIndex()]->hasActivities();
|
||||
}
|
||||
|
||||
bool UserModel::currentUserHasLocalFolder()
|
||||
{
|
||||
return _users[currentUserIndex()]->getFolder() != nullptr;
|
||||
}
|
||||
|
||||
void UserModel::fetchCurrentActivityModel()
|
||||
{
|
||||
_users[currentUserId()]->slotRefresh();
|
||||
|
|
|
@ -101,6 +101,7 @@ public:
|
|||
Q_INVOKABLE QString currentUserName();
|
||||
Q_INVOKABLE QString currentUserServer();
|
||||
Q_INVOKABLE bool currentUserHasActivities();
|
||||
Q_INVOKABLE bool currentUserHasLocalFolder();
|
||||
Q_INVOKABLE bool currentServerHasTalk();
|
||||
Q_INVOKABLE int currentUserId();
|
||||
Q_INVOKABLE bool isUserConnected(const int &id);
|
||||
|
|
|
@ -30,6 +30,7 @@ Window {
|
|||
currentAccountAvatar.source = "image://avatars/currentUser"
|
||||
currentAccountUser.text = userModelBackend.currentUserName();
|
||||
currentAccountServer.text = userModelBackend.currentUserServer();
|
||||
openLocalFolderButton.visible = userModelBackend.currentUserHasLocalFolder();
|
||||
trayWindowTalkButton.visible = userModelBackend.currentServerHasTalk() ? true : false;
|
||||
currentAccountStateIndicator.source = ""
|
||||
currentAccountStateIndicator.source = userModelBackend.isUserConnected(userModelBackend.currentUserId()) ? "qrc:///client/theme/colored/state-ok.svg" : "qrc:///client/theme/colored/state-offline.svg"
|
||||
|
@ -52,6 +53,7 @@ Window {
|
|||
}
|
||||
onNewUserSelected: {
|
||||
accountMenu.close();
|
||||
openLocalFolderButton.visible = userModelBackend.currentUserHasLocalFolder();
|
||||
trayWindowTalkButton.visible = userModelBackend.currentServerHasTalk() ? true : false;
|
||||
}
|
||||
}
|
||||
|
@ -360,6 +362,7 @@ Window {
|
|||
Layout.preferredWidth: Style.trayWindowHeaderHeight
|
||||
Layout.preferredHeight: Style.trayWindowHeaderHeight
|
||||
flat: true
|
||||
visible: userModelBackend.currentUserHasLocalFolder()
|
||||
|
||||
icon.source: "qrc:///client/theme/white/folder.svg"
|
||||
icon.width: Style.headerButtonIconSize
|
||||
|
|
Loading…
Reference in a new issue