kio Library API Documentation

kmimetype.h

00001 /* This file is part of the KDE libraries 00002 * Copyright (C) 1999 Waldo Bastian <bastian@kde.org> 00003 * 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., 59 Temple Place - Suite 330, 00017 * Boston, MA 02111-1307, USA. 00018 **/ 00019 00020 #ifndef __kmimetype_h__ 00021 #define __kmimetype_h__ 00022 00023 #include <sys/types.h> 00024 #include <sys/stat.h> 00025 00026 #include <qstringlist.h> 00027 #include <qvaluelist.h> 00028 #include <qpixmap.h> 00029 #include <kicontheme.h> 00030 00031 #include <kurl.h> 00032 #include <kdemacros.h> 00033 00034 #include "ksycocatype.h" 00035 #include "kservicetype.h" 00036 00037 class KSimpleConfig; 00049 class KMimeType : public KServiceType 00050 { 00051 K_SYCOCATYPE( KST_KMimeType, KServiceType ) 00052 00053 public: 00054 typedef KSharedPtr<KMimeType> Ptr; 00055 typedef QValueList<Ptr> List; 00056 public: 00070 KMimeType( const QString & _fullpath, const QString& _type, const QString& _icon, 00071 const QString& _comment, const QStringList& _patterns ); 00072 00077 KMimeType( const QString & _fullpath ); 00078 00083 KMimeType( KDesktopFile *config ); 00084 00090 KMimeType( QDataStream& _str, int offset ); 00091 00092 virtual ~KMimeType(); 00093 00102 virtual QString icon( const QString& , bool ) const { return m_strIcon; } 00103 00112 virtual QString icon( const KURL& , bool ) const { return m_strIcon; } 00113 00131 virtual QPixmap pixmap( KIcon::Group group, int force_size = 0, int state = 0, 00132 QString * path = 0L ) const; 00133 00150 virtual QPixmap pixmap( const KURL& _url, KIcon::Group _group, int _force_size = 0, 00151 int _state = 0, QString * _path = 0L ) const; 00152 00171 static QPixmap pixmapForURL( const KURL & _url, mode_t _mode = 0, KIcon::Group _group = KIcon::Desktop, 00172 int _force_size = 0, int _state = 0, QString * _path = 0L ); 00173 00174 00187 static QString iconForURL( const KURL & _url, mode_t _mode = 0 ); 00188 00198 static QString favIconForURL( const KURL& url ); 00199 00204 QString comment() const { return m_strComment; } 00205 00213 virtual QString comment( const QString&, bool ) const { return m_strComment; } 00214 00222 virtual QString comment( const KURL&, bool ) const { return m_strComment; } 00223 00229 const QStringList& patterns() const { return m_lstPatterns; } 00230 00235 virtual void load( QDataStream &qs ); 00236 00241 virtual void save( QDataStream &qs ); 00242 00249 virtual QVariant property( const QString& _name ) const; 00250 00257 virtual QStringList propertyNames() const; 00258 00273 static Ptr mimeType( const QString& _name ); 00274 00303 static Ptr findByURL( const KURL& _url, mode_t _mode = 0, 00304 bool _is_local_file = false, bool _fast_mode = false ); 00305 00306 static Ptr findByURL( const KURL& _url, mode_t _mode, 00307 bool _is_local_file, bool _fast_mode, 00308 bool *accurate); 00335 static Ptr findByPath( const QString& path, mode_t mode = 0, bool fast_mode = false ); 00336 00347 static Ptr findByContent( const QByteArray &data, int *accuracy=0 ); 00348 00362 static Ptr findByFileContent( const QString &fileName, int *accuracy=0 ); 00363 00364 struct Format{ 00365 bool text : 1; 00366 enum { NoCompression=0, GZipCompression } compression : 4; 00367 unsigned dummy : 27; 00368 }; 00369 00375 static Format findFormatByFileContent( const QString &fileName ); 00376 00386 static List allMimeTypes(); 00387 00395 static const QString & defaultMimeType(); 00396 00404 static KMimeType::Ptr defaultMimeTypePtr(); 00405 00422 QString parentMimeType() const; 00423 00430 bool is( const QString& mimeTypeName ) const; 00431 00437 static KMimeType::Ptr diagnoseFileName(const QString &file, QString &pattern); 00438 00439 protected: 00440 void loadInternal( QDataStream& ); 00441 void init( KDesktopFile * ); 00442 00447 static void errorMissingMimeType( const QString& _type ); 00448 00452 static void buildDefaultType(); 00453 00457 static void checkEssentialMimeTypes(); 00461 static bool s_bChecked; 00462 00463 QStringList m_lstPatterns; 00464 00465 static Ptr s_pDefaultType; 00466 00467 protected: 00468 friend class KServiceTypeFactory; 00469 int patternsAccuracy() const; 00470 00471 protected: 00472 virtual void virtual_hook( int id, void* data ); 00473 }; 00474 00479 class KFolderType : public KMimeType 00480 { 00481 K_SYCOCATYPE( KST_KFolderType, KMimeType ) 00482 00483 public: 00484 // KFolderType( const QString & _fullpath, const QString& _type, const QString& _icon, const QString& _comment, 00485 // const QStringList& _patterns ); 00486 // KFolderType( const QString & _fullpath ) : KMimeType( _fullpath ) { } 00491 KFolderType( KDesktopFile *config) : KMimeType( config ) { } 00493 KFolderType( QDataStream& _str, int offset ) : KMimeType( _str, offset ) { } 00494 00495 virtual QString icon( const QString& _url, bool _is_local ) const; 00496 virtual QString icon( const KURL& _url, bool _is_local ) const; 00497 virtual QString comment( const QString& _url, bool _is_local ) const; 00498 virtual QString comment( const KURL& _url, bool _is_local ) const; 00499 protected: 00500 virtual void virtual_hook( int id, void* data ); 00501 }; 00502 00508 class KDEDesktopMimeType : public KMimeType 00509 { 00510 K_SYCOCATYPE( KST_KDEDesktopMimeType, KMimeType ) 00511 00512 public: 00513 enum ServiceType { ST_MOUNT, ST_UNMOUNT, /* ST_PROPERTIES, */ ST_USER_DEFINED }; 00514 00519 struct Service 00520 { 00521 Service() { m_display = true; } 00522 bool isEmpty() const { return m_strName.isEmpty(); } 00523 QString m_strName; 00524 QString m_strIcon; 00525 QString m_strExec; 00526 ServiceType m_type; 00527 bool m_display; 00528 }; 00529 // KDEDesktopMimeType( const QString & _fullpath, const QString& _type, const QString& _icon, 00530 // const QString& _comment, const QStringList& _patterns ); 00531 // KDEDesktopMimeType( const QString & _fullpath ) : KMimeType( _fullpath ) { } 00536 KDEDesktopMimeType( KDesktopFile *config) : KMimeType( config ) { } 00538 KDEDesktopMimeType( QDataStream& _str, int offset ) : KMimeType( _str, offset ) { } 00539 00540 virtual QString icon( const QString& _url, bool _is_local ) const; 00541 virtual QString icon( const KURL& _url, bool _is_local ) const; 00542 virtual QPixmap pixmap( const KURL& _url, KIcon::Group _group, int _force_size = 0, 00543 int _state = 0, QString * _path = 0L ) const; 00544 virtual QString comment( const QString& _url, bool _is_local ) const; 00545 virtual QString comment( const KURL& _url, bool _is_local ) const; 00546 00552 static QValueList<Service> builtinServices( const KURL& _url ); 00563 static QValueList<Service> userDefinedServices( const QString& path, bool bLocalFiles ); 00564 00569 static void executeService( const QString& _path, KDEDesktopMimeType::Service& _service ) KDE_DEPRECATED; 00570 00576 static void executeService( const KURL::List& urls, KDEDesktopMimeType::Service& service ); 00577 00589 static pid_t run( const KURL& _url, bool _is_local ); 00590 00591 protected: 00592 virtual QPixmap pixmap(KIcon::Group a, int b, int c, QString *d) const 00593 { return KMimeType::pixmap(a, b, c, d); } 00594 00595 static pid_t runFSDevice( const KURL& _url, const KSimpleConfig &cfg ); 00596 static pid_t runApplication( const KURL& _url, const QString & _serviceFile ); 00597 static pid_t runLink( const KURL& _url, const KSimpleConfig &cfg ); 00598 static pid_t runMimeType( const KURL& _url, const KSimpleConfig &cfg ); 00599 protected: 00600 virtual void virtual_hook( int id, void* data ); 00601 }; 00602 00607 class KExecMimeType : public KMimeType 00608 { 00609 K_SYCOCATYPE( KST_KExecMimeType, KMimeType ) 00610 00611 public: 00612 // KExecMimeType( const QString & _fullpath, const QString& _type, const QString& _icon, 00613 // const QString& _comment, const QStringList& _patterns ); 00614 // KExecMimeType( const QString & _fullpath ) : KMimeType( _fullpath ) { } 00619 KExecMimeType( KDesktopFile *config) : KMimeType( config ) { } 00621 KExecMimeType( QDataStream& _str, int offset ) : KMimeType( _str, offset ) { } 00622 protected: 00623 virtual void virtual_hook( int id, void* data ); 00624 }; 00625 00626 #endif
KDE Logo
This file is part of the documentation for kio Library Version 3.3.1.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sun Oct 17 11:29:27 2004 by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2003