From: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com> Date: Thu, 2 Jan 2020 08:55:37 +0000 (+0100) Subject: Added folder search for User instance, added open folder button connection X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~222^2^2~413^2~89 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=36467c1e3a6db6244bcf12b3b4151f6eaba28c9b;p=nextcloud-desktop.git Added folder search for User instance, added open folder button connection Signed-off-by: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com> --- diff --git a/src/gui/tray/UserModel.cpp b/src/gui/tray/UserModel.cpp index 225cb241e..2b89b0cc9 100644 --- a/src/gui/tray/UserModel.cpp +++ b/src/gui/tray/UserModel.cpp @@ -2,6 +2,7 @@ #include "owncloudgui.h" #include "UserModel.h" +#include #include namespace OCC { @@ -22,6 +23,20 @@ void User::setCurrentUser(const bool &isCurrent) _isCurrentUser = isCurrent; } +Folder* User::getFolder() +{ + foreach (Folder *folder, FolderMan::instance()->map()) { + if (folder->accountState() == _account.data()) { + return folder; + } + } +} + +void User::openLocalFolder() +{ + QDesktopServices::openUrl(this->getFolder()->path()); +} + QString User::name() const { // If davDisplayName is empty (can be several reasons, simplest is missing login at startup), fall back to username @@ -145,6 +160,11 @@ void UserModel::addUser(AccountStatePtr &user, const bool &isCurrent) endInsertRows(); } +Q_INVOKABLE void UserModel::openCurrentAccountLocalFolder() +{ + _users[_currentUserId].openLocalFolder(); +} + Q_INVOKABLE void UserModel::switchCurrentUser(const int &id) { _users[_currentUserId].setCurrentUser(false); diff --git a/src/gui/tray/UserModel.h b/src/gui/tray/UserModel.h index d6a3ec7c7..848798d83 100644 --- a/src/gui/tray/UserModel.h +++ b/src/gui/tray/UserModel.h @@ -7,6 +7,7 @@ #include #include "accountmanager.h" +#include "folderman.h" namespace OCC { @@ -20,8 +21,8 @@ public: bool isConnected() const; bool isCurrentUser() const; void setCurrentUser(const bool &isCurrent); - void login(); - void logout(); + Folder* getFolder(); + void openLocalFolder(); QString name() const; QString server() const; QImage avatar() const; @@ -47,6 +48,7 @@ public: QImage avatarById(const int &id); + Q_INVOKABLE void openCurrentAccountLocalFolder(); Q_INVOKABLE QImage currentUserAvatar(); Q_INVOKABLE int numUsers(); Q_INVOKABLE bool isCurrentUserConnected(); @@ -62,7 +64,6 @@ public: }; signals: - Q_INVOKABLE void openLocalFolder(); Q_INVOKABLE void login(); Q_INVOKABLE void logout(); Q_INVOKABLE void addAccount(); diff --git a/src/gui/tray/window.qml b/src/gui/tray/window.qml index b01df1cf5..803d8fbae 100644 --- a/src/gui/tray/window.qml +++ b/src/gui/tray/window.qml @@ -217,7 +217,6 @@ Window { Layout.alignment: Qt.AlignLeft verticalAlignment: Qt.AlignCenter Layout.margins: 12 - //source: "../../theme/white/caret-down.svg" source: "qrc:///client/theme/white/caret-down.svg" } } @@ -236,7 +235,6 @@ Window { Layout.preferredHeight: (trayWindowHeaderBackground.height) flat: true - //icon.source: "../../theme/white/folder.svg" icon.source: "qrc:///client/theme/white/folder.svg" icon.color: "transparent" @@ -246,6 +244,7 @@ Window { hoverEnabled: true onClicked: { + userModelBackend.openCurrentAccountLocalFolder(); } }