24 bool strictSelectionMode {
false};
27 QScroller* scroller {0};
35 setSelectionMode(QAbstractItemView::ExtendedSelection);
36 setContextMenuPolicy(Qt::DefaultContextMenu);
37 setViewMode(QListView::IconMode);
38 setMovement(QListView::Static);
39 setGridSize(QSize(56, 56));
40 setIconSize(QSize(56, 56));
41 setResizeMode(QListWidget::Adjust);
42 setUniformItemSizes(
true);
51 m_d->prev_scrollbar_style = horizontalScrollBar()->styleSheet();
64 setViewMode(ViewMode::IconMode);
65 setFlow(Flow::LeftToRight);
67 horizontalScrollBar()->setStyleSheet(
m_d->prev_scrollbar_style);
68 setVerticalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAsNeeded);
72 setViewMode(ViewMode::IconMode);
73 setFlow(Flow::LeftToRight);
77 horizontalScrollBar()->setStyleSheet(
"QScrollBar::horizontal {height: 0px;}");
78 setVerticalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAlwaysOff);
82 setViewMode(ViewMode::ListMode);
83 setFlow(Flow::TopToBottom);
86 setVerticalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAsNeeded);
87 setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAsNeeded);
97 switch (
m_d->viewMode) {
109 const int w = width();
110 setGridSize(QSize(w, size.height()));
111 setIconSize(QSize(size));
119 m_d->strictSelectionMode = enable;
124 m_d->tip.setFixedToolTipThumbnailSize(size);
129 m_d->tip.setToolTipShouldRenderCheckers(
value);
136 QModelIndex current = currentIndex();
137 if (selectionMode() == SingleSelection
138 &&
m_d->strictSelectionMode
140 && current.row() >= start
141 && current.row() <= end) {
143 selectionModel()->clear();
145 QListWidget::rowsAboutToBeRemoved(parent, start, end);
151 QListWidget::selectionChanged(selected, deselected);
153 if (selected.isEmpty()) {
163 QItemSelectionModel::SelectionFlags cmd = QListWidget::selectionCommand(index, event);
166 if (selectionMode() == SingleSelection
167 &&
m_d->strictSelectionMode
168 && cmd.testFlag(QItemSelectionModel::Deselect)) {
170 cmd = QItemSelectionModel::NoUpdate;
177 QListWidget::contextMenuEvent(event);
183 return QListWidget::viewportEvent(event);
189 const int height =
event->size().height();
190 setGridSize(QSize(height, height));
191 setIconSize(QSize(height, height));
196 setGridSize(gridSize());
float value(const T *src, size_t ch)
int iconSize(qreal width, qreal height)