Ejemplo n.º 1
0
bool Time::from_string_(const std::string& s, Value& value) const
{
    bool ok = true;
    if (s.empty())
    {
        value.clear();
        return false;
    }
    // s.zzzzzzzzz
    else if (s.find(":") == std::string::npos)
    {
        double seconds = oskar_settings_utility_string_to_double(s, &ok);
        value.hours = floor(seconds / 3600.);
        value.minutes = floor((seconds - (value.hours * 3600.)) / 60.);
        value.seconds = seconds - (value.hours * 3600.) - (value.minutes * 60.);
        value.format = SECONDS;
    }
    // hh:mm:ss.zzzzzzzzz
    else
    {
        std::istringstream ss(s);
        std::string token;
        std::getline(ss, token, ':');
        value.hours = oskar_settings_utility_string_to_int(token);
        if (value.hours < 0) {
            value.hours = 0;
            return false;
        }
        std::getline(ss, token, ':');
        value.minutes = oskar_settings_utility_string_to_int(token);
        if (value.minutes < 0 || value.minutes >= 59) {
            value.minutes = 0;
            return false;
        }
        std::getline(ss, token);
        value.seconds = oskar_settings_utility_string_to_double(token, &ok);
        if (value.minutes < 0.0 || value.minutes >= 60.0) {
            value.seconds = 0.0;
            return false;
        }
        value.format = TIME_STRING;
    }
    return true;
}
Ejemplo n.º 2
0
static bool from_string(const char* s, int& value)
{
    bool ok = true;
    int i = oskar_settings_utility_string_to_int(s, &ok);
    if (!ok) return false;
    if (i >= 1) {
        value = i;
        return true;
    }
    return false;
}
Ejemplo n.º 3
0
bool Int::set_default(const std::string& value)
{
    bool ok = true;
    default_ = oskar_settings_utility_string_to_int(value, &ok);
    if (ok) {
        value_ = default_;
    }
    else {
        value_ = 0;
        default_ = 0;
    }
    return ok;
}
Ejemplo n.º 4
0
bool Int::set_value(const std::string& value)
{
    bool ok = true;
    value_ = oskar_settings_utility_string_to_int(value, &ok);
    return ok;
}