23 bool strictSelectionMode {
false};
26 QScroller* scroller {0};
34 setSelectionMode(QAbstractItemView::ExtendedSelection);
35 setContextMenuPolicy(Qt::DefaultContextMenu);
36 setViewMode(QListView::IconMode);
37 setGridSize(QSize(56, 56));
38 setIconSize(QSize(56, 56));
39 setResizeMode(QListWidget::Adjust);
40 setUniformItemSizes(
true);
49 m_d->prev_scrollbar_style = horizontalScrollBar()->styleSheet();
62 setViewMode(ViewMode::IconMode);
63 setFlow(Flow::LeftToRight);
65 horizontalScrollBar()->setStyleSheet(
m_d->prev_scrollbar_style);
66 setVerticalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAsNeeded);
70 setViewMode(ViewMode::IconMode);
71 setFlow(Flow::LeftToRight);
75 horizontalScrollBar()->setStyleSheet(
"QScrollBar::horizontal {height: 0px;}");
76 setVerticalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAlwaysOff);
80 setViewMode(ViewMode::ListMode);
81 setFlow(Flow::TopToBottom);
84 setVerticalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAsNeeded);
85 setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAsNeeded);
95 switch (
m_d->viewMode) {
107 const int w = width();
108 setGridSize(QSize(w, size.height()));
109 setIconSize(QSize(size));
117 m_d->strictSelectionMode = enable;
122 m_d->tip.setFixedToolTipThumbnailSize(size);
127 m_d->tip.setToolTipShouldRenderCheckers(
value);
134 QModelIndex current = currentIndex();
135 if (selectionMode() == SingleSelection
136 &&
m_d->strictSelectionMode
138 && current.row() >= start
139 && current.row() <= end) {
141 selectionModel()->clear();
143 QListWidget::rowsAboutToBeRemoved(parent, start, end);
149 QListWidget::selectionChanged(selected, deselected);
151 if (selected.isEmpty()) {
161 QItemSelectionModel::SelectionFlags cmd = QListWidget::selectionCommand(index, event);
164 if (selectionMode() == SingleSelection
165 &&
m_d->strictSelectionMode
166 && cmd.testFlag(QItemSelectionModel::Deselect)) {
168 cmd = QItemSelectionModel::NoUpdate;
175 QListWidget::contextMenuEvent(event);
181 return QListWidget::viewportEvent(event);
187 const int height =
event->size().height();
188 setGridSize(QSize(height, height));
189 setIconSize(QSize(height, height));
194 setGridSize(gridSize());
float value(const T *src, size_t ch)
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
int iconSize(qreal width, qreal height)