1 Star 0 Fork 0

旷野芦苇殇/texteditor

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
circularclipboard.cpp 1.44 KB
一键复制 编辑 原始数据 按行查看 历史
旷野芦苇殇 提交于 2024-08-02 17:06 +08:00 . 初始化
// 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();
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/fengzhu2007/texteditor.git
git@gitee.com:fengzhu2007/texteditor.git
fengzhu2007
texteditor
texteditor
main

搜索帮助