AudioCdDevice::AudioCdDevice(MusicModel *m, Solid::Device &dev) : Device(m, dev, false, true) #ifdef CDDB_FOUND , cddb(0) #endif #ifdef MUSICBRAINZ5_FOUND , mb(0) #endif , year(0) , disc(0) , time(0xFFFFFFFF) , lookupInProcess(false) , autoPlay(false) { icn=Icon("media-optical"); drive=dev.parent().as<Solid::OpticalDrive>(); Solid::Block *block=dev.as<Solid::Block>(); if (block) { device=block->device(); } else { // With UDisks2 we cannot get block from device :-( QStringList parts=dev.udi().split("/", QString::SkipEmptyParts); if (!parts.isEmpty()) { parts=parts.last().split(":"); if (!parts.isEmpty()) { device="/dev/"+parts.first(); } } } if (!device.isEmpty()) { static bool registeredTypes=false; if (!registeredTypes) { qRegisterMetaType<CdAlbum >("CdAlbum"); qRegisterMetaType<QList<CdAlbum> >("QList<CdAlbum>"); registeredTypes=true; } devPath=Song::constCddaProtocol+device+QChar('/'); #if defined CDDB_FOUND && defined MUSICBRAINZ5_FOUND connectService(Settings::self()->useCddb()); #else connectService(true); #endif detailsString=i18n("Reading disc"); setStatusMessage(detailsString); lookupInProcess=true; connect(Covers::self(), SIGNAL(cover(const Song &, const QImage &, const QString &)), this, SLOT(setCover(const Song &, const QImage &, const QString &))); emit lookup(Settings::self()->cdAuto()); } }
void ServiceManagerModelPrivate::onServiceAdded(Service * service) { model->beginInsertRows(QModelIndex(), services.size(), services.size()); services.append(service); connectService(service); model->endInsertRows(); }
ServiceManagerModelPrivate::ServiceManagerModelPrivate(ServiceManagerModel * model) : QObject(model), model(model), manager(ServiceManager::instance()) { // Populate model from service manager for (int i = 0; i < manager->count(); ++i) { Service * service = manager->serviceAt(i); services.append(service); connectService(service); } // Connect all signals from manager connect(manager.get(), SIGNAL(serviceAdded(Kend::Service*)), this, SLOT(onServiceAdded(Kend::Service*))); connect(manager.get(), SIGNAL(serviceRemoved(Kend::Service*)), this, SLOT(onServiceRemoved(Kend::Service*))); }