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
00029 #include <kiconloader.h>
00030 #include <QtGui/QPixmap>
00031
00032 #include <sys/stat.h>
00033 #include <sys/types.h>
00034
00035 #include <kjob.h>
00036
00037 #ifdef Q_OS_WIN
00038 template class KDE_EXPORT QMap<QString, QString>;
00039 #endif
00040
00041 class KUrl;
00042 class KJobTrackerInterface;
00043
00044 class QTime;
00045
00050 namespace KIO
00051 {
00053 typedef qlonglong fileoffset_t;
00055 typedef qulonglong filesize_t;
00056
00063 KIO_EXPORT QString convertSize( KIO::filesize_t size );
00064
00072 KIO_EXPORT QString number( KIO::filesize_t size );
00073
00080 KIO_EXPORT QString convertSizeFromKiB( KIO::filesize_t kibSize );
00081
00090 KIO_EXPORT unsigned int calculateRemainingSeconds( KIO::filesize_t totalSize,
00091 KIO::filesize_t processedSize, KIO::filesize_t speed );
00092
00099 KIO_EXPORT QString convertSeconds( unsigned int seconds );
00100
00110 KIO_EXPORT_DEPRECATED QTime calculateRemaining( KIO::filesize_t totalSize, KIO::filesize_t processedSize, KIO::filesize_t speed );
00111
00121 KIO_EXPORT QString itemsSummaryString(uint items, uint files, uint dirs, KIO::filesize_t size, bool showSize);
00122
00130 KIO_EXPORT QString encodeFileName( const QString & str );
00137 KIO_EXPORT QString decodeFileName( const QString & str );
00138
00145 enum Command {
00146 CMD_HOST = '0',
00147 CMD_CONNECT = '1',
00148 CMD_DISCONNECT = '2',
00149 CMD_SLAVE_STATUS = '3',
00150 CMD_SLAVE_CONNECT = '4',
00151 CMD_SLAVE_HOLD = '5',
00152 CMD_NONE = 'A',
00153 CMD_TESTDIR = 'B',
00154 CMD_GET = 'C',
00155 CMD_PUT = 'D',
00156 CMD_STAT = 'E',
00157 CMD_MIMETYPE = 'F',
00158 CMD_LISTDIR = 'G',
00159 CMD_MKDIR = 'H',
00160 CMD_RENAME = 'I',
00161 CMD_COPY = 'J',
00162 CMD_DEL = 'K',
00163 CMD_CHMOD = 'L',
00164 CMD_SPECIAL = 'M',
00165 CMD_SETMODIFICATIONTIME = 'N',
00166 CMD_REPARSECONFIGURATION = 'O',
00167 CMD_META_DATA = 'P',
00168 CMD_SYMLINK = 'Q',
00169 CMD_SUBURL = 'R',
00170 CMD_MESSAGEBOXANSWER = 'S',
00171 CMD_RESUMEANSWER = 'T',
00172 CMD_CONFIG = 'U',
00173 CMD_MULTI_GET = 'V',
00174 CMD_SETLINKDEST = 'W',
00175 CMD_OPEN = 'X',
00176 CMD_CHOWN = 'Y',
00177 CMD_READ = 'Z',
00178 CMD_WRITE = 91,
00179 CMD_SEEK = 92,
00180 CMD_CLOSE = 93
00181
00182
00183 };
00184
00188 enum Error {
00189 ERR_CANNOT_OPEN_FOR_READING = KJob::UserDefinedError + 1,
00190 ERR_CANNOT_OPEN_FOR_WRITING = KJob::UserDefinedError + 2,
00191 ERR_CANNOT_LAUNCH_PROCESS = KJob::UserDefinedError + 3,
00192 ERR_INTERNAL = KJob::UserDefinedError + 4,
00193 ERR_MALFORMED_URL = KJob::UserDefinedError + 5,
00194 ERR_UNSUPPORTED_PROTOCOL = KJob::UserDefinedError + 6,
00195 ERR_NO_SOURCE_PROTOCOL = KJob::UserDefinedError + 7,
00196 ERR_UNSUPPORTED_ACTION = KJob::UserDefinedError + 8,
00197 ERR_IS_DIRECTORY = KJob::UserDefinedError + 9,
00198 ERR_IS_FILE = KJob::UserDefinedError + 10,
00199 ERR_DOES_NOT_EXIST = KJob::UserDefinedError + 11,
00200 ERR_FILE_ALREADY_EXIST = KJob::UserDefinedError + 12,
00201 ERR_DIR_ALREADY_EXIST = KJob::UserDefinedError + 13,
00202 ERR_UNKNOWN_HOST = KJob::UserDefinedError + 14,
00203 ERR_ACCESS_DENIED = KJob::UserDefinedError + 15,
00204 ERR_WRITE_ACCESS_DENIED = KJob::UserDefinedError + 16,
00205 ERR_CANNOT_ENTER_DIRECTORY = KJob::UserDefinedError + 17,
00206 ERR_PROTOCOL_IS_NOT_A_FILESYSTEM = KJob::UserDefinedError + 18,
00207 ERR_CYCLIC_LINK = KJob::UserDefinedError + 19,
00208 ERR_USER_CANCELED = KJob::KilledJobError,
00209 ERR_CYCLIC_COPY = KJob::UserDefinedError + 21,
00210 ERR_COULD_NOT_CREATE_SOCKET = KJob::UserDefinedError + 22,
00211 ERR_COULD_NOT_CONNECT = KJob::UserDefinedError + 23,
00212 ERR_CONNECTION_BROKEN = KJob::UserDefinedError + 24,
00213 ERR_NOT_FILTER_PROTOCOL = KJob::UserDefinedError + 25,
00214 ERR_COULD_NOT_MOUNT = KJob::UserDefinedError + 26,
00215 ERR_COULD_NOT_UNMOUNT = KJob::UserDefinedError + 27,
00216 ERR_COULD_NOT_READ = KJob::UserDefinedError + 28,
00217 ERR_COULD_NOT_WRITE = KJob::UserDefinedError + 29,
00218 ERR_COULD_NOT_BIND = KJob::UserDefinedError + 30,
00219 ERR_COULD_NOT_LISTEN = KJob::UserDefinedError + 31,
00220 ERR_COULD_NOT_ACCEPT = KJob::UserDefinedError + 32,
00221 ERR_COULD_NOT_LOGIN = KJob::UserDefinedError + 33,
00222 ERR_COULD_NOT_STAT = KJob::UserDefinedError + 34,
00223 ERR_COULD_NOT_CLOSEDIR = KJob::UserDefinedError + 35,
00224 ERR_COULD_NOT_MKDIR = KJob::UserDefinedError + 37,
00225 ERR_COULD_NOT_RMDIR = KJob::UserDefinedError + 38,
00226 ERR_CANNOT_RESUME = KJob::UserDefinedError + 39,
00227 ERR_CANNOT_RENAME = KJob::UserDefinedError + 40,
00228 ERR_CANNOT_CHMOD = KJob::UserDefinedError + 41,
00229 ERR_CANNOT_DELETE = KJob::UserDefinedError + 42,
00230
00231
00232 ERR_SLAVE_DIED = KJob::UserDefinedError + 43,
00233 ERR_OUT_OF_MEMORY = KJob::UserDefinedError + 44,
00234 ERR_UNKNOWN_PROXY_HOST = KJob::UserDefinedError + 45,
00235 ERR_COULD_NOT_AUTHENTICATE = KJob::UserDefinedError + 46,
00236 ERR_ABORTED = KJob::UserDefinedError + 47,
00237 ERR_INTERNAL_SERVER = KJob::UserDefinedError + 48,
00238 ERR_SERVER_TIMEOUT = KJob::UserDefinedError + 49,
00239 ERR_SERVICE_NOT_AVAILABLE = KJob::UserDefinedError + 50,
00240 ERR_UNKNOWN = KJob::UserDefinedError + 51,
00241
00242 ERR_UNKNOWN_INTERRUPT = KJob::UserDefinedError + 53,
00243 ERR_CANNOT_DELETE_ORIGINAL = KJob::UserDefinedError + 54,
00244 ERR_CANNOT_DELETE_PARTIAL = KJob::UserDefinedError + 55,
00245 ERR_CANNOT_RENAME_ORIGINAL = KJob::UserDefinedError + 56,
00246 ERR_CANNOT_RENAME_PARTIAL = KJob::UserDefinedError + 57,
00247 ERR_NEED_PASSWD = KJob::UserDefinedError + 58,
00248 ERR_CANNOT_SYMLINK = KJob::UserDefinedError + 59,
00249 ERR_NO_CONTENT = KJob::UserDefinedError + 60,
00250 ERR_DISK_FULL = KJob::UserDefinedError + 61,
00251 ERR_IDENTICAL_FILES = KJob::UserDefinedError + 62,
00252 ERR_SLAVE_DEFINED = KJob::UserDefinedError + 63,
00253
00254
00255
00256
00257
00258 ERR_UPGRADE_REQUIRED = KJob::UserDefinedError + 64,
00259
00260
00261 ERR_POST_DENIED = KJob::UserDefinedError + 65,
00262
00263 ERR_COULD_NOT_SEEK = KJob::UserDefinedError + 66,
00264 ERR_CANNOT_SETTIME = KJob::UserDefinedError + 67,
00265 ERR_CANNOT_CHOWN = KJob::UserDefinedError + 68
00266 };
00267
00275 KIO_EXPORT QString buildErrorString(int errorCode, const QString &errorText);
00276
00287 KIO_EXPORT QString buildHTMLErrorString(int errorCode, const QString &errorText,
00288 const KUrl *reqUrl = 0L, int method = -1 );
00289
00306 KIO_EXPORT QByteArray rawErrorDetail(int errorCode, const QString &errorText,
00307 const KUrl *reqUrl = 0L, int method = -1 );
00308
00316 KIO_EXPORT QString unsupportedActionErrorString(const QString &protocol, int cmd);
00317
00323 enum CacheControl
00324 {
00325 CC_CacheOnly,
00326 CC_Cache,
00327 CC_Verify,
00328 CC_Refresh,
00329 CC_Reload
00330 };
00331
00339 KIO_EXPORT KIO::CacheControl parseCacheControl(const QString &cacheControl);
00340
00348 KIO_EXPORT QString getCacheControlString(KIO::CacheControl cacheControl);
00349
00368 KIO_EXPORT QPixmap pixmapForUrl( const KUrl & _url, mode_t _mode = 0, KIconLoader::Group _group = KIconLoader::Desktop,
00369 int _force_size = 0, int _state = 0, QString * _path = 0 );
00370
00371 KIO_EXPORT KJobTrackerInterface *getJobTracker();
00372
00373
00377 class KIO_EXPORT MetaData : public QMap<QString, QString>
00378 {
00379 public:
00383 MetaData() : QMap<QString, QString>() { }
00387 MetaData(const QMap<QString, QString>&metaData) :
00388 QMap<QString, QString>(metaData) { }
00389
00395 MetaData & operator+= ( const QMap<QString,QString> &metaData )
00396 {
00397 QMap<QString,QString>::ConstIterator it;
00398 for(it = metaData.constBegin(); it != metaData.constEnd(); ++it)
00399 {
00400 insert(it.key(), it.value());
00401 }
00402 return *this;
00403 }
00404 };
00405
00406 }
00407 #endif