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.2.0.