00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef KIO_GLOBAL_H
00020 #define KIO_GLOBAL_H
00021
00022 #include <kio/kio_export.h>
00023
00024 #include <QtCore/QString>
00025 #include <QtCore/QHash>
00026 #include <QtCore/QMap>
00027 #include <QtCore/QList>
00028 #include <QtCore/QVariant>
00029
00030 #include <kiconloader.h>
00031 #include <QtGui/QPixmap>
00032
00033 #include <sys/stat.h>
00034 #include <sys/types.h>
00035
00036 #include <kjob.h>
00037
00038 #ifdef Q_OS_WIN
00039 template class KDE_EXPORT QMap<QString, QString>;
00040 #endif
00041
00042 class KUrl;
00043 class KJobTrackerInterface;
00044
00045 class QTime;
00046
00051 namespace KIO
00052 {
00054 typedef qlonglong fileoffset_t;
00056 typedef qulonglong filesize_t;
00057
00064 KIO_EXPORT QString convertSize( KIO::filesize_t size );
00065
00073 KIO_EXPORT QString number( KIO::filesize_t size );
00074
00081 KIO_EXPORT QString convertSizeFromKiB( KIO::filesize_t kibSize );
00082
00091 KIO_EXPORT unsigned int calculateRemainingSeconds( KIO::filesize_t totalSize,
00092 KIO::filesize_t processedSize, KIO::filesize_t speed );
00093
00100 KIO_EXPORT QString convertSeconds( unsigned int seconds );
00101
00111 KIO_EXPORT_DEPRECATED QTime calculateRemaining( KIO::filesize_t totalSize, KIO::filesize_t processedSize, KIO::filesize_t speed );
00112
00122 KIO_EXPORT QString itemsSummaryString(uint items, uint files, uint dirs, KIO::filesize_t size, bool showSize);
00123
00131 KIO_EXPORT QString encodeFileName( const QString & str );
00138 KIO_EXPORT QString decodeFileName( const QString & str );
00139
00146 enum Command {
00147 CMD_HOST = '0',
00148 CMD_CONNECT = '1',
00149 CMD_DISCONNECT = '2',
00150 CMD_SLAVE_STATUS = '3',
00151 CMD_SLAVE_CONNECT = '4',
00152 CMD_SLAVE_HOLD = '5',
00153 CMD_NONE = 'A',
00154 CMD_TESTDIR = 'B',
00155 CMD_GET = 'C',
00156 CMD_PUT = 'D',
00157 CMD_STAT = 'E',
00158 CMD_MIMETYPE = 'F',
00159 CMD_LISTDIR = 'G',
00160 CMD_MKDIR = 'H',
00161 CMD_RENAME = 'I',
00162 CMD_COPY = 'J',
00163 CMD_DEL = 'K',
00164 CMD_CHMOD = 'L',
00165 CMD_SPECIAL = 'M',
00166 CMD_SETMODIFICATIONTIME = 'N',
00167 CMD_REPARSECONFIGURATION = 'O',
00168 CMD_META_DATA = 'P',
00169 CMD_SYMLINK = 'Q',
00170 CMD_SUBURL = 'R',
00171 CMD_MESSAGEBOXANSWER = 'S',
00172 CMD_RESUMEANSWER = 'T',
00173 CMD_CONFIG = 'U',
00174 CMD_MULTI_GET = 'V',
00175 CMD_SETLINKDEST = 'W',
00176 CMD_OPEN = 'X',
00177 CMD_CHOWN = 'Y',
00178 CMD_READ = 'Z',
00179 CMD_WRITE = 91,
00180 CMD_SEEK = 92,
00181 CMD_CLOSE = 93,
00182 CMD_HOST_INFO = 94
00183
00184
00185 };
00186
00190 enum Error {
00191 ERR_CANNOT_OPEN_FOR_READING = KJob::UserDefinedError + 1,
00192 ERR_CANNOT_OPEN_FOR_WRITING = KJob::UserDefinedError + 2,
00193 ERR_CANNOT_LAUNCH_PROCESS = KJob::UserDefinedError + 3,
00194 ERR_INTERNAL = KJob::UserDefinedError + 4,
00195 ERR_MALFORMED_URL = KJob::UserDefinedError + 5,
00196 ERR_UNSUPPORTED_PROTOCOL = KJob::UserDefinedError + 6,
00197 ERR_NO_SOURCE_PROTOCOL = KJob::UserDefinedError + 7,
00198 ERR_UNSUPPORTED_ACTION = KJob::UserDefinedError + 8,
00199 ERR_IS_DIRECTORY = KJob::UserDefinedError + 9,
00200 ERR_IS_FILE = KJob::UserDefinedError + 10,
00201 ERR_DOES_NOT_EXIST = KJob::UserDefinedError + 11,
00202 ERR_FILE_ALREADY_EXIST = KJob::UserDefinedError + 12,
00203 ERR_DIR_ALREADY_EXIST = KJob::UserDefinedError + 13,
00204 ERR_UNKNOWN_HOST = KJob::UserDefinedError + 14,
00205 ERR_ACCESS_DENIED = KJob::UserDefinedError + 15,
00206 ERR_WRITE_ACCESS_DENIED = KJob::UserDefinedError + 16,
00207 ERR_CANNOT_ENTER_DIRECTORY = KJob::UserDefinedError + 17,
00208 ERR_PROTOCOL_IS_NOT_A_FILESYSTEM = KJob::UserDefinedError + 18,
00209 ERR_CYCLIC_LINK = KJob::UserDefinedError + 19,
00210 ERR_USER_CANCELED = KJob::KilledJobError,
00211 ERR_CYCLIC_COPY = KJob::UserDefinedError + 21,
00212 ERR_COULD_NOT_CREATE_SOCKET = KJob::UserDefinedError + 22,
00213 ERR_COULD_NOT_CONNECT = KJob::UserDefinedError + 23,
00214 ERR_CONNECTION_BROKEN = KJob::UserDefinedError + 24,
00215 ERR_NOT_FILTER_PROTOCOL = KJob::UserDefinedError + 25,
00216 ERR_COULD_NOT_MOUNT = KJob::UserDefinedError + 26,
00217 ERR_COULD_NOT_UNMOUNT = KJob::UserDefinedError + 27,
00218 ERR_COULD_NOT_READ = KJob::UserDefinedError + 28,
00219 ERR_COULD_NOT_WRITE = KJob::UserDefinedError + 29,
00220 ERR_COULD_NOT_BIND = KJob::UserDefinedError + 30,
00221 ERR_COULD_NOT_LISTEN = KJob::UserDefinedError + 31,
00222 ERR_COULD_NOT_ACCEPT = KJob::UserDefinedError + 32,
00223 ERR_COULD_NOT_LOGIN = KJob::UserDefinedError + 33,
00224 ERR_COULD_NOT_STAT = KJob::UserDefinedError + 34,
00225 ERR_COULD_NOT_CLOSEDIR = KJob::UserDefinedError + 35,
00226 ERR_COULD_NOT_MKDIR = KJob::UserDefinedError + 37,
00227 ERR_COULD_NOT_RMDIR = KJob::UserDefinedError + 38,
00228 ERR_CANNOT_RESUME = KJob::UserDefinedError + 39,
00229 ERR_CANNOT_RENAME = KJob::UserDefinedError + 40,
00230 ERR_CANNOT_CHMOD = KJob::UserDefinedError + 41,
00231 ERR_CANNOT_DELETE = KJob::UserDefinedError + 42,
00232
00233
00234 ERR_SLAVE_DIED = KJob::UserDefinedError + 43,
00235 ERR_OUT_OF_MEMORY = KJob::UserDefinedError + 44,
00236 ERR_UNKNOWN_PROXY_HOST = KJob::UserDefinedError + 45,
00237 ERR_COULD_NOT_AUTHENTICATE = KJob::UserDefinedError + 46,
00238 ERR_ABORTED = KJob::UserDefinedError + 47,
00239 ERR_INTERNAL_SERVER = KJob::UserDefinedError + 48,
00240 ERR_SERVER_TIMEOUT = KJob::UserDefinedError + 49,
00241 ERR_SERVICE_NOT_AVAILABLE = KJob::UserDefinedError + 50,
00242 ERR_UNKNOWN = KJob::UserDefinedError + 51,
00243
00244 ERR_UNKNOWN_INTERRUPT = KJob::UserDefinedError + 53,
00245 ERR_CANNOT_DELETE_ORIGINAL = KJob::UserDefinedError + 54,
00246 ERR_CANNOT_DELETE_PARTIAL = KJob::UserDefinedError + 55,
00247 ERR_CANNOT_RENAME_ORIGINAL = KJob::UserDefinedError + 56,
00248 ERR_CANNOT_RENAME_PARTIAL = KJob::UserDefinedError + 57,
00249 ERR_NEED_PASSWD = KJob::UserDefinedError + 58,
00250 ERR_CANNOT_SYMLINK = KJob::UserDefinedError + 59,
00251 ERR_NO_CONTENT = KJob::UserDefinedError + 60,
00252 ERR_DISK_FULL = KJob::UserDefinedError + 61,
00253 ERR_IDENTICAL_FILES = KJob::UserDefinedError + 62,
00254 ERR_SLAVE_DEFINED = KJob::UserDefinedError + 63,
00255
00256
00257
00258
00259
00260 ERR_UPGRADE_REQUIRED = KJob::UserDefinedError + 64,
00261
00262
00263 ERR_POST_DENIED = KJob::UserDefinedError + 65,
00264
00265 ERR_COULD_NOT_SEEK = KJob::UserDefinedError + 66,
00266 ERR_CANNOT_SETTIME = KJob::UserDefinedError + 67,
00267 ERR_CANNOT_CHOWN = KJob::UserDefinedError + 68
00268 };
00269
00277 KIO_EXPORT QString buildErrorString(int errorCode, const QString &errorText);
00278
00289 KIO_EXPORT QString buildHTMLErrorString(int errorCode, const QString &errorText,
00290 const KUrl *reqUrl = 0L, int method = -1 );
00291
00308 KIO_EXPORT QByteArray rawErrorDetail(int errorCode, const QString &errorText,
00309 const KUrl *reqUrl = 0L, int method = -1 );
00310
00318 KIO_EXPORT QString unsupportedActionErrorString(const QString &protocol, int cmd);
00319
00325 enum CacheControl
00326 {
00327 CC_CacheOnly,
00328 CC_Cache,
00329 CC_Verify,
00330 CC_Refresh,
00331 CC_Reload
00332 };
00333
00341 KIO_EXPORT KIO::CacheControl parseCacheControl(const QString &cacheControl);
00342
00350 KIO_EXPORT QString getCacheControlString(KIO::CacheControl cacheControl);
00351
00370 KIO_EXPORT QPixmap pixmapForUrl( const KUrl & _url, mode_t _mode = 0, KIconLoader::Group _group = KIconLoader::Desktop,
00371 int _force_size = 0, int _state = 0, QString * _path = 0 );
00372
00373 KIO_EXPORT KJobTrackerInterface *getJobTracker();
00374
00375
00379 class KIO_EXPORT MetaData : public QMap<QString, QString>
00380 {
00381 public:
00385 MetaData() : QMap<QString, QString>() { }
00389 MetaData(const QMap<QString, QString>&metaData) :
00390 QMap<QString, QString>(metaData) { }
00391
00396 MetaData(const QMap<QString,QVariant> &);
00397
00403 MetaData & operator += ( const QMap<QString,QString> &metaData )
00404 {
00405 QMap<QString,QString>::ConstIterator it;
00406 for(it = metaData.constBegin(); it != metaData.constEnd(); ++it)
00407 {
00408 insert(it.key(), it.value());
00409 }
00410 return *this;
00411 }
00412
00423 MetaData & operator += ( const QMap<QString,QVariant> &metaData );
00424
00431 MetaData & operator = ( const QMap<QString,QVariant> &metaData );
00432
00439 QVariant toVariant() const;
00440 };
00441
00442 }
00443 #endif