kbookmarkmanager.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
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
00117
00118
00119
00120
00121
00122
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
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
This file is part of the documentation for kio Library Version 3.3.2.