kbookmark.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef __kbookmark_h
00019 #define __kbookmark_h
00020
00021 #include <qstring.h>
00022 #include <kurl.h>
00023 #include <qdom.h>
00024
00025 class KBookmarkManager;
00026 class KBookmarkGroup;
00027
00028 class KBookmark
00029 {
00030 friend class KBookmarkGroup;
00031 public:
00032 KBookmark( ) {}
00033 KBookmark( QDomElement elem ) : element(elem) {}
00034
00035 static KBookmark standaloneBookmark( const QString & text, const KURL & url, const QString & icon = QString::null );
00036
00040 bool isGroup() const;
00041
00045 bool isSeparator() const;
00046
00052 bool isNull() const {return element.isNull();}
00053
00059 QString text() const;
00064 QString fullText() const;
00068 KURL url() const;
00073 QString icon() const;
00074
00078 KBookmarkGroup parentGroup() const;
00079
00084 KBookmarkGroup toGroup() const;
00085
00092 QString address() const;
00093
00094
00095
00096
00097
00098
00099
00103 QDomElement internalElement() const { return element; }
00104
00105
00106
00110 static QString parentAddress( const QString & address )
00111 { return address.left( address.findRev('/') ); }
00112
00116 static uint positionInParent( const QString & address )
00117 { return address.mid( address.findRev('/') + 1 ).toInt(); }
00118
00123 static QString previousAddress( const QString & address )
00124 {
00125 uint pp = positionInParent(address);
00126 return pp>0 ? parentAddress(address) + '/' + QString::number(pp-1) : QString::null;
00127 }
00128
00133 static QString nextAddress( const QString & address )
00134 { return parentAddress(address) + '/' + QString::number(positionInParent(address)+1); }
00135
00136 protected:
00137 QDomElement element;
00138
00139
00140
00141
00142 };
00143
00147 class KBookmarkGroup : public KBookmark
00148 {
00149 public:
00156 KBookmarkGroup();
00157
00161 KBookmarkGroup( QDomElement elem );
00162
00167 QString groupAddress() const;
00168
00172 bool isOpen() const;
00173
00177 KBookmark first() const;
00182 KBookmark previous( const KBookmark & current ) const;
00187 KBookmark next( const KBookmark & current ) const;
00188
00193 KBookmarkGroup createNewFolder( KBookmarkManager* mgr, const QString & text = QString::null, bool emitSignal = true );
00197 KBookmark createNewSeparator();
00203 KBookmark addBookmark( KBookmarkManager* mgr, const QString & text, const KURL & url, const QString & icon = QString::null, bool emitSignal = true );
00204
00209 bool moveItem( const KBookmark & item, const KBookmark & after );
00210
00214 void deleteBookmark( KBookmark bk );
00215
00219 bool isToolbarGroup() const;
00223 QDomElement findToolbar() const;
00224
00225 protected:
00226 QDomElement nextKnownTag( QDomElement start, bool goNext ) const;
00227
00228 private:
00229 mutable QString m_address;
00230
00231
00232
00233
00234 };
00235
00236 #endif
This file is part of the documentation for kdelibs Version 3.1.5.