• Skip to content
  • Skip to link menu
Trinity API Reference
  • Trinity API Reference
  • tdeio/tdeio
 

tdeio/tdeio

kurifilter.h
00001 /*
00002  *  This file is part of the KDE libraries
00003  *  Copyright (C) 2000-2001,2003 Dawit Alemayehu <adawit at kde.org>
00004  *
00005  *  Original author
00006  *  Copyright (C) 2000 Yves Arrouye <yves@realnames.com>
00007  *
00008  *
00009  *  This library is free software; you can redistribute it and/or
00010  *  modify it under the terms of the GNU Library General Public
00011  *  License as published by the Free Software Foundation; either
00012  *  version 2 of the License, or (at your option) any later version.
00013  *
00014  *  This library is distributed in the hope that it will be useful,
00015  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00016  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00017  *  Library General Public License for more details.
00018  *
00019  *  You should have received a copy of the GNU Library General Public License
00020  *  along with this library; see the file COPYING.LIB.  If not, write to
00021  *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00022  *  Boston, MA 02110-1301, USA.
00023  **/
00024 
00025 #ifndef __kurifilter_h__
00026 #define __kurifilter_h__
00027 
00028 #include <tqptrlist.h>
00029 #include <tqobject.h>
00030 #include <tqstringlist.h>
00031 #include <tqpixmap.h>
00032 
00033 #include <kurl.h>
00034 
00035 #ifdef Q_OS_WIN
00036 #undef ERROR
00037 #endif
00038 
00039 class KURIFilterPrivate;
00040 class KURIFilterDataPrivate;
00041 
00042 class TDECModule;
00043 
00079 class TDEIO_EXPORT KURIFilterData
00080 {
00081 friend class KURIFilterPlugin;
00082 
00083 public:
00100     enum URITypes { NET_PROTOCOL=0, LOCAL_FILE, LOCAL_DIR, EXECUTABLE, HELP, SHELL, BLOCKED, ERROR, UNKNOWN };
00101 
00107     KURIFilterData() { init(); }
00108 
00114     KURIFilterData( const KURL& url ) { init( url); }
00115 
00121     KURIFilterData( const TQString& url ) { init( url ); }
00122 
00131     KURIFilterData( const KURIFilterData& data);
00132 
00136     ~KURIFilterData();
00137 
00145     KDE_DEPRECATED bool hasBeenFiltered() const { return true; }
00146 
00157     KURL uri() const { return m_pURI; }
00158 
00169     TQString errorMsg() const { return m_strErrMsg; }
00170 
00178     URITypes uriType() const { return m_iType; }
00179 
00189     void setData( const TQString& url ) { reinit( url ); }
00190 
00200     void setData( const KURL& url ) { reinit( url ); }
00201 
00216     bool setAbsolutePath( const TQString& abs_path );
00217 
00223     TQString absolutePath() const;
00224 
00230     bool hasAbsolutePath() const;
00231 
00238     TQString argsAndOptions() const;
00239 
00245     bool hasArgsAndOptions() const;
00246 
00258     TQString iconName();
00259 
00268     TQPixmap customIconPixmap();
00269 
00280     void setCheckForExecutables (bool check);
00281 
00288     bool checkForExecutables() const { return m_bCheckForExecutables; }
00289 
00294     TQString typedString() const;
00295 
00304     KURIFilterData& operator=( const KURL& url ) { reinit( url ); return *this; }
00305 
00314     KURIFilterData& operator=( const TQString& url ) { reinit( url ); return *this; }
00315 
00316 protected:
00317 
00322     void init( const KURL& url);
00323 
00328     void init( const TQString& url = TQString::null );
00329 
00330 private:
00331 
00332     // BC hack to avoid leaking KURIFilterDataPrivate objects.
00333     // setData() and operator= used to call init() without deleting `d'
00334     void reinit(const KURL& url);
00335     void reinit(const TQString& url = TQString::null);
00336 
00337     bool m_bCheckForExecutables;
00338     bool m_bChanged;
00339 
00340     TQString m_strErrMsg;
00341     TQString m_strIconName;
00342 
00343     KURL m_pURI;
00344     URITypes m_iType;
00345     KURIFilterDataPrivate *d;
00346 
00347     TQPixmap m_customIconPixmap;
00348 };
00349 
00350 
00363 class TDEIO_EXPORT KURIFilterPlugin : public TQObject
00364 {
00365     Q_OBJECT
00366     
00367 
00368 public:
00369 
00378     KURIFilterPlugin( TQObject *parent = 0, const char *name = 0, double pri = 1.0 );
00379 
00385     virtual TQString name() const { return m_strName; }
00386 
00395     virtual double priority() const { return m_dblPriority; }
00396 
00403     virtual bool filterURI( KURIFilterData& data ) const = 0;
00404 
00413     virtual TDECModule *configModule( TQWidget*, const char* ) const { return 0; }
00414 
00420     virtual TQString configName() const { return name(); }
00421 
00422 protected:
00423 
00427     void setFilteredURI ( KURIFilterData& data, const KURL& uri ) const;
00428 
00432     void setErrorMsg ( KURIFilterData& data, const TQString& errmsg ) const {
00433         data.m_strErrMsg = errmsg;
00434     }
00435 
00439     void setURIType ( KURIFilterData& data, KURIFilterData::URITypes type) const {
00440         data.m_iType = type;
00441         data.m_bChanged = true;
00442     }
00443 
00448     void setArguments( KURIFilterData& data, const TQString& args ) const;
00449 
00450     TQString m_strName;
00451     double m_dblPriority;
00452 
00453 protected:
00454     virtual void virtual_hook( int id, void* data );
00455 private:
00456     class KURIFilterPluginPrivate *d;
00457 };
00458 
00459 
00463 class TDEIO_EXPORT KURIFilterPluginList : public TQPtrList<KURIFilterPlugin>
00464 {
00465 public:
00466     virtual int compareItems(Item a, Item b)
00467     {
00468       double diff = ((KURIFilterPlugin *) a)->priority() - ((KURIFilterPlugin *) b)->priority();
00469       return diff < 0 ? -1 : (diff > 0 ? 1 : 0);
00470     }
00471 
00472 private:
00473     KURIFilterPrivate *d;
00474 
00475 };
00476 
00548 class TDEIO_EXPORT KURIFilter
00549 {
00550 public:
00554     ~KURIFilter ();
00555 
00559     static KURIFilter* self();
00560 
00572     bool filterURI( KURIFilterData& data, const TQStringList& filters = TQStringList() );
00573 
00585     bool filterURI( KURL &uri, const TQStringList& filters = TQStringList() );
00586 
00598     bool filterURI( TQString &uri, const TQStringList& filters = TQStringList() );
00599 
00611     KURL filteredURI( const KURL &uri, const TQStringList& filters = TQStringList() );
00612 
00624     TQString filteredURI( const TQString &uri, const TQStringList& filters = TQStringList() );
00625 
00632     TQPtrListIterator<KURIFilterPlugin> pluginsIterator() const;
00633 
00640     TQStringList pluginNames() const;
00641 
00642 protected:
00643 
00651     KURIFilter();
00652 
00659     void loadPlugins();
00660 
00661 private:
00662     static KURIFilter *s_self;
00663     KURIFilterPluginList m_lstPlugins;
00664     KURIFilterPrivate *d;
00665 };
00666 
00667 #endif

tdeio/tdeio

Skip menu "tdeio/tdeio"
  • Main Page
  • Modules
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

tdeio/tdeio

Skip menu "tdeio/tdeio"
  • arts
  • dcop
  • dnssd
  • interfaces
  •   kspeech
  •     interface
  •     library
  •   tdetexteditor
  • kate
  • kded
  • kdoctools
  • kimgio
  • kjs
  • libtdemid
  • libtdescreensaver
  • tdeabc
  • tdecmshell
  • tdecore
  • tdefx
  • tdehtml
  • tdeinit
  • tdeio
  •   bookmarks
  •   httpfilter
  •   kpasswdserver
  •   kssl
  •   tdefile
  •   tdeio
  •   tdeioexec
  • tdeioslave
  •   http
  • tdemdi
  •   tdemdi
  • tdenewstuff
  • tdeparts
  • tdeprint
  • tderandr
  • tderesources
  • tdespell2
  • tdesu
  • tdeui
  • tdeunittest
  • tdeutils
  • tdewallet
Generated for tdeio/tdeio by doxygen 1.7.6.1
This website is maintained by Timothy Pearson.