27 short_path (
const Glib::ustring& path, ustring::size_type target_characters)
29 ustring::size_type last_sep;
30 ustring::size_type len = path.length();
31 const char separator =
'/';
33 if (len <= target_characters) {
37 if ((last_sep = path.find_last_of (separator)) == ustring::npos) {
41 if (target_characters > 3) {
42 return path.substr (0, target_characters - 3) + ustring (
"...");
49 if (len - last_sep >= target_characters) {
53 if (target_characters > 3) {
54 return path.substr (last_sep+1, target_characters - 3) + ustring (
"...");
61 uint32_t so_far = (len - last_sep);
62 uint32_t space_for = target_characters - so_far;
66 res += path.substr (last_sep - space_for);
71 res += path.substr (last_sep - space_for, len - last_sep + space_for - 3);
ustring short_path(const Glib::ustring &path, ustring::size_type target_characters)