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@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