• Skip to content
  • Skip to link menu
KDE 4.3 API Reference
  • KDE API Reference
  • kdelibs
  • Sitemap
  • Contact Us
 

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_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', // 48
00148     CMD_CONNECT = '1', // 49
00149     CMD_DISCONNECT = '2', // 50
00150     CMD_SLAVE_STATUS = '3', // 51
00151     CMD_SLAVE_CONNECT = '4', // 52
00152     CMD_SLAVE_HOLD = '5', // 53
00153     CMD_NONE = 'A', // 65
00154     CMD_TESTDIR = 'B', // 66
00155     CMD_GET = 'C', // 67
00156     CMD_PUT = 'D', // 68
00157     CMD_STAT = 'E', // 69
00158     CMD_MIMETYPE = 'F', // 70
00159     CMD_LISTDIR = 'G', // 71
00160     CMD_MKDIR = 'H', // 72
00161     CMD_RENAME = 'I', // 73
00162     CMD_COPY = 'J', // 74
00163     CMD_DEL = 'K', // 75
00164     CMD_CHMOD = 'L', // 76
00165     CMD_SPECIAL = 'M', // 77
00166     CMD_SETMODIFICATIONTIME = 'N', // 78
00167     CMD_REPARSECONFIGURATION = 'O', // 79
00168     CMD_META_DATA = 'P', // 80
00169     CMD_SYMLINK = 'Q', // 81
00170     CMD_SUBURL = 'R', // 82  Inform the slave about the url it is streaming on.
00171     CMD_MESSAGEBOXANSWER = 'S', // 83
00172     CMD_RESUMEANSWER = 'T', // 84
00173     CMD_CONFIG = 'U', // 85
00174     CMD_MULTI_GET = 'V', // 86
00175     CMD_SETLINKDEST = 'W', // 87
00176     CMD_OPEN = 'X', // 88
00177     CMD_CHOWN = 'Y', // 89
00178     CMD_READ = 'Z', // 90
00179     CMD_WRITE = 91,
00180     CMD_SEEK = 92,
00181     CMD_CLOSE = 93,
00182     CMD_HOST_INFO = 94
00183     // Add new ones here once a release is done, to avoid breaking binary compatibility.
00184     // Note that protocol-specific commands shouldn't be added here, but should use special.
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, // ... where a file was expected
00200     ERR_IS_FILE = KJob::UserDefinedError + 10, // ... where a directory was expected (e.g. listing)
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, // KDE4: s/COULD_NOT/CANNOT/ or the other way round
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     // The text argument is the protocol that the dead slave supported.
00233     // This means for example: file, ftp, http, ...
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, // Action got aborted from application side
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     // (was a warning) ERR_CHECKSUM_MISMATCH = 52,
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, // Action succeeded but no content will follow.
00252     ERR_DISK_FULL = KJob::UserDefinedError + 61,
00253     ERR_IDENTICAL_FILES = KJob::UserDefinedError + 62, // src==dest when moving/copying
00254     ERR_SLAVE_DEFINED = KJob::UserDefinedError + 63, // for slave specified errors that can be
00255                                                      // rich text.  Email links will be handled
00256                                                      // by the standard email app and all hrefs
00257                                                      // will be handled by the standard browser.
00258                                                      // <a href="exec:/khelpcenter ?" will be
00259                                                      // forked.
00260     ERR_UPGRADE_REQUIRED = KJob::UserDefinedError + 64, // A transport upgrade is required to access this
00261                                                         // object.  For instance, TLS is demanded by
00262                                                         // the server in order to continue.
00263     ERR_POST_DENIED = KJob::UserDefinedError + 65, // Issued when trying to POST data to a certain Ports
00264                                                   // see job.cpp
00265     ERR_COULD_NOT_SEEK = KJob::UserDefinedError + 66,
00266     ERR_CANNOT_SETTIME = KJob::UserDefinedError + 67, // Emitted by setModificationTime
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

KIO

Skip menu "KIO"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

kdelibs

Skip menu "kdelibs"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • Kate
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Generated for kdelibs by doxygen 1.6.1
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal