Esempio n. 1
0
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);
}
Esempio n. 2
0
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;
}