当前位置: 首页>>代码示例>>C++>>正文


C++ CompoundValue::parseString方法代码示例

本文整理汇总了C++中CompoundValue::parseString方法的典型用法代码示例。如果您正苦于以下问题:C++ CompoundValue::parseString方法的具体用法?C++ CompoundValue::parseString怎么用?C++ CompoundValue::parseString使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CompoundValue的用法示例。


在下文中一共展示了CompoundValue::parseString方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: loadDiagram

bool ClassDiagram::loadDiagram(File &file)
    {
    NameValueFile nameValFile;
    bool success = nameValFile.readFile(file);
    if(success)
        {
        CompoundValue names;
        names.parseString(nameValFile.getValue("Names"));
        CompoundValue xPositions;
        xPositions.parseString(nameValFile.getValue("XPositions"));
        CompoundValue yPositions;
        yPositions.parseString(nameValFile.getValue("YPositions"));
        std::vector<ClassNode> &nodes = getNodes();
        for(size_t i=0; i<names.size(); i++)
            {
            OovString name = names[i];
            if(i == 0)
                {
                // The node at index zero is the graph key, and is not stored in
                // the graph with a name or type.
                // The node at index one is the first class, which is typically the
                // same as the drawing name.
                eDiagramStorageTypes drawingType;
                OovString drawingName;
                DiagramStorage::getDrawingHeader(nameValFile, drawingType, drawingName);
                // This adds the key automatically as item index zero.
                // Call this function to set the last selected class name for the journal.
                clearGraphAndAddClass(drawingName, ClassGraph::AN_All,
                        ClassDiagram::DEPTH_SINGLE_CLASS, false);
                int x=0;
                int y=0;
                xPositions[i].getInt(0, INT_MAX, x);
                yPositions[i].getInt(0, INT_MAX, y);
                nodes[0].setPosition(GraphPoint(x, y));
                }
            else
                {
                // This will not add duplicates, so if the name is different
                // from the drawingName, it will be added.
                addClass(name, ClassGraph::AN_All,
                    ClassDiagram::DEPTH_SINGLE_CLASS, false);
                }

            auto nodeIter = std::find_if(nodes.begin(), nodes.end(),
                [&name](ClassNode &node)
                { return(node.getType() && name == node.getType()->getName()); });
            if(nodeIter != nodes.end())
                {
                int x=0;
                int y=0;
                xPositions[i].getInt(0, INT_MAX, x);
                yPositions[i].getInt(0, INT_MAX, y);
                nodeIter->setPosition(GraphPoint(x, y));
                }
            }
        }
    return success;
    }
开发者ID:8l,项目名称:oovcde,代码行数:58,代码来源:ClassDiagram.cpp

示例2: getPackage

Package AvailablePackages::getPackage(OovStringRef const pkgName) const
    {
    /// @todo - should check if all paths are ok with this.
    Package pkg(pkgName, "/usr");

    TextProcessor proc;
    OovProcessChildArgs args;
    args.addArg("pkg-config");
    args.addArg(pkgName);
    args.addArg("--cflags");
    if(proc.spawn("pkg-config", args.getArgv()))
        {
        CompoundValue pkgflags;
        CompoundValue incFlags;
        CompoundValue cppFlags;
        pkgflags.parseString(proc.mText, ' ');
        for(auto &flag : pkgflags)
            {
            if(flag[0] == '-' && flag[1] == 'I')
                {
                flag.erase(0, 2);
                if(flag.compare(0, pkg.getRootDir().length(), pkg.getRootDir()) == 0)
                    flag.erase(0, pkg.getRootDir().length());
                incFlags.push_back(flag);
                }
            else if(flag[0] == '-')
                cppFlags.push_back(flag);
            }
        pkg.setCompileInfo(incFlags.getAsString(), cppFlags.getAsString());
        }
    args.clearArgs();
    args.addArg("pkg-config");
    args.addArg(pkgName);
    args.addArg("--libs");
    if(proc.spawn("pkg-config", args.getArgv()))
        {
        CompoundValue pkgFlags;
        CompoundValue libFlags;
        CompoundValue linkFlags;
        pkgFlags.parseString(proc.mText, ' ');
        for(auto &flag : pkgFlags)
            {
            if(flag[0] == '-' && flag[1] == 'l')
                {
                flag.erase(0, 2);
                libFlags.push_back(flag);
                }
            else if(flag[0] == '-')
                {
                linkFlags.push_back(flag);
                }
            }
        pkg.setLinkInfo("lib", libFlags.getAsString(), linkFlags.getAsString());
        }
    return pkg;
    }
