3034 // result.replace(QLatin1Char(' '), QLatin1Char('-')); |
3034 // result.replace(QLatin1Char(' '), QLatin1Char('-')); |
3035 |
3035 |
3036 QString result; |
3036 QString result; |
3037 result.reserve(title.size()); |
3037 result.reserve(title.size()); |
3038 |
3038 |
3039 bool slurping = false; |
3039 bool dashAppended = false; |
3040 bool begun = false; |
3040 bool begun = false; |
3041 int lastAlnum = 0; |
3041 int lastAlnum = 0; |
3042 for (int i = 0; i != title.size(); ++i) { |
3042 for (int i = 0; i != title.size(); ++i) { |
3043 uint c = title.at(i).unicode(); |
3043 uint c = title.at(i).unicode(); |
3044 if (c >= 'A' && c <= 'Z') |
3044 if (c >= 'A' && c <= 'Z') |
3045 c -= 'A' - 'a'; |
3045 c -= 'A' - 'a'; |
3046 bool alnum = (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9'); |
3046 bool alnum = (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9'); |
3047 if (alnum) { |
3047 if (alnum) { |
3048 result += QLatin1Char(c); |
3048 result += QLatin1Char(c); |
3049 begun = true; |
3049 begun = true; |
3050 slurping = false; |
3050 dashAppended = false; |
3051 lastAlnum = result.size(); |
3051 lastAlnum = result.size(); |
3052 } |
3052 } |
3053 else if (!slurping) { |
3053 else if (!dashAppended) { |
3054 if (begun) |
3054 if (begun) |
3055 result += QLatin1Char('-'); |
3055 result += QLatin1Char('-'); |
3056 slurping = true; |
3056 dashAppended = true; |
3057 } |
3057 } |
|
3058 #if 0 |
|
3059 // This was screwing things up. |
3058 else { |
3060 else { |
3059 // !alnum && slurping -> nothin |
3061 result += title[i]; |
|
3062 lastAlnum = result.size(); |
3060 } |
3063 } |
|
3064 #endif |
3061 } |
3065 } |
3062 result.truncate(lastAlnum); |
3066 result.truncate(lastAlnum); |
3063 return result; |
3067 return result; |
3064 } |
3068 } |
3065 |
3069 |