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

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 <KJob>
0012 
0013 #include <QWeakPointer>
0014 
0015 #include "akregator_export.h"
0016 
0017 namespace Akregator
0018 {
0019 class FeedList;
0020 
0021 // transitional job classes
0022 
0023 class AKREGATOR_EXPORT MoveSubscriptionJob : public KJob
0024 {
0025     Q_OBJECT
0026 public:
0027     explicit MoveSubscriptionJob(QObject *parent = nullptr);
0028 
0029     void setSubscriptionId(uint id);
0030     void setDestination(uint folder, uint afterChild);
0031 
0032     void start() override;
0033 
0034 private Q_SLOTS:
0035     void doMove();
0036 
0037 private:
0038     uint m_id = 0;
0039     uint m_destFolderId = 0;
0040     uint m_afterId = 0;
0041     QWeakPointer<FeedList> m_feedList;
0042 };
0043 
0044 class AKREGATOR_EXPORT RenameSubscriptionJob : public KJob
0045 {
0046     Q_OBJECT
0047 public:
0048     explicit RenameSubscriptionJob(QObject *parent = nullptr);
0049 
0050     void setSubscriptionId(uint id);
0051     void setName(const QString &name);
0052 
0053     void start() override;
0054 
0055 private Q_SLOTS:
0056     void doRename();
0057 
0058 private:
0059     uint m_id;
0060     QString m_name;
0061     QSharedPointer<FeedList> m_feedList;
0062 };
0063 
0064 class AKREGATOR_EXPORT DeleteSubscriptionJob : public KJob
0065 {
0066     Q_OBJECT
0067 public:
0068     explicit DeleteSubscriptionJob(QObject *parent = nullptr);
0069 
0070     void setSubscriptionId(uint id);
0071 
0072     void start() override;
0073 
0074 private:
0075     void doDelete();
0076     uint m_id;
0077     QWeakPointer<FeedList> m_feedList;
0078 };
0079 }