Skip to content
Snippets Groups Projects
Commit de0fcfaa authored by Francois Ferrand's avatar Francois Ferrand Committed by Leandro Melo
Browse files

TextEditor: Avoid duplicates in circular clipboard.


When data is added to the circular, first check if it is already
present. In that case, the item is moved to the beginning of the
circular clipboard.

This avoids dropping old data prematurly, and traversing the same data
multiple times when pasting.

Change-Id: Iecaf8d2f5a05d08e6f5faa8555d24f4d7a1d33ab
Reviewed-by: default avatarLeandro Melo <leandro.melo@nokia.com>
parent 0cfff867
No related branches found
No related tags found
No related merge requests found
...@@ -53,6 +53,16 @@ CircularClipboard *CircularClipboard::instance() ...@@ -53,6 +53,16 @@ CircularClipboard *CircularClipboard::instance()
void CircularClipboard::collect(const QMimeData *mimeData) void CircularClipboard::collect(const QMimeData *mimeData)
{ {
//Avoid duplicates
const QString text = mimeData->text();
for (QList<const QMimeData *>::iterator i = m_items.begin(); i != m_items.end(); ++i) {
if (mimeData == *i || text == (*i)->text()) {
if (mimeData != *i)
delete *i;
m_items.erase(i);
break;
}
}
if (m_items.size() > kMaxSize) { if (m_items.size() > kMaxSize) {
delete m_items.last(); delete m_items.last();
m_items.removeLast(); m_items.removeLast();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment