Skip to content

Commit bee46d5

Browse files
18202781743deepin-bot[bot]
authored andcommitted
Revert "fix: prevent itemSpacing override in setBackgroundType"
This reverts commit 3a4600c.
1 parent 50b00b0 commit bee46d5

File tree

2 files changed

+15
-20
lines changed

2 files changed

+15
-20
lines changed

src/widgets/dlistview.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -776,6 +776,14 @@ void DListView::setBackgroundType(DStyledItemDelegate::BackgroundType background
776776
{
777777
if (DStyledItemDelegate *d = qobject_cast<DStyledItemDelegate *>(itemDelegate())) {
778778
d->setBackgroundType(backgroundType);
779+
780+
if (d->backgroundType() == DStyledItemDelegate::RoundedBackground) {
781+
d->setItemSpacing(10);
782+
} else if (d->backgroundType() == DStyledItemDelegate::ClipCornerBackground) {
783+
d->setItemSpacing(1);
784+
} else {
785+
d->setItemSpacing(0);
786+
}
779787
}
780788
}
781789

src/widgets/dstyleditemdelegate.cpp

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -516,23 +516,10 @@ class DStyledItemDelegatePrivate : public DCORE_NAMESPACE::DObjectPrivate
516516
}
517517
}
518518

519-
520-
inline int itemSpacing() const
521-
{
522-
if (spacing >= 0)
523-
return spacing;
524-
const auto type = backgroundType & DStyledItemDelegate::BackgroundType_Mask;
525-
if (type == DStyledItemDelegate::RoundedBackground)
526-
return 10;
527-
if (type == DStyledItemDelegate::ClipCornerBackground)
528-
return 1;
529-
return 0;
530-
}
531-
532519
DStyledItemDelegate::BackgroundType backgroundType = DStyledItemDelegate::NoBackground;
533520
QMargins margins;
534521
QSize itemSize;
535-
int spacing = -1;
522+
int itemSpacing = 0;
536523
QMap<QModelIndex, QList<QPair<QAction*, QRect>>> clickableActionMap;
537524
QAction *pressedAction = nullptr;
538525
QList<QPointer<QWidget>> lastWidgets;
@@ -1189,9 +1176,9 @@ QSize DStyledItemDelegate::sizeHint(const QStyleOptionViewItem &option, const QM
11891176
const QListView * lv = qobject_cast<const QListView*>(option.widget);
11901177
if (lv) {
11911178
if (lv->flow() == QListView::LeftToRight) {
1192-
size.rwidth() += d->itemSpacing();
1179+
size.rwidth() += d->itemSpacing;
11931180
} else {
1194-
size.rheight() += d->itemSpacing();
1181+
size.rheight() += d->itemSpacing;
11951182
}
11961183
}
11971184

@@ -1266,7 +1253,7 @@ int DStyledItemDelegate::spacing() const
12661253
{
12671254
D_DC(DStyledItemDelegate);
12681255

1269-
return d->itemSpacing();
1256+
return d->itemSpacing;
12701257
}
12711258

12721259
void DStyledItemDelegate::setBackgroundType(DStyledItemDelegate::BackgroundType type)
@@ -1310,7 +1297,7 @@ void DStyledItemDelegate::setItemSpacing(int spacing)
13101297
{
13111298
D_D(DStyledItemDelegate);
13121299

1313-
d->spacing = spacing;
1300+
d->itemSpacing = spacing;
13141301
}
13151302

13161303
void DStyledItemDelegate::initStyleOption(QStyleOptionViewItem *option, const QModelIndex &index) const
@@ -1366,9 +1353,9 @@ void DStyledItemDelegate::initStyleOption(QStyleOptionViewItem *option, const QM
13661353
const QListView * lv = qobject_cast<const QListView*>(option->widget);
13671354
if (lv) {
13681355
if (lv->flow() == QListView::LeftToRight) {
1369-
option->rect.adjust(0, 0, 0 - d->itemSpacing(), 0);
1356+
option->rect.adjust(0, 0, 0 - d->itemSpacing, 0);
13701357
} else {
1371-
option->rect.adjust(0, 0, 0, 0 - d->itemSpacing());
1358+
option->rect.adjust(0, 0, 0, 0 - d->itemSpacing);
13721359
}
13731360
if (lv->window() && lv->window()->isActiveWindow()) {
13741361
option->state |= QStyle::State_Active;

0 commit comments

Comments
 (0)