]> dgit.raspbian.org Git - nextcloud-desktop.git/commitdiff
Added folder search for User instance, added open folder button connection
authorDominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
Thu, 2 Jan 2020 08:55:37 +0000 (09:55 +0100)
committerDominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
Thu, 2 Jan 2020 08:55:37 +0000 (09:55 +0100)
Signed-off-by: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
src/gui/tray/UserModel.cpp
src/gui/tray/UserModel.h
src/gui/tray/window.qml

index 225cb241e0ec2ec1084a2520169c19ed1bd3f464..2b89b0cc93cd56557c1882ba4ed6d3db2714eba3 100644 (file)
@@ -2,6 +2,7 @@
 #include "owncloudgui.h"
 #include "UserModel.h"
 
+#include <QDesktopServices>
 #include <QIcon>
 
 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);
index d6a3ec7c704b7c0b8782f43800115435f0f93374..848798d83bebeed3d7c5be1ce95625950fbccedc 100644 (file)
@@ -7,6 +7,7 @@
 #include <QQuickImageProvider>
 
 #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();
index b01df1cf585e6b2acdbbd061f1df75f6f594f07a..803d8fbae72646f14bc2a621612b20b7d1f35b67 100644 (file)
@@ -217,7 +217,6 @@ Window {
                             Layout.alignment: Qt.AlignLeft\r
                             verticalAlignment: Qt.AlignCenter\r
                             Layout.margins: 12\r
-                            //source: "../../theme/white/caret-down.svg"\r
                             source: "qrc:///client/theme/white/caret-down.svg"\r
                         }\r
                     }\r
@@ -236,7 +235,6 @@ Window {
                     Layout.preferredHeight: (trayWindowHeaderBackground.height)\r
                     flat: true\r
 \r
-                    //icon.source: "../../theme/white/folder.svg"\r
                     icon.source: "qrc:///client/theme/white/folder.svg"\r
                     icon.color: "transparent"\r
 \r
@@ -246,6 +244,7 @@ Window {
                         hoverEnabled: true\r
                         onClicked:\r
                         {\r
+                            userModelBackend.openCurrentAccountLocalFolder();\r
                         }\r
                     }\r
 \r