示例#1
0
int AlexData::init()
{
    int res=readFromIni(burstSearchParamsGlobal,burstSearchParamsCh1, burstSearchParamsCh2,FCSparams,FRETparams,iniFilename.toStdString());
    res += readFromIniFCS(FCSparams,iniFilename.toStdString());
    res += rangeALEX.readFromIni(iniFilename.toStdString());
    return res;
}
示例#2
0
AlexData::AlexData(const QString &iniFile)
{
    iniFilename=iniFile;
    readFromIni(burstSearchParamsGlobal,burstSearchParamsCh1,burstSearchParamsCh2,FCSparams,FRETparams,iniFilename.toStdString());
    qDebug("AlexData: construct from ini file");
//    printParams();
    std::numeric_limits<double> l;
    max_measurementtime=1e-9/l.epsilon(); // approx. nano sec resolution
}
示例#3
0
void InputMethodManager::load() {
    FCITX_D();

    auto inputMethods = d->addonManager_->addonNames(AddonCategory::InputMethod);
    auto &path = StandardPath::global();
    auto files = path.multiOpenAll(StandardPath::Type::Data, "fcitx5/inputmethod", O_RDONLY, filter::Suffix(".conf"));
    for (const auto &file : files) {
        auto &files = file.second;
        RawConfig config;
        // reverse the order, so we end up parse user file at last.
        for (auto iter = files.rbegin(), end = files.rend(); iter != end; iter++) {
            auto fd = iter->fd();
            readFromIni(config, fd);
        }

        InputMethodInfo imInfo;
        imInfo.load(config);
        InputMethodEntry entry = toInputMethodEntry(imInfo);
        if (checkEntry(entry, inputMethods) && d->entries_.count(entry.uniqueName()) == 0) {
            d->entries_.emplace(std::string(entry.uniqueName()), std::move(entry));
        }
    }
    for (const auto &addonName : inputMethods) {
        auto addonInfo = d->addonManager_->addonInfo(addonName);
        // on request input method should always provides entry with config file
        if (!addonInfo || addonInfo->onRequest()) {
            continue;
        }
        auto engine = static_cast<InputMethodEngine *>(d->addonManager_->addon(addonName));
        if (!engine) {
            continue;
        }
        auto newEntries = engine->listInputMethods();
        for (auto &newEntry : newEntries) {
            // ok we can't let you register something werid.
            if (checkEntry(newEntry, inputMethods) && newEntry.addon() == addonName &&
                d->entries_.count(newEntry.uniqueName()) == 0) {
                d->entries_.emplace(std::string(newEntry.uniqueName()), std::move(newEntry));
            }
        }
    }

    loadConfig();
}
示例#4
0
void InputMethodManager::loadConfig() {
    FCITX_D();
    auto &path = StandardPath::global();
    auto file = path.open(StandardPath::Type::Config, "fcitx5/profile", O_RDONLY);
    RawConfig config;
    if (file.fd() >= 0) {
        readFromIni(config, file.fd());
    }
    InputMethodConfig imConfig;
    imConfig.load(config);

    d->groups_.clear();
    std::vector<std::string> tempOrder;
    if (imConfig.groups.value().size()) {
        auto &groupsConfig = imConfig.groups.value();
        for (auto &groupConfig : groupsConfig) {
            // group must have a name
            if (groupConfig.name.value().empty() || groupConfig.defaultLayout.value().empty()) {
                continue;
            }
            auto result = d->groups_.emplace(groupConfig.name.value(), InputMethodGroup(groupConfig.name.value()));
            tempOrder.push_back(groupConfig.name.value());
            auto &group = result.first->second;
            group.setDefaultLayout(groupConfig.defaultLayout.value());
            auto &items = groupConfig.items.value();
            for (auto &item : items) {
                group.inputMethodList().emplace_back(
                    std::move(InputMethodGroupItem(item.name.value()).setLayout(item.layout.value())));
            }
            group.setDefaultInputMethod(groupConfig.defaultInputMethod.value());
        }
    }

    if (d->groups_.size() == 0) {
        buildDefaultGroup();
    } else {
        setCurrentGroup(imConfig.currentGroup.value());
        if (imConfig.groupOrder.value().size()) {
            setGroupOrder(imConfig.groupOrder.value());
        } else {
            setGroupOrder(tempOrder);
        }
    }
}