void CTreeViewGames::setNameFilter(Glib::ustring p_str) { int l_ind; // La aplicación del filtro dependerá de esta variable m_apply_filter_regex = (p_str != ""); // Crearemos la expresión regular solo si es necesario if(m_apply_filter_regex) { // Escapamos caracteres especiales en la cadena y añadimos marcador de inicio p_str = "^" + Glib::Regex::escape_string(p_str); // Restauramos las apariciones de * para permitir la sustitución de 0 o // más caracteres l_ind = p_str.find("\\*"); while(l_ind > -1) { p_str = p_str.replace(l_ind, 2, ".*"); l_ind = p_str.find("\\*", l_ind + 1); } // Restauramos las apariciones de ? para permitir la sustitución de 0 o // 1 caracter l_ind = p_str.find("\\?"); while(l_ind > -1) { p_str = p_str.replace(l_ind, 2, ".?"); l_ind = p_str.find("\\?", l_ind + 1); } // Creamos la expresión regular para el filtrado por nombre m_filter_regex = Glib::Regex::create(p_str, Glib::REGEX_CASELESS|Glib::REGEX_OPTIMIZE); } m_filter_list->refilter(); }
void FORMATEAR(Gtk::Entry* entry) { Glib::ustring texto = entry->get_text(); Glib::ustring primera_letra = texto.substr(0, 1); primera_letra = primera_letra.uppercase(); texto.replace(0, 1, primera_letra); entry->set_text(texto); }
Glib::ustring replace_in_string(Glib::ustring data, Glib::ustring toBeReplaced, Glib::ustring replace) { guint pos = 0 ; int size = toBeReplaced.size() ; pos = data.find(toBeReplaced) ; while ( pos!= string::npos ) { data.replace(pos, size, replace) ; pos = data.find(toBeReplaced) ; } return data ; }