diff options
Diffstat (limited to 'kpackage/tdeio.cpp')
-rw-r--r-- | kpackage/tdeio.cpp | 124 |
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" |