开发者ID:8l,项目名称:oovcde,代码行数:56,代码来源:PackagesProcess.cpp

示例3: includedPathsChanged

bool IncDirDependencyMap::includedPathsChanged(OovStringRef includerFn,
        std::set<std::string> const &includedInfoStr) const
    {
    bool changed = false;

    // First check if the includer filename exists in the dependency file.
    OovString origIncludedInfoStr = getValue(includerFn);
    if(origIncludedInfoStr.size() > 0)
        {
        CompoundValue origIncludedInfoCompVal;
        // get the changed time, which is the first value and discard
        // everything else.
        origIncludedInfoCompVal.parseString(origIncludedInfoStr);
        // Check that counts of the number of includes is the same in
        // the new and original map.  This will detect deleted includes.
        if(origIncludedInfoCompVal.size()-IncDirMapNumTimeVals !=
                (includedInfoStr.size() * IncDirMapNumIncPathParts))
            {
            changed = true;
            }
        else
            {
            // Every included file in the new map must exist in the
            // original map.
            for(const auto &included : includedInfoStr)
                {
                CompoundValue incPathParts;
                incPathParts.parseString(included);
                if(incPathParts.size() == 2)
                    {
                    if(std::find(origIncludedInfoCompVal.begin(),
                            origIncludedInfoCompVal.end(), incPathParts[1]) ==
                            origIncludedInfoCompVal.end())
                        {
                        changed = true;
                        }
                    }
                else
                    {
                    changed = true;
                    }
                }
            }
        }
    else
        {
        changed = true;
        }
    return changed;
    }
开发者ID:8l,项目名称:oovcde,代码行数:50,代码来源:IncDirMap.cpp

示例4: addConfig

void OptionsDialog::addConfig()
    {
    GtkEntry *newNameEntry = GTK_ENTRY(Builder::getBuilder()->getWidget("NewConfigNameEntry"));

    // Update the build config option
    std::string compStr = mProjectOptions.getValue(OptBuildConfigs);
    CompoundValue compVal;
    compVal.parseString(compStr);
    OovString newName = Gui::getText(newNameEntry);

    OovStringVec cfgs = compVal;
    cfgs.push_back(BuildConfigAnalysis);
    cfgs.push_back(BuildConfigDebug);
    cfgs.push_back(BuildConfigRelease);
    bool found = std::find(cfgs.begin(), cfgs.end(), newName) != cfgs.end();
    if(!found)
        {
        compVal.addArg(newName);
        mProjectOptions.setNameValue(OptBuildConfigs, compVal.getAsString());

        // Leave what is on the screen, and change the config name.Save the
        // screen data to the new config.
        mCurrentBuildConfig = newName;
    //    ScreenOptions options(mCurrentBuildConfig);
     //   options.screenToOptions();

        updateBuildConfig();
        }
    else
        Gui::messageBox("Configuration already exists", GTK_MESSAGE_INFO);
    }
开发者ID:Purplenigma,项目名称:oovaide,代码行数:31,代码来源:OptionsDialog.cpp

示例5: screenToOption

void TextViewOption::screenToOption(NameValueFile &file) const
    {
    GtkTextView *view = GTK_TEXT_VIEW(Builder::getBuilder()->getWidget(mWidgetName));
    std::string str = Gui::getText(view);
    CompoundValue cppArgs;
    cppArgs.parseString(str, '\n');
    std::string newCppArgsStr = cppArgs.getAsString();
    file.setNameValue(mOptionName, newCppArgsStr);
    }
开发者ID:Purplenigma,项目名称:oovaide,代码行数:9,代码来源:OptionsDialog.cpp

示例6: optionToScreen

void TextViewOption::optionToScreen(NameValueFile const &file) const
    {
    CompoundValue cppArgs;
    cppArgs.parseString(file.getValue(mOptionName));
    GtkTextView *view = GTK_TEXT_VIEW(Builder::getBuilder()->getWidget(mWidgetName));
    Gui::clear(view);
    std::string str = cppArgs.getAsString('\n');
    Gui::appendText(view, str);
    }
