Remove elementLocation and use elementsLocation instead

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@4377 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
blacksun
2016-03-15 15:23:11 +00:00
parent 764d50c4ac
commit 1170522d9c
28 changed files with 626 additions and 924 deletions

View File

@@ -221,24 +221,38 @@ bool ElementsCollectionCache::fetchElement(ElementDefinition *element)
/**
* @brief ElementsCollectionCache::fetchElement
* Retrieve the data for a given element, using the cache if available,
* filling it otherwise. Data are then available through pixmap() and name() methods
* @param location The definition of an element
* filling it otherwise. Data are then available through pixmap() and name() methods.
* @param location The definition of an element.
* @see pixmap()
* @see name()
* @return True if the retrieval succeeded, false otherwise
* @return True if the retrieval succeeded, false otherwise.
*/
bool ElementsCollectionCache::fetchElement(ElementLocation location)
bool ElementsCollectionCache::fetchElement(ElementsLocation &location)
{
if (fetchNameFromCache(location.collectionPath(), location.uuid()) &&
fetchPixmapFromCache(location.collectionPath(), location.uuid()))
return true;
else if (fetchData(location))
{
cacheName(location.collectionPath(), location.uuid());
cachePixmap(location.collectionPath(), location.uuid());
return true;
// can we use the cache with this element?
bool use_cache = cache_db_.isOpen() && !location.isProject();
// attempt to fetch the element name from the cache database
if (!use_cache) {
return(fetchData(location));
}
else
{
QString element_path = location.toString();
bool got_name = fetchNameFromCache(element_path, location.uuid());
bool got_pixmap = fetchPixmapFromCache(element_path, location.uuid());
if (got_name && got_pixmap) {
return(true);
}
if (fetchData(location))
{
cacheName(element_path, location.uuid());
cachePixmap(element_path, location.uuid());
}
return(true);
}
return false;
}
/**
@@ -275,30 +289,6 @@ bool ElementsCollectionCache::fetchData(const ElementsLocation &location) {
return(!state);
}
/**
* @brief ElementsCollectionCache::fetchData
* Retrieve the data by building the full CustomElement object matching the given location,
* without using the cache. Data are then available through pixmap() and name() methods
* @param location : location of a given element
* @return True if the retrieval succeeded, false otherwise
*/
bool ElementsCollectionCache::fetchData(ElementLocation &location)
{
int state;
Element *element = ElementFactory::Instance()->createElement(location, 0, &state);
if(state)
qDebug() << "ElementsCollectionCache::fetchData() 2: Le chargement du composant" << qPrintable(location.fileSystemPath()) << "a echoue avec le code d'erreur" << state;
else
{
current_name_ = element->name();
current_pixmap_ = element->pixmap();
}
delete element;
return (!state);
}
/**
* @brief ElementsCollectionCache::fetchNameFromCache
* Retrieve the name for an element, given its path and uuid