Use multithreading for loading the element collection

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@4542 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
blacksun
2016-06-06 18:34:34 +00:00
parent e6c2ed8d5f
commit 2ec0278213
6 changed files with 36 additions and 24 deletions

View File

@@ -35,6 +35,7 @@
#include <QDesktopServices>
#include <QUrl>
#include <QTimer>
#include <QtConcurrent>
/**
* @brief ElementsCollectionWidget::ElementsCollectionWidget
@@ -447,12 +448,11 @@ void ElementsCollectionWidget::reload()
new_model->addProject(project, false);
QList <ElementCollectionItem *> list = new_model->items();
m_progress_bar->setMaximum(list.size());
m_progress_bar->setValue(0);
foreach (ElementCollectionItem *item, new_model->items())
{
item->setUpData();
m_progress_bar->setValue(m_progress_bar->value() + 1);
QFuture<void> futur = QtConcurrent::map(list, setUpData);
m_progress_bar->setMinimum(futur.progressMinimum());
m_progress_bar->setMaximum(futur.progressMaximum());
while (futur.isRunning()) {
m_progress_bar->setValue(futur.progressValue());
}
m_tree_view->setModel(new_model);