summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/texteditor/circularclipboard.cpp10
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();