File indexing completed on 2025-03-09 04:54:38

0001 /*
0002   SPDX-FileCopyrightText: 2016-2024 Laurent Montel <montel@kde.org>
0003 
0004   SPDX-License-Identifier: LGPL-2.0-or-later
0005 
0006 */
0007 
0008 #pragma once
0009 
0010 #include "messageviewer_export.h"
0011 #include <QNetworkReply>
0012 #include <QObject>
0013 namespace MessageViewer
0014 {
0015 class ScamExpandUrlJobPrivate;
0016 /**
0017  * @brief The ScamExpandUrlJob class
0018  * @author Laurent Montel <montel@kde.org>
0019  */
0020 class MESSAGEVIEWER_EXPORT ScamExpandUrlJob : public QObject
0021 {
0022     Q_OBJECT
0023 public:
0024     explicit ScamExpandUrlJob(QObject *parent = nullptr);
0025     ~ScamExpandUrlJob() override;
0026 
0027     void expandedUrl(const QUrl &url);
0028 Q_SIGNALS:
0029     void urlExpanded(const QString &shortUrl, const QString &expandedUrl);
0030     void expandUrlError(QNetworkReply::NetworkError error);
0031 
0032 private:
0033     MESSAGEVIEWER_NO_EXPORT void slotError(QNetworkReply::NetworkError error);
0034     MESSAGEVIEWER_NO_EXPORT void slotExpandFinished(QNetworkReply *reply);
0035     std::unique_ptr<ScamExpandUrlJobPrivate> const d;
0036 };
0037 }