diff options
-rw-r--r-- | src/plugins/texteditor/circularclipboard.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/plugins/texteditor/circularclipboard.cpp b/src/plugins/texteditor/circularclipboard.cpp index 32c20ab539..bba248a84a 100644 --- a/src/plugins/texteditor/circularclipboard.cpp +++ b/src/plugins/texteditor/circularclipboard.cpp @@ -53,6 +53,16 @@ CircularClipboard *CircularClipboard::instance() 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) { delete m_items.last(); m_items.removeLast(); |