// FIXME void GalleryWindow::slotAlbums(const QList<GAlbum>& albumList) { d->albumDict.clear(); d->albumView->clear(); // album work list QList<GAlbum> workList(albumList); QList<QTreeWidgetItem *> parentItemList; // fill QTreeWidget while( !workList.isEmpty() ) { // the album to work on GAlbum album = workList.takeFirst(); int parentRefNum = album.parent_ref_num; if ( parentRefNum == 0 ) { QTreeWidgetItem *item = new QTreeWidgetItem(); item->setText(0, cleanName(album.title) ); item->setIcon(0, KIcon("inode-directory") ); item->setText(1, album.name ); firstAlbumName = album.name; item->setText(2, i18n("Album") ); d->albumView->addTopLevelItem(item); d->albumDict.insert(album.title, album); parentItemList << item; } else { QTreeWidgetItem *parentItem = 0; bool found = false; int i = 0; while( !found && i < parentItemList.size() ) { parentItem = parentItemList.at(i); if(parentItem && (parentItem->text(1) == QString::number(parentRefNum))) { QTreeWidgetItem *item = new QTreeWidgetItem(parentItem); item->setText(0, cleanName(album.title) ); item->setIcon(0, KIcon("inode-directory") ); item->setText(1, album.name ); item->setText(2, i18n("Album") ); d->albumDict.insert(album.title, album); parentItemList << item; found = true; } i++; } if ( i == parentItemList.size() ) { workList.append(album); } } } }
void PiwigoWindow::slotAlbums(const QList<PiwigoAlbum>& albumList) { d->albumDict.clear(); d->albumView->clear(); // album work list QList<PiwigoAlbum> workList(albumList); QList<QTreeWidgetItem*> parentItemList; // fill QTreeWidget while ( !workList.isEmpty() ) { // the album to work on PiwigoAlbum album = workList.takeFirst(); int parentRefNum = album.m_parentRefNum; if (parentRefNum == -1) { QTreeWidgetItem* const item = new QTreeWidgetItem(); item->setText(0, cleanName(album.m_name) ); item->setIcon(0, QIcon::fromTheme(QLatin1String("inode-directory")) ); item->setData(1, Qt::UserRole, QVariant(album.m_refNum) ); item->setText(2, i18n("Album") ); qCDebug(DIGIKAM_WEBSERVICES_LOG) << "Top : " << album.m_name << " " << album.m_refNum << "\n"; d->albumView->addTopLevelItem(item); d->albumDict.insert(album.m_name, album); parentItemList << item; } else { QTreeWidgetItem* parentItem = nullptr; bool found = false; int i = 0; while ( !found && i < parentItemList.size() ) { parentItem = parentItemList.at(i); if (parentItem && (parentItem->data(1, Qt::UserRole).toInt() == parentRefNum)) { QTreeWidgetItem* const item = new QTreeWidgetItem(parentItem); item->setText(0, cleanName(album.m_name) ); item->setIcon(0, QIcon::fromTheme(QLatin1String("inode-directory")) ); item->setData(1, Qt::UserRole, album.m_refNum ); item->setText(2, i18n("Album") ); parentItem->addChild(item); d->albumDict.insert(album.m_name, album); parentItemList << item; found = true; } i++; } } } }