File indexing completed on 2024-05-05 05:53:04

0001 //  -*- c-basic-offset:4; indent-tabs-mode:nil -*-
0002 /*
0003     This file is part of the KDE libraries
0004     SPDX-FileCopyrightText: 2003 Alexander Kellett <lypanov@kde.org>
0005 
0006     SPDX-License-Identifier: LGPL-2.0-only
0007 */
0008 
0009 #include "kbookmarkimporter.h"
0010 
0011 #include "kbookmarkimporter_ie.h"
0012 #include "kbookmarkimporter_ns.h"
0013 #include "kbookmarkimporter_opera.h"
0014 #include "kbookmarkmanager.h"
0015 
0016 #include <assert.h>
0017 #include <stddef.h>
0018 
0019 void KXBELBookmarkImporterImpl::parse()
0020 {
0021     // qCDebug(KBOOKMARKS_LOG) << "KXBELBookmarkImporterImpl::parse()";
0022     KBookmarkManager manager(m_fileName);
0023     KBookmarkGroup root = manager.root();
0024     traverse(root);
0025 }
0026 
0027 void KXBELBookmarkImporterImpl::visit(const KBookmark &bk)
0028 {
0029     // qCDebug(KBOOKMARKS_LOG) << "KXBELBookmarkImporterImpl::visit";
0030     if (bk.isSeparator()) {
0031         Q_EMIT newSeparator();
0032     } else {
0033         Q_EMIT newBookmark(bk.fullText(), bk.url().toString(), QLatin1String(""));
0034     }
0035 }
0036 
0037 void KXBELBookmarkImporterImpl::visitEnter(const KBookmarkGroup &grp)
0038 {
0039     // qCDebug(KBOOKMARKS_LOG) << "KXBELBookmarkImporterImpl::visitEnter";
0040     Q_EMIT newFolder(grp.fullText(), false, QLatin1String(""));
0041 }
0042 
0043 void KXBELBookmarkImporterImpl::visitLeave(const KBookmarkGroup &)
0044 {
0045     // qCDebug(KBOOKMARKS_LOG) << "KXBELBookmarkImporterImpl::visitLeave";
0046     Q_EMIT endFolder();
0047 }
0048 
0049 void BookmarkImporterBase::setupSignalForwards(QObject *src, QObject *dst)
0050 {
0051     // clang-format off
0052     connect(src, SIGNAL(newBookmark(QString,QString,QString)), dst, SIGNAL(newBookmark(QString,QString,QString)));
0053     connect(src, SIGNAL(newFolder(QString,bool,QString)), dst, SIGNAL(newFolder(QString,bool,QString)));
0054     // clang-format on
0055     connect(src, SIGNAL(newSeparator()), dst, SIGNAL(newSeparator()));
0056     connect(src, SIGNAL(endFolder()), dst, SIGNAL(endFolder()));
0057 }
0058 
0059 BookmarkImporterBase *BookmarkImporterBase::factory(const QString &type)
0060 {
0061     if (type == QLatin1String("netscape")) {
0062         return new NSBookmarkImporterImpl;
0063     } else if (type == QLatin1String("mozilla")) {
0064         return new KMozillaBookmarkImporterImpl;
0065     } else if (type == QLatin1String("xbel")) {
0066         return new KXBELBookmarkImporterImpl;
0067     } else if (type == QLatin1String("ie")) {
0068         return new IEBookmarkImporterImpl;
0069     } else if (type == QLatin1String("opera")) {
0070         return new OperaBookmarkImporterImpl;
0071     } else {
0072         return nullptr;
0073     }
0074 }
0075 
0076 #include "moc_kbookmarkimporter.cpp"