summaryrefslogtreecommitdiffstats
path: root/src/core/netaccess.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/netaccess.cpp')
-rw-r--r--src/core/netaccess.cpp100
1 files changed, 100 insertions, 0 deletions
diff --git a/src/core/netaccess.cpp b/src/core/netaccess.cpp
new file mode 100644
index 0000000..77b6554
--- /dev/null
+++ b/src/core/netaccess.cpp
@@ -0,0 +1,100 @@
+/***************************************************************************
+ copyright : (C) 2006 by Robby Stephenson
+ email : robby@periapsis.org
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of version 2 of the GNU General Public License as *
+ * published by the Free Software Foundation; *
+ * *
+ ***************************************************************************/
+
+#include "netaccess.h"
+#include "../tellico_kernel.h"
+#include "../tellico_debug.h"
+
+#include <kdeversion.h>
+#include <kio/job.h>
+#include <kio/netaccess.h>
+#include <kio/scheduler.h>
+#include <kio/previewjob.h>
+#include <ktempfile.h>
+
+#include <qapplication.h>
+#include <qfile.h>
+
+#include <unistd.h> // for unlink()
+
+using Tellico::NetAccess;
+
+QStringList* NetAccess::s_tmpFiles = 0;
+
+bool NetAccess::download(const KURL& url_, QString& target_, QWidget* window_) {
+ if(url_.isLocalFile()) {
+ return KIO::NetAccess::download(url_, target_, window_);
+ }
+
+// if(!KIO::NetAccess::exists(url_, true, window_)) {
+// myDebug() << "NetAccess::download() - does not exist: " << url_ << endl;
+// return false;
+// }
+
+ if(target_.isEmpty()) {
+ KTempFile tmpFile;
+ target_ = tmpFile.name();
+ if(!s_tmpFiles) {
+ s_tmpFiles = new QStringList;
+ }
+ s_tmpFiles->append(target_);
+ }
+
+ KURL dest;
+ dest.setPath(target_);
+
+ KIO::Job* job = KIO::file_copy(url_, dest, -1, true /*overwrite*/, false /*resume*/, false /*showProgress*/);
+ return KIO::NetAccess::synchronousRun(job, window_);
+}
+
+void NetAccess::removeTempFile(const QString& name_) {
+ if(!s_tmpFiles) {
+ return;
+ }
+ if(s_tmpFiles->contains(name_)) {
+ ::unlink(QFile::encodeName(name_));
+ s_tmpFiles->remove(name_);
+ }
+}
+
+QPixmap NetAccess::filePreview(const KURL& url, int size) {
+ NetAccess netaccess;
+
+ KURL::List list;
+ list.append(url);
+ KIO::Job* previewJob = KIO::filePreview(list, size, size);
+ connect(previewJob, SIGNAL(gotPreview(const KFileItem*, const QPixmap&)),
+ &netaccess, SLOT(slotPreview(const KFileItem*, const QPixmap&)));
+
+ KIO::NetAccess::synchronousRun(previewJob, Kernel::self()->widget());
+ return netaccess.m_preview;
+}
+
+QPixmap NetAccess::filePreview(KFileItem* item, int size) {
+ NetAccess netaccess;
+
+ KFileItemList list;
+ list.append(item);
+ KIO::Job* previewJob = KIO::filePreview(list, size, size);
+ connect(previewJob, SIGNAL(gotPreview(const KFileItem*, const QPixmap&)),
+ &netaccess, SLOT(slotPreview(const KFileItem*, const QPixmap&)));
+
+ KIO::NetAccess::synchronousRun(previewJob, Kernel::self()->widget());
+ return netaccess.m_preview;
+}
+
+void NetAccess::slotPreview(const KFileItem*, const QPixmap& pix_) {
+ m_preview = pix_;
+}
+
+#include "netaccess.moc"