@@ -177,7 +177,7 @@ void DatabaseItem::resetFilter()
177177
178178void DatabaseItem::renderRawKeys (const Operations::RawKeysList &rawKeys)
179179{
180- qDebug () << " Keys : " << rawKeys.size ();
180+ qDebug () << " Render keys : " << rawKeys.size ();
181181
182182 if (rawKeys.size () == 0 ) {
183183 m_locked = false ;
@@ -209,10 +209,14 @@ QSharedPointer<DatabaseKeys> DatabaseItem::KeysTreeRenderer::renderKeys(QSharedP
209209 QSharedPointer<DatabaseItem> parent)
210210{
211211 // init
212+ QElapsedTimer timer;
213+ timer.start ();
212214 keys.sort ();
215+ qDebug () << " Keys sorted in: " << timer.elapsed () << " ms" ;
213216 QSharedPointer<QList<QSharedPointer<TreeItem>>> result (new QList<QSharedPointer<TreeItem>>());
214217
215218 // render
219+ timer.restart ();
216220 for (QVariant key : keys) {
217221
218222 QString rawKey = key.toString ();
@@ -226,7 +230,7 @@ QSharedPointer<DatabaseKeys> DatabaseItem::KeysTreeRenderer::renderKeys(QSharedP
226230 rawKey, rawKey, operations,
227231 namespaceSeparator, result, parent);
228232 }
229-
233+ qDebug () << " Tree builded in: " << timer. elapsed () << " ms " ;
230234 return result;
231235}
232236
@@ -241,35 +245,38 @@ void DatabaseItem::KeysTreeRenderer::renderNamaspacedKey(QSharedPointer<Namespac
241245 QWeakPointer<TreeItem> currentParent = (currItem.isNull ())? db.staticCast <TreeItem>().toWeakRef () :
242246 currItem.staticCast <TreeItem>().toWeakRef ();
243247
244- if (!notProcessedKeyPart.contains (m_namespaceSeparator) || m_namespaceSeparator.isEmpty ()) {
248+ int indexOfNaspaceSeparator = (m_namespaceSeparator.isEmpty ())?
249+ -1 : notProcessedKeyPart.indexOf (m_namespaceSeparator);
245250
251+ if (indexOfNaspaceSeparator == -1 ) {
246252 QSharedPointer<KeyItem> newKey (
247253 (new KeyItem (fullKey, db->getIndex (), m_operations, currentParent))
248254 );
249255
250256 if (currItem.isNull ()) m_result->push_back (newKey);
251257 else currItem->append (newKey);
252-
253258 return ;
254259 }
255260
256- int indexOfNaspaceSeparator = notProcessedKeyPart.indexOf (m_namespaceSeparator);
257-
258261 QString firstNamespaceName = notProcessedKeyPart.mid (0 , indexOfNaspaceSeparator);
259262
260- QSharedPointer<NamespaceItem> namespaceItem;
261- int size = (currItem.isNull ())? m_result->size () : currItem->childCount ();
263+ QSharedPointer<NamespaceItem> namespaceItem;
262264
263- for ( int i= 0 ; i < size; ++i)
264- {
265- QSharedPointer<TreeItem> child = (currItem. isNull ())? (*m_result)[i] : currItem-> child (i) ;
265+ if (currItem. isNull ()) {
266+ int size = m_result-> size ();
267+ QSharedPointer<TreeItem> child;
266268
267- if (child->getDisplayName () == firstNamespaceName
268- && typeid (NamespaceItem)==typeid (*child)) {
269-
270- namespaceItem = qSharedPointerCast<NamespaceItem>(child);
271- break ;
269+ for (int i=0 ; i < size; ++i)
270+ {
271+ child = (*m_result)[i];
272+ if (typeid (NamespaceItem)==typeid (*child)
273+ && child->getDisplayName () == firstNamespaceName) {
274+ namespaceItem = qSharedPointerCast<NamespaceItem>(child);
275+ break ;
276+ }
272277 }
278+ } else {
279+ namespaceItem = currItem->findChildNamespace (firstNamespaceName);
273280 }
274281
275282 if (namespaceItem.isNull ()) {
0 commit comments