kbookmark.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __kbookmark_h
00021 #define __kbookmark_h
00022
00023 #include <qstring.h>
00024 #include <qvaluelist.h>
00025 #include <kurl.h>
00026 #include <qdom.h>
00027
00028 class KBookmarkManager;
00029 class KBookmarkGroup;
00030
00031 class KBookmark
00032 {
00033 friend class KBookmarkGroup;
00034 public:
00035 KBookmark( ) {}
00036 KBookmark( QDomElement elem ) : element(elem) {}
00037
00038 static KBookmark standaloneBookmark( const QString & text, const KURL & url, const QString & icon = QString::null );
00039
00043 bool isGroup() const;
00044
00048 bool isSeparator() const;
00049
00055 bool isNull() const {return element.isNull();}
00056
00063 bool hasParent() const;
00064
00070 QString text() const;
00075 QString fullText() const;
00079 KURL url() const;
00084 QString icon() const;
00085
00089 KBookmarkGroup parentGroup() const;
00090
00095 KBookmarkGroup toGroup() const;
00096
00103 QString address() const;
00104
00105
00106
00107
00108
00109
00110
00114 QDomElement internalElement() const { return element; }
00115
00121 void updateAccessMetadata();
00122
00123
00124
00128 static QString parentAddress( const QString & address )
00129 { return address.left( address.findRev('/') ); }
00130
00134 static uint positionInParent( const QString & address )
00135 { return address.mid( address.findRev('/') + 1 ).toInt(); }
00136
00141 static QString previousAddress( const QString & address )
00142 {
00143 uint pp = positionInParent(address);
00144 return pp>0 ? parentAddress(address) + '/' + QString::number(pp-1) : QString::null;
00145 }
00146
00151 static QString nextAddress( const QString & address )
00152 { return parentAddress(address) + '/' + QString::number(positionInParent(address)+1); }
00153
00154 protected:
00155 QDomElement element;
00156
00157
00158
00159
00160 };
00161
00165 class KBookmarkGroup : public KBookmark
00166 {
00167 public:
00174 KBookmarkGroup();
00175
00179 KBookmarkGroup( QDomElement elem );
00180
00185 QString groupAddress() const;
00186
00190 bool isOpen() const;
00191
00195 KBookmark first() const;
00200 KBookmark previous( const KBookmark & current ) const;
00205 KBookmark next( const KBookmark & current ) const;
00206
00212 KBookmarkGroup createNewFolder( KBookmarkManager* mgr, const QString & text = QString::null, bool emitSignal = true );
00216 KBookmark createNewSeparator();
00223 KBookmark addBookmark( KBookmarkManager* mgr, const QString & text, const KURL & url, const QString & icon = QString::null, bool emitSignal = true );
00224
00229 bool moveItem( const KBookmark & item, const KBookmark & after );
00230
00234 void deleteBookmark( KBookmark bk );
00235
00239 bool isToolbarGroup() const;
00243 QDomElement findToolbar() const;
00244
00249 QValueList<KURL> groupUrlList() const;
00250
00251 protected:
00252 QDomElement nextKnownTag( QDomElement start, bool goNext ) const;
00253
00254 private:
00255 mutable QString m_address;
00256
00257
00258
00259
00260 };
00261
00265 class KBookmarkGroupTraverser {
00266 protected:
00267 virtual ~KBookmarkGroupTraverser() { ; }
00268 void traverse(const KBookmarkGroup &);
00269 virtual void visit(const KBookmark &) { ; }
00270 virtual void visitEnter(const KBookmarkGroup &) { ; }
00271 virtual void visitLeave(const KBookmarkGroup &) { ; }
00272 private:
00273 class KBookmarkGroupTraverserPrivate *d;
00274 };
00275
00276 #endif
This file is part of the documentation for kio Library Version 3.2.2.