kio Library API Documentation

kbookmarkmanager.h

00001 // -*- c-basic-offset:4; indent-tabs-mode:nil -*- 00002 // vim: set ts=4 sts=4 sw=4 et: 00003 /* This file is part of the KDE libraries 00004 Copyright (C) 2000 David Faure <faure@kde.org> 00005 00006 This library is free software; you can redistribute it and/or 00007 modify it under the terms of the GNU Library General Public 00008 License version 2 as published by the Free Software Foundation. 00009 00010 This library is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 Library General Public License for more details. 00014 00015 You should have received a copy of the GNU Library General Public License 00016 along with this library; see the file COPYING.LIB. If not, write to 00017 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00018 Boston, MA 02111-1307, USA. 00019 */ 00020 #ifndef __kbookmarkmanager_h 00021 #define __kbookmarkmanager_h 00022 00023 #include <qstring.h> 00024 #include <qstringlist.h> 00025 #include <qobject.h> 00026 #include <qdom.h> 00027 #include <dcopobject.h> 00028 #include "kbookmark.h" 00029 #include "kbookmarknotifier.h" 00030 00053 class KBookmarkManager : public QObject, public DCOPObject 00054 { 00055 Q_OBJECT 00056 K_DCOP 00057 protected: 00072 KBookmarkManager( const QString & bookmarksFile, bool bImportDesktopFiles = true ); 00073 00077 KBookmarkManager(); 00078 00079 public: 00083 ~KBookmarkManager(); 00084 00089 void setUpdate( bool update ); 00090 00096 bool save( bool toolbarCache = true ) const; 00097 00104 bool saveAs( const QString & filename, bool toolbarCache = true ) const; 00105 00113 bool updateAccessMetadata( const QString &url, bool emitSignal = true ); 00114 00115 /* 00116 * NB. currently *unimplemented* 00117 * 00118 * Update favicon url for a given url. 00119 * @param url the viewed url 00120 * @param faviconurl the favicion url 00121 * @emitSignal iff true emit KBookmarkNotifier signal 00122 * @since 3.3 00123 */ 00124 void updateFavicon( const QString &url, const QString &faviconurl, bool emitSignal = true ); 00125 00132 QString path() { return m_bookmarksFile; } 00133 00140 KBookmarkGroup root() const; 00141 00148 KBookmarkGroup toolbar(); 00149 00155 KBookmark findByAddress( const QString & address, bool tolerate = false ); 00156 00160 void emitChanged( KBookmarkGroup & group ); 00161 00162 void emitConfigChanged(); 00163 00169 bool showNSBookmarks() const; 00170 00175 void setShowNSBookmarks( bool show ); 00176 00187 void setEditorOptions( const QString& caption, bool browser ); 00188 00205 static KBookmarkManager* managerForFile( const QString& bookmarksFile, 00206 bool bImportDesktopFiles = true ); 00207 00208 00209 static KBookmarkManager* createTempManager(); 00210 00215 static KBookmarkManager* userBookmarksManager(); 00216 00220 const QDomDocument & internalDocument() const; 00221 00227 KBookmarkNotifier& notifier() { return m_notifier; } 00228 00232 KBookmarkGroup addBookmarkDialog( const QString & _url, const QString & _title, 00233 const QString & _parentBookmarkAddress = QString::null ); 00234 00235 public slots: 00236 void slotEditBookmarks(); 00237 void slotEditBookmarksAtAddress( const QString& address ); 00238 00239 public: 00240 k_dcop: 00245 ASYNC notifyCompleteChange( QString caller ); 00246 00253 ASYNC notifyChanged( QString groupAddress ); 00254 00255 ASYNC notifyConfigChanged(); 00256 00257 signals: 00262 void changed( const QString & groupAddress, const QString & caller ); 00263 00264 protected: 00265 // consts added to avoid a copy-and-paste of internalDocument 00266 void parse() const; 00267 void importDesktopFiles(); 00268 static void convertToXBEL( QDomElement & group ); 00269 static void convertAttribute( QDomElement elem, const QString & oldName, const QString & newName ); 00270 00271 private: 00272 KBookmarkNotifier m_notifier; 00273 QString m_bookmarksFile; 00274 mutable QDomDocument m_doc; 00275 mutable QDomDocument m_toolbarDoc; 00276 mutable bool m_docIsLoaded; 00277 bool m_update; 00278 static QPtrList<KBookmarkManager>* s_pSelf; 00279 bool m_showNSBookmarks; 00280 00281 private: 00282 class KBookmarkManagerPrivate* dptr() const; 00283 }; 00284 00306 class KBookmarkOwner 00307 { 00308 public: 00313 virtual void openBookmarkURL(const QString& _url); 00314 00323 virtual QString currentTitle() const { return QString::null; } 00324 00333 virtual QString currentURL() const { return QString::null; } 00334 00335 protected: 00336 virtual void virtual_hook( int id, void* data ); 00337 }; 00338 00342 class KExtendedBookmarkOwner : public QObject, virtual public KBookmarkOwner 00343 { 00344 Q_OBJECT 00345 public: 00346 typedef QValueList<QPair<QString,QString> > QStringPairList; 00347 public slots: 00348 void fillBookmarksList( KExtendedBookmarkOwner::QStringPairList & list ) { emit signalFillBookmarksList( list ); }; 00349 signals: 00350 void signalFillBookmarksList( KExtendedBookmarkOwner::QStringPairList & list ); 00351 private: 00352 class KExtendedBookmarkOwnerPrivate; 00353 KExtendedBookmarkOwnerPrivate *d; 00354 }; 00355 00356 #endif
KDE Logo
This file is part of the documentation for kio Library Version 3.2.3.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Mar 16 17:22:28 2005 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003