diff --git a/src/plugins/texteditor/circularclipboard.cpp b/src/plugins/texteditor/circularclipboard.cpp index 32c20ab5395edd7cc33b1473149652f38828e4a2..bba248a84a37cbee44bdd104eb5aa88dd3623297 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();