[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