[Kst] extragear/graphics/kst/kst/datasources/indirect
George Staikos
staikos at kde.org
Fri Jul 8 00:46:32 CEST 2005
SVN commit 432601 by staikos:
Add support for URLs to indirect sources
FEATURE: 103930
M +26 -10 indirect.cpp
--- trunk/extragear/graphics/kst/kst/datasources/indirect/indirect.cpp #432600:432601
@@ -17,6 +17,9 @@
#include "indirect.h"
+#include <kio/netaccess.h>
+#include <kurl.h>
+
#include <qdir.h>
#include <qfile.h>
#include <qfileinfo.h>
@@ -47,8 +50,11 @@
if (f.open(IO_ReadOnly)) {
QString ifn;
if (0 < f.readLine(ifn, 1000)) {
- if (QFileInfo(ifn).isRelative()) {
- ifn = QFileInfo(_filename).dirPath(true) + QDir::separator() + ifn;
+ KURL url = KURL::fromPathOrURL(ifn);
+ if (url.isLocalFile() || url.protocol().isEmpty()) {
+ if (QFileInfo(ifn).isRelative()) {
+ ifn = QFileInfo(_filename).dirPath(true) + QDir::separator() + ifn;
+ }
}
if (!_child || ifn.stripWhiteSpace() != _child->fileName()) {
@@ -130,8 +136,11 @@
return 0L;
}
- if (QFileInfo(ifn).isRelative()) {
- ifn = QFileInfo(filename).dirPath(true) + QDir::separator() + ifn;
+ KURL url = KURL::fromPathOrURL(ifn);
+ if (url.isLocalFile() || url.protocol().isEmpty()) {
+ if (QFileInfo(ifn).isRelative()) {
+ ifn = QFileInfo(filename).dirPath(true) + QDir::separator() + ifn;
+ }
}
KstDataSourcePtr p = KstDataSource::loadSource(ifn.stripWhiteSpace());
@@ -165,11 +174,15 @@
return 0;
}
- if (QFileInfo(ifn).isRelative()) {
- ifn = QFileInfo(filename).dirPath(true) + QDir::separator() + ifn;
+ KURL url = KURL::fromPathOrURL(ifn.stripWhiteSpace());
+ if (url.isLocalFile() || url.protocol().isEmpty()) {
+ if (QFileInfo(ifn).isRelative()) {
+ ifn = QFileInfo(filename).dirPath(true) + QDir::separator() + ifn;
+ }
+ return QFile::exists(ifn.stripWhiteSpace()) ? percent : 0;
+ } else {
+ return KIO::NetAccess::exists(url, true, 0L) ? percent : 0;
}
-
- return QFile::exists(ifn.stripWhiteSpace()) ? percent : 0;
}
@@ -188,8 +201,11 @@
return QStringList();
}
- if (QFileInfo(ifn).isRelative()) {
- ifn = QFileInfo(filename).dirPath(true) + QDir::separator() + ifn;
+ KURL url = KURL::fromPathOrURL(ifn);
+ if (url.isLocalFile() || url.protocol().isEmpty()) {
+ if (QFileInfo(ifn).isRelative()) {
+ ifn = QFileInfo(filename).dirPath(true) + QDir::separator() + ifn;
+ }
}
return KstDataSource::fieldListForSource(ifn.stripWhiteSpace(), type, typeSuggestion, complete);
More information about the Kst
mailing list