Lines 116-121
Link Here
|
116 |
void URLNavigator::setURL(const KURL& url) |
116 |
void URLNavigator::setURL(const KURL& url) |
117 |
{ |
117 |
{ |
118 |
QString urlStr(url.prettyURL()); |
118 |
QString urlStr(url.prettyURL()); |
|
|
119 |
|
120 |
if (url.protocol() == "zip") { |
121 |
bool stillInside = false; |
122 |
if (KMimeType::findByPath(url.url(-1)) |
123 |
->is("application/x-zip")) { |
124 |
stillInside = true; |
125 |
} |
126 |
else { |
127 |
KURL url1 = url.upURL(); |
128 |
while (url1 != url1.upURL()) { |
129 |
if (KMimeType::findByPath(url1.url(-1)) |
130 |
->is("application/x-zip")) { |
131 |
stillInside = true; |
132 |
break; |
133 |
} |
134 |
url1 = url1.upURL(); |
135 |
} |
136 |
} |
137 |
if (!stillInside) |
138 |
{ |
139 |
// Drop the zip:/ protocol since we are not in the zip anymore |
140 |
urlStr = url.path(); |
141 |
} |
142 |
} |
143 |
else if (url.protocol() == "tar") |
144 |
{ |
145 |
bool stillInside = false; |
146 |
KMimeType::Ptr kmp = |
147 |
KMimeType::findByPath(url.url(-1)); |
148 |
if (kmp->is("application/x-tar") || |
149 |
kmp->is("application/x-tarz") || |
150 |
kmp->is("application/x-tbz") || |
151 |
kmp->is("application/x-tgz") || |
152 |
kmp->is("application/x-tzo") |
153 |
) { |
154 |
stillInside = true; |
155 |
} |
156 |
else { |
157 |
KURL url1 = url.upURL(); |
158 |
while (url1 != url1.upURL()) { |
159 |
KMimeType::Ptr kmp = |
160 |
KMimeType::findByPath(url1.url(-1)); |
161 |
if (kmp->is("application/x-tar") || |
162 |
kmp->is("application/x-tarz") || |
163 |
kmp->is("application/x-tbz") || |
164 |
kmp->is("application/x-tgz") || |
165 |
kmp->is("application/x-tzo") |
166 |
) { |
167 |
stillInside = true; |
168 |
break; |
169 |
} |
170 |
url1 = url1.upURL(); |
171 |
} |
172 |
} |
173 |
if (!stillInside) |
174 |
{ |
175 |
// Drop the tar:/ protocol since we are not in the tar anymore |
176 |
urlStr = url.path(); |
177 |
} |
178 |
} |
179 |
|
180 |
|
119 |
if (urlStr.at(0) == '~') { |
181 |
if (urlStr.at(0) == '~') { |
120 |
// replace '~' by the home directory |
182 |
// replace '~' by the home directory |
121 |
urlStr.remove(0, 1); |
183 |
urlStr.remove(0, 1); |