Skip to content

Commit

Permalink
FancyMenu: no need to store favorites il LXQtFancyMenuWindow
Browse files Browse the repository at this point in the history
  • Loading branch information
gfgit committed Jan 27, 2024
1 parent 4634f3f commit 52a42d5
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 10 deletions.
21 changes: 21 additions & 0 deletions plugin-fancymenu/lxqtfancymenuappmap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ void LXQtFancyMenuAppMap::setFavorites(const QStringList &favorites)
clearFavorites();

Category& favoritesCatRef = mCategories[0];
favoritesCatRef.apps.reserve(favorites.size());

for(const QString& desktopFile : favorites)
{
Expand All @@ -122,6 +123,26 @@ void LXQtFancyMenuAppMap::setFavorites(const QStringList &favorites)
continue;
favoritesCatRef.apps.append(item);
}

favoritesCatRef.apps.squeeze();
}

QStringList LXQtFancyMenuAppMap::getFavorites() const
{
const Category& favoritesCatRef = mCategories[0];

QStringList favorites;
favorites.reserve(favoritesCatRef.apps.size());

for(const Category::Item& item : favoritesCatRef.apps)
{
if(item.appItem)
{
favorites.append(item.appItem->desktopFile);
}
}

return favorites;
}

int LXQtFancyMenuAppMap::getFavoriteIndex(const QString &desktopFile) const
Expand Down
4 changes: 4 additions & 0 deletions plugin-fancymenu/lxqtfancymenuappmap.h
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,12 @@ class LXQtFancyMenuAppMap
bool rebuildModel(const XdgMenu &menu);

void setFavorites(const QStringList& favorites);
QStringList getFavorites() const;

int getFavoriteIndex(const QString& desktopFile) const;

inline int getFavoriteCount() const { return mCategories[0].apps.count(); }

inline bool isFavorite(const QString& desktopFile) const
{
return getFavoriteIndex(desktopFile) != -1;
Expand Down
12 changes: 4 additions & 8 deletions plugin-fancymenu/lxqtfancymenuwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -411,7 +411,7 @@ void LXQtFancyMenuWindow::setCurrentCategory(int cat)
setSearchQuery(QString());

// show or hide the label for empty Favorites
if (cat == LXQtFancyMenuAppMap::FavoritesCategory && mFavorites.isEmpty())
if (cat == LXQtFancyMenuAppMap::FavoritesCategory && mAppMap->getFavoriteCount() == 0)
{
showFavoritesLabel = true;
}
Expand Down Expand Up @@ -579,8 +579,6 @@ void LXQtFancyMenuWindow::runCommandHelper(const QString &cmd)

void LXQtFancyMenuWindow::addToFavorites(const QString &desktopFile)
{
mFavorites.append(desktopFile);

mAppModel->reloadAppMap(false);
mAppMap->addToFavorites(desktopFile);
mAppModel->reloadAppMap(true);
Expand All @@ -590,12 +588,11 @@ void LXQtFancyMenuWindow::addToFavorites(const QString &desktopFile)

void LXQtFancyMenuWindow::removeFromFavorites(const QString &desktopFile)
{
mFavorites.removeOne(desktopFile);
mAppModel->reloadAppMap(false);
mAppMap->removeFromFavorites(desktopFile);
mAppModel->reloadAppMap(true);

if (mFavorites.isEmpty())
if (mAppMap->getFavoriteCount() == 0)
{
auto idx = mCategoryView->currentIndex();
if (idx.row() == LXQtFancyMenuAppMap::FavoritesCategory
Expand Down Expand Up @@ -669,14 +666,13 @@ void LXQtFancyMenuWindow::setCustomFont(const QFont &f)

QStringList LXQtFancyMenuWindow::favorites() const
{
return mFavorites;
return mAppMap->getFavorites();
}

void LXQtFancyMenuWindow::setFavorites(const QStringList &newFavorites)
{
mFavorites = newFavorites;
mAppModel->reloadAppMap(false);
mAppMap->setFavorites(mFavorites);
mAppMap->setFavorites(newFavorites);
mAppModel->reloadAppMap(true);
}

Expand Down
2 changes: 0 additions & 2 deletions plugin-fancymenu/lxqtfancymenuwindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -127,8 +127,6 @@ private slots:
static const int APP_VIEW_STRETCH = 3;
static const int CAT_VIEW_STRETCH = 2;

QStringList mFavorites;

QVBoxLayout *mMainLayout;
QHBoxLayout *mButtonsLayout;
QHBoxLayout *mViewLayout;
Expand Down

0 comments on commit 52a42d5

Please sign in to comment.