diff options
author | Ken Moore <moorekou@gmail.com> | 2015-08-28 13:00:19 -0400 |
---|---|---|
committer | Ken Moore <moorekou@gmail.com> | 2015-08-28 13:00:19 -0400 |
commit | b85aad91e22a02f9ea14cd2009c718f8c64a7ef9 (patch) | |
tree | 7b642706c3c77d53daea462f09d5730eca9b900e /lumina-fm/widgets | |
parent | Make the processEvents() call only happen every 10 items loaded - this makes ... (diff) | |
download | lumina-b85aad91e22a02f9ea14cd2009c718f8c64a7ef9.tar.gz lumina-b85aad91e22a02f9ea14cd2009c718f8c64a7ef9.tar.bz2 lumina-b85aad91e22a02f9ea14cd2009c718f8c64a7ef9.zip |
Another minor increase in speed from the dir loader: only processEvents every 20 items, but be sure to processEvents after clearing the widget before the item loop is started (to ensure it is blanked out right away).
Diffstat (limited to 'lumina-fm/widgets')
-rw-r--r-- | lumina-fm/widgets/DirWidget.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lumina-fm/widgets/DirWidget.cpp b/lumina-fm/widgets/DirWidget.cpp index 8d41d4c0..b4a6ca78 100644 --- a/lumina-fm/widgets/DirWidget.cpp +++ b/lumina-fm/widgets/DirWidget.cpp @@ -21,7 +21,9 @@ #include "../ScrollDialog.h" +#ifndef DEBUG #define DEBUG 0 +#endif DirWidget::DirWidget(QString objID, QWidget *parent) : QWidget(parent), ui(new Ui::DirWidget){ ui->setupUi(this); //load the designer file @@ -236,6 +238,7 @@ void DirWidget::LoadDir(QString dir, QList<LFileInfo> list){ if(lastbasedir != normalbasedir){ if(showDetails){ treeWidget->clear(); } else{ listWidget->clear(); } + QApplication::processEvents(); //make sure it is cleared right away }else{ //Need to be smarter about which items need to be removed // - compare the old/new lists and remove any items not in the new listing (new items taken care of below) @@ -248,7 +251,7 @@ void DirWidget::LoadDir(QString dir, QList<LFileInfo> list){ i--; } } - QApplication::processEvents(); + QApplication::processEvents(); //make sure the scrollbar is up to date after removals scrollpercent = treeWidget->verticalScrollBar()->value()/( (double) treeWidget->verticalScrollBar()->maximum()); }else{ for(int i=0; i<listWidget->count(); i++){ @@ -257,6 +260,7 @@ void DirWidget::LoadDir(QString dir, QList<LFileInfo> list){ i--; } } + QApplication::processEvents(); //make sure the scrollbar is up to date after removals scrollpercent = listWidget->horizontalScrollBar()->value()/( (double) listWidget->horizontalScrollBar()->maximum()); } } //end check for CDIR reload @@ -350,7 +354,7 @@ void DirWidget::LoadDir(QString dir, QList<LFileInfo> list){ listWidget->scrollToItem(it); } } - if(i%10==0){ QApplication::processEvents(); }//keep the UI snappy while loading a directory + if(i%20==0){ QApplication::processEvents(); }//keep the UI snappy while loading a directory if(DEBUG){ qDebug() << " - item finished:" << i << time.elapsed(); } } if(DEBUG){ qDebug() << "Done with item loop:" << time.elapsed() << list.length(); } |