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
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
00156 KBookmark findByAddress( const
QString & address,
bool tolerate = false );
00157
00161
void emitChanged(
KBookmarkGroup & group );
00162
00163
void emitConfigChanged();
00164
00170
bool showNSBookmarks() const;
00171
00176
void setShowNSBookmarks(
bool show );
00177
00188
void setEditorOptions( const
QString& caption,
bool browser );
00189
00206 static KBookmarkManager* managerForFile( const
QString& bookmarksFile,
00207
bool bImportDesktopFiles = true );
00208
00209
00210 static KBookmarkManager* createTempManager();
00211
00216 static KBookmarkManager* userBookmarksManager();
00217
00221 const
QDomDocument & internalDocument() const;
00222
00228 KBookmarkNotifier& notifier() {
return m_notifier; }
00229
00233
KBookmarkGroup addBookmarkDialog(
const QString & _url,
const QString & _title,
00234
const QString & _parentBookmarkAddress = QString::null );
00235
00236
public slots:
00237
void slotEditBookmarks();
00238
void slotEditBookmarksAtAddress(
const QString& address );
00239
00240
public:
00241 k_dcop:
00246 ASYNC notifyCompleteChange(
QString caller );
00247
00254 ASYNC notifyChanged(
QString groupAddress );
00255
00256 ASYNC notifyConfigChanged();
00257
00258 signals:
00263
void changed(
const QString & groupAddress,
const QString & caller );
00264
00265
protected:
00266
00267
void parse() const;
00268
void importDesktopFiles();
00269 static
void convertToXBEL(
QDomElement & group );
00270 static
void convertAttribute(
QDomElement elem, const
QString & oldName, const
QString & newName );
00271
00272 private:
00273
KBookmarkNotifier m_notifier;
00274
QString m_bookmarksFile;
00275 mutable
QDomDocument m_doc;
00276 mutable
QDomDocument m_toolbarDoc;
00277 mutable
bool m_docIsLoaded;
00278
bool m_update;
00279 static
QPtrList<KBookmarkManager>* s_pSelf;
00280
bool m_showNSBookmarks;
00281
00282 private:
00283 class KBookmarkManagerPrivate* dptr() const;
00284 };
00285
00307 class KIO_EXPORT
KBookmarkOwner
00308 {
00309
public:
00314
virtual void openBookmarkURL(
const QString& _url);
00315
00324 virtual QString currentTitle()
const {
return QString::null; }
00325
00334 virtual QString currentURL()
const {
return QString::null; }
00335
00336
protected:
00337
virtual void virtual_hook(
int id,
void* data );
00338 };
00339
00343 class KIO_EXPORT KExtendedBookmarkOwner :
public QObject,
virtual public KBookmarkOwner
00344 {
00345 Q_OBJECT
00346
public:
00347
typedef QValueList<QPair<QString,QString> >
QStringPairList;
00348
public slots:
00349
void fillBookmarksList(
KExtendedBookmarkOwner::QStringPairList & list ) { emit signalFillBookmarksList( list ); };
00350 signals:
00351
void signalFillBookmarksList(
KExtendedBookmarkOwner::QStringPairList & list );
00352
private:
00353
class KExtendedBookmarkOwnerPrivate;
00354 KExtendedBookmarkOwnerPrivate *d;
00355 };
00356
00357
#endif