kio
kbookmarkmanager.h
Go to the documentation of this file.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 KIO_EXPORT 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
00098 bool save( bool toolbarCache = true ) const;
00099
00106 bool saveAs( const QString & filename, bool toolbarCache = true ) const;
00107
00115 bool updateAccessMetadata( const QString &url, bool emitSignal = true );
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126 void updateFavicon( const QString &url, const QString &faviconurl, bool emitSignal = true );
00127
00134 QString path() { return m_bookmarksFile; }
00135
00142 KBookmarkGroup root() const;
00143
00150 KBookmarkGroup toolbar();
00151
00158 KBookmark findByAddress( const QString & address, bool tolerate = false );
00159
00164 void emitChanged( KBookmarkGroup & group );
00165
00166 void emitConfigChanged();
00167
00173 bool showNSBookmarks() const;
00174
00179 void setShowNSBookmarks( bool show );
00180
00191 void setEditorOptions( const QString& caption, bool browser );
00192
00209 static KBookmarkManager* managerForFile( const QString& bookmarksFile,
00210 bool bImportDesktopFiles = true );
00211
00212
00213 static KBookmarkManager* createTempManager();
00214
00219 static KBookmarkManager* userBookmarksManager();
00220
00225 static QString userBookmarksFile();
00226
00230 const QDomDocument & internalDocument() const;
00231
00237 KBookmarkNotifier& notifier() { return m_notifier; }
00238
00242 KBookmarkGroup addBookmarkDialog( const QString & _url, const QString & _title,
00243 const QString & _parentBookmarkAddress = QString::null );
00244
00245 public slots:
00246 void slotEditBookmarks();
00247 void slotEditBookmarksAtAddress( const QString& address );
00248
00249 public:
00250 k_dcop:
00255 ASYNC notifyCompleteChange( QString caller );
00256
00263 ASYNC notifyChanged( QString groupAddress );
00264
00265 ASYNC notifyConfigChanged();
00266
00267 signals:
00273 void changed( const QString & groupAddress, const QString & caller );
00274
00275 protected:
00276
00277 void parse() const;
00278 void importDesktopFiles();
00279 static void convertToXBEL( QDomElement & group );
00280 static void convertAttribute( QDomElement elem, const QString & oldName, const QString & newName );
00281
00282 private:
00283 KBookmarkNotifier m_notifier;
00284 QString m_bookmarksFile;
00285 mutable QDomDocument m_doc;
00286 mutable QDomDocument m_toolbarDoc;
00287 mutable bool m_docIsLoaded;
00288 bool m_update;
00289 static QPtrList<KBookmarkManager>* s_pSelf;
00290 bool m_showNSBookmarks;
00291
00292 private:
00293 class KBookmarkManagerPrivate* dptr() const;
00294 };
00295
00317 class KIO_EXPORT KBookmarkOwner
00318 {
00319 public:
00324 virtual void openBookmarkURL(const QString& _url);
00325
00334 virtual QString currentTitle() const { return QString::null; }
00335
00344 virtual QString currentURL() const { return QString::null; }
00345
00346 protected:
00347 virtual void virtual_hook( int id, void* data );
00348 };
00349
00353 class KIO_EXPORT KExtendedBookmarkOwner : public QObject, virtual public KBookmarkOwner
00354 {
00355 Q_OBJECT
00356 public:
00357 typedef QValueList<QPair<QString,QString> > QStringPairList;
00358 public slots:
00359 void fillBookmarksList( KExtendedBookmarkOwner::QStringPairList & list ) { emit signalFillBookmarksList( list ); };
00360 signals:
00361 void signalFillBookmarksList( KExtendedBookmarkOwner::QStringPairList & list );
00362 private:
00363 class KExtendedBookmarkOwnerPrivate;
00364 KExtendedBookmarkOwnerPrivate *d;
00365 };
00366
00367 #endif