/** Process results sent back from various search engines (local, remote). */ void SearchDialog::processResults(Request type, const QStandardItemList &results) { QListView *listToProcess = nullptr; switch (type) { case Artist: listToProcess = _artists; break; case Album: listToProcess = _albums; break; case Track: listToProcess = _tracks; break; } QStandardItemModel *m = qobject_cast<QStandardItemModel*>(listToProcess->model()); for (int i = 0; i < results.size(); i++) { m->insertRow(0, results.at(i)); } m->sort(0); listToProcess->setFixedHeight(listToProcess->model()->rowCount() * listToProcess->sizeHintForRow(0)); qDebug() << "number of items" << listToProcess->model()->rowCount(); qDebug() << "size h f r 1" << _artists->sizeHintForRow(0) << _albums->sizeHintForRow(0) << _tracks->sizeHintForRow(0); qDebug() << "size h f r 2" << iconArtists->height() << iconAlbums->height() << iconTracks->height(); int ar = qMax(_artists->model()->rowCount() * _artists->sizeHintForRow(0), iconArtists->height()); int al = qMax(_albums->model()->rowCount() * _albums->sizeHintForRow(0), iconAlbums->height()); int tr = qMax(_tracks->model()->rowCount() * _tracks->sizeHintForRow(0), iconTracks->height()); artistLayoutWidget->setFixedHeight(ar); albumLayoutWidget->setFixedHeight(al); trackLayoutWidget->setFixedHeight(tr); qDebug() << "ar al tr" << ar << al << tr; int h = ar + al + tr; //int h = 300; h += labelSearchMore->height() + aggregated->height() + 3; int minW = qMax(iconArtists->width() + _artists->sizeHintForColumn(0), 400); this->resize(minW, h); }