Module::Module(QWidget *parent, const QVariantList &args) : KCModule(parent, args) , ui(new Ui::Module) , m_manager(new DriverManager(this)) { KAboutData *aboutData = new KAboutData("kcm-driver-manager", i18n("Driver Manager"), global_s_versionStringFull, QStringLiteral(""), KAboutLicense::LicenseKey::GPL_V3, i18n("Copyright 2013 Rohan Garg")); aboutData->addAuthor(i18n("Rohan Garg"), i18n("Author"), QStringLiteral("*****@*****.**")); aboutData->addAuthor(i18n("Harald Sitter"), i18n("Qt 5 port"), QStringLiteral("*****@*****.**")); setAboutData(aboutData); // We have no help so remove the button from the buttons. setButtons(buttons() ^ KCModule::Help); ui->setupUi(this); ui->progressBar->setVisible(false); connect(ui->reloadButton, SIGNAL(clicked(bool)), SLOT(load())); m_overlay = new KPixmapSequenceOverlayPainter(this); m_overlay->setWidget(this); #warning variable name QString label = xi18nc("@title/rich", "<title>Your computer requires no proprietary drivers</title>"); m_label = new QLabel(label, this); m_label->hide(); ui->driverOptionsVLayout->addWidget(m_label); //Debconf handling QString uuid = QUuid::createUuid().toString(); uuid.remove('{').remove('}').remove('-'); m_pipe = QDir::tempPath() % QLatin1String("/qapt-sock-") % uuid; m_debconfGui = new DebconfKde::DebconfGui(m_pipe, this); m_debconfGui->connect(m_debconfGui, SIGNAL(activated()), this, SLOT(showDebconf())); m_debconfGui->connect(m_debconfGui, SIGNAL(deactivated()), this, SLOT(hideDebconf())); m_debconfGui->hide(); connect(m_manager, SIGNAL(refreshFailed()), this, SLOT(onRefreshFailed())); connect(m_manager, SIGNAL(devicesReady(DeviceList)), this, SLOT(onDevicesReady(DeviceList))); connect(m_manager, SIGNAL(changeProgressChanged(int)), this, SLOT(progressChanged(int))); connect(m_manager, SIGNAL(changeFinished()), this, SLOT(finished())); connect(m_manager, SIGNAL(changeFailed(QString)), this, SLOT(failed(QString))); }
void DVRServer::updateCamerasReply() { QNetworkReply *reply = qobject_cast<QNetworkReply*>(sender()); if (!reply) return; qDebug() << "DVRServer: Received cameras list reply"; reply->deleteLater(); if (reply->error() != QNetworkReply::NoError) { /* TODO: Handle this well */ qWarning() << "DVRServer: Error from updating cameras:" << reply->errorString(); return; } QByteArray data = reply->readAll(); QXmlStreamReader xml(data); QSet<int> idSet; bool hasDevicesElement = false; bool wasEmpty = m_visibleCameras.isEmpty(); while (xml.readNextStartElement()) { if (xml.name() == QLatin1String("devices")) { hasDevicesElement = true; while (xml.readNext() != QXmlStreamReader::Invalid) { if (xml.tokenType() == QXmlStreamReader::EndElement && xml.name() == QLatin1String("devices")) break; else if (xml.tokenType() != QXmlStreamReader::StartElement) continue; if (xml.name() == QLatin1String("device")) { bool ok = false; QString idv = xml.attributes().value(QLatin1String("id")).toString(); if (idv.isNull()) continue; int deviceId = (int)idv.toUInt(&ok); if (!ok) { xml.raiseError(QLatin1String("Invalid device ID")); continue; } idSet.insert(deviceId); DVRCamera *camera = getCamera(deviceId); if (camera) { camera->setOnline(true); DVRCameraXMLReader xmlReader; if (!xmlReader.readCamera(camera, xml)) { if (!xml.hasError()) xml.raiseError(QLatin1String("Device parsing failed")); continue; } else { DVRCameraSettingsWriter settingsWriter; settingsWriter.writeCamera(camera); } } if (!m_visibleCameras.contains(camera)) { m_visibleCameras.append(camera); emit cameraAdded(camera); } } } break; } else xml.skipCurrentElement(); } if (!hasDevicesElement) xml.raiseError(QLatin1String("Invalid format: no devices element")); if (xml.hasError()) { qWarning() << "DVRServer: Error while parsing camera list:" << xml.errorString(); return; } for (int i = 0; i < m_visibleCameras.size(); ++i) { if (!idSet.contains(m_visibleCameras[i]->data().id())) { DVRCamera *c = m_visibleCameras[i]; m_visibleCameras.removeAt(i); m_camerasMap.remove(c->data().id()); qDebug("DVRServer: camera %d removed", c->data().id()); emit cameraRemoved(c); --i; delete c; } } if (!m_devicesLoaded || (wasEmpty && !m_visibleCameras.isEmpty())) { m_devicesLoaded = true; emit devicesReady(); } }