aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKen Moore <ken@ixsystems.com>2016-12-02 13:47:23 -0500
committerKen Moore <ken@ixsystems.com>2016-12-02 13:47:23 -0500
commit120110d558b58fb0ca530c63a6070dad44d4cd75 (patch)
treeb8fcaa81a5acaf1bc55f7539e82f2303f2aa2562
parentAdjust the Qt-crash workaround a bit to try and avoid starting a dbus session... (diff)
downloadlumina-120110d558b58fb0ca530c63a6070dad44d4cd75.tar.gz
lumina-120110d558b58fb0ca530c63a6070dad44d4cd75.tar.bz2
lumina-120110d558b58fb0ca530c63a6070dad44d4cd75.zip
Make the start menu open faster by only loading the favorites *when the file/list changes*.
-rw-r--r--src-qt5/core/lumina-desktop/LSession.cpp7
-rw-r--r--src-qt5/core/lumina-desktop/LSession.h1
-rw-r--r--src-qt5/core/lumina-desktop/panel-plugins/systemstart/StartMenu.cpp3
3 files changed, 9 insertions, 2 deletions
diff --git a/src-qt5/core/lumina-desktop/LSession.cpp b/src-qt5/core/lumina-desktop/LSession.cpp
index 27b40aa3..0b5d9409 100644
--- a/src-qt5/core/lumina-desktop/LSession.cpp
+++ b/src-qt5/core/lumina-desktop/LSession.cpp
@@ -151,6 +151,7 @@ void LSession::setupSession(){
watcherChange( confdir+"/desktopsettings.conf" );
watcherChange( confdir+"/fluxbox-init" );
watcherChange( confdir+"/fluxbox-keys" );
+ watcherChange( confdir+"/favorites.list" );
//Try to watch the localized desktop folder too
if(QFile::exists(QDir::homePath()+"/"+tr("Desktop"))){ watcherChange( QDir::homePath()+"/"+tr("Desktop") ); }
watcherChange( QDir::homePath()+"/Desktop" );
@@ -333,9 +334,13 @@ void LSession::watcherChange(QString changed){
desktopFiles = QDir(changed).entryInfoList(QDir::NoDotAndDotDot | QDir::Files | QDir::Dirs ,QDir::Name | QDir::IgnoreCase | QDir::DirsFirst);
if(DEBUG){ qDebug() << "New Desktop Files:" << desktopFiles.length(); }
emit DesktopFilesChanged();
- }
+ }else if(changed.endsWith("favorites.list")){ emit FavoritesChanged(); }
//Now ensure this file was not removed from the watcher
if(!watcher->files().contains(changed) && !watcher->directories().contains(changed)){
+ if(!QFile::exists(changed)){
+ //Create the file really quick to ensure it can be watched
+ //TODO
+ }
watcher->addPath(changed);
}
}
diff --git a/src-qt5/core/lumina-desktop/LSession.h b/src-qt5/core/lumina-desktop/LSession.h
index d19cf70c..bd93289a 100644
--- a/src-qt5/core/lumina-desktop/LSession.h
+++ b/src-qt5/core/lumina-desktop/LSession.h
@@ -184,6 +184,7 @@ signals:
void IconThemeChanged();
void DesktopConfigChanged();
void SessionConfigChanged();
+ void FavoritesChanged();
void DesktopFilesChanged();
void WorkspaceChanged();
diff --git a/src-qt5/core/lumina-desktop/panel-plugins/systemstart/StartMenu.cpp b/src-qt5/core/lumina-desktop/panel-plugins/systemstart/StartMenu.cpp
index a34d09db..d05ba22f 100644
--- a/src-qt5/core/lumina-desktop/panel-plugins/systemstart/StartMenu.cpp
+++ b/src-qt5/core/lumina-desktop/panel-plugins/systemstart/StartMenu.cpp
@@ -24,6 +24,7 @@ StartMenu::StartMenu(QWidget *parent) : QWidget(parent), ui(new Ui::StartMenu){
searchTimer->setSingleShot(true);
connect(searchTimer, SIGNAL(timeout()), this, SLOT(startSearch()) );
connect(LSession::handle()->applicationMenu(), SIGNAL(AppMenuUpdated()), this, SLOT(UpdateApps()) );
+ connect(LSession::handle(), SIGNAL(FavoritesChanged()), this, SLOT(UpdateFavs()) );
//Need to load the last used setting of the application list
QString state = LSession::handle()->DesktopPluginSettings()->value("panelPlugs/systemstart/showcategories", "partial").toString();
if(state=="partial"){ui->check_apps_showcats->setCheckState(Qt::PartiallyChecked); }
@@ -128,7 +129,7 @@ void StartMenu::UpdateMenu(bool forceall){
if(forceall){ UpdateAll(); }
//Quick update routine before the menu is made visible
//qDebug() << "update favs";
- UpdateFavs();
+ //UpdateFavs();
//qDebug() << "check page";
if(ui->stackedWidget->currentWidget() != ui->page_main){
ui->stackedWidget->setCurrentWidget(ui->page_main); //just show the main page
bgstack15