Skip to content

Commit

Permalink
refactor: Optimize tag event interface
Browse files Browse the repository at this point in the history
Modify tag event interface name and call method, remove useless parameters

Log:
  • Loading branch information
Clauszy authored and deepin-bot[bot] committed Jul 7, 2023
1 parent a69f267 commit aef08d8
Show file tree
Hide file tree
Showing 14 changed files with 38 additions and 40 deletions.
4 changes: 2 additions & 2 deletions src/plugins/common/dfmplugin-tag/tag.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -146,10 +146,10 @@ void Tag::installToSideBar()
void Tag::followEvents()
{
dpfHookSequence->follow("dfmplugin_workspace", "hook_Delegate_PaintListItem", TagManager::instance(), &TagManager::paintListTagsHandle);
dpfHookSequence->follow("dfmplugin_workspace", "hook_Delegate_PaintIconItem", TagManager::instance(), &TagManager::paintIconTagsHandle);
dpfHookSequence->follow("dfmplugin_workspace", "hook_Delegate_LayoutText", TagManager::instance(), &TagManager::addIconTagsHandle);

// canvas
dpfHookSequence->follow("ddplugin_canvas", "hook_CanvasItemDelegate_PaintText", TagManager::instance(), &TagManager::paintIconTagsHandle);
dpfHookSequence->follow("ddplugin_canvas", "hook_CanvasItemDelegate_LayoutText", TagManager::instance(), &TagManager::addIconTagsHandle);

// paste
dpfHookSequence->follow("dfmplugin_workspace", "hook_ShortCut_PasteFiles", TagManager::instance(), &TagManager::pasteHandle);
Expand Down
5 changes: 1 addition & 4 deletions src/plugins/common/dfmplugin-tag/utils/tagmanager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -146,11 +146,8 @@ bool TagManager::paintListTagsHandle(int role, const FileInfoPointer &info, QPai
return false;
}

bool TagManager::paintIconTagsHandle(const FileInfoPointer &info, const QRectF &rect, QPainter *painter, ElideTextLayout *layout)
bool TagManager::addIconTagsHandle(const FileInfoPointer &info, ElideTextLayout *layout)
{
Q_UNUSED(rect)
Q_UNUSED(painter)

if (!canTagFile(info))
return false;

Expand Down
2 changes: 1 addition & 1 deletion src/plugins/common/dfmplugin-tag/utils/tagmanager.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ class TagManager final : public QObject
bool canTagFile(const FileInfoPointer &info) const;
bool pasteHandle(quint64 winId, const QList<QUrl> &fromUrls, const QUrl &to);
bool paintListTagsHandle(int role, const FileInfoPointer &info, QPainter *painter, QRectF *rect);
bool paintIconTagsHandle(const FileInfoPointer &info, const QRectF &rect, QPainter *painter, dfmbase::ElideTextLayout *layout);
bool addIconTagsHandle(const FileInfoPointer &info, dfmbase::ElideTextLayout *layout);
bool fileDropHandle(const QList<QUrl> &fromUrls, const QUrl &toUrl);
bool fileDropHandleWithAction(const QList<QUrl> &fromUrls, const QUrl &toUrl, Qt::DropAction *action);
bool sepateTitlebarCrumb(const QUrl &url, QList<QVariantMap> *mapGroup);
Expand Down
2 changes: 1 addition & 1 deletion src/plugins/desktop/core/ddplugin-canvas/canvasplugin.h
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ class CanvasPlugin : public dpf::Plugin
// CanvasItemDelegate begin
DPF_EVENT_REG_SLOT(slot_CanvasItemDelegate_IconRect)

DPF_EVENT_REG_HOOK(hook_CanvasItemDelegate_PaintText)
DPF_EVENT_REG_HOOK(hook_CanvasItemDelegate_LayoutText)
};

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -387,6 +387,8 @@ QList<QRectF> CanvasItemDelegate::elideTextRect(const QModelIndex &index, const
// create text Layout.
QScopedPointer<ElideTextLayout> layout(d->createTextlayout(index));

d->extendLayoutText(parent()->model()->fileInfo(index), layout.data());

// elide mode
auto textLines = layout->layout(rect, elideMode);
return textLines;
Expand Down Expand Up @@ -426,9 +428,7 @@ void CanvasItemDelegate::drawNormlText(QPainter *painter, const QStyleOptionView
// create text Layout.
QScopedPointer<ElideTextLayout> layout(d->createTextlayout(index, &p));

// extend layout paint
if (dpfHookSequence->run("ddplugin_canvas", "hook_CanvasItemDelegate_PaintText", parent()->model()->fileInfo(index), rText, painter, layout.data()))
return;
d->extendLayoutText(parent()->model()->fileInfo(index), layout.data());

// elide and draw
layout->layout(QRectF(QPoint(0, 0), QSizeF(textImage.size()) / pixelRatio), option.textElideMode, &p);
Expand Down Expand Up @@ -471,9 +471,7 @@ void CanvasItemDelegate::drawHighlightText(QPainter *painter, const QStyleOption
QScopedPointer<ElideTextLayout> layout(d->createTextlayout(index, painter));
layout->setAttribute(ElideTextLayout::kBackgroundRadius, kIconRectRadius);

// extend layout paint
if (dpfHookSequence->run("ddplugin_canvas", "hook_CanvasItemDelegate_PaintText", parent()->model()->fileInfo(index), rText, painter, layout.data()))
return;
d->extendLayoutText(parent()->model()->fileInfo(index), layout.data());

// elide and draw
layout->layout(rText, option.textElideMode, painter, background);
Expand All @@ -491,9 +489,7 @@ void CanvasItemDelegate::drawExpandText(QPainter *painter, const QStyleOptionVie
QScopedPointer<ElideTextLayout> layout(d->createTextlayout(index, painter));
layout->setAttribute(ElideTextLayout::kBackgroundRadius, kIconRectRadius);

// extend layout paint
if (dpfHookSequence->run("ddplugin_canvas", "hook_CanvasItemDelegate_PaintText", parent()->model()->fileInfo(index), rect, painter, layout.data()))
return;
d->extendLayoutText(parent()->model()->fileInfo(index), layout.data());

// elide and draw
layout->layout(rect, option.textElideMode, painter, background);
Expand Down Expand Up @@ -751,6 +747,12 @@ QRectF CanvasItemDelegate::paintEmblems(QPainter *painter, const QRectF &rect,
return rect;
}

void CanvasItemDelegatePrivate::extendLayoutText(const FileInfoPointer &info, dfmbase::ElideTextLayout *layout)
{
// extend layout
dpfHookSequence->run("ddplugin_canvas", "hook_CanvasItemDelegate_LayoutText", info, layout);
}

void CanvasItemDelegate::paintLabel(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index, const QRect &rLabel) const
{
// draw text
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ class CanvasItemDelegatePrivate
bool needExpend(const QStyleOptionViewItem &option,
const QModelIndex &index, const QRect &rText, QRect *needText = nullptr) const;

static void extendLayoutText(const FileInfoPointer &info, dfmbase::ElideTextLayout *layout);
public:
CanvasItemDelegate *const q = nullptr;
// default icon size is 48px.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,12 @@ bool CollectionItemDelegatePrivate::needExpend(const QStyleOptionViewItem &optio
return calcNeedRect.height() > rText.height();
}

void CollectionItemDelegatePrivate::extendLayoutText(const FileInfoPointer &info, ElideTextLayout *layout)
{
// extend layout
dpfHookSequence->run("ddplugin_canvas", "hook_CanvasItemDelegate_LayoutText", info, layout);
}

const QList<int> CollectionItemDelegatePrivate::kIconSizes = { 32, 48, 64, 96, 128 };

CollectionItemDelegate::CollectionItemDelegate(QAbstractItemView *parentPtr)
Expand Down Expand Up @@ -379,6 +385,8 @@ QList<QRectF> CollectionItemDelegate::elideTextRect(const QModelIndex &index, co
// create text Layout.
QScopedPointer<ElideTextLayout> layout(d->createTextlayout(index));

d->extendLayoutText(parent()->model()->fileInfo(index), layout.data());

// elide mode
auto textLines = layout->layout(rect, elideMode);
return textLines;
Expand Down Expand Up @@ -418,9 +426,7 @@ void CollectionItemDelegate::drawNormlText(QPainter *painter, const QStyleOption
// create text Layout.
QScopedPointer<ElideTextLayout> layout(d->createTextlayout(index, &p));

// extend layout paint
if (dpfHookSequence->run("ddplugin_canvas", "hook_CanvasItemDelegate_PaintText", parent()->model()->fileInfo(index), rText, painter, layout.data()))
return;
d->extendLayoutText(parent()->model()->fileInfo(index), layout.data());

// elide and draw
layout->layout(QRectF(QPoint(0, 0), QSizeF(textImage.size()) / pixelRatio), option.textElideMode, &p);
Expand Down Expand Up @@ -463,9 +469,7 @@ void CollectionItemDelegate::drawHighlightText(QPainter *painter, const QStyleOp
QScopedPointer<ElideTextLayout> layout(d->createTextlayout(index, painter));
layout->setAttribute(ElideTextLayout::kBackgroundRadius, kIconRectRadius);

// extend layout paint
if (dpfHookSequence->run("ddplugin_canvas", "hook_CanvasItemDelegate_PaintText", parent()->model()->fileInfo(index), rText, painter, layout.data()))
return;
d->extendLayoutText(parent()->model()->fileInfo(index), layout.data());

// elide and draw
layout->layout(rText, option.textElideMode, painter, background);
Expand All @@ -483,9 +487,7 @@ void CollectionItemDelegate::drawExpandText(QPainter *painter, const QStyleOptio
QScopedPointer<ElideTextLayout> layout(d->createTextlayout(index, painter));
layout->setAttribute(ElideTextLayout::kBackgroundRadius, kIconRectRadius);

// extend layout paint
if (dpfHookSequence->run("ddplugin_canvas", "hook_CanvasItemDelegate_PaintText", parent()->model()->fileInfo(index), rect, painter, layout.data()))
return;
d->extendLayoutText(parent()->model()->fileInfo(index), layout.data());

// elide and draw
layout->layout(rect, option.textElideMode, painter, background);
Expand All @@ -495,8 +497,6 @@ void CollectionItemDelegate::drawExpandText(QPainter *painter, const QStyleOptio
QPixmap CollectionItemDelegate::getIconPixmap(const QIcon &icon, const QSize &size,
qreal pixelRatio, QIcon::Mode mode, QIcon::State state)
{
// TODO: 优化

if (icon.isNull())
return QPixmap();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ class CollectionItemDelegatePrivate

bool needExpend(const QStyleOptionViewItem &option,
const QModelIndex &index, const QRect &rText, QRect *needText = nullptr) const;

static void extendLayoutText(const FileInfoPointer &info, dfmbase::ElideTextLayout *layout);
public:
// default icon size is 48px.
int currentIconLevel = -1;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@ bool WorkspaceEventSequence::doPaintListItem(int role, const FileInfoPointer &in
return dpfHookSequence->run(kCurrentEventSpace, "hook_Delegate_PaintListItem", role, info, painter, rect);
}

bool WorkspaceEventSequence::doPaintIconItemText(const FileInfoPointer &info, const QRectF &rect, QPainter *painter, dfmbase::ElideTextLayout *layout)
bool WorkspaceEventSequence::doIconItemLayoutText(const FileInfoPointer &info, dfmbase::ElideTextLayout *layout)
{
return dpfHookSequence->run(kCurrentEventSpace, "hook_Delegate_PaintIconItem", info, rect, painter, layout);
return dpfHookSequence->run(kCurrentEventSpace, "hook_Delegate_LayoutText", info, layout);
}

bool WorkspaceEventSequence::doCheckDragTarget(const QList<QUrl> &urls, const QUrl &urlTo, Qt::DropAction *action)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ class WorkspaceEventSequence : public QObject
static WorkspaceEventSequence *instance();

bool doPaintListItem(int role, const FileInfoPointer &info, QPainter *painter, QRectF *rect);
bool doPaintIconItemText(const FileInfoPointer &info, const QRectF &rect, QPainter *painter, dfmbase::ElideTextLayout *layout);
bool doIconItemLayoutText(const FileInfoPointer &info, dfmbase::ElideTextLayout *layout);
bool doCheckDragTarget(const QList<QUrl> &urls, const QUrl &urlTo, Qt::DropAction *action);
bool doFetchSelectionModes(const QUrl &url, QList<QAbstractItemView::SelectionMode> *modes);
bool doFetchCustomColumnRoles(const QUrl &rootUrl, QList<DFMGLOBAL_NAMESPACE::ItemRoles> *roleList);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,7 @@ void ExpandedItem::paintEvent(QPaintEvent *)
layout->setAttribute(ElideTextLayout::kBackgroundRadius, kIconModeRectRadius);

const FileInfoPointer &info = delegate->parent()->parent()->model()->fileInfo(index);
if (WorkspaceEventSequence::instance()->doPaintIconItemText(info, labelRect, &pa, layout.data()))
return;
WorkspaceEventSequence::instance()->doIconItemLayoutText(info, layout.data());

const QList<QRectF> lines = layout->layout(labelRect, option.textElideMode, &pa, option.palette.brush(QPalette::Normal, QPalette::Highlight));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -564,8 +564,7 @@ void IconItemDelegate::paintItemFileName(QPainter *painter, QRectF iconRect, QPa
d->textLineHeight, Qt::AlignCenter, painter));

const FileInfoPointer &info = parent()->parent()->model()->fileInfo(index);
if (WorkspaceEventSequence::instance()->doPaintIconItemText(info, labelRect, painter, layout.data()))
return;
WorkspaceEventSequence::instance()->doIconItemLayoutText(info, layout.data());

layout->layout(labelRect, opt.textElideMode, painter, background);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ class Workspace : public dpf::Plugin
DPF_EVENT_REG_HOOK(hook_ShortCut_EnterPressed)

DPF_EVENT_REG_HOOK(hook_Delegate_PaintListItem)
DPF_EVENT_REG_HOOK(hook_Delegate_PaintIconItem)
DPF_EVENT_REG_HOOK(hook_Delegate_LayoutText)
DPF_EVENT_REG_HOOK(hook_Delegate_CheckTransparent)

DPF_EVENT_REG_HOOK(hook_View_FetchSupportSelectionModes)
Expand Down
6 changes: 2 additions & 4 deletions tests/plugins/common/dfmplugin-tag/utils/ut_tagmanager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -68,13 +68,11 @@ TEST_F(TagManagerTest, paintListTagsHandle)
TEST_F(TagManagerTest, paintIconTagsHandle2)
{
FileInfoPointer info(new FileInfo(QUrl("file:///test")));
QPainter painter;
QRectF rect;
auto func = static_cast<bool (TagManager::*)(const FileInfoPointer &) const>(&TagManager::canTagFile);
stub.set_lamda(func, []() { __DBG_STUB_INVOKE__ return false; });
EXPECT_FALSE(ins->paintIconTagsHandle(info, rect, &painter, nullptr));
EXPECT_FALSE(ins->addIconTagsHandle(info, nullptr));
stub.set_lamda(func, []() { __DBG_STUB_INVOKE__ return true; });
EXPECT_FALSE(ins->paintIconTagsHandle(info, rect, &painter, nullptr));
EXPECT_FALSE(ins->addIconTagsHandle(info, nullptr));
}

TEST_F(TagManagerTest, fileDropHandle)
Expand Down

0 comments on commit aef08d8

Please sign in to comment.