00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
#include <kdebug.h>
00023
00024
#include <kbookmarkmanager.h>
00025
00026
#include "bookmarksyncee.h"
00027
00028 BookmarkSyncEntry::BookmarkSyncEntry(KBookmark bm) :
00029 mBookmark(bm)
00030 {
00031 }
00032
00033 QString BookmarkSyncEntry::name()
00034 {
00035
return mBookmark.text();
00036 }
00037
00038 QString BookmarkSyncEntry::id()
00039 {
00040
return mBookmark.url().url();
00041 }
00042
00043 QString BookmarkSyncEntry::timestamp()
00044 {
00045
return mBookmark.text() + mBookmark.url().url();
00046 }
00047
00048
bool BookmarkSyncEntry::equals(
KSyncEntry *entry)
00049 {
00050 BookmarkSyncEntry *bmEntry = dynamic_cast<BookmarkSyncEntry *>(entry);
00051
if (!bmEntry) {
00052 kdDebug() <<
"BookmarkSyncee::addEntry(): Wrong type." << endl;
00053
return false;
00054 }
00055
00056 KBookmark bm = bmEntry->bookmark();
00057
00058 kdDebug() <<
"equals: '" << mBookmark.fullText() <<
"' <-> '"
00059 << bm.fullText() <<
"'" << endl;
00060
00061
if (mBookmark.fullText() != bmEntry->bookmark().fullText())
return false;
00062
if (mBookmark.url() != bmEntry->bookmark().url())
return false;
00063
00064
00065
return true;
00066 }
00067
00068
00069 BookmarkSyncee::BookmarkSyncee()
00070 {
00071 mBookmarkManager = 0;
00072
00073 mEntries.setAutoDelete(
true);
00074 }
00075
00076 BookmarkSyncee::~BookmarkSyncee()
00077 {
00078
delete mBookmarkManager;
00079 }
00080
00081 bool BookmarkSyncee::read()
00082 {
00083
delete mBookmarkManager;
00084 mBookmarkManager = KBookmarkManager::managerForFile(
filename() );
00085
00086 mBookmarks.clear();
00087
00088 listGroup(mBookmarkManager->root());
00089
00090 mBookmarkIterator = mBookmarks.begin();
00091
00092
return true;
00093 }
00094
00095
void BookmarkSyncee::listGroup(KBookmarkGroup group)
00096 {
00097
for(KBookmark bm = group.first(); !bm.isNull(); bm = group.next(bm)) {
00098
if (bm.isGroup()) {
00099 listGroup(bm.toGroup());
00100 }
else if (bm.isSeparator()) {
00101
00102 }
else {
00103 kdDebug() <<
"appending '" << bm.text() <<
"' ("
00104 << bm.parentGroup().fullText() <<
")" << endl;
00105 mBookmarks.append(bm.internalElement());
00106 }
00107 }
00108 }
00109
00110 bool BookmarkSyncee::write()
00111 {
00112 mBookmarkManager->save();
00113
00114
return true;
00115 }
00116
00117
00118 BookmarkSyncEntry *
BookmarkSyncee::firstEntry()
00119 {
00120 mBookmarkIterator = mBookmarks.begin();
00121
return createEntry(KBookmark(*mBookmarkIterator));
00122 }
00123
00124 BookmarkSyncEntry *
BookmarkSyncee::nextEntry()
00125 {
00126
return createEntry(KBookmark(*(++mBookmarkIterator)));
00127 }
00128
00129
#if 0
00130
BookmarkSyncEntry *BookmarkSyncee::findEntry(
const QString &
id)
00131 {
00132 QValueList<QDomElement>::Iterator bmIt = mBookmarks.begin();
00133
while (bmIt != mBookmarks.end()) {
00134
if (KBookmark(*bmIt).url().url() ==
id) {
00135
return createEntry(KBookmark(*bmIt));
00136 }
00137 ++bmIt;
00138 }
00139
00140
return 0;
00141 }
00142
#endif
00143
00144 void BookmarkSyncee::addEntry(
KSyncEntry *entry)
00145 {
00146 BookmarkSyncEntry *bmEntry = dynamic_cast<BookmarkSyncEntry *>(entry);
00147
if (!bmEntry) {
00148 kdDebug() <<
"BookmarkSyncee::addEntry(): Wrong type." << endl;
00149 }
else {
00150 KBookmark bm = bmEntry->bookmark();
00151 KBookmarkGroup bmGroup = findGroup(bm.parentGroup());
00152 KBookmark newBookmark = bmGroup.addBookmark( mBookmarkManager,
00153 bm.fullText(), bm.url() );
00154 mBookmarks.append(newBookmark.internalElement());
00155 }
00156 }
00157
00158 void BookmarkSyncee::removeEntry(
KSyncEntry *entry)
00159 {
00160 BookmarkSyncEntry *bmEntry = dynamic_cast<BookmarkSyncEntry *>(entry);
00161
if (!bmEntry) {
00162 kdDebug() <<
"BookmarkSyncee::addEntry(): Wrong type." << endl;
00163 }
else {
00164 KBookmark bm = bmEntry->bookmark();
00165 kdDebug() <<
"Remove " << bm.text() << endl;
00166
00167
00168
00169
00170
00171
00172 }
00173 }
00174
00175 KBookmarkGroup BookmarkSyncee::findGroup(KBookmarkGroup group)
00176 {
00177
if (group.fullText().isEmpty())
return mBookmarkManager->root();
00178
00179 QValueList<QDomElement>::Iterator bmIt = mBookmarks.begin();
00180
while (bmIt != mBookmarks.end()) {
00181 KBookmark bm(*bmIt);
00182
if (bm.isGroup() && (bm.fullText() == group.fullText())) {
00183
return bm.toGroup();
00184 }
00185 ++bmIt;
00186 }
00187 KBookmarkGroup newGroup =
00188 mBookmarkManager->root().createNewFolder( mBookmarkManager,
00189 group.fullText() );
00190 mBookmarks.append(newGroup.internalElement());
00191
00192
return newGroup;
00193 }
00194
00195 BookmarkSyncEntry *BookmarkSyncee::createEntry(KBookmark bm)
00196 {
00197
if (!bm.isNull()) {
00198 BookmarkSyncEntry *entry =
new BookmarkSyncEntry(bm);
00199 mEntries.append(entry);
00200
return entry;
00201 }
else {
00202
return 0;
00203 }
00204 }