Пример #1
0
bool ScriptBrowseDialog::internal_OpenFile(MonoString* defaultFolder, MonoString* filterList, bool allowMultiselect, MonoArray** outPaths)
{
    Path defaultFolderNative = MonoUtil::monoToWString(defaultFolder);
    WString filterListNative = MonoUtil::monoToWString(filterList);

    FileDialogType type = (FileDialogType)((UINT32)FileDialogType::OpenFile | (UINT32)FileDialogType::Multiselect);

    Vector<Path> paths;
    if (Platform::openBrowseDialog(type, defaultFolderNative, filterListNative, paths))
    {
        ScriptArray pathArray(MonoUtil::getStringClass(), (UINT32)paths.size());

        for (UINT32 i = 0; i < (UINT32)paths.size(); i++)
        {
            MonoString* monoString = MonoUtil::wstringToMono(paths[i].toWString());
            pathArray.set(i, monoString);
        }

        *outPaths = pathArray.getInternal();
        return true;
    }
    else
    {
        *outPaths = nullptr;
        return false;
    }
}
Пример #2
0
void ScriptSelection::internal_GetResourcePathSelection(MonoArray** selection)
{
    Vector<Path> paths = Selection::instance().getResourcePaths();
    ScriptArray pathArray(MonoUtil::getStringClass(), (UINT32)paths.size());

    for (UINT32 i = 0; i < (UINT32)paths.size(); i++)
    {
        MonoString* monoString = MonoUtil::stringToMono(paths[i].toString());
        pathArray.set(i, monoString);
    }

    *selection = pathArray.getInternal();
}
Пример #3
0
void ScriptSelection::internal_SetResourcePathSelection(MonoArray* selection)
{
    Vector<Path> paths;

    ScriptArray pathArray(selection);
    UINT32 arrayLen = pathArray.size();
    for (UINT32 i = 0; i < arrayLen; i++)
    {
        MonoString* monoString = pathArray.get<MonoString*>(i);
        Path path  = MonoUtil::monoToString(monoString);

        paths.push_back(path);
    }

    Selection::instance().setResourcePaths(paths);
}
Пример #4
0
QJSValue QDeclarativeGeoRoute::path() const
{
    QQmlContext *context = QQmlEngine::contextForObject(parent());
    QQmlEngine *engine = context->engine();
    QV4::ExecutionEngine *v4 = QQmlEnginePrivate::getV4Engine(engine);

    QV4::Scope scope(v4);
    QV4::Scoped<QV4::ArrayObject> pathArray(scope, v4->newArrayObject(route_.path().length()));
    for (int i = 0; i < route_.path().length(); ++i) {
        const QGeoCoordinate &c = route_.path().at(i);

        QV4::ScopedValue cv(scope, v4->fromVariant(QVariant::fromValue(c)));
        pathArray->putIndexed(i, cv);
    }

    return QJSValue(v4, pathArray.asReturnedValue());
}
QJSValue QDeclarativePolylineMapItem::path() const
{
    QQmlContext *context = QQmlEngine::contextForObject(parent());
    QQmlEngine *engine = context->engine();
    QV8Engine *v8Engine = QQmlEnginePrivate::getV8Engine(engine);
    QV4::ExecutionEngine *v4 = QV8Engine::getV4(v8Engine);

    QV4::Scope scope(v4);
    QV4::Scoped<QV4::ArrayObject> pathArray(scope, v4->newArrayObject(path_.length()));
    for (int i = 0; i < path_.length(); ++i) {
        const QGeoCoordinate &c = path_.at(i);

        QQmlValueType *vt = QQmlValueTypeFactory::valueType(qMetaTypeId<QGeoCoordinate>());
        QV4::ScopedValue cv(scope, QV4::QmlValueTypeWrapper::create(v8Engine, QVariant::fromValue(c), vt));

        pathArray->putIndexed(i, cv);
    }

    return new QJSValuePrivate(v4, QV4::ValueRef(pathArray));
}