kdecore Library API Documentation

kurl.h

00001 /* This file is part of the KDE libraries 00002 * Copyright (C) 1999 Torben Weis <weis@kde.org> 00003 * 00004 * This library is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU Library General Public 00006 * License as published by the Free Software Foundation; either 00007 * version 2 of the License, or (at your option) any later version. 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 __kurl_h__ 00021 #define __kurl_h__ "$Id: kurl.h,v 1.130 2003/12/10 13:55:53 waba Exp $" 00022 00023 #include <qstring.h> 00024 #include <qvaluelist.h> 00025 #include "kdemacros.h" 00026 00027 class QUrl; 00028 class QStringList; 00029 template <typename K, typename V> class QMap; 00030 00031 class KURLPrivate; 00118 class KURL 00119 { 00120 public: 00121 enum AdjustementFlags 00122 { 00123 NoAdjustements = 0, 00124 StripFileProtocol = 1 00125 }; 00126 00130 enum URIMode 00131 { 00136 Auto, 00141 Invalid, 00146 RawURI, 00150 URL, 00156 Mailto 00157 }; 00158 00165 class List : public QValueList<KURL> 00166 { 00167 public: 00171 List() { } 00177 List(const KURL &url); 00183 List(const QStringList &list); 00188 QStringList toStringList() const; 00189 }; 00193 KURL(); 00194 00198 ~KURL(); 00199 00216 KURL( const QString& url, int encoding_hint = 0 ); 00226 KURL( const char * url, int encoding_hint = 0 ); 00236 KURL( const QCString& url, int encoding_hint = 0 ); 00237 00242 KURL( const KURL& u ); 00247 KURL( const QUrl &u ); 00260 KURL( const KURL& _baseurl, const QString& _rel_url, int encoding_hint=0 ); 00261 00267 QString protocol() const { return m_bIsMalformed ? QString::null : m_strProtocol; } 00272 void setProtocol( const QString& _txt ); 00273 00279 int uriMode() const; 00280 00285 QString user() const { return m_strUser; } 00292 void setUser( const QString& _txt ); 00297 bool hasUser() const { return !m_strUser.isEmpty(); } 00298 00303 QString pass() const { return m_strPass; } 00314 void setPass( const QString& _txt ); 00319 bool hasPass() const { return !m_strPass.isEmpty(); } 00320 00325 QString host() const { return m_strHost; } 00326 00333 void setHost( const QString& _txt ); 00338 bool hasHost() const { return !m_strHost.isEmpty(); } 00339 00345 unsigned short int port() const { return m_iPort; } 00350 void setPort( unsigned short int _p ); 00351 00357 QString path() const { return m_strPath; } 00358 00372 QString path( int _trailing ) const; 00373 00382 void setPath( const QString& path ); 00383 00388 bool hasPath() const { return !m_strPath.isEmpty(); } 00389 00398 void cleanPath(bool cleanDirSeparator = true); 00399 00411 void adjustPath(int _trailing); 00412 00420 void setEncodedPathAndQuery( const QString& _txt, int encoding_hint = 0 ); 00421 00428 void setEncodedPath(const QString& _txt, int encoding_hint = 0 ); 00429 00447 QString encodedPathAndQuery( int _trailing = 0, bool _no_empty_path = false, int encoding_hint = 0) const; 00448 00457 void setQuery( const QString& _txt, int encoding_hint = 0); 00458 00467 QString query() const; 00468 00473 QString ref() const { return m_strRef_encoded; } 00474 00479 void setRef( const QString& _txt ) { m_strRef_encoded = _txt; } 00480 00487 bool hasRef() const { return !m_strRef_encoded.isNull(); } 00488 00496 QString htmlRef() const; 00497 00503 QString encodedHtmlRef() const; 00504 00512 void setHTMLRef( const QString& _ref ); 00513 00519 bool hasHTMLRef() const; 00520 00526 bool isValid() const { return !m_bIsMalformed; } 00530 KDE_DEPRECATED bool isMalformed() const { return !isValid(); } 00531 00537 bool isLocalFile() const; 00538 00545 void setFileEncoding(const QString &encoding); 00546 00553 QString fileEncoding() const; 00554 00561 bool hasSubURL() const; 00562 00573 void addPath( const QString& txt ); 00574 00579 QString queryItem( const QString& item ) const; 00580 00590 QString queryItem( const QString& item, int encoding_hint ) const; 00591 00600 enum QueryItemsOptions { CaseInsensitiveKeys = 1 }; 00601 00605 QMap< QString, QString > queryItems( int options=0 ) const; 00606 00618 QMap< QString, QString > queryItems( int options, int encoding_hint ) const; 00619 00630 void addQueryItem( const QString& _item, const QString& _value, int encoding_hint = 0 ); 00631 00637 void removeQueryItem( const QString& _item ); 00638 00652 void setFileName( const QString&_txt ); 00653 00664 QString fileName( bool _ignore_trailing_slash_in_path = true ) const; 00665 00677 QString directory( bool _strip_trailing_slash_from_result = true, 00678 bool _ignore_trailing_slash_in_path = true ) const; 00679 00683 void setDirectory(const QString &dir); 00684 00698 bool cd( const QString& _dir ); 00699 00718 QString url( int _trailing = 0, int encoding_hint = 0) const; 00719 00733 QString prettyURL( int _trailing = 0) const; 00734 00744 QString prettyURL( int _trailing, AdjustementFlags _flags) const; 00745 // ### BIC: Merge the two above + spell it as "Adjustment" 00746 00753 QString htmlURL() const; 00754 00755 00760 bool isEmpty() const; 00761 00770 KURL upURL( ) const; 00771 00772 bool operator<(const KURL& _u) const; 00773 00774 KURL& operator=( const KURL& _u ); 00775 KURL& operator=( const QString& _url ); 00776 KURL& operator=( const char * _url ); 00777 KURL& operator=( const QUrl & u ); 00778 00779 bool operator==( const KURL& _u ) const; 00780 bool operator==( const QString& _u ) const; 00781 bool operator!=( const KURL& _u ) const { return !( *this == _u ); } 00782 bool operator!=( const QString& _u ) const { return !( *this == _u ); } 00783 00794 bool cmp( const KURL &u, bool ignore_trailing = false ) const KDE_DEPRECATED; 00795 00805 bool equals( const KURL &u, bool ignore_trailing = false ) const; // TODO KDE4: add bool _ignore_ref = false 00806 00812 bool isParentOf( const KURL& u ) const; 00813 00829 static List split( const QString& _url ); 00830 00846 static List split( const KURL& _url ); 00847 00855 static KURL join( const List& _list ); 00856 00870 static KURL fromPathOrURL( const QString& text ); 00871 00882 static QString encode_string(const QString &str, int encoding_hint = 0); 00883 00894 static QString encode_string_no_slash(const QString &str, int encoding_hint = 0); 00895 00906 static QString decode_string(const QString &str, int encoding_hint = 0); 00907 00916 static bool isRelativeURL(const QString &_url); 00917 00934 static QString relativeURL(const KURL &base_url, const KURL &url, int encoding_hint = 0); 00935 00945 static QString relativePath(const QString &base_dir, const QString &path, bool *isParent=0); 00946 00952 static URIMode uriModeForProtocol(const QString& protocol); 00953 00954 #ifdef KDE_NO_COMPAT 00955 private: 00956 #endif 00957 QString filename( bool _ignore_trailing_slash_in_path = true ) const 00958 { 00959 return fileName(_ignore_trailing_slash_in_path); 00960 } 00961 00962 protected: 00963 void reset(); 00964 void parseURL( const QString& _url, int encoding_hint = 0 ); 00965 void parseRawURI( const QString& _url, int encoding_hint = 0 ); 00966 void parseMailto( const QString& _url, int encoding_hint = 0 ); 00967 void parse( const QString& _url, int encoding_hint = 0 ); 00968 00969 private: 00970 void _setQuery( const QString& _txt, int encoding_hint = 0); 00971 00972 QString m_strProtocol; 00973 QString m_strUser; 00974 QString m_strPass; 00975 QString m_strHost; 00976 QString m_strPath; 00977 QString m_strRef_encoded; 00978 QString m_strQuery_encoded; 00979 bool m_bIsMalformed : 1; 00980 enum URIMode m_iUriMode : 3; 00981 uint freeForUse : 4; 00982 unsigned short int m_iPort; 00983 QString m_strPath_encoded; 00984 00985 friend QDataStream & operator<< (QDataStream & s, const KURL & a); 00986 friend QDataStream & operator>> (QDataStream & s, KURL & a); 00987 private: 00988 KURLPrivate* d; 00989 }; 00990 00998 bool urlcmp( const QString& _url1, const QString& _url2 ); 00999 01012 bool urlcmp( const QString& _url1, const QString& _url2, bool _ignore_trailing, bool _ignore_ref ); 01013 01014 QDataStream & operator<< (QDataStream & s, const KURL & a); 01015 QDataStream & operator>> (QDataStream & s, KURL & a); 01016 01017 #endif
KDE Logo
This file is part of the documentation for kdecore Library Version 3.2.3.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Fri Aug 20 09:48:27 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003