void ArchiveListWidget::selectArchive(ArchivePtr archive) { if(!archive) { DEBUG << "Null ArchivePtr passed."; return; } for(int i = 0; i < count(); ++i) { ArchiveListWidgetItem *archiveItem = static_cast<ArchiveListWidgetItem *>(item(i)); if(archiveItem && (archiveItem->archive()->objectKey() == archive->objectKey())) { clearSelection(); setCurrentItem(archiveItem); scrollToItem(currentItem(), QAbstractItemView::EnsureVisible); break; } } }