23 bool strictSelectionMode {
false};
26 QScroller* scroller {0};
34 setSelectionMode(QAbstractItemView::ExtendedSelection);
35 setContextMenuPolicy(Qt::DefaultContextMenu);
36 setViewMode(QListView::IconMode);
37 setMovement(QListView::Static);
38 setGridSize(QSize(56, 56));
39 setIconSize(QSize(56, 56));
40 setResizeMode(QListWidget::Adjust);
41 setUniformItemSizes(
true);
50 m_d->prev_scrollbar_style = horizontalScrollBar()->styleSheet();
63 setViewMode(ViewMode::IconMode);
64 setFlow(Flow::LeftToRight);
66 horizontalScrollBar()->setStyleSheet(
m_d->prev_scrollbar_style);
67 setVerticalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAsNeeded);
71 setViewMode(ViewMode::IconMode);
72 setFlow(Flow::LeftToRight);
76 horizontalScrollBar()->setStyleSheet(
"QScrollBar::horizontal {height: 0px;}");
77 setVerticalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAlwaysOff);
81 setViewMode(ViewMode::ListMode);
82 setFlow(Flow::TopToBottom);
85 setVerticalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAsNeeded);
86 setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAsNeeded);
96 switch (
m_d->viewMode) {
108 const int w = width();
109 setGridSize(QSize(w, size.height()));
110 setIconSize(QSize(size));
118 m_d->strictSelectionMode = enable;
123 m_d->tip.setFixedToolTipThumbnailSize(size);
128 m_d->tip.setToolTipShouldRenderCheckers(
value);
135 QModelIndex current = currentIndex();
136 if (selectionMode() == SingleSelection
137 &&
m_d->strictSelectionMode
139 && current.row() >= start
140 && current.row() <= end) {
142 selectionModel()->clear();
144 QListWidget::rowsAboutToBeRemoved(parent, start, end);
150 QListWidget::selectionChanged(selected, deselected);
152 if (selected.isEmpty()) {
162 QItemSelectionModel::SelectionFlags cmd = QListWidget::selectionCommand(index, event);
165 if (selectionMode() == SingleSelection
166 &&
m_d->strictSelectionMode
167 && cmd.testFlag(QItemSelectionModel::Deselect)) {
169 cmd = QItemSelectionModel::NoUpdate;
176 QListWidget::contextMenuEvent(event);
182 return QListWidget::viewportEvent(event);
188 const int height =
event->size().height();
189 setGridSize(QSize(height, height));
190 setIconSize(QSize(height, height));
195 setGridSize(gridSize());
float value(const T *src, size_t ch)
int iconSize(qreal width, qreal height)