diff options
Diffstat (limited to 'kio/bookmarks/kbookmark.h')
-rw-r--r-- | kio/bookmarks/kbookmark.h | 329 |
1 files changed, 0 insertions, 329 deletions
diff --git a/kio/bookmarks/kbookmark.h b/kio/bookmarks/kbookmark.h deleted file mode 100644 index 4e5dc9149..000000000 --- a/kio/bookmarks/kbookmark.h +++ /dev/null @@ -1,329 +0,0 @@ -// -*- c-basic-offset: 4; indent-tabs-mode:nil -*- -// vim: set ts=4 sts=4 sw=4 et: -/* This file is part of the KDE libraries - Copyright (C) 2000 David Faure <faure@kde.org> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License version 2 as published by the Free Software Foundation. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#ifndef __kbookmark_h -#define __kbookmark_h - -#include <tqstring.h> -#include <tqvaluelist.h> -#include <tqdom.h> -#include <kurl.h> - -class KBookmarkManager; -class KBookmarkGroup; - -class TDEIO_EXPORT KBookmark -{ - friend class KBookmarkGroup; -public: - enum MetaDataOverwriteMode { - OverwriteMetaData, DontOverwriteMetaData - }; - - KBookmark( ) {} - KBookmark( TQDomElement elem ) : element(elem) {} - - static KBookmark standaloneBookmark( const TQString & text, const KURL & url, const TQString & icon = TQString::null ); - - /** - * Whether the bookmark is a group or a normal bookmark - */ - bool isGroup() const; - - /** - * Whether the bookmark is a separator - */ - bool isSeparator() const; - - /** - * @return true if this is a null bookmark. This will never - * be the case for a real bookmark (in a menu), but it's used - * for instance as the end condition for KBookmarkGroup::next() - */ - bool isNull() const {return element.isNull();} - - /** - * @return true if bookmark is contained by a TQDomDocument, - * if not it is most likely that it has become separated and - * is thus invalid and/or has been deleted from the bookmarks. - * @since 3.2 - */ - bool hasParent() const; - - /** - * Text shown for the bookmark - * If bigger than 40, the text is shortened by - * replacing middle characters with "..." (see KStringHandler::csqueeze) - */ - TQString text() const; - /** - * Text shown for the bookmark, not truncated. - * You should not use this - this is mainly for keditbookmarks. - */ - TQString fullText() const; - /** - * URL contained by the bookmark - */ - KURL url() const; - /** - * @return the pixmap file for this bookmark - * (i.e. the name of the icon) - */ - TQString icon() const; - - /** - * @return the group containing this bookmark - */ - KBookmarkGroup parentGroup() const; - - /** - * Convert this to a group - do this only if - * isGroup() returns true. - */ - KBookmarkGroup toGroup() const; - - /** - * Return the "address" of this bookmark in the whole tree. - * This is used when telling other processes about a change - * in a given bookmark. The encoding of the address is "/4/2", for - * instance, to design the 2nd child inside the 4th child of the root bk. - */ - TQString address() const; - - // Hard to decide. Good design would imply that each bookmark - // knows about its manager, so that there can be several managers. - // But if we say there is only one manager (i.e. set of bookmarks) - // per application, then KBookmarkManager::self() is much easier. - //KBookmarkManager * manager() const { return m_manager; } - - /** - * @internal for KEditBookmarks - */ - TQDomElement internalElement() const { return element; } - - /** - * Updates the bookmarks access metadata - * Call when a user accesses the bookmark - * @since 3.2 - */ - void updateAccessMetadata(); - - // Utility functions (internal) - - /** - * @return address of parent - */ - static TQString parentAddress( const TQString & address ) - { return address.left( address.findRev('/') ); } - - /** - * @return position in parent (e.g. /4/5/2 -> 2) - */ - static uint positionInParent( const TQString & address ) - { return address.mid( address.findRev('/') + 1 ).toInt(); } - - /** - * @return address of previous sibling (e.g. /4/5/2 -> /4/5/1) - * Returns TQString::null for a first child - */ - static TQString previousAddress( const TQString & address ) - { - uint pp = positionInParent(address); - return pp>0 ? parentAddress(address) + '/' + TQString::number(pp-1) : TQString::null; - } - - /** - * @return address of next sibling (e.g. /4/5/2 -> /4/5/3) - * This doesn't check whether it actually exists - */ - static TQString nextAddress( const TQString & address ) - { return parentAddress(address) + '/' + TQString::number(positionInParent(address)+1); } - - /** - * @return the common parent of both addresses which - * has the greatest depth - * @since 3.5 - */ - static TQString commonParent(TQString A, TQString B); - - /** - * Get the value of a specific metadata item. - * @param key Name of the metadata item - * @return Value of the metadata item. TQString::null is returned in case - * the specified key does not exist. - * @since 3.4 - */ - TQString metaDataItem( const TQString &key ) const; - - /** - * Change the value of a specific metadata item, or create the given item - * if it doesn't exist already. - * @param key Name of the metadata item to change - * @param value Value to use for the specified metadata item - * @param mode Whether to overwrite the item's value if it exists already or not. - * @since 3.4 - */ - void setMetaDataItem( const TQString &key, const TQString &value, MetaDataOverwriteMode mode = OverwriteMetaData ); - -protected: - TQDomElement element; - // Note: you can't add new member variables here. - // The KBookmarks are created on the fly, as wrappers - // around internal QDomElements. Any additional information - // has to be implemented as an attribute of the TQDomElement. - -private: - bool hasMetaData() const; - static TQString left(const TQString & str, uint len); -}; - -/** - * A group of bookmarks - */ -class TDEIO_EXPORT KBookmarkGroup : public KBookmark -{ -public: - /** - * Create an invalid group. This is mostly for use in TQValueList, - * and other places where we need a null group. - * Also used as a parent for a bookmark that doesn't have one - * (e.g. Netscape bookmarks) - */ - KBookmarkGroup(); - - /** - * Create a bookmark group as specified by the given element - */ - KBookmarkGroup( TQDomElement elem ); - - /** - * Much like KBookmark::address, but caches the - * address into m_address. - */ - TQString groupAddress() const; - - /** - * @return true if the bookmark folder is opened in the bookmark editor - */ - bool isOpen() const; - - /** - * Return the first child bookmark of this group - */ - KBookmark first() const; - /** - * Return the prevous sibling of a child bookmark of this group - * @param current has to be one of our child bookmarks. - */ - KBookmark previous( const KBookmark & current ) const; - /** - * Return the next sibling of a child bookmark of this group - * @param current has to be one of our child bookmarks. - */ - KBookmark next( const KBookmark & current ) const; - - /** - * Create a new bookmark folder, as the last child of this group - * @param mgr the manager of the bookmark - * @param text for the folder. If empty, the user will be queried for it. - * @param emitSignal if true emit KBookmarkNotifier signal - */ - KBookmarkGroup createNewFolder( KBookmarkManager* mgr, const TQString & text = TQString::null, bool emitSignal = true ); - /** - * Create a new bookmark separator - * Don't forget to use KBookmarkManager::self()->emitChanged( parentBookmark ); - */ - KBookmark createNewSeparator(); - - /** - * Create a new bookmark, as the last child of this group - * Don't forget to use KBookmarkManager::self()->emitChanged( parentBookmark ); - * @param mgr the manager of the bookmark - * @param bm the bookmark to add - * @param emitSignal if true emit KBookmarkNotifier signal - * @since 3.4 - */ - KBookmark addBookmark( KBookmarkManager* mgr, const KBookmark &bm, bool emitSignal = true ); - - /** - * Create a new bookmark, as the last child of this group - * Don't forget to use KBookmarkManager::self()->emitChanged( parentBookmark ); - * @param mgr the manager of the bookmark - * @param text for the bookmark - * @param url the URL that the bookmark points to - * @param icon the name of the icon to associate with the bookmark. A suitable default - * will be determined from the URL if not specified. - * @param emitSignal if true emit KBookmarkNotifier signal - */ - KBookmark addBookmark( KBookmarkManager* mgr, const TQString & text, const KURL & url, const TQString & icon = TQString::null, bool emitSignal = true ); - - /** - * Moves @p item after @p after (which should be a child of ours). - * If item is null, @p item is moved as the first child. - * Don't forget to use KBookmarkManager::self()->emitChanged( parentBookmark ); - */ - bool moveItem( const KBookmark & item, const KBookmark & after ); - - /** - * Delete a bookmark - it has to be one of our children ! - * Don't forget to use KBookmarkManager::self()->emitChanged( parentBookmark ); - */ - void deleteBookmark( KBookmark bk ); - - /** - * @return true if this is the toolbar group - */ - bool isToolbarGroup() const; - /** - * @internal - */ - TQDomElement findToolbar() const; - - /** - * @return the list of urls of bookmarks at top level of the group - * @since 3.2 - */ - TQValueList<KURL> groupUrlList() const; - -protected: - TQDomElement nextKnownTag( TQDomElement start, bool goNext ) const; - -private: - mutable TQString m_address; - // Note: you can't add other member variables here, except for caching info. - // The KBookmarks are created on the fly, as wrappers - // around internal QDomElements. Any additional information - // has to be implemented as an attribute of the TQDomElement. -}; - -/** - * @since 3.2 - */ -class TDEIO_EXPORT KBookmarkGroupTraverser { -protected: - virtual ~KBookmarkGroupTraverser() { ; } - void traverse(const KBookmarkGroup &); - virtual void visit(const KBookmark &) { ; } - virtual void visitEnter(const KBookmarkGroup &) { ; } - virtual void visitLeave(const KBookmarkGroup &) { ; } -private: - class KBookmarkGroupTraverserPrivate *d; -}; - -#endif |