Пример #1
0
StreamsPage::StreamsPage(QWidget *p)
    : StackedPageWidget(p)
{
    qRegisterMetaType<StreamItem>("StreamItem");
    qRegisterMetaType<QList<StreamItem> >("QList<StreamItem>");

    browse=new StreamsBrowsePage(this);
    addWidget(browse);
    connect(browse, SIGNAL(close()), this, SIGNAL(close()));
    connect(browse, SIGNAL(searchForStreams()), this, SLOT(searchForStreams()));
    search=new StreamSearchPage(this);
    addWidget(search);
    connect(search, SIGNAL(close()), this, SLOT(closeSearch()));

    disconnect(browse, SIGNAL(add(const QStringList &, int, quint8)), MPDConnection::self(), SLOT(add(const QStringList &, int, quint8)));
    disconnect(search, SIGNAL(add(const QStringList &, int, quint8)), MPDConnection::self(), SLOT(add(const QStringList &, int, quint8)));
    connect(browse, SIGNAL(add(const QStringList &, int, quint8)), PlayQueueModel::self(), SLOT(addItems(const QStringList &, int, quint8)));
    connect(search, SIGNAL(add(const QStringList &, int, quint8)), PlayQueueModel::self(), SLOT(addItems(const QStringList &, int, quint8)));
    connect(StreamsModel::self()->addToFavouritesAct(), SIGNAL(triggered()), this, SLOT(addToFavourites()));
    connect(search, SIGNAL(addToFavourites(QList<StreamItem>)), browse, SLOT(addToFavourites(QList<StreamItem>)));
}
Пример #2
0
void StreamSearchPage::addToFavourites()
{
    QModelIndexList selected = view->selectedIndexes();

    QList<const StreamsModel::Item *> items;

    for (const QModelIndex &i: selected) {
        QModelIndex mapped=proxy.mapToSource(i);
        const StreamsModel::Item *item=static_cast<const StreamsModel::Item *>(mapped.internalPointer());
        if (!item->isCategory() && item->parent && !item->parent->isFavourites()) {
            items.append(item);
        }
    }
    QList<StreamItem> itemsToAdd;
    for (const StreamsModel::Item *item: items) {
        itemsToAdd.append(StreamItem(item->url, item->modifiedName()));
    }
    emit addToFavourites(itemsToAdd);
}