forked from qt-creator/qt-creator
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: Leandro Melo <leandro.melo@nokia.com>
This commit is contained in:
committed by
Leandro Melo
parent
0cfff86753
commit
de0fcfaa0a
@@ -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();
|
||||
|
Reference in New Issue
Block a user