summaryrefslogtreecommitdiffstats
path: root/kpackage/tdeio.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kpackage/tdeio.cpp')
-rw-r--r--kpackage/tdeio.cpp124
1 files changed, 124 insertions, 0 deletions
diff --git a/kpackage/tdeio.cpp b/kpackage/tdeio.cpp
new file mode 100644
index 0000000..111b803
--- /dev/null
+++ b/kpackage/tdeio.cpp
@@ -0,0 +1,124 @@
+/*
+** Copyright (C) 1999,2000 Toivo Pedaste <toivo@ucs.uwa.edu.au>
+**
+*/
+
+/*
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program in a file called COPYING; if not, write to
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+** MA 02110-1301, USA.
+*/
+
+/*
+** Bug reports and questions can be sent to kde-devel@kde.org
+*/
+
+#include <kapplication.h>
+#include <kdebug.h>
+#include "tdeio.h"
+
+Kio::Kio()
+{
+}
+
+bool Kio::download(const KURL & from, const TQString & to)
+{
+ TDEIO::Job *iojob = TDEIO::file_copy(from, to);
+ connect( iojob, TQT_SIGNAL( result(TDEIO::Job*) ),
+ TQT_SLOT( slotIOJobFinished( TDEIO::Job* )));
+ // missing modal widget hack here.
+ // I'd recommend using TDEIO::NetAccess instead (David).
+ kapp->enter_loop();
+ return worked;
+}
+
+void Kio::slotIOJobFinished( TDEIO::Job * job)
+{
+ worked = (job->error() == 0);
+ kapp->exit_loop();
+}
+
+Kiod::Kiod()
+{
+ file=0L;
+ fileT = 0L;
+}
+
+Kiod::~Kiod()
+{
+ delete file;
+ delete fileT;
+}
+
+bool Kiod::listDir(const TQString &url, const TQString &fname, bool subdirs)
+{
+ delete file;
+ file = new TQFile(fname);
+ if (file->open(IO_WriteOnly)) {
+ delete fileT;
+ fileT = new TQTextStream(file);
+ TDEIO::ListJob *job;
+ if (!subdirs)
+ job = TDEIO::listDir( url );
+ else
+ job = TDEIO::listRecursive( url, false);
+
+ kdDebug() << "started " << job << " " << subdirs << endl;
+
+ TQObject::connect( job, TQT_SIGNAL( entries( TDEIO::Job*, const TDEIO::UDSEntryList& ) ),
+ TQT_SLOT( slotListEntries( TDEIO::Job*, const TDEIO::UDSEntryList& ) ) );
+ TQObject::connect( job, TQT_SIGNAL( result( TDEIO::Job * ) ),
+ TQT_SLOT( slotFinished( TDEIO::Job* ) ) );
+
+ kapp->enter_loop();
+
+ file->close();
+ if (worked)
+ return TRUE;
+ else
+ return FALSE;
+ } else
+ return FALSE;
+}
+
+void Kiod::slotListEntries( TDEIO::Job *, const TDEIO::UDSEntryList& entries )
+{
+ long size = 0;
+ TQString text;
+
+ TDEIO::UDSEntryList::ConstIterator entryIt = entries.begin();
+
+ for (; entryIt != entries.end(); ++entryIt) {
+ //kdDebug() << "listDir " << dynamic_cast<TDEIO::ListJob*>(job)->url() << endl;
+ for (TDEIO::UDSEntry::ConstIterator it = (*entryIt).begin();
+ it != (*entryIt).end(); it++ )
+ {
+ if ( (*it).m_uds == TDEIO::UDS_SIZE )
+ size = (*it).m_long;
+ else if ( (*it).m_uds == TDEIO::UDS_NAME )
+ text = (*it).m_str;
+ }
+ *fileT << text << "\n" << size << "\n";
+ kdDebug() << text << " " << size << "\n";
+ }
+}
+
+void Kiod::slotFinished( TDEIO::Job *job )
+{
+ //kdDebug() << "finished" << " " << job << " " << dynamic_cast<TDEIO::ListJob*>(job)->url() << endl;
+ worked = (job->error() == 0);
+ kapp->exit_loop();
+}
+
+#include "tdeio.moc"