void OptionListWidget::arrangeIcons() { int maxWidth = 0; setWrapping(false); QListWidgetItem* ic; int startY = 5; for (int cc = 0; cc < count(); ++cc) { ic = item(cc); QRect ir = visualItemRect(ic); maxWidth = qMax(ir.width(), maxWidth); } setMaximumWidth(maxWidth+16); setResizeMode(QListView::Fixed); #ifdef _WIN32 int scrollBarWidth = 0; QList<QScrollBar*> scrollBars = findChildren<QScrollBar*>(); for (int cc = 0; cc < scrollBars.count(); ++cc) { if (scrollBars.at(cc)->orientation() == Qt::Vertical) { scrollBarWidth = scrollBars.at(cc)->height(); break; } } #else int scrollBarWidth = maxWidth; #endif int startX = qMax((viewport()->width() - scrollBarWidth) / 2, 0); for (int cc = 0; cc < count(); ++cc) { ic = item(cc); QRect ir = visualItemRect(ic); #ifdef _WIN32 setPositionForIndex(QPoint(qMax(startX - ir.width() / 2, 0), startY), indexFromItem(ic)); #else int moveW = (maxWidth - ir.width()) / 2; setPositionForIndex(QPoint(moveW + startX, startY), indexFromItem(ic)); #endif startY += ir.height()+5; } }
void PageLayoutsWidget::arrangeIcons() { QListWidgetItem* ic; int startY = 5; int startX = 5; setResizeMode(QListView::Fixed); int maxSizeY = 0; for (int cc = 0; cc < count(); ++cc) { ic = item(cc); QRect ir = visualItemRect(ic); setPositionForIndex(QPoint(startX, startY), indexFromItem(ic)); startX += ir.width()+5; maxSizeY = qMax(maxSizeY, ir.height()); } maxX = startX; maxY = maxSizeY+10; }