/* ** Copyright (C) 1999,2000 Toivo Pedaste ** */ /* ** 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 #include #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(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(job)->url() << endl; worked = (job->error() == 0); kapp->exit_loop(); } #include "tdeio.moc"