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)); }
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(); }
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); }
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; } }
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(); }