[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdebase/apps
From: David Faure <faure () kde ! org>
Date: 2009-04-08 11:46:43
Message-ID: 1239191203.614249.30301.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 951001 by dfaure:
fix iterator mixup correctly
M +2 -2 konqueror/src/konqhistorymanager.cpp
M +12 -0 lib/konq/konq_historyentry.cpp
M +6 -0 lib/konq/konq_historyentry.h
M +8 -0 lib/konq/konq_historyprovider.cpp
M +1 -0 lib/konq/konq_historyprovider.h
--- trunk/KDE/kdebase/apps/konqueror/src/konqhistorymanager.cpp #951000:951001
@@ -139,8 +139,8 @@
// We add a copy of the current history entry of the url to the
// pending list, so that we can restore it if the user canceled.
// If there is no entry for the url yet, we just store the url.
- KonqHistoryList::iterator oldEntry = findEntry( url );
- m_pending.insert( u, (oldEntry != entries().end()) ?
+ KonqHistoryList::const_iterator oldEntry = constFindEntry( url );
+ m_pending.insert( u, (oldEntry != entries().constEnd()) ?
new KonqHistoryEntry( *oldEntry ) : 0 );
}
--- trunk/KDE/kdebase/apps/lib/konq/konq_historyentry.cpp #951000:951001
@@ -95,6 +95,18 @@
return end();
}
+KonqHistoryList::const_iterator KonqHistoryList::constFindEntry( const KUrl& url ) const
+{
+ // we search backwards, probably faster to find an entry
+ KonqHistoryList::const_iterator it = constEnd();
+ while ( it != constBegin() ) {
+ --it;
+ if ( (*it).url == url )
+ return it;
+ }
+ return constEnd();
+}
+
void KonqHistoryList::removeEntry( const KUrl& url )
{
iterator it = findEntry( url );
--- trunk/KDE/kdebase/apps/lib/konq/konq_historyentry.h #951000:951001
@@ -69,6 +69,12 @@
iterator findEntry( const KUrl& url );
/**
+ * Finds an entry by URL and return an iterator to it.
+ * If no matching entry is found, end() is returned.
+ */
+ const_iterator constFindEntry( const KUrl& url ) const;
+
+ /**
* Finds an entry by URL and removes it
*/
void removeEntry( const KUrl& url );
--- trunk/KDE/kdebase/apps/lib/konq/konq_historyprovider.cpp #951000:951001
@@ -423,6 +423,14 @@
return d->m_history.findEntry(url);
}
+KonqHistoryList::const_iterator KonqHistoryProvider::constFindEntry(const KUrl& url) const
+{
+ // small optimization (dict lookup) for items _not_ in our history
+ if (!KParts::HistoryProvider::contains(url.url()))
+ return d->m_history.constEnd();
+ return d->m_history.constFindEntry(url);
+}
+
void KonqHistoryProvider::finishAddingEntry(const KonqHistoryEntry& entry, bool isSender)
{
Q_UNUSED(entry); // this arg is used by konq's reimplementation
--- trunk/KDE/kdebase/apps/lib/konq/konq_historyprovider.h #951000:951001
@@ -144,6 +144,7 @@
* entries, as those are not added to the dict, currently.
*/
KonqHistoryList::iterator findEntry(const KUrl& url);
+ KonqHistoryList::const_iterator constFindEntry(const KUrl& url) const;
/**
* Notifies all running instances about a new HistoryEntry via D-Bus.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic