KIO
global.h
Go to the documentation of this file.
00001 // -*- c-basic-offset: 2 -*- 00002 /* This file is part of the KDE libraries 00003 Copyright (C) 2000-2005 David Faure <faure@kde.org> 00004 00005 This library is free software; you can redistribute it and/or 00006 modify it under the terms of the GNU Library General Public 00007 License version 2 as published by the Free Software Foundation. 00008 00009 This library is distributed in the hope that it will be useful, 00010 but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 Library General Public License for more details. 00013 00014 You should have received a copy of the GNU Library General Public License 00015 along with this library; see the file COPYING.LIB. If not, write to 00016 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00017 Boston, MA 02110-1301, USA. 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> // for pixmapForUrl 00032 00033 #include <sys/stat.h> // S_ISDIR 00034 #include <sys/types.h> // mode_t 00035 00036 #include <kjob.h> 00037 00038 #ifdef Q_CC_MSVC 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 #ifndef KDE_NO_DEPRECATED 00112 KIO_EXPORT_DEPRECATED QTime calculateRemaining( KIO::filesize_t totalSize, KIO::filesize_t processedSize, KIO::filesize_t speed ); 00113 #endif 00114 00124 KIO_EXPORT QString itemsSummaryString(uint items, uint files, uint dirs, KIO::filesize_t size, bool showSize); 00125 00133 KIO_EXPORT QString encodeFileName( const QString & str ); 00140 KIO_EXPORT QString decodeFileName( const QString & str ); 00141 00148 enum Command { 00149 CMD_HOST = '0', // 48 00150 CMD_CONNECT = '1', // 49 00151 CMD_DISCONNECT = '2', // 50 00152 CMD_SLAVE_STATUS = '3', // 51 00153 CMD_SLAVE_CONNECT = '4', // 52 00154 CMD_SLAVE_HOLD = '5', // 53 00155 CMD_NONE = 'A', // 65 00156 CMD_TESTDIR = 'B', // 66 00157 CMD_GET = 'C', // 67 00158 CMD_PUT = 'D', // 68 00159 CMD_STAT = 'E', // 69 00160 CMD_MIMETYPE = 'F', // 70 00161 CMD_LISTDIR = 'G', // 71 00162 CMD_MKDIR = 'H', // 72 00163 CMD_RENAME = 'I', // 73 00164 CMD_COPY = 'J', // 74 00165 CMD_DEL = 'K', // 75 00166 CMD_CHMOD = 'L', // 76 00167 CMD_SPECIAL = 'M', // 77 00168 CMD_SETMODIFICATIONTIME = 'N', // 78 00169 CMD_REPARSECONFIGURATION = 'O', // 79 00170 CMD_META_DATA = 'P', // 80 00171 CMD_SYMLINK = 'Q', // 81 00172 CMD_SUBURL = 'R', // 82 Inform the slave about the url it is streaming on. 00173 CMD_MESSAGEBOXANSWER = 'S', // 83 00174 CMD_RESUMEANSWER = 'T', // 84 00175 CMD_CONFIG = 'U', // 85 00176 CMD_MULTI_GET = 'V', // 86 00177 CMD_SETLINKDEST = 'W', // 87 00178 CMD_OPEN = 'X', // 88 00179 CMD_CHOWN = 'Y', // 89 00180 CMD_READ = 'Z', // 90 00181 CMD_WRITE = 91, 00182 CMD_SEEK = 92, 00183 CMD_CLOSE = 93, 00184 CMD_HOST_INFO = 94 00185 // Add new ones here once a release is done, to avoid breaking binary compatibility. 00186 // Note that protocol-specific commands shouldn't be added here, but should use special. 00187 }; 00188 00192 enum Error { 00193 ERR_CANNOT_OPEN_FOR_READING = KJob::UserDefinedError + 1, 00194 ERR_CANNOT_OPEN_FOR_WRITING = KJob::UserDefinedError + 2, 00195 ERR_CANNOT_LAUNCH_PROCESS = KJob::UserDefinedError + 3, 00196 ERR_INTERNAL = KJob::UserDefinedError + 4, 00197 ERR_MALFORMED_URL = KJob::UserDefinedError + 5, 00198 ERR_UNSUPPORTED_PROTOCOL = KJob::UserDefinedError + 6, 00199 ERR_NO_SOURCE_PROTOCOL = KJob::UserDefinedError + 7, 00200 ERR_UNSUPPORTED_ACTION = KJob::UserDefinedError + 8, 00201 ERR_IS_DIRECTORY = KJob::UserDefinedError + 9, // ... where a file was expected 00202 ERR_IS_FILE = KJob::UserDefinedError + 10, // ... where a directory was expected (e.g. listing) 00203 ERR_DOES_NOT_EXIST = KJob::UserDefinedError + 11, 00204 ERR_FILE_ALREADY_EXIST = KJob::UserDefinedError + 12, 00205 ERR_DIR_ALREADY_EXIST = KJob::UserDefinedError + 13, 00206 ERR_UNKNOWN_HOST = KJob::UserDefinedError + 14, 00207 ERR_ACCESS_DENIED = KJob::UserDefinedError + 15, 00208 ERR_WRITE_ACCESS_DENIED = KJob::UserDefinedError + 16, 00209 ERR_CANNOT_ENTER_DIRECTORY = KJob::UserDefinedError + 17, 00210 ERR_PROTOCOL_IS_NOT_A_FILESYSTEM = KJob::UserDefinedError + 18, 00211 ERR_CYCLIC_LINK = KJob::UserDefinedError + 19, 00212 ERR_USER_CANCELED = KJob::KilledJobError, 00213 ERR_CYCLIC_COPY = KJob::UserDefinedError + 21, 00214 ERR_COULD_NOT_CREATE_SOCKET = KJob::UserDefinedError + 22, // KDE4: s/COULD_NOT/CANNOT/ or the other way round 00215 ERR_COULD_NOT_CONNECT = KJob::UserDefinedError + 23, 00216 ERR_CONNECTION_BROKEN = KJob::UserDefinedError + 24, 00217 ERR_NOT_FILTER_PROTOCOL = KJob::UserDefinedError + 25, 00218 ERR_COULD_NOT_MOUNT = KJob::UserDefinedError + 26, 00219 ERR_COULD_NOT_UNMOUNT = KJob::UserDefinedError + 27, 00220 ERR_COULD_NOT_READ = KJob::UserDefinedError + 28, 00221 ERR_COULD_NOT_WRITE = KJob::UserDefinedError + 29, 00222 ERR_COULD_NOT_BIND = KJob::UserDefinedError + 30, 00223 ERR_COULD_NOT_LISTEN = KJob::UserDefinedError + 31, 00224 ERR_COULD_NOT_ACCEPT = KJob::UserDefinedError + 32, 00225 ERR_COULD_NOT_LOGIN = KJob::UserDefinedError + 33, 00226 ERR_COULD_NOT_STAT = KJob::UserDefinedError + 34, 00227 ERR_COULD_NOT_CLOSEDIR = KJob::UserDefinedError + 35, 00228 ERR_COULD_NOT_MKDIR = KJob::UserDefinedError + 37, 00229 ERR_COULD_NOT_RMDIR = KJob::UserDefinedError + 38, 00230 ERR_CANNOT_RESUME = KJob::UserDefinedError + 39, 00231 ERR_CANNOT_RENAME = KJob::UserDefinedError + 40, 00232 ERR_CANNOT_CHMOD = KJob::UserDefinedError + 41, 00233 ERR_CANNOT_DELETE = KJob::UserDefinedError + 42, 00234 // The text argument is the protocol that the dead slave supported. 00235 // This means for example: file, ftp, http, ... 00236 ERR_SLAVE_DIED = KJob::UserDefinedError + 43, 00237 ERR_OUT_OF_MEMORY = KJob::UserDefinedError + 44, 00238 ERR_UNKNOWN_PROXY_HOST = KJob::UserDefinedError + 45, 00239 ERR_COULD_NOT_AUTHENTICATE = KJob::UserDefinedError + 46, 00240 ERR_ABORTED = KJob::UserDefinedError + 47, // Action got aborted from application side 00241 ERR_INTERNAL_SERVER = KJob::UserDefinedError + 48, 00242 ERR_SERVER_TIMEOUT = KJob::UserDefinedError + 49, 00243 ERR_SERVICE_NOT_AVAILABLE = KJob::UserDefinedError + 50, 00244 ERR_UNKNOWN = KJob::UserDefinedError + 51, 00245 // (was a warning) ERR_CHECKSUM_MISMATCH = 52, 00246 ERR_UNKNOWN_INTERRUPT = KJob::UserDefinedError + 53, 00247 ERR_CANNOT_DELETE_ORIGINAL = KJob::UserDefinedError + 54, 00248 ERR_CANNOT_DELETE_PARTIAL = KJob::UserDefinedError + 55, 00249 ERR_CANNOT_RENAME_ORIGINAL = KJob::UserDefinedError + 56, 00250 ERR_CANNOT_RENAME_PARTIAL = KJob::UserDefinedError + 57, 00251 ERR_NEED_PASSWD = KJob::UserDefinedError + 58, 00252 ERR_CANNOT_SYMLINK = KJob::UserDefinedError + 59, 00253 ERR_NO_CONTENT = KJob::UserDefinedError + 60, // Action succeeded but no content will follow. 00254 ERR_DISK_FULL = KJob::UserDefinedError + 61, 00255 ERR_IDENTICAL_FILES = KJob::UserDefinedError + 62, // src==dest when moving/copying 00256 ERR_SLAVE_DEFINED = KJob::UserDefinedError + 63, // for slave specified errors that can be 00257 // rich text. Email links will be handled 00258 // by the standard email app and all hrefs 00259 // will be handled by the standard browser. 00260 // <a href="exec:/khelpcenter ?" will be 00261 // forked. 00262 ERR_UPGRADE_REQUIRED = KJob::UserDefinedError + 64, // A transport upgrade is required to access this 00263 // object. For instance, TLS is demanded by 00264 // the server in order to continue. 00265 ERR_POST_DENIED = KJob::UserDefinedError + 65, // Issued when trying to POST data to a certain Ports 00266 // see job.cpp 00267 ERR_COULD_NOT_SEEK = KJob::UserDefinedError + 66, 00268 ERR_CANNOT_SETTIME = KJob::UserDefinedError + 67, // Emitted by setModificationTime 00269 ERR_CANNOT_CHOWN = KJob::UserDefinedError + 68 00270 }; 00271 00279 KIO_EXPORT QString buildErrorString(int errorCode, const QString &errorText); 00280 00291 KIO_EXPORT QString buildHTMLErrorString(int errorCode, const QString &errorText, 00292 const KUrl *reqUrl = 0L, int method = -1 ); 00293 00310 KIO_EXPORT QByteArray rawErrorDetail(int errorCode, const QString &errorText, 00311 const KUrl *reqUrl = 0L, int method = -1 ); 00312 00320 KIO_EXPORT QString unsupportedActionErrorString(const QString &protocol, int cmd); 00321 00327 enum CacheControl 00328 { 00329 CC_CacheOnly, 00330 CC_Cache, 00331 CC_Verify, 00332 CC_Refresh, 00333 CC_Reload 00334 }; 00335 00343 KIO_EXPORT KIO::CacheControl parseCacheControl(const QString &cacheControl); 00344 00352 KIO_EXPORT QString getCacheControlString(KIO::CacheControl cacheControl); 00353 00372 KIO_EXPORT QPixmap pixmapForUrl( const KUrl & _url, mode_t _mode = 0, KIconLoader::Group _group = KIconLoader::Desktop, 00373 int _force_size = 0, int _state = 0, QString * _path = 0 ); 00374 00375 KIO_EXPORT KJobTrackerInterface *getJobTracker(); 00376 00377 00381 class KIO_EXPORT MetaData : public QMap<QString, QString> 00382 { 00383 public: 00387 MetaData() : QMap<QString, QString>() { } 00391 MetaData(const QMap<QString, QString>&metaData) : 00392 QMap<QString, QString>(metaData) { } 00393 00398 MetaData(const QMap<QString,QVariant> &); 00399 00405 MetaData & operator += ( const QMap<QString,QString> &metaData ) 00406 { 00407 QMap<QString,QString>::ConstIterator it; 00408 for(it = metaData.constBegin(); it != metaData.constEnd(); ++it) 00409 { 00410 insert(it.key(), it.value()); 00411 } 00412 return *this; 00413 } 00414 00425 MetaData & operator += ( const QMap<QString,QVariant> &metaData ); 00426 00433 MetaData & operator = ( const QMap<QString,QVariant> &metaData ); 00434 00441 QVariant toVariant() const; 00442 }; 00443 00444 } 00445 #endif
KDE 4.6 API Reference