File 3_5_BRANCH-r526455.diff of Package kdelibs3
------------------------------------------------------------------------
r526455 | cartman | 2006-04-04 20:08:40 +0200 (Tue, 04 Apr 2006) | 6 lines
teach KFileDialog about media:/ and system:/
BUG: 105771
BUG: 106077
CCMAIL: 123527
------------------------------------------------------------------------
Index: kio/kfile/kfiledialog.cpp
===================================================================
--- kio/kfile/kfiledialog.cpp (revision 526454)
+++ kio/kfile/kfiledialog.cpp (revision 526455)
@@ -402,8 +402,9 @@ void KFileDialog::slotOk()
}
}
+ KURL url = KIO::NetAccess::mostLocalURL(d->url,topLevelWidget());
if ( (mode() & KFile::LocalOnly) == KFile::LocalOnly &&
- !d->url.isLocalFile() ) {
+ !url.isLocalFile() ) {
// ### after message freeze, add message for directories!
KMessageBox::sorry( d->mainWidget,
i18n("You can only select local files."),
@@ -411,6 +412,7 @@ void KFileDialog::slotOk()
return;
}
+ d->url = url;
accept();
return;
}
@@ -444,15 +446,16 @@ void KFileDialog::slotOk()
return;
}
+ KURL url = KIO::NetAccess::mostLocalURL(selectedURL,topLevelWidget());
if ( (mode() & KFile::LocalOnly) == KFile::LocalOnly &&
- !selectedURL.isLocalFile() ) {
+ !url.isLocalFile() ) {
KMessageBox::sorry( d->mainWidget,
i18n("You can only select local files."),
i18n("Remote Files Not Accepted") );
return;
}
- d->url = selectedURL;
+ d->url = url;
// d->url is a correct URL now
@@ -1536,8 +1539,9 @@ QString KFileDialog::selectedFile() cons
{
if ( result() == QDialog::Accepted )
{
- if (d->url.isLocalFile())
- return d->url.path();
+ KURL url = KIO::NetAccess::mostLocalURL(d->url,topLevelWidget());
+ if (url.isLocalFile())
+ return url.path();
else {
KMessageBox::sorry( d->mainWidget,
i18n("You can only select local files."),
@@ -1550,14 +1554,16 @@ QString KFileDialog::selectedFile() cons
QStringList KFileDialog::selectedFiles() const
{
QStringList list;
+ KURL url;
if ( result() == QDialog::Accepted ) {
if ( (ops->mode() & KFile::Files) == KFile::Files ) {
KURL::List urls = parseSelectedURLs();
QValueListConstIterator<KURL> it = urls.begin();
while ( it != urls.end() ) {
- if ( (*it).isLocalFile() )
- list.append( (*it).path() );
+ url = KIO::NetAccess::mostLocalURL(*it,topLevelWidget());
+ if ( url.isLocalFile() )
+ list.append( url.path() );
++it;
}
}