コード例 #1
0
SongtreeWidget::SongtreeWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::SongtreeWidget),
    collController(0),
    model(0),
    tree(0)
{
    ui->setupUi(this);
    collController = ICore::collectionController();
    Q_ASSERT(collController);
    //TODO: No such slot
    connect(collController, SIGNAL(mediaCollectionAdded(IMediaCollection*)), this, SLOT(addNewCollection(IMediaCollection*)));

    searchProxy = new SongtreeProxyModel();

    connect(collController, SIGNAL(mediaCollectionRemoved(QUrl)), this, SLOT(removeCollection(QUrl)));
    connect(ui->comboBox, SIGNAL(currentIndexChanged(int)),  this, SLOT(loadSongtreeModel(int)));
    buildHierarchy();
    loadSongtreeModel(0);
    //proxy->setSourceModel(model);
    searchProxy->setDynamicSortFilter(true);
    searchProxy->sort(0);
    connect(this->ui->lineEdit, SIGNAL(textEdited(QString)), this, SLOT(textEdited(QString)));
    //connect(searchProxy, SIGNAL(expandIndex(QModelIndex)), this->ui->treeView, SLOT(expand(QModelIndex)));
    connect(this->ui->lineEdit, SIGNAL(returnPressed()), this, SLOT(returnPressed()));
    this->ui->treeView->setEditTriggers(QAbstractItemView::NoEditTriggers);
    this->ui->treeView->setModel(searchProxy);
    this->ui->treeView->setItemDelegate(new SongTreeItemDelegate(this));
}
コード例 #2
0
void LibraryCollectionLayer::changeCollection(int idItem)
{
    qDebug() << Q_FUNC_INFO;

    Screen::getInstance()->queueUpdates();
    LibraryCollectionItem* item = items[idItem];
    QString collectionName = item->getText();
    QHash<QString, double>::iterator it = m_bookCollections.find(collectionName);

    if(it != m_bookCollections.end() && it.key() == collectionName)
    {
        item->setChecked(false);
        it = m_bookCollections.erase(it);
        emit removeCollection(collectionName);
    }
    else
    {
        item->setChecked(true);
        double index = QBookApp::instance()->getModel()->getBooksInCollectionCount(collectionName) + 1;
        m_bookCollections.insert(collectionName, index);
        emit addCollection(collectionName, index);
    }
    paint();
    Screen::getInstance()->setMode(Screen::MODE_QUICK, true, FLAG_PARTIALSCREEN_UPDATE, Q_FUNC_INFO);
    Screen::getInstance()->setUpdateScheme(Screen::SCHEME_MERGE, true);
    Screen::getInstance()->flushUpdates();
}
コード例 #3
0
ファイル: akonadifakedatatest.cpp プロジェクト: KDE/zanshin
    void shouldRemoveCollections()
    {
        // GIVEN
        auto data = Testlib::AkonadiFakeData();
        QScopedPointer<Akonadi::MonitorInterface> monitor(data.createMonitor());
        QSignalSpy spy(monitor.data(), &Akonadi::MonitorInterface::collectionRemoved);

        auto c1 = Akonadi::Collection(42);
        c1.setName(QStringLiteral("42"));
        data.createCollection(c1);

        auto c2 = Akonadi::Collection(43);
        c2.setName(QStringLiteral("43"));
        c2.setParentCollection(Akonadi::Collection(42));
        data.createCollection(c2);

        auto c3 = Akonadi::Collection(44);
        c3.setName(QStringLiteral("44"));
        c3.setParentCollection(Akonadi::Collection(43));
        data.createCollection(c3);

        auto i1 = Akonadi::Item(42);
        i1.setPayloadFromData("42");
        i1.setParentCollection(Akonadi::Collection(43));
        data.createItem(i1);

        auto i2 = Akonadi::Item(43);
        i2.setPayloadFromData("43");
        i2.setParentCollection(Akonadi::Collection(44));
        data.createItem(i2);

        // WHEN
        data.removeCollection(c2);

        // THEN
        QCOMPARE(data.collections().size(), 1);
        QCOMPARE(data.collections().at(0), c1);

        QVERIFY(!data.collection(c2.id()).isValid());
        QVERIFY(!data.collection(c3.id()).isValid());

        QVERIFY(data.childCollections(c1.id()).isEmpty());
        QVERIFY(data.childCollections(c2.id()).isEmpty());
        QVERIFY(data.childCollections(c3.id()).isEmpty());

        QVERIFY(data.items().isEmpty());

        QVERIFY(!data.item(i1.id()).isValid());
        QVERIFY(!data.item(i2.id()).isValid());

        QVERIFY(data.childItems(c2.id()).isEmpty());
        QVERIFY(data.childItems(c3.id()).isEmpty());

        QCOMPARE(spy.size(), 2);
        QCOMPARE(spy.takeFirst().at(0).value<Akonadi::Collection>(), c3);
        QCOMPARE(spy.takeFirst().at(0).value<Akonadi::Collection>(), c2);
    }
コード例 #4
0
ファイル: collection.c プロジェクト: CytoComp/libSBOLc
void deleteCollection(Collection* col) {
	if (col) {
		if (col->base) {
			deleteSBOLCompoundObject(col->base);
			col->base = NULL;
		}
		if (col->components) {
			deletePointerArray(col->components);
			col->components = NULL;
		}
		if (col->doc) {
			removeCollection(col->doc, col);
			col->doc = NULL;
		}
		free(col);
		col = NULL;
	}
}
コード例 #5
0
void MusicCollector::requestFinished()
{
    sender()->deleteLater();
    if (currentReply != sender())
        return;

    emit loadingChanged();

    int nextOpt = nextOperation;
    QString optId = operatingId;

    nextOperation = OperationNone;
    operatingId.clear();

    if (currentReply->error() != QNetworkReply::NoError)
        return;

    QVariantMap resp = parser->parse(currentReply->readAll()).toMap();
    if (resp.value("code", -1).toInt() != 200)
        return;

    int opt = currentReply->property(KeyOperation).toInt();
    if (opt == OperationLoadPid) {
        foreach (const QVariant& playlist, resp.value("playlist").toList()) {
            QVariantMap map = playlist.toMap();
            if (map.value("specialType").toInt() == 5) {
                playlistId = map.value("id").toInt();
                break;
            }
        }
        if (playlistId == 0)
            return;

        if (nextOpt == OperationCollectMusic)
            collectMusic(optId);
        else if (nextOpt == OperationRemoveCollection)
            removeCollection(optId);
        else
            loadList();
    }