[X2Go-Commits] [x2goclient] 01/01: Do not show empty folders in session explorer.

git-admin at x2go.org git-admin at x2go.org
Thu Mar 3 17:00:01 CET 2022


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch master
in repository x2goclient.

commit b4b8e6be754b76406ff7d074773829f96321dd75
Author: Oleksandr Shneyder <o.shneyder at phoca-gmbh.de>
Date:   Thu Mar 3 09:59:43 2022 -0600

    Do not show empty folders in session explorer.
---
 debian/changelog        |  1 +
 src/sessionexplorer.cpp | 22 +++++++++++++++++++++-
 src/sessionexplorer.h   |  1 +
 3 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/debian/changelog b/debian/changelog
index 7630105..2fed819 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -35,6 +35,7 @@ x2goclient (4.1.2.3-0x2go1) UNRELEASED; urgency=medium
     - Add special ACL for exported directories in Windows client.
     - Support for rootless X2GoKdrive sessions.
     - Fixed build with Qt5 on Windows.
+    - Do not show empty folders in session explorer.
 
   [ Ryan Schmidt ]
   * New upstream version (4.1.2.3):
diff --git a/src/sessionexplorer.cpp b/src/sessionexplorer.cpp
index ac8c1cc..d767c25 100644
--- a/src/sessionexplorer.cpp
+++ b/src/sessionexplorer.cpp
@@ -407,7 +407,7 @@ void SessionExplorer::placeButtons()
             folders[i]->hide();
             continue;
         }
-        if((folders[i]->getPath() != currentPath)||(getFolderChildren(folders[i]).length()<=0))
+        if((folders[i]->getPath() != currentPath)||(getFolderChildren(folders[i]).length()<=0) || isFolderEmpty(folders[i]))
         {
             folders[i]->hide();
             continue;
@@ -495,6 +495,26 @@ void SessionExplorer::placeButtons()
         slotLevelUp();
 }
 
+//Folder is not empty if it has sessions or not empty subfdolders
+bool SessionExplorer::isFolderEmpty(FolderButton* folder)
+{
+    QString normPath=(folder->getPath()+"/"+folder->getName()).split("/",QString::SkipEmptyParts).join("/");
+    for(int i=0; i<folders.count(); ++i)
+    {
+        if(folders[i]->getPath()==normPath)
+            if(! isFolderEmpty(folders[i]))
+                return false;
+    }
+
+    for(int i=0; i<sessions.count(); ++i)
+    {
+        if(sessions[i]->getPath()==normPath)
+            return false;
+    }
+    return true;
+}
+
+
 QStringList SessionExplorer::getFolderChildren(FolderButton* folder)
 {
     QStringList children;
diff --git a/src/sessionexplorer.h b/src/sessionexplorer.h
index 917a5de..a14ee58 100644
--- a/src/sessionexplorer.h
+++ b/src/sessionexplorer.h
@@ -108,6 +108,7 @@ private:
     void getFoldersFromConfig();
     SessionButton* findSession( const QString& id);
     void checkPath(SessionButton* s);
+    bool isFolderEmpty(FolderButton* folder);
 
 public slots:
     void slotDeleteButton ( SessionButton * bt );

--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2goclient.git


More information about the x2go-commits mailing list