代码拉取完成,页面将自动刷新
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#include "circularclipboard.h"
using namespace TextEditor::Internal;
static const int kMaxSize = 10;
CircularClipboard::CircularClipboard() = default;
CircularClipboard::~CircularClipboard() = default;
CircularClipboard *CircularClipboard::instance()
{
static CircularClipboard clipboard;
return &clipboard;
}
void CircularClipboard::collect(const QMimeData *mimeData)
{
collect(QSharedPointer<const QMimeData>(mimeData));
}
void CircularClipboard::collect(const QSharedPointer<const QMimeData> &mimeData)
{
//Avoid duplicates
const QString text = mimeData->text();
for (QList< QSharedPointer<const QMimeData> >::iterator i = m_items.begin(); i != m_items.end(); ++i) {
if (mimeData == *i || text == (*i)->text()) {
m_items.erase(i);
break;
}
}
if (m_items.size() >= kMaxSize)
m_items.removeLast();
m_items.prepend(mimeData);
}
QSharedPointer<const QMimeData> CircularClipboard::next() const
{
if (m_items.isEmpty())
return QSharedPointer<const QMimeData>();
if (m_current == m_items.length() - 1)
m_current = 0;
else
++m_current;
return m_items.at(m_current);
}
void CircularClipboard::toLastCollect()
{
m_current = -1;
}
int CircularClipboard::size() const
{
return m_items.size();
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。