bool CFavourites::AddOrRemove(CFileItem *item, int contextWindow) { if (!item) return false; // load our list CFileItemList items; Load(items); CStdString executePath(GetExecutePath(item, contextWindow)); CFileItemPtr match = items.Get(executePath); if (match) { // remove the item items.Remove(match.get()); } else { // create our new favourite item CFileItemPtr favourite(new CFileItem(item->GetLabel())); if (item->GetLabel().IsEmpty()) favourite->SetLabel(CUtil::GetTitleFromPath(item->m_strPath, item->m_bIsFolder)); favourite->SetThumbnailImage(item->GetThumbnailImage()); favourite->m_strPath = executePath; items.Add(favourite); } // and save our list again return Save(items); }
bool CFavouritesDirectory::AddOrRemove(CFileItem *item, int contextWindow) { if (!item) return false; // load our list CFileItemList items; Load(items); std::string executePath(GetExecutePath(*item, contextWindow)); CFileItemPtr match = items.Get(executePath); if (match) { // remove the item items.Remove(match.get()); } else { // create our new favourite item CFileItemPtr favourite(new CFileItem(item->GetLabel())); if (item->GetLabel().empty()) favourite->SetLabel(CUtil::GetTitleFromPath(item->GetPath(), item->m_bIsFolder)); favourite->SetArt("thumb", item->GetArt("thumb")); favourite->SetPath(executePath); items.Add(favourite); } // and save our list again return Save(items); }
// Update widgets, e.g. after directory change void FileSelectorWidget::updateWidgets() { refreshing_ = true; // Favourites list ui.FavouritesTable->clear(); ui.FavouritesTable->setColumnCount(1); ui.FavouritesTable->setHorizontalHeaderLabels(QStringList() << "Favourites"); ui.FavouritesTable->setRowCount(favourites_.count()); for (int n=0; n<favourites_.count(); ++n) { QDir favourite(favourites_.at(n)); QTableWidgetItem* item = new QTableWidgetItem(favourite.dirName()); if (item->text().isEmpty()) item->setText(favourites_.at(n)); item->setData(Qt::UserRole, n); item->setToolTip(favourites_.at(n)); // Set icon, depending on what the item is... if (favourite == QDir::home()) item->setIcon(style()->standardIcon(QStyle::SP_DirHomeIcon)); else if (favourite.isRoot()) item->setIcon(style()->standardIcon(QStyle::SP_DriveHDIcon)); else item->setIcon(style()->standardIcon(QStyle::SP_DirIcon)); ui.FavouritesTable->setItem(0, n, item); } // File table ui.FileView->resizeColumnsToContents(); ui.FileView->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch); // Files edit QString files; for (int n=0; n<selectedFilenames_.count(); ++n) { if (n != 0) files += " "; files += """" + selectedFilenames_.at(n) + """"; } ui.FilesEdit->setText(files); refreshing_ = false; }