File indexing completed on 2024-05-05 05:13:00

0001 /*
0002     This file is part of Akregator.
0003 
0004     SPDX-FileCopyrightText: 2008 Frank Osterfeld <osterfeld@kde.org>
0005 
0006     SPDX-License-Identifier: GPL-2.0-or-later WITH Qt-Commercial-exception-1.0
0007 */
0008 
0009 #pragma once
0010 
0011 #include "command.h"
0012 
0013 #include <QSharedPointer>
0014 
0015 #include <memory>
0016 
0017 class QDomDocument;
0018 
0019 namespace Akregator
0020 {
0021 namespace Backend
0022 {
0023 class Storage;
0024 }
0025 
0026 class FeedList;
0027 class LoadFeedListCommandPrivate;
0028 
0029 class LoadFeedListCommand : public Command
0030 {
0031     Q_OBJECT
0032 public:
0033     explicit LoadFeedListCommand(QObject *parent = nullptr);
0034     ~LoadFeedListCommand() override;
0035 
0036     void setFileName(const QString &fileName);
0037     void setDefaultFeedList(const QDomDocument &doc);
0038     void setStorage(Backend::Storage *storage);
0039 
0040 Q_SIGNALS:
0041     void result(const QSharedPointer<Akregator::FeedList> &feedList);
0042 
0043 private:
0044     void doStart() override;
0045     void doAbort() override;
0046 
0047 private:
0048     friend class LoadFeedListCommandPrivate;
0049     std::unique_ptr<LoadFeedListCommandPrivate> const d;
0050 };
0051 }