void LootGroup::readObject(lua_State* L) { LootLuaManager* luaManager = MainWindow::instance->getLootLuaManager(); description = LuaParser::getStringField(L, "description"); minimumLevel = LuaParser::getIntField(L, "minimumLevel"); maximumLevel = LuaParser::getIntField(L, "maximumLevel"); lua_pushstring(L, "lootItems"); lua_gettable(L, -2); int totalItems = luaL_getn(L, -1); for (int i = 1; i <= totalItems; ++i) { lua_rawgeti(L, -1, i); QString itemTemplate = LuaParser::getStringField(L, "itemTemplate"); int weight = LuaParser::getIntField(L, "weight"); if (!luaManager->itemTemplateExists(itemTemplate)) continue; QExplicitlySharedDataPointer<LootItemTemplate> lootItemTemplate = luaManager->getItemTemplate(itemTemplate); lootItemTemplate->registerLootGroup(groupName); addLootItemTemplate(itemTemplate, weight); lua_pop(L, 1); } lua_pop(L, 1); }
void QNetworkConfigurationManagerPrivate::deleteConfiguration(QString& iap_id) { /* Called when IAPs are deleted in db, in this case we do not scan * or read all the IAPs from db because it might take too much power * (multiple applications would need to scan and read all IAPs from db) */ if (accessPointConfigurations.contains(iap_id)) { QExplicitlySharedDataPointer<QNetworkConfigurationPrivate> priv = accessPointConfigurations.take(iap_id); if (priv.data()) { priv->isValid = false; #ifdef BEARER_MANAGEMENT_DEBUG qDebug() << "IAP" << iap_id << "was removed from storage."; #endif QNetworkConfiguration item; item.d = priv; emit configurationRemoved(item); } else qWarning("Configuration not found for IAP %s", iap_id.toAscii().data()); } else { #ifdef BEARER_MANAGEMENT_DEBUG qDebug("IAP: %s, already missing from the known list", iap_id.toAscii().data()); #endif } }
void MediaPlayer::openUrl( const QString& url ) { QExplicitlySharedDataPointer<Playlist> playlist = Playlist::construct_playlist( url ); playlist->setPlaying( playlist->index( 0 ) ); setPlaylist( playlist ); }
void QWebEnginePagePrivate::recreateFromSerializedHistory(QDataStream &input) { QExplicitlySharedDataPointer<WebContentsAdapter> newWebContents = WebContentsAdapter::createFromSerializedNavigationHistory(input, this); if (newWebContents) { adapter = newWebContents.data(); adapter->initialize(this); } }
bool AtomicValue::evaluateEBV(const QExplicitlySharedDataPointer<DynamicContext> &context) const { context->error(QtXmlPatterns::tr("A value of type %1 cannot have an " "Effective Boolean Value.") .arg(formatType(context->namePool(), type())), ReportContext::FORG0006, QSourceLocation()); return false; /* Silence GCC warning. */ }
void MediaPlayer::setDocument( const QString& doc ) { m_closeonback = true; QExplicitlySharedDataPointer<Playlist> playlist = Playlist::construct_playlist( doc ); playlist->setPlaying( playlist->index( 0 ) ); setPlaylist( playlist ); }
Item DecimalMathematician::calculate(const Item &o1, const Operator op, const Item &o2, const QExplicitlySharedDataPointer<DynamicContext> &context) const { switch(op) { case Div: { if(o2.as<Numeric>()->toInteger() == 0) { context->error(divZeroInvalid(), ReportContext::FOAR0001, this); return Item(); /* Silences source code analyzer warning. */ } else return toItem(Decimal::fromValue(o1.as<Numeric>()->toDecimal() / o2.as<Numeric>()->toDecimal())); } case IDiv: { if(o2.as<Numeric>()->toInteger() == 0) { context->error(idivZeroInvalid(), ReportContext::FOAR0001, this); return Item(); /* Silences source code analyzer warning. */ } else return Integer::fromValue(static_cast<xsInteger>(o1.as<Numeric>()->toDecimal() / o2.as<Numeric>()->toDecimal())); } case Substract: return toItem(Decimal::fromValue(o1.as<Numeric>()->toDecimal() - o2.as<Numeric>()->toDecimal())); case Mod: { if(o2.as<Numeric>()->toInteger() == 0) { context->error(modZeroInvalid(), ReportContext::FOAR0001, this); return Item(); /* Silences source code analyzer warning. */ } else return toItem(Decimal::fromValue(::fmod(o1.as<Numeric>()->toDecimal(), o2.as<Numeric>()->toDecimal()))); } case Multiply: return toItem(Decimal::fromValue(o1.as<Numeric>()->toDecimal() * o2.as<Numeric>()->toDecimal())); case Add: return toItem(Decimal::fromValue(o1.as<Numeric>()->toDecimal() + o2.as<Numeric>()->toDecimal())); } Q_ASSERT(false); return Item(); /* GCC unbarfer. */ }
Item AbstractFloatMathematician<isDouble>::calculate(const Item &o1, const Operator op, const Item &o2, const QExplicitlySharedDataPointer<DynamicContext> &context) const { const Numeric *const num1 = o1.template as<Numeric>(); const Numeric *const num2 = o2.template as<Numeric>(); switch(op) { case Div: return toItem(AbstractFloat<isDouble>::fromValue(num1->toDouble() / num2->toDouble())); case IDiv: { if(num1->isNaN() || num2->isNaN()) { context->error(QtXmlPatterns::tr("No operand in an integer division, %1, can be %2.") .arg(formatKeyword("idiv")) .arg(formatData("NaN")), ReportContext::FOAR0002, this); } else if(num1->isInf()) { context->error(QtXmlPatterns::tr("The first operand in an integer division, %1, cannot be infinity (%2).") .arg(formatKeyword("idiv")) .arg(formatData("INF")), ReportContext::FOAR0002, this); } else if(num2->toInteger() == 0) context->error(QtXmlPatterns::tr("The second operand in a division, %1, cannot be zero (%2).") .arg(formatKeyword("idiv")) .arg(formatData("0")), ReportContext::FOAR0001, this); return Integer::fromValue(static_cast<xsInteger>(num1->toDouble() / num2->toDouble())); } case Substract: return toItem(AbstractFloat<isDouble>::fromValue(num1->toDouble() - num2->toDouble())); case Mod: return toItem(AbstractFloat<isDouble>::fromValue(::fmod(num1->toDouble(), num2->toDouble()))); case Multiply: return toItem(AbstractFloat<isDouble>::fromValue(num1->toDouble() * num2->toDouble())); case Add: return toItem(AbstractFloat<isDouble>::fromValue(num1->toDouble() + num2->toDouble())); } Q_ASSERT(false); return Item(); /* GCC unbarfer. */ }
QByteArray fullName() const { if (!mParent) { return name(); } return mParent->fullName(mName); }
Item DateTimeDurationMathematician::calculate(const Item &o1, const Operator op, const Item &o2, const QExplicitlySharedDataPointer<DynamicContext> &context) const { Q_ASSERT(op == Substract || op == Add); const AbstractDateTime::Ptr adt(o1.as<AbstractDateTime>()); const AbstractDuration::Ptr dur(o2.as<AbstractDuration>()); QDateTime dt(adt->toDateTime()); //pDebug() << "DateTimeDurationMathematician::calculate():" << dt.toString(); //dt.setDateOnly(false); const qint8 sign = (op == Add ? 1 : -1) * (dur->isPositive() ? 1 : -1); // TODO milli seconds dt = dt.addSecs(sign * (dur->seconds() + dur->minutes() * 60 + dur->hours() * 60 * 60)); dt = dt.addDays(sign * dur->days()); dt = dt.addMonths(sign * dur->months()); dt = dt.addYears(sign * dur->years()); QString msg; if(AbstractDateTime::isRangeValid(dt.date(), msg)) return adt->fromValue(dt); else { context->error(msg, ReportContext::FODT0001, this); return Item(); } }
bool Boolean::evaluateEBV(const Item &first, const Item::Iterator::Ptr &it, const QExplicitlySharedDataPointer<DynamicContext> &context) { Q_ASSERT(it); Q_ASSERT(context); if(!first) return false; else if(first.isNode()) return true; const Item second(it->next()); if(second) { Q_ASSERT(context); context->error(QtXmlPatterns::tr("Effective Boolean Value cannot be calculated for a sequence " "containing two or more atomic values."), ReportContext::FORG0006, QSourceLocation()); return false; } else return first.as<AtomicValue>()->evaluateEBV(context); }
QT_END_NAMESPACE void tst_QExplicitlySharedDataPointer::pointerOperatorOnConst() const { /* Pointer itself is const. */ { const QExplicitlySharedDataPointer<const MyClass> pointer(new MyClass()); pointer->notMutating(); } /* Pointer itself is mutable. */ { QExplicitlySharedDataPointer<const MyClass> pointer(new MyClass()); pointer->notMutating(); } }
void QNetworkConfigurationManagerPrivate::updateInternetServiceConfiguration() { if (!snapConfigurations.contains(QLatin1String("Internet Service Network"))) { QNetworkConfigurationPrivate *serviceNetwork = new QNetworkConfigurationPrivate; serviceNetwork->name = tr("Internet"); serviceNetwork->isValid = true; serviceNetwork->id = QLatin1String("Internet Service Network"); serviceNetwork->state = QNetworkConfiguration::Defined; serviceNetwork->type = QNetworkConfiguration::ServiceNetwork; QExplicitlySharedDataPointer<QNetworkConfigurationPrivate> ptr(serviceNetwork); snapConfigurations.insert(serviceNetwork->id, ptr); if (!firstUpdate) { QNetworkConfiguration item; item.d = ptr; emit configurationAdded(item); } } QExplicitlySharedDataPointer<QNetworkConfigurationPrivate> ptr = snapConfigurations.value(QLatin1String("Internet Service Network")); QList<QExplicitlySharedDataPointer<QNetworkConfigurationPrivate> > serviceNetworkMembers; QHash<QString, QExplicitlySharedDataPointer<QNetworkConfigurationPrivate> >::const_iterator i = accessPointConfigurations.constBegin(); QNetworkConfiguration::StateFlags state = QNetworkConfiguration::Defined; while (i != accessPointConfigurations.constEnd()) { QExplicitlySharedDataPointer<QNetworkConfigurationPrivate> child = i.value(); if (child.data()->internet && ((child.data()->state & QNetworkConfiguration::Defined) == QNetworkConfiguration::Defined)) { serviceNetworkMembers.append(child); state |= child.data()->state; } ++i; } if (ptr.data()->state != state || ptr.data()->serviceNetworkMembers != serviceNetworkMembers) { ptr.data()->state = state; ptr.data()->serviceNetworkMembers = serviceNetworkMembers; QNetworkConfiguration item; item.d = ptr; emit configurationChanged(item); } }
void tst_QExplicitlySharedDataPointer::reset() const { /* Do reset on a single ref count. */ { QExplicitlySharedDataPointer<MyClass> pointer(new MyClass()); QVERIFY(pointer.data() != 0); pointer.reset(); QCOMPARE(pointer.data(), static_cast<MyClass *>(0)); } /* Do reset on a default constructed object. */ { QExplicitlySharedDataPointer<MyClass> pointer; QCOMPARE(pointer.data(), static_cast<MyClass *>(0)); pointer.reset(); QCOMPARE(pointer.data(), static_cast<MyClass *>(0)); } }
void tst_QExplicitlySharedDataPointer::data() const { /* Check default value. */ { QExplicitlySharedDataPointer<const MyClass> pointer; QCOMPARE(pointer.data(), static_cast<const MyClass *>(0)); } /* On const pointer. Must not mutate the pointer. */ { const QExplicitlySharedDataPointer<const MyClass> pointer(new MyClass()); pointer.data(); /* Check that this cast is possible. */ static_cast<const MyClass *>(pointer.data()); } /* On mutatable pointer. Must not mutate the pointer. */ { QExplicitlySharedDataPointer<const MyClass> pointer(new MyClass()); pointer.data(); /* Check that this cast is possible. */ static_cast<const MyClass *>(pointer.data()); } /* Must not mutate the pointer. */ { const QExplicitlySharedDataPointer<MyClass> pointer(new MyClass()); pointer.data(); /* Check that these casts are possible. */ static_cast<MyClass *>(pointer.data()); static_cast<const MyClass *>(pointer.data()); } /* Must not mutate the pointer. */ { QExplicitlySharedDataPointer<MyClass> pointer(new MyClass()); pointer.data(); /* Check that these casts are possible. */ static_cast<MyClass *>(pointer.data()); static_cast<const MyClass *>(pointer.data()); } }
void QNetworkConfigurationManagerPrivate::configurationRemoved(const QString &id) { if (!accessPointConfigurations.contains(id)) return; QExplicitlySharedDataPointer<QNetworkConfigurationPrivate> ptr = accessPointConfigurations.take(id); configurationEngine.remove(id); ptr.data()->isValid = false; if (!firstUpdate) { QNetworkConfiguration item; item.d = ptr; emit configurationRemoved(item); } if (ptr.data()->state == QNetworkConfiguration::Active) { --onlineConfigurations; if (!firstUpdate && onlineConfigurations == 0) emit onlineStateChanged(false); } }
void tst_QExplicitlySharedDataPointer::pointerOperatorOnMutable() const { /* Pointer itself is const. */ { const QExplicitlySharedDataPointer<MyClass> pointer(new MyClass()); pointer->notMutating(); pointer->mutating(); *pointer = MyClass(); } /* Pointer itself is mutable. */ { const QExplicitlySharedDataPointer<MyClass> pointer(new MyClass()); pointer->notMutating(); pointer->mutating(); *pointer = MyClass(); } }
Item DurationNumericMathematician::calculate(const Item &o1, const Operator op, const Item &o2, const QExplicitlySharedDataPointer<DynamicContext> &context) const { Q_ASSERT(op == Div || op == Multiply); const AbstractDuration::Ptr duration(o1.as<AbstractDuration>()); const xsDouble dbl = o2.as<Numeric>()->toDouble(); switch(op) { case Div: { if(qIsInf(dbl)) return duration->fromValue(0); else if(qIsNaN(dbl)) { context->error(QtXmlPatterns::tr( "Dividing a value of type %1 by %2 (not-a-number) " "is not allowed.") .arg(formatType(context->namePool(), duration->type())) .arg(formatData("NaN")), ReportContext::FOCA0005, this); return Item(); } else if(Double::isEqual(dbl, 0)) { context->error(QtXmlPatterns::tr( "Dividing a value of type %1 by %2 or %3 (plus or " "minus zero) is not allowed.") .arg(formatType(context->namePool(), duration->type())) .arg(formatData("-0")) .arg(formatData("0")), ReportContext::FODT0002, this); return Item(); } return duration->fromValue(static_cast<AbstractDuration::Value>(duration->value() / dbl)); } case Multiply: { if(Double::isEqual(dbl, 0)) return duration->fromValue(0); else if(qIsNaN(dbl)) { context->error(QtXmlPatterns::tr( "Dividing a value of type %1 by %2 (not-a-number) " "is not allowed.") .arg(formatType(context->namePool(), duration->type())) .arg(formatData("NaN")), ReportContext::FOCA0005, this); return Item(); } else if(qIsInf(dbl)) { context->error(QtXmlPatterns::tr( "Multiplication of a value of type %1 by %2 or %3 " "(plus or minus infinity) is not allowed.") .arg(formatType(context->namePool(), duration->type())) .arg(formatData("-INF")) .arg(formatData("INF")), ReportContext::FODT0002, this); return Item(); } return duration->fromValue(static_cast<AbstractDuration::Value>(duration->value() * dbl)); } default: { Q_ASSERT(false); return Item(); /* Silence warning. */ } } }
void KstViewFitsDialog::fitChanged(const QString& strFit) { KstCPluginList fits; KstCPluginPtr plugin; double* params = 0L; double* covars = 0L; double chi2Nu = 0.0; int numParams = 0; int numCovars = 0; int i; fits = kstObjectSubList<KstDataObject,KstCPlugin>(KST::dataObjectList); plugin = *(fits.findTag(strFit)); if (plugin) { KstScalarPtr scalarChi2Nu; KstVectorPtr vectorParam; plugin->readLock(); const KstScalarMap& scalars = plugin->outputScalars(); scalarChi2Nu = scalars["chi^2/nu"]; if (scalarChi2Nu) { scalarChi2Nu->readLock(); chi2Nu = scalarChi2Nu->value(); scalarChi2Nu->unlock(); } const KstVectorMap& vectors = plugin->outputVectors(); vectorParam = vectors["Parameters"]; if (vectorParam) { KstVectorPtr vectorCovar; vectorParam->readLock(); vectorCovar = vectors["Covariance"]; if (vectorCovar) { vectorCovar->readLock(); numParams = vectorParam->length(); numCovars = vectorCovar->length(); if (numParams > 0 && numCovars > 0) { params = new double[numParams]; covars = new double[numCovars]; for (i = 0; i < numParams; i++) { params[i] = vectorParam->value(i); } for (i = 0; i < numCovars; i++) { covars[i] = vectorCovar->value(i); } } vectorCovar->unlock(); } vectorParam->unlock(); } plugin->unlock(); } _tableFits->setParameters(params, numParams, covars, numCovars, chi2Nu); if (numParams > 0) { _tableFits->horizontalHeaderItem(0)->setText(QObject::tr("Value")); _tableFits->horizontalHeaderItem(1)->setText(QObject::tr("Covariance:")); _tableFits->verticalHeaderItem(numParams+0)->setText("---"); _tableFits->verticalHeaderItem(numParams+1)->setText(QObject::tr("Chi^2/Nu")); if (plugin) { QExplicitlySharedDataPointer<Plugin> pluginBase; plugin->readLock(); pluginBase = plugin->plugin(); if (pluginBase) { textLabelFit->setText(pluginBase->data()._readableName); for (i = 0; i < numParams; i++) { QString parameterName = pluginBase->parameterName(i); _tableFits->horizontalHeaderItem(i+2)->setText(parameterName); _tableFits->verticalHeaderItem(i)->setText(parameterName); } } plugin->unlock(); } } _tableFits->update(); }
bool KConfig::sync() { Q_D(KConfig); if (isImmutable() || name().isEmpty()) { // can't write to an immutable or anonymous file. return false; } if (d->bDirty && d->mBackend) { const QByteArray utf8Locale(locale().toUtf8()); // Create the containing dir, maybe it wasn't there d->mBackend->createEnclosing(); // lock the local file if (d->configState == ReadWrite && !d->lockLocal()) { qWarning() << "couldn't lock local file"; return false; } // Rewrite global/local config only if there is a dirty entry in it. bool writeGlobals = false; bool writeLocals = false; Q_FOREACH (const KEntry &e, d->entryMap) { if (e.bDirty) { if (e.bGlobal) { writeGlobals = true; } else { writeLocals = true; } if (writeGlobals && writeLocals) { break; } } } d->bDirty = false; // will revert to true if a config write fails if (d->wantGlobals() && writeGlobals) { QExplicitlySharedDataPointer<KConfigBackend> tmp = KConfigBackend::create(*sGlobalFileName); if (d->configState == ReadWrite && !tmp->lock()) { qWarning() << "couldn't lock global file"; //unlock the local config if we're returning early if (d->mBackend->isLocked()) { d->mBackend->unlock(); } d->bDirty = true; return false; } if (!tmp->writeConfig(utf8Locale, d->entryMap, KConfigBackend::WriteGlobal)) { d->bDirty = true; } if (tmp->isLocked()) { tmp->unlock(); } } if (writeLocals) { if (!d->mBackend->writeConfig(utf8Locale, d->entryMap, KConfigBackend::WriteOptions())) { d->bDirty = true; } } if (d->mBackend->isLocked()) { d->mBackend->unlock(); } } return !d->bDirty; }
Item StringToHexBinaryCaster::castFrom(const Item &from, const QExplicitlySharedDataPointer<DynamicContext> &context) const { return HexBinary::fromLexical(context->namePool(), from.stringValue()); }
void QNetworkConfigurationManagerPrivate::configurationChanged(QNetworkConfigurationPrivate *cpPriv) { if (!accessPointConfigurations.contains(cpPriv->id)) return; QExplicitlySharedDataPointer<QNetworkConfigurationPrivate> ptr = accessPointConfigurations.value(cpPriv->id); if (ptr.data()->isValid != cpPriv->isValid || ptr.data()->name != cpPriv->name || ptr.data()->id != cpPriv->id || ptr.data()->state != cpPriv->state || ptr.data()->type != cpPriv->type || ptr.data()->roamingSupported != cpPriv->roamingSupported || ptr.data()->purpose != cpPriv->purpose || ptr.data()->bearer != cpPriv->bearer || ptr.data()->internet != cpPriv->internet) { const QNetworkConfiguration::StateFlags oldState = ptr.data()->state; ptr.data()->isValid = cpPriv->isValid; ptr.data()->name = cpPriv->name; ptr.data()->id = cpPriv->id; ptr.data()->state = cpPriv->state; ptr.data()->type = cpPriv->type; ptr.data()->roamingSupported = cpPriv->roamingSupported; ptr.data()->purpose = cpPriv->purpose; ptr.data()->internet = cpPriv->internet; ptr.data()->bearer = cpPriv->bearer; if (!firstUpdate) { QNetworkConfiguration item; item.d = ptr; emit configurationChanged(item); } if (ptr.data()->state == QNetworkConfiguration::Active && oldState != ptr.data()->state) { // configuration went online ++onlineConfigurations; if (!firstUpdate && onlineConfigurations == 1) emit onlineStateChanged(true); } else if (ptr.data()->state != QNetworkConfiguration::Active && oldState == QNetworkConfiguration::Active) { // configuration went offline --onlineConfigurations; if (!firstUpdate && onlineConfigurations == 0) emit onlineStateChanged(false); } } }
void QNetworkConfigurationManagerPrivate::addConfiguration(QString& iap_id) { // Note: When new IAP is created, this function gets called multiple times // in a row. // For example: Empty type & name for WLAN was stored into newly // created IAP data in gconf when this function gets // called for the first time. // WLAN type & name are updated into IAP data in gconf // as soon as WLAN connection is up and running. // => And this function gets called again. if (!accessPointConfigurations.contains(iap_id)) { Maemo::IAPConf saved_iap(iap_id); QString iap_type = saved_iap.value("type").toString(); QString iap_name = saved_iap.value("name").toString(); QByteArray ssid = saved_iap.value("wlan_ssid").toByteArray(); if (!iap_type.isEmpty() && !iap_name.isEmpty()) { // Check if new IAP is actually Undefined WLAN configuration // Note: SSID is used as an iap id for Undefined WLAN configurations // => configuration must be searched using SSID if (!ssid.isEmpty() && accessPointConfigurations.contains(ssid)) { QExplicitlySharedDataPointer<QNetworkConfigurationPrivate> ptr = accessPointConfigurations.take(ssid); if (ptr.data()) { ptr->id = iap_id; ptr->iap_type = iap_type; ptr->network_attrs = getNetworkAttrs(true, iap_id, iap_type, QString()); ptr->network_id = ssid; ptr->service_id = saved_iap.value("service_id").toString(); ptr->service_type = saved_iap.value("service_type").toString(); if (m_onlineIapId == iap_id) { ptr->state = QNetworkConfiguration::Active; } else { ptr->state = QNetworkConfiguration::Defined; } accessPointConfigurations.insert(iap_id, ptr); configurationChanged(ptr.data()); } } else { QNetworkConfigurationPrivate* cpPriv = new QNetworkConfigurationPrivate(); cpPriv->name = saved_iap.value("name").toString(); if (cpPriv->name.isEmpty()) cpPriv->name = iap_id; cpPriv->isValid = true; cpPriv->id = iap_id; cpPriv->iap_type = iap_type; cpPriv->network_attrs = getNetworkAttrs(true, iap_id, iap_type, QString()); cpPriv->service_id = saved_iap.value("service_id").toString(); cpPriv->service_type = saved_iap.value("service_type").toString(); if (iap_type.startsWith(QLatin1String("WLAN"))) { QByteArray ssid = saved_iap.value("wlan_ssid").toByteArray(); if (ssid.isEmpty()) { qWarning() << "Cannot get ssid for" << iap_id; } cpPriv->network_id = ssid; } cpPriv->type = QNetworkConfiguration::InternetAccessPoint; if (m_onlineIapId == iap_id) { cpPriv->state = QNetworkConfiguration::Active; } else { cpPriv->state = QNetworkConfiguration::Defined; } cpPriv->manager = this; QExplicitlySharedDataPointer<QNetworkConfigurationPrivate> ptr(cpPriv); accessPointConfigurations.insert(iap_id, ptr); #ifdef BEARER_MANAGEMENT_DEBUG qDebug("IAP: %s, name: %s, added to known list", iap_id.toAscii().data(), cpPriv->name.toAscii().data()); #endif QNetworkConfiguration item; item.d = ptr; emit configurationAdded(item); } } else { qWarning("IAP %s does not have \"type\" or \"name\" fields defined, skipping this IAP.", iap_id.toAscii().data()); } } else { #ifdef BEARER_MANAGEMENT_DEBUG qDebug() << "IAP" << iap_id << "already in db."; #endif /* Check if the data in db changed and update configuration accordingly */ QExplicitlySharedDataPointer<QNetworkConfigurationPrivate> ptr = accessPointConfigurations.value(iap_id); if (ptr.data()) { Maemo::IAPConf changed_iap(iap_id); QString iap_type = changed_iap.value("type").toString(); bool update_needed = false; /* if IAP type or ssid changed, we need to change the state */ ptr->network_attrs = getNetworkAttrs(true, iap_id, iap_type, QString()); ptr->service_id = changed_iap.value("service_id").toString(); ptr->service_type = changed_iap.value("service_type").toString(); if (!iap_type.isEmpty()) { ptr->name = changed_iap.value("name").toString(); if (ptr->name.isEmpty()) ptr->name = iap_id; ptr->isValid = true; if (ptr->iap_type != iap_type) { ptr->iap_type = iap_type; update_needed = true; } if (iap_type.startsWith(QLatin1String("WLAN"))) { QByteArray ssid = changed_iap.value("wlan_ssid").toByteArray(); if (ssid.isEmpty()) { qWarning() << "Cannot get ssid for" << iap_id; } if (ptr->network_id != ssid) { ptr->network_id = ssid; update_needed = true; } } } if (update_needed) { ptr->type = QNetworkConfiguration::InternetAccessPoint; if (m_onlineIapId == iap_id) { if (ptr->state < QNetworkConfiguration::Active) { ptr->state = QNetworkConfiguration::Active; configurationChanged(ptr.data()); } } else if (ptr->state < QNetworkConfiguration::Defined) { ptr->state = QNetworkConfiguration::Defined; configurationChanged(ptr.data()); } } } else { qWarning("Cannot find IAP %s from current configuration although it should be there.", iap_id.toAscii().data()); } } }
void StaticContext::wrapExpressionWith(const SourceLocationReflection *const existingNode, const QExplicitlySharedDataPointer<Expression> &newNode) { addLocation(newNode.data(), locationFor(existingNode)); }
void QQmlIncubatorPrivate::incubate(QQmlInstantiationInterrupt &i) { if (!compiledData) return; QML_MEMORY_SCOPE_URL(compiledData->url()); QExplicitlySharedDataPointer<QQmlIncubatorPrivate> protectThis(this); QRecursionWatcher<QQmlIncubatorPrivate, &QQmlIncubatorPrivate::recursion> watcher(this); QQmlEngine *engine = compiledData->engine; QQmlEnginePrivate *enginePriv = QQmlEnginePrivate::get(engine); if (!vmeGuard.isOK()) { QQmlError error; error.setUrl(compiledData->url()); error.setDescription(QQmlComponent::tr("Object destroyed during incubation")); errors << error; progress = QQmlIncubatorPrivate::Completed; goto finishIncubate; } vmeGuard.clear(); if (progress == QQmlIncubatorPrivate::Execute) { enginePriv->referenceScarceResources(); QObject *tresult = 0; tresult = creator->create(subComponentToCreate, /*parent*/0, &i); if (!tresult) errors = creator->errors; enginePriv->dereferenceScarceResources(); if (watcher.hasRecursed()) return; result = tresult; if (errors.isEmpty() && result == 0) goto finishIncubate; if (result) { QQmlData *ddata = QQmlData::get(result); Q_ASSERT(ddata); //see QQmlComponent::beginCreate for explanation of indestructible ddata->indestructible = true; ddata->explicitIndestructibleSet = true; ddata->rootObjectInCreation = false; if (q) q->setInitialState(result); } if (watcher.hasRecursed()) return; if (errors.isEmpty()) progress = QQmlIncubatorPrivate::Completing; else progress = QQmlIncubatorPrivate::Completed; changeStatus(calculateStatus()); if (watcher.hasRecursed()) return; if (i.shouldInterrupt()) goto finishIncubate; } if (progress == QQmlIncubatorPrivate::Completing) { do { if (watcher.hasRecursed()) return; QQmlContextData *ctxt = 0; ctxt = creator->finalize(i); if (ctxt) { rootContext = ctxt; progress = QQmlIncubatorPrivate::Completed; goto finishIncubate; } } while (!i.shouldInterrupt()); } finishIncubate: if (progress == QQmlIncubatorPrivate::Completed && waitingFor.isEmpty()) { QExplicitlySharedDataPointer<QQmlIncubatorPrivate> isWaiting = waitingOnMe; clear(); if (isWaiting) { QRecursionWatcher<QQmlIncubatorPrivate, &QQmlIncubatorPrivate::recursion> watcher(isWaiting.data()); changeStatus(calculateStatus()); if (!watcher.hasRecursed()) isWaiting->incubate(i); } else { changeStatus(calculateStatus()); } enginePriv->inProgressCreations--; if (0 == enginePriv->inProgressCreations) { while (enginePriv->erroredBindings) { enginePriv->warning(enginePriv->erroredBindings); enginePriv->erroredBindings->removeError(); } } } else if (!creator.isNull()) { vmeGuard.guard(creator.data()); } }
KrPopupMenu::KrPopupMenu(KrPanel *thePanel, QWidget *parent) : QMenu(parent), panel(thePanel), empty(false), multipleSelections(false), actions(0), _item(0) { #ifdef __LIBKONQ__ konqMenu = 0; konqMenuActions = 0; #endif KrViewItemList items; panel->view->getSelectedKrViewItems(&items); for (KrViewItemList::Iterator it = items.begin(); it != items.end(); ++it) { vfile *file = panel->func->files()->vfs_search(((*it)->name())); QUrl url = file->vfile_getUrl(); _items.append(KFileItem(url, file->vfile_getMime(), file->vfile_getMode())); } if (items.empty()) { addCreateNewMenu(); addSeparator(); addEmptyMenuEntries(); return; } else if (items.size() > 1) multipleSelections = true; QList<QString> protocols; for (int i = 0; i < items.size(); ++i) { protocols.append(panel->func->getVFile(items[ i ]) ->vfile_getUrl().scheme()); } bool inTrash = protocols.contains("trash"); bool trashOnly = (protocols.count() == 1) && (protocols[ 0 ] == "trash"); KrViewItem *item = items.first(); vfile *vf = panel->func->getVFile(item); _item = &_items.first(); // ------------ the OPEN option - open preferred service QAction * openAct = addAction(i18n("Open/Run")); openAct->setData(QVariant(OPEN_ID)); if (!multipleSelections) { // meaningful only if one file is selected openAct->setIcon(item->icon()); openAct->setText(vf->vfile_isExecutable() && !vf->vfile_isDir() ? i18n("Run") : i18n("Open")); // open in a new tab (if folder) if (vf->vfile_isDir()) { QAction * openTab = addAction(i18n("Open in New Tab")); openTab->setData(QVariant(OPEN_TAB_ID)); openTab->setIcon(krLoader->loadIcon("tab-new", KIconLoader::Panel)); openTab->setText(i18n("Open in New Tab")); } addSeparator(); } // ------------- Preview - normal vfs only ? if (panel->func->files()->vfs_getType() == vfs::VFS_NORMAL) { // create the preview popup QStringList names; panel->gui->getSelectedNames(&names); preview.setUrls(panel->func->files() ->vfs_getFiles(names)); QAction *pAct = addMenu(&preview); pAct->setData(QVariant(PREVIEW_ID)); pAct->setText(i18n("Preview")); } // -------------- Open with: try to find-out which apps can open the file // this too, is meaningful only if one file is selected or if all the files // have the same mimetype ! QString mime = panel->func->getVFile(item)->vfile_getMime(); // check if all the list have the same mimetype for (int i = 1; i < items.size(); ++i) { if (panel->func->getVFile(items[ i ]) ->vfile_getMime() != mime) { mime.clear(); break; } } if (!mime.isEmpty()) { offers = KMimeTypeTrader::self()->query(mime); for (int i = 0; i < offers.count(); ++i) { QExplicitlySharedDataPointer<KService> service = offers[i]; if (service->isValid() && service->isApplication()) { openWith.addAction(krLoader->loadIcon(service->icon(), KIconLoader::Small), service->name())->setData(QVariant(SERVICE_LIST_ID + i)); } } openWith.addSeparator(); if (vf->vfile_isDir()) openWith.addAction(krLoader->loadIcon("utilities-terminal", KIconLoader::Small), i18n("Terminal"))->setData(QVariant(OPEN_TERM_ID)); openWith.addAction(i18n("Other..."))->setData(QVariant(CHOOSE_ID)); QAction *owAct = addMenu(&openWith); owAct->setData(QVariant(OPEN_WITH_ID)); owAct->setText(i18n("Open With")); addSeparator(); } // --------------- user actions QAction *uAct = new UserActionPopupMenu(panel->func->files()->vfs_getFile(item->name())); addAction(uAct); uAct->setText(i18n("User Actions")); #ifdef __LIBKONQ__ // -------------- konqueror menu // This section adds all Konqueror/Dolphin menu items. // It's now updated to KDE4 and working, I've just commented it out. // Section below this one adds only servicemenus. // Append only servicemenus //TODO: deprecated since KDE4.3: remove these three lines KonqPopupMenuInformation info; info.setItems(_items); info.setParentWidget(this); konqMenuActions = new KonqMenuActions(); //TODO: deprecated since KDE4.3: remove this line, use two commented lines konqMenuActions->setPopupMenuInfo(info); //konqMenuActions->setParentWidget( this ); //konqMenuActions->setItemListProperties( _items ); konqMenuActions->addActionsTo(this); addSeparator(); #endif // ------------- 'create new' submenu addCreateNewMenu(); addSeparator(); // ---------- COPY addAction(i18n("Copy..."))->setData(QVariant(COPY_ID)); if (panel->func->files() ->vfs_isWritable()) { // ------- MOVE addAction(i18n("Move..."))->setData(QVariant(MOVE_ID)); // ------- RENAME - only one file if (!multipleSelections && !inTrash) addAction(i18n("Rename"))->setData(QVariant(RENAME_ID)); // -------- MOVE TO TRASH KConfigGroup saver(krConfig, "General"); bool trash = saver.readEntry("Move To Trash", _MoveToTrash); if (trash && !inTrash) addAction(i18n("Move to Trash"))->setData(QVariant(TRASH_ID)); // -------- DELETE addAction(i18n("Delete"))->setData(QVariant(DELETE_ID)); // -------- SHRED - only one file /* if ( panel->func->files() ->vfs_getType() == vfs::VFS_NORMAL && !vf->vfile_isDir() && !multipleSelections ) addAction( i18n( "Shred" ) )->setData( QVariant( SHRED_ID ) );*/ } // ---------- link handling // create new shortcut or redirect links - only on local directories: if (panel->func->files() ->vfs_getType() == vfs::VFS_NORMAL) { addSeparator(); linkPopup.addAction(i18n("New Symlink..."))->setData(QVariant(NEW_SYMLINK_ID)); linkPopup.addAction(i18n("New Hardlink..."))->setData(QVariant(NEW_LINK_ID)); if (panel->func->getVFile(item)->vfile_isSymLink()) linkPopup.addAction(i18n("Redirect Link..."))->setData(QVariant(REDIRECT_LINK_ID)); QAction *linkAct = addMenu(&linkPopup); linkAct->setData(QVariant(LINK_HANDLING_ID)); linkAct->setText(i18n("Link Handling")); } addSeparator(); // ---------- calculate space if (panel->func->files() ->vfs_getType() == vfs::VFS_NORMAL && (vf->vfile_isDir() || multipleSelections)) addAction(panel->gui->actions()->actCalculate); // ---------- mount/umount/eject if (panel->func->files() ->vfs_getType() == vfs::VFS_NORMAL && vf->vfile_isDir() && !multipleSelections) { if (krMtMan.getStatus(panel->func->files() ->vfs_getFile(item->name()).path()) == KMountMan::MOUNTED) addAction(i18n("Unmount"))->setData(QVariant(UNMOUNT_ID)); else if (krMtMan.getStatus(panel->func->files() ->vfs_getFile(item->name()).path()) == KMountMan::NOT_MOUNTED) addAction(i18n("Mount"))->setData(QVariant(MOUNT_ID)); if (krMtMan.ejectable(panel->func->files() ->vfs_getFile(item->name()).path())) addAction(i18n("Eject"))->setData(QVariant(EJECT_ID)); } // --------- send by mail if (KrServices::supportedTools().contains("MAIL") && !vf->vfile_isDir()) { addAction(i18n("Send by Email"))->setData(QVariant(SEND_BY_EMAIL_ID)); } // --------- empty trash if (trashOnly) { addAction(i18n("Restore"))->setData(QVariant(RESTORE_TRASHED_FILE_ID)); addAction(i18n("Empty Trash"))->setData(QVariant(EMPTY_TRASH_ID)); } #ifdef SYNCHRONIZER_ENABLED // --------- synchronize if (panel->view->numSelected()) { addAction(i18n("Synchronize Selected Files..."))->setData(QVariant(SYNC_SELECTED_ID)); } #endif // --------- copy/paste addSeparator(); addAction(i18n("Copy to Clipboard"))->setData(QVariant(COPY_CLIP_ID)); if (panel->func->files() ->vfs_isWritable()) { addAction(i18n("Cut to Clipboard"))->setData(QVariant(MOVE_CLIP_ID)); addAction(i18n("Paste from Clipboard"))->setData(QVariant(PASTE_CLIP_ID)); } addSeparator(); // --------- properties addAction(panel->gui->actions()->actProperties); }
void CallbackDirectory::registerCallback(quint64 requestId, const QExplicitlySharedDataPointer<BoolCallback> &callback) { m_callbackMap.insert(requestId, CallbackSharedDataPointer(callback.data())); }