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 00369 struct Format{ 00370 bool text : 1; 00371 enum { NoCompression=0, GZipCompression } compression : 4; 00372 int dummy : 27; 00373 }; 00374 static Format findFormatByFileContent( const QString &fileName ); 00375 00385 static List allMimeTypes(); 00386 00394 static const QString & defaultMimeType(); 00395 00403 static KMimeType::Ptr defaultMimeTypePtr(); 00404 00421 QString parentMimeType() const; 00422 00429 bool is( const QString& mimeTypeName ) const; 00430 00436 static KMimeType::Ptr diagnoseFileName(const QString &file, QString &pattern); 00437 00438 protected: 00439 void loadInternal( QDataStream& ); 00440 void init( KDesktopFile * ); 00441 00446 static void errorMissingMimeType( const QString& _type ); 00447 00451 static void buildDefaultType(); 00452 00456 static void checkEssentialMimeTypes(); 00460 static bool s_bChecked; 00461 00462 QStringList m_lstPatterns; 00463 00464 static Ptr s_pDefaultType; 00465 00466 protected: 00467 friend class KServiceTypeFactory; 00468 int patternsAccuracy() const; 00469 00470 protected: 00471 virtual void virtual_hook( int id, void* data ); 00472 }; 00473 00478 class KFolderType : public KMimeType 00479 { 00480 K_SYCOCATYPE( KST_KFolderType, KMimeType ) 00481 00482 public: 00483 // KFolderType( const QString & _fullpath, const QString& _type, const QString& _icon, const QString& _comment, 00484 // const QStringList& _patterns ); 00485 // KFolderType( const QString & _fullpath ) : KMimeType( _fullpath ) { } 00490 KFolderType( KDesktopFile *config) : KMimeType( config ) { } 00492 KFolderType( QDataStream& _str, int offset ) : KMimeType( _str, offset ) { } 00493 00494 virtual QString icon( const QString& _url, bool _is_local ) const; 00495 virtual QString icon( const KURL& _url, bool _is_local ) const; 00496 virtual QString comment( const QString& _url, bool _is_local ) const; 00497 virtual QString comment( const KURL& _url, bool _is_local ) const; 00498 protected: 00499 virtual void virtual_hook( int id, void* data ); 00500 }; 00501 00507 class KDEDesktopMimeType : public KMimeType 00508 { 00509 K_SYCOCATYPE( KST_KDEDesktopMimeType, KMimeType ) 00510 00511 public: 00512 enum ServiceType { ST_MOUNT, ST_UNMOUNT, /* ST_PROPERTIES, */ ST_USER_DEFINED }; 00513 00518 struct Service 00519 { 00520 Service() { m_display = true; } 00521 bool isEmpty() const { return m_strName.isEmpty(); } 00522 QString m_strName; 00523 QString m_strIcon; 00524 QString m_strExec; 00525 ServiceType m_type; 00526 bool m_display; 00527 }; 00528 // KDEDesktopMimeType( const QString & _fullpath, const QString& _type, const QString& _icon, 00529 // const QString& _comment, const QStringList& _patterns ); 00530 // KDEDesktopMimeType( const QString & _fullpath ) : KMimeType( _fullpath ) { } 00535 KDEDesktopMimeType( KDesktopFile *config) : KMimeType( config ) { } 00537 KDEDesktopMimeType( QDataStream& _str, int offset ) : KMimeType( _str, offset ) { } 00538 00539 virtual QString icon( const QString& _url, bool _is_local ) const; 00540 virtual QString icon( const KURL& _url, bool _is_local ) const; 00541 virtual QPixmap pixmap( const KURL& _url, KIcon::Group _group, int _force_size = 0, 00542 int _state = 0, QString * _path = 0L ) const; 00543 virtual QString comment( const QString& _url, bool _is_local ) const; 00544 virtual QString comment( const KURL& _url, bool _is_local ) const; 00545 00551 static QValueList<Service> builtinServices( const KURL& _url ); 00562 static QValueList<Service> userDefinedServices( const QString& path, bool bLocalFiles ); 00563 00568 static void executeService( const QString& _path, KDEDesktopMimeType::Service& _service ) KDE_DEPRECATED; 00569 00575 static void executeService( const KURL::List& urls, KDEDesktopMimeType::Service& service ); 00576 00588 static pid_t run( const KURL& _url, bool _is_local ); 00589 00590 protected: 00591 virtual QPixmap pixmap(KIcon::Group a, int b, int c, QString *d) const 00592 { return KMimeType::pixmap(a, b, c, d); } 00593 00594 static pid_t runFSDevice( const KURL& _url, const KSimpleConfig &cfg ); 00595 static pid_t runApplication( const KURL& _url, const QString & _serviceFile ); 00596 static pid_t runLink( const KURL& _url, const KSimpleConfig &cfg ); 00597 static pid_t runMimeType( const KURL& _url, const KSimpleConfig &cfg ); 00598 protected: 00599 virtual void virtual_hook( int id, void* data ); 00600 }; 00601 00606 class KExecMimeType : public KMimeType 00607 { 00608 K_SYCOCATYPE( KST_KExecMimeType, KMimeType ) 00609 00610 public: 00611 // KExecMimeType( const QString & _fullpath, const QString& _type, const QString& _icon, 00612 // const QString& _comment, const QStringList& _patterns ); 00613 // KExecMimeType( const QString & _fullpath ) : KMimeType( _fullpath ) { } 00618 KExecMimeType( KDesktopFile *config) : KMimeType( config ) { } 00620 KExecMimeType( QDataStream& _str, int offset ) : KMimeType( _str, offset ) { } 00621 protected: 00622 virtual void virtual_hook( int id, void* data ); 00623 }; 00624 00625 #endif
KDE Logo
This file is part of the documentation for kio Library Version 3.2.3.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sun Oct 10 18:55:27 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003