bool checkFileSum(const QString &filePath, const QString &checksum) { bool res = false; WaitDialog wd; QObject *worker = new QObject; worker->moveToThread(new QThread); wd.connect(worker->thread(), &QThread::started, worker, [worker, &checksum, &res, &filePath]() { if (QFile::exists(filePath)) { QFile f(filePath); f.open(QFile::ReadOnly); QByteArray data = f.readAll(); f.close(); QString fSum = QCryptographicHash::hash(data, QCryptographicHash::Sha1).toHex(); res = fSum == checksum; } else res = false; worker->deleteLater(); }); wd.connect(worker, &QObject::destroyed, worker->thread(), &QThread::quit); wd.connect(worker->thread(), &QThread::finished, worker->thread(), &QThread::deleteLater); wd.connect(worker->thread(), &QThread::destroyed, &wd, &WaitDialog::accept); worker->thread()->start(); wd.exec(); return res; }
QNetworkConfigurationManagerPrivate *qNetworkConfigurationManagerPrivate() { QNetworkConfigurationManagerPrivate *ptr = connManager_ptr.loadAcquire(); int shutdown = appShutdown.loadAcquire(); if (!ptr && !shutdown) { static QBasicMutex connManager_mutex; QMutexLocker locker(&connManager_mutex); if (!(ptr = connManager_ptr.loadAcquire())) { ptr = new QNetworkConfigurationManagerPrivate; if (QCoreApplicationPrivate::mainThread() == QThread::currentThread()) { // right thread or no main thread yet ptr->addPreAndPostRoutine(); ptr->initialize(); } else { // wrong thread, we need to make the main thread do this QObject *obj = new QObject; QObject::connect(obj, SIGNAL(destroyed()), ptr, SLOT(addPreAndPostRoutine()), Qt::DirectConnection); ptr->initialize(); // this moves us to the right thread obj->moveToThread(QCoreApplicationPrivate::mainThread()); obj->deleteLater(); } connManager_ptr.storeRelease(ptr); } } return ptr; }
/*! \internal */ void QNodePrivate::nodePtrDeleter(QNode *q) { QObject *p = q->parent(); if (p == nullptr) p = q; p->deleteLater(); }
void uVision::deleteThread() { QObject* obj = sender(); thumbnailthread * th = qobject_cast<thumbnailthread*>(obj); qDebug() << "delete thread..." << th->waitseconds(); obj->deleteLater(); }
QObject *QFAppDispatcher::singletonObject(QQmlEngine *engine, QString package, int versionMajor, int versionMinor, QString typeName) { QString pattern = "import QtQuick 2.0\nimport %1 %2.%3;QtObject { property var object : %4 }"; QString qml = pattern.arg(package).arg(versionMajor).arg(versionMinor).arg(typeName); QObject* holder = 0; QQmlComponent comp (engine); comp.setData(qml.toUtf8(),QUrl()); holder = comp.create(); if (!holder) { qWarning() << QString("QuickFlux: Failed to gain singleton object: %1").arg(typeName); qWarning() << QString("Error: ") << comp.errorString(); return 0; } QObject*object = holder->property("object").value<QObject*>(); holder->deleteLater(); if (!object) { qWarning() << QString("QuickFlux: Failed to gain singleton object: %1").arg(typeName); qWarning() << QString("Error: Unknown"); } return object; }
QString Recursive::out() { QString ret; // qDebug() << Q_FUNC_INFO << __LINE__ << m_target << m_child; QVariant child = m_child; static int qjsType = qRegisterMetaType<QJSValue>(); if (child.type() == qjsType) { child = child.value<QJSValue>().toVariant(); } if (m_target && child.type() == QVariant::List) { QObject *object = m_target->create(m_target->creationContext()); SilkAbstractHttpObject *http = qobject_cast<SilkAbstractHttpObject *>(object); if (http) { http->setProperty("model", child); ret.append(http->out()); } object->deleteLater(); } else { qDebug() << Q_FUNC_INFO << __LINE__ << child.type() << (int)child.type() << child; } // qDebug() << Q_FUNC_INFO << __LINE__ << ret; return ret; }
void MediaView::reloadCurrentVideo() { Video *video = playlistModel->activeVideo(); if (!video) return; int oldFormat = video->getDefinitionCode(); QObject *context = new QObject(); connect(video, &Video::gotStreamUrl, context, [this, oldFormat, video, context](const QString &videoUrl, const QString &audioUrl) { context->deleteLater(); if (oldFormat == video->getDefinitionCode()) return; QObject *context2 = new QObject(); const qint64 position = media->position(); connect(media, &Media::stateChanged, context2, [position, this, context2](Media::State state) { if (state == Media::PlayingState) { media->seek(position); context2->deleteLater(); Video *video = playlistModel->activeVideo(); QString msg = tr("Switched to %1") .arg(VideoDefinition::forCode( video->getDefinitionCode()) .getName()); MainWindow::instance()->showMessage(msg); } }); if (audioUrl.isEmpty()) { media->play(videoUrl); } else { media->playSeparateAudioAndVideo(videoUrl, audioUrl); } }); video->loadStreamUrl(); }
void DBusFileDialogManager::destroyDialog(const QDBusObjectPath &path) { QObject *object = m_dialogObjectMap.value(path); if (object) object->deleteLater(); }
void BuildingComponentDialogCentralWidget::measureDownloadComplete(const std::string& uid, const boost::optional<BCLMeasure>& measure) { QObject* sender = this->sender(); if (sender){ sender->deleteLater(); } if (measure){ // good // remove old measure boost::optional<BCLMeasure> oldMeasure = LocalBCL::instance().getMeasure(measure->uid()); if (oldMeasure && oldMeasure->versionId() != measure->versionId()){ LocalBCL::instance().removeMeasure(*oldMeasure); } }else{ // error downloading measure // find measure in list by uid and re-enable for (Component* component : m_collapsibleComponentList->components()) { if (component->uid() == uid){ component->checkBox()->setEnabled(true); break; } } } m_pendingDownloads.erase(uid); if (m_pendingDownloads.empty()){ // show not busy m_progressBar->setValue(0); m_progressBar->setMinimum(0); m_progressBar->setMaximum(0); m_progressBar->setVisible(false); m_showNewComponents = true; } }
QScriptValue QDeclarativeObjectScriptClass::destroy(QScriptContext *context, QScriptEngine *engine) { QDeclarativeEnginePrivate *p = QDeclarativeEnginePrivate::get(engine); QScriptValue that = context->thisObject(); if (scriptClass(that) != p->objectClass) return engine->undefinedValue(); ObjectData *data = (ObjectData *)p->objectClass->object(that); if (!data->object) return engine->undefinedValue(); QDeclarativeData *ddata = QDeclarativeData::get(data->object, false); if (!ddata || ddata->indestructible) return engine->currentContext()->throwError(QLatin1String("Invalid attempt to destroy() an indestructible object")); QObject *obj = data->object; int delay = 0; if (context->argumentCount() > 0) delay = context->argument(0).toInt32(); if (delay > 0) QTimer::singleShot(delay, obj, SLOT(deleteLater())); else obj->deleteLater(); return engine->undefinedValue(); }
void Graph::destroy_dialog() { if (started && paused) this->resume_animation(); QObject *dialog = panel->findChild<QObject*>("nodeDialog"); dialog->deleteLater(); }
void MainWindow::taskEnd() { QObject *sender = QObject::sender(); if (sender == m_versionLoadTask) m_versionLoadTask = NULL; sender->deleteLater(); }
void ExportPrimersDialog::sl_connectionCompleted() { QObject *connectionDialog = sender(); if (Q_LIKELY(NULL != connectionDialog)) { connectionDialog->deleteLater(); } initDatabases(); sl_updateState(); }
void QJnextMainLoop::deleteObject(uint id, QByteArray* result) { QObject *object = objects.take(id); if (object != bb::Application::instance()) object->deleteLater(); #ifdef DEBUG_QJnextMainLoop qDebug() << "[QJnextMainLoop]\tObject" << id << "destroyed"; #endif *result = ""; }
void quetzal_close_request(PurpleRequestType type, void *ui_handle) { qDebug() << Q_FUNC_INFO; Q_UNUSED(type); QObject *obj = quetzal_request_guard_value(ui_handle); if (QWidget *widget = qobject_cast<QWidget *>(obj)) widget->close(); if (obj) { obj->setProperty("quetzal_closed", true); obj->deleteLater(); } }
void NewsFeed::removeAll() { #ifdef NEWS_DEBUG std::cerr << "NewsFeed::removeAll()" << std::endl; #endif while (widgetList.count()) { QObject *item = widgetList.first(); widgetList.pop_front(); if (item) { item->deleteLater(); } } }
void MachinetalkService::updateComplexRepeatedField(QObject *object, const google::protobuf::Message &message, const google::protobuf::FieldDescriptor *field, const QString &tempDir) { const auto &name = QByteArray::fromStdString(field->camelcase_name()); const gpb::Reflection *reflection = message.GetReflection(); auto list = qvariant_cast<QVariant>(object->property(name)).toList(); QList<int> removeList; // store index of items to remove bool lengthChanged = false; for (int i = 0; i < reflection->FieldSize(message, field); ++i) { const gpb::Message &subMessage = reflection->GetRepeatedMessage(message, field, i); const gpb::Descriptor *subDescriptor = subMessage.GetDescriptor(); const gpb::FieldDescriptor *subField = subDescriptor->FindFieldByName("index"); const gpb::Reflection *subReflection = subMessage.GetReflection(); const int index = subReflection->GetInt32(subMessage, subField); while (list.size() < (index + 1)) { QObject *newObject = recurseDescriptor(subDescriptor, object); list.append(QVariant::fromValue(newObject)); lengthChanged = true; } QObject *item = qvariant_cast<QObject*>(list.at(index)); Q_ASSERT(item != nullptr); if (recurseMessage(subMessage, item, tempDir) <= 1) // only index -> remove object { removeList.append(index); } } // remove marked items if (removeList.length() > 0) { std::sort(removeList.begin(), removeList.end()); for (int k = (removeList.length() - 1); k >= 0; k--) { QObject *item = qvariant_cast<QObject*>(list.takeAt(removeList[k])); Q_ASSERT(item != nullptr); item->deleteLater(); } lengthChanged = true; } if (lengthChanged) // we need to notify property bindings about changes in length { object->setProperty(name, QVariant::fromValue(list)); } }
void removePrefix(const QString &prefixHash, QWidget *parent) { WaitDialog wd(parent); QObject *worker = new QObject; worker->moveToThread(new QThread); wd.connect(worker->thread(), &QThread::started, worker, [worker, prefixHash]() { prefix(prefixHash).removeRecursively(); worker->deleteLater(); }); wd.connect(worker, &QObject::destroyed, worker->thread(), &QThread::quit); wd.connect(worker->thread(), &QThread::finished, worker->thread(), &QThread::deleteLater); wd.connect(worker->thread(), &QThread::destroyed, &wd, &WaitDialog::accept); worker->thread()->start(); wd.exec(); }
void MediaView::snapshot() { qint64 currentTime = media->position() / 1000; QObject *context = new QObject(); connect(media, &Media::snapshotReady, context, [this, currentTime, context](const QImage &image) { context->deleteLater(); if (image.isNull()) { qWarning() << "Null snapshot"; return; } QPixmap pixmap = QPixmap::fromImage(image.scaled( videoWidget->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation)); videoAreaWidget->showSnapshotPreview(pixmap); Video *video = playlistModel->activeVideo(); if (!video) return; QString location = SnapshotSettings::getCurrentLocation(); QDir dir(location); if (!dir.exists()) dir.mkpath(location); QString basename = video->getTitle(); QString format = video->getDuration() > 3600 ? "h_mm_ss" : "m_ss"; basename += " (" + QTime(0, 0, 0).addSecs(currentTime).toString(format) + ")"; basename = DataUtils::stringToFilename(basename); QString filename = location + "/" + basename + ".png"; qDebug() << filename; image.save(filename, "PNG"); if (snapshotSettings) delete snapshotSettings; snapshotSettings = new SnapshotSettings(videoWidget); snapshotSettings->setSnapshot(pixmap, filename); QStatusBar *statusBar = MainWindow::instance()->statusBar(); #ifdef APP_EXTRA Extra::fadeInWidget(statusBar, statusBar); #endif statusBar->insertPermanentWidget(0, snapshotSettings); snapshotSettings->show(); MainWindow::instance()->setStatusBarVisibility(true); } #endif ); media->snapshot(); }
void NetmusicWidget::netmusicThreadFinished() { QObject* obj = sender(); TipThread * th = qobject_cast<TipThread*>(obj); obj->deleteLater(); }
void GlobalPrivate::initialisePlugins() { bool LastChance = false; int ResCnt = mPluginInitList.size(); while( ResCnt > 0 ) { ResCnt = 0; for( int i = 0 ; i < mPluginInitList.size() ; ) { QObject *PlgObj = mPluginInitList.at( i ); fugio::PluginInterface *PlgInt = qobject_cast<fugio::PluginInterface *>( PlgObj ); if( !LastChance ) { qDebug() << "Initialising plugin" << PlgObj->metaObject()->className(); } else { qDebug() << "Initialising plugin" << PlgObj->metaObject()->className() << "(Last Chance)"; } qApp->processEvents(); fugio::PluginInterface::InitResult PlgRes = PlgInt->initialise( this, LastChance ); if( PlgRes == fugio::PluginInterface::INIT_OK ) { mPluginInstances.append( PlgObj ); mPluginInitList.removeAt( i ); ResCnt++; LastChance = false; continue; } if( PlgRes == fugio::PluginInterface::INIT_FAILED ) { qWarning() << "Can't initialise plugin" << PlgObj->metaObject()->className(); PlgObj->deleteLater(); mPluginInitList.removeAt( i ); ResCnt++; continue; } i++; } if( !ResCnt && !LastChance ) { ResCnt++; LastChance = true; } } qDeleteAll( mPluginInitList ); mPluginInitList.clear(); qDebug() << tr( "Plugins loaded: %1" ).arg( mPluginInstances.size() ); qDebug() << tr( "Nodes registered: %1" ).arg( mNodeMap.size() ); }