开发者ID:Purplenigma,项目名称:oovaide,代码行数:9,代码来源:OptionsDialog.cpp

示例7: updateArgs

void ProjectBuildArgs::updateArgs()
    {
    OovStringVec args;
    CompoundValue baseArgs;
    baseArgs.parseString(mBuildEnv.getValue(OptCppArgs));
    for(auto const &arg : baseArgs)
        {
        args.push_back(arg);
        }
    parseArgs(args);
    }
开发者ID:animatedb,项目名称:oovaide,代码行数:11,代码来源:Project.cpp

示例8: getProjectExcludeDirs

CompoundValue ProjectBuildArgs::getProjectExcludeDirs() const
    {
    CompoundValue val;
    val.parseString(mProjectOptions.getValue(OptProjectExcludeDirs));
// This doesn't work.
//    val.push_back(sCoverageSourceDir);
//    val.push_back(sCoverageProjectDir);
    for(size_t i=0; i<val.size(); i++)
        {
        val[i] = getAbsoluteDirFromSrcRootDirRelativeDir(val[i]);
        }
    return val;
    }
开发者ID:animatedb,项目名称:oovaide,代码行数:13,代码来源:Project.cpp

示例9: loadToScreen

void BuildSettingsDialog::loadToScreen(std::string const &compName)
    {
    if(compName.length())
        {
        GtkComboBoxText *typeBox = GTK_COMBO_BOX_TEXT(Builder::getBuilder()->getWidget(
                "ComponentTypeComboboxtext"));
        GtkTextView *argsView = GTK_TEXT_VIEW(Builder::getBuilder()->getWidget(
                "ComponentBuildArgsTextview"));

        int index = mComponentFile.getComponentType(compName);
        Gui::setSelected(GTK_COMBO_BOX(typeBox), index);

        CompoundValue cppArgs;
        cppArgs.parseString(mComponentFile.getComponentBuildArgs(compName));
        std::string str = cppArgs.getAsString('\n');
        Gui::setText(argsView, str);
        }
    }
开发者ID:8l,项目名称:oovcde,代码行数:18,代码来源:BuildSettingsDialog.cpp

示例10: saveFromScreen

void BuildSettingsDialog::saveFromScreen(std::string const &compName)
    {
    GtkComboBoxText *typeBox = GTK_COMBO_BOX_TEXT(Builder::getBuilder()->getWidget(
            "ComponentTypeComboboxtext"));
    GtkTextView *argsView = GTK_TEXT_VIEW(Builder::getBuilder()->getWidget(
            "ComponentBuildArgsTextview"));

    char const * const boxValue = gtk_combo_box_text_get_active_text(typeBox);
    // If the cursor is changed during construction, boxValue will be NULL.
    if(compName.length())
        {
        if(boxValue)
            {
            mComponentFile.setComponentType(compName, boxValue);
            }
        std::string str = Gui::getText(argsView);
        CompoundValue buildArgs;
        buildArgs.parseString(str, '\n');
        std::string newBuildArgsStr = buildArgs.getAsString();
        mComponentFile.setComponentBuildArgs(compName, newBuildArgsStr);
        }
    }
开发者ID:8l,项目名称:oovcde,代码行数:22,代码来源:BuildSettingsDialog.cpp

示例11: updateBuildConfig

void OptionsDialog::updateBuildConfig()
    {
    if(mBuildConfigList.getSelected().length() == 0)
        {
        mCurrentBuildConfig = BuildConfigAnalysis;
        mBuildConfigList.setSelected(BuildConfigAnalysis);
        }

    mBuildConfigList.clear();
    mBuildConfigList.appendText(BuildConfigAnalysis);
    mBuildConfigList.appendText(BuildConfigDebug);
    mBuildConfigList.appendText(BuildConfigRelease);

    std::string confStr = mProjectOptions.getValue(OptBuildConfigs);
    CompoundValue configVals;
    configVals.parseString(confStr);
    for(const auto &config:configVals)
        {
        mBuildConfigList.appendText(config);
        }
    updateBuildMenu(configVals);
    }
开发者ID:Purplenigma,项目名称:oovaide,代码行数:22,代码来源:OptionsDialog.cpp


注:本文中的CompoundValue::parseString方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。