1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
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 "kio.h"
Kio::Kio()
{
}
bool Kio::download(const KURL & from, const TQString & to)
{
KIO::Job *iojob = KIO::file_copy(from, to);
connect( iojob, TQT_SIGNAL( result(KIO::Job*) ),
TQT_SLOT( slotIOJobFinished( KIO::Job* )));
// missing modal widget hack here.
// I'd recommend using KIO::NetAccess instead (David).
kapp->enter_loop();
return worked;
}
void Kio::slotIOJobFinished( KIO::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);
KIO::ListJob *job;
if (!subdirs)
job = KIO::listDir( url );
else
job = KIO::listRecursive( url, false);
kdDebug() << "started " << job << " " << subdirs << endl;
TQObject::connect( job, TQT_SIGNAL( entries( KIO::Job*, const KIO::UDSEntryList& ) ),
TQT_SLOT( slotListEntries( KIO::Job*, const KIO::UDSEntryList& ) ) );
TQObject::connect( job, TQT_SIGNAL( result( KIO::Job * ) ),
TQT_SLOT( slotFinished( KIO::Job* ) ) );
kapp->enter_loop();
file->close();
if (worked)
return TRUE;
else
return FALSE;
} else
return FALSE;
}
void Kiod::slotListEntries( KIO::Job *, const KIO::UDSEntryList& entries )
{
long size = 0;
TQString text;
KIO::UDSEntryList::ConstIterator entryIt = entries.begin();
for (; entryIt != entries.end(); ++entryIt) {
//kdDebug() << "listDir " << dynamic_cast<KIO::ListJob*>(job)->url() << endl;
for (KIO::UDSEntry::ConstIterator it = (*entryIt).begin();
it != (*entryIt).end(); it++ )
{
if ( (*it).m_uds == KIO::UDS_SIZE )
size = (*it).m_long;
else if ( (*it).m_uds == KIO::UDS_NAME )
text = (*it).m_str;
}
*fileT << text << "\n" << size << "\n";
kdDebug() << text << " " << size << "\n";
}
}
void Kiod::slotFinished( KIO::Job *job )
{
//kdDebug() << "finished" << " " << job << " " << dynamic_cast<KIO::ListJob*>(job)->url() << endl;
worked = (job->error() == 0);
kapp->exit_loop();
}
#include "kio.moc"
|