kurifilter.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef __kurifilter_h__
00026 #define __kurifilter_h__ "$Id: kurifilter.h,v 1.41 2003/08/30 08:56:21 raabe Exp $"
00027
00028 #include <qptrlist.h>
00029 #include <qobject.h>
00030 #include <qstringlist.h>
00031
00032 #include <kurl.h>
00033 #include <kdemacros.h>
00034
00035 class KURIFilterPrivate;
00036 class KURIFilterDataPrivate;
00037
00038 class KCModule;
00039
00075 class KURIFilterData
00076 {
00077 friend class KURIFilterPlugin;
00078
00079 public:
00096 enum URITypes { NET_PROTOCOL=0, LOCAL_FILE, LOCAL_DIR, EXECUTABLE, HELP, SHELL, BLOCKED, ERROR, UNKNOWN };
00097
00103 KURIFilterData() { init(); }
00104
00110 KURIFilterData( const KURL& url ) { init( url); }
00111
00117 KURIFilterData( const QString& url ) { init( url ); }
00118
00127 KURIFilterData( const KURIFilterData& data);
00128
00132 ~KURIFilterData();
00133
00141 KDE_DEPRECATED bool hasBeenFiltered() const { return true; }
00142
00153 KURL uri() const { return m_pURI; }
00154
00165 QString errorMsg() const { return m_strErrMsg; }
00166
00174 URITypes uriType() const { return m_iType; }
00175
00185 void setData( const QString& url ) { init( url ); }
00186
00196 void setData( const KURL& url ) { init( url ); }
00197
00212 bool setAbsolutePath( const QString& abs_path );
00213
00219 QString absolutePath() const;
00220
00226 bool hasAbsolutePath() const;
00227
00234 QString argsAndOptions() const;
00235
00241 bool hasArgsAndOptions() const;
00242
00254 QString iconName();
00255
00266 void setCheckForExecutables (bool check);
00267
00274 bool checkForExecutables() const { return m_bCheckForExecutables; }
00275
00280 QString typedString() const;
00281
00290 KURIFilterData& operator=( const KURL& url ) { init( url ); return *this; }
00291
00300 KURIFilterData& operator=( const QString& url ) { init( url ); return *this; }
00301
00302 protected:
00303
00308 void init( const KURL& url);
00309
00314 void init( const QString& url = QString::null );
00315
00316 private:
00317 bool m_bCheckForExecutables;
00318 bool m_bChanged;
00319
00320 QString m_strErrMsg;
00321 QString m_strIconName;
00322
00323 KURL m_pURI;
00324 URITypes m_iType;
00325 KURIFilterDataPrivate *d;
00326 };
00327
00328
00341 class KURIFilterPlugin : public QObject
00342 {
00343 Q_OBJECT
00344
00345 public:
00346
00355 KURIFilterPlugin( QObject *parent = 0, const char *name = 0, double pri = 1.0 );
00356
00362 virtual QString name() const { return m_strName; }
00363
00372 virtual double priority() const { return m_dblPriority; }
00373
00380 virtual bool filterURI( KURIFilterData& data ) const = 0;
00381
00390 virtual KCModule *configModule( QWidget*, const char* ) const { return 0; }
00391
00397 virtual QString configName() const { return name(); }
00398
00399 protected:
00400
00404 void setFilteredURI ( KURIFilterData& data, const KURL& uri ) const;
00405
00409 void setErrorMsg ( KURIFilterData& data, const QString& errmsg ) const {
00410 data.m_strErrMsg = errmsg;
00411 }
00412
00416 void setURIType ( KURIFilterData& data, KURIFilterData::URITypes type) const {
00417 data.m_iType = type;
00418 data.m_bChanged = true;
00419 }
00420
00425 void setArguments( KURIFilterData& data, const QString& args ) const;
00426
00427 QString m_strName;
00428 double m_dblPriority;
00429
00430 protected:
00431 virtual void virtual_hook( int id, void* data );
00432 private:
00433 class KURIFilterPluginPrivate *d;
00434 };
00435
00436
00440 class KURIFilterPluginList : public QPtrList<KURIFilterPlugin>
00441 {
00442 public:
00443 virtual int compareItems(Item a, Item b)
00444 {
00445 double diff = ((KURIFilterPlugin *) a)->priority() - ((KURIFilterPlugin *) b)->priority();
00446 return diff < 0 ? -1 : (diff > 0 ? 1 : 0);
00447 }
00448
00449 private:
00450 KURIFilterPrivate *d;
00451
00452 };
00453
00525 class KURIFilter
00526 {
00527 public:
00531 ~KURIFilter ();
00532
00536 static KURIFilter* self();
00537
00549 bool filterURI( KURIFilterData& data, const QStringList& filters = QStringList() );
00550
00562 bool filterURI( KURL &uri, const QStringList& filters = QStringList() );
00563
00575 bool filterURI( QString &uri, const QStringList& filters = QStringList() );
00576
00588 KURL filteredURI( const KURL &uri, const QStringList& filters = QStringList() );
00589
00601 QString filteredURI( const QString &uri, const QStringList& filters = QStringList() );
00602
00609 QPtrListIterator<KURIFilterPlugin> pluginsIterator() const;
00610
00617 QStringList pluginNames() const;
00618
00619 protected:
00620
00628 KURIFilter();
00629
00636 void loadPlugins();
00637
00638 private:
00639 static KURIFilter *m_self;
00640 KURIFilterPluginList m_lstPlugins;
00641 KURIFilterPrivate *d;
00642 };
00643
00644 #endif
This file is part of the documentation for kio Library Version 3.3.0.