mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-18 05:00:33 +01:00
Add option to switch between Qtxml or pugi xml. Add dialog to display the elpsaed time of collection loading.
This commit is contained in:
@@ -26,6 +26,7 @@
|
||||
|
||||
#include <QtConcurrent>
|
||||
#include <QFutureWatcher>
|
||||
#include <QMessageBox>
|
||||
|
||||
/**
|
||||
* @brief ElementsCollectionModel::ElementsCollectionModel
|
||||
@@ -149,7 +150,7 @@ bool ElementsCollectionModel::canDropMimeData(const QMimeData *data, Qt::DropAct
|
||||
*/
|
||||
bool ElementsCollectionModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent)
|
||||
{
|
||||
Q_UNUSED(action);
|
||||
Q_UNUSED(action)
|
||||
|
||||
QStandardItem *qsi = itemFromIndex(parent.child(row, column));
|
||||
if (!qsi)
|
||||
@@ -242,14 +243,16 @@ void ElementsCollectionModel::loadCollections(bool common_collection, bool custo
|
||||
list.append(projectItems(project));
|
||||
}
|
||||
|
||||
QFutureWatcher<void> watcher;
|
||||
|
||||
QTime t;
|
||||
t.start();
|
||||
QFuture<void> futur = QtConcurrent::map(list, setUpData);
|
||||
watcher.setFuture(futur);
|
||||
emit loadingMaxValue(futur.progressMaximum());
|
||||
while (futur.isRunning()) {
|
||||
emit loadingProgressValue(futur.progressValue());
|
||||
}
|
||||
int ms = t.elapsed();
|
||||
|
||||
QMessageBox::about(nullptr, tr("Chargement collection d'élément"), tr("Le chargement de la collection d'éléments à été éffectué en %1 ms").arg(ms));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/*
|
||||
/*
|
||||
Copyright 2006-2019 The QElectroTech Team
|
||||
This file is part of QElectroTech.
|
||||
|
||||
@@ -495,7 +495,14 @@ NamesList ElementsLocation::nameList()
|
||||
NamesList nl;
|
||||
|
||||
if (isElement())
|
||||
nl.fromXml(pugiXml());
|
||||
{
|
||||
QSettings set;
|
||||
if (set.value("use_pugixml").toBool()) {
|
||||
nl.fromXml(pugiXml());
|
||||
} else {
|
||||
nl.fromXml(xml());
|
||||
}
|
||||
}
|
||||
|
||||
if (isDirectory())
|
||||
{
|
||||
@@ -666,24 +673,28 @@ bool ElementsLocation::setXml(const QDomDocument &xml_document) const
|
||||
*/
|
||||
QUuid ElementsLocation::uuid() const
|
||||
{
|
||||
// //Get the uuid of element
|
||||
// QList<QDomElement> list_ = QET::findInDomElement(xml(), "uuid");
|
||||
|
||||
// if (!list_.isEmpty())
|
||||
// return QUuid(list_.first().attribute("uuid"));
|
||||
|
||||
// return QUuid();
|
||||
//Get the uuid of element
|
||||
|
||||
if (!isElement()) {
|
||||
return QUuid();
|
||||
}
|
||||
|
||||
pugi::xml_node uuid_node = pugiXml().document_element().child("uuid");
|
||||
if (uuid_node.empty()) {
|
||||
return QUuid();
|
||||
QSettings set;
|
||||
if(set.value("use_pugixml").toBool())
|
||||
{
|
||||
pugi::xml_node uuid_node = pugiXml().document_element().child("uuid");
|
||||
if (uuid_node.empty()) {
|
||||
return QUuid();
|
||||
}
|
||||
return QUuid(uuid_node.attribute("uuid").as_string());
|
||||
}
|
||||
return QUuid(uuid_node.attribute("uuid").as_string());
|
||||
|
||||
//Get the uuid of element
|
||||
QList<QDomElement> list_ = QET::findInDomElement(xml(), "uuid");
|
||||
|
||||
if (!list_.isEmpty())
|
||||
return QUuid(list_.first().attribute("uuid"));
|
||||
|
||||
return QUuid();
|
||||
//Get the uuid of element
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -714,8 +725,14 @@ QIcon ElementsLocation::icon() const
|
||||
QString ElementsLocation::name() const
|
||||
{
|
||||
NamesList nl;
|
||||
// nl.fromXml(xml());
|
||||
nl.fromXml(pugiXml().document_element());
|
||||
|
||||
QSettings set;
|
||||
if(set.value("use_pugixml").toBool()) {
|
||||
nl.fromXml(pugiXml().document_element());
|
||||
} else {
|
||||
nl.fromXml(xml());
|
||||
}
|
||||
|
||||
return nl.name(fileName());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user