File indexing completed on 2023-10-03 07:53:59

0001 /* This file is part of the KDE project
0002 
0003    Copyright (C) 2008 Javier Goday <jgoday @ gmail.com>
0004 
0005    This program is free software; you can redistribute it and/or
0006    modify it under the terms of the GNU General Public
0007    License as published by the Free Software Foundation; either
0008    version 2 of the License, or (at your option) any later version.
0009 */
0010 #ifndef LINKIMPORTER_H
0011 #define LINKIMPORTER_H
0012 
0013 #include "kget_export.h"
0014 
0015 #include <QList>
0016 #include <QThread>
0017 
0018 #include <QUrl>
0019 
0020 class KLocalizedString;
0021 
0022 /**
0023  * Import a list of urls from a file (local or remote)
0024  */
0025 class KGET_EXPORT LinkImporter : public QThread
0026 {
0027     Q_OBJECT
0028 public:
0029     LinkImporter(const QUrl &source, QObject *parent);
0030     LinkImporter(QObject *parent);
0031     ~LinkImporter() override;
0032 
0033     /**
0034      * Check for urls in clipboard
0035      */
0036     void checkClipboard(const QString &clipboardContent);
0037 
0038     /**
0039      * Start reading the url contents
0040      */
0041     void run() override;
0042 
0043     /**
0044      * copy the remote file out of the thread
0045      */
0046     void copyRemoteFile();
0047 
0048     /**
0049      * Returns a list with the links of the selected url m_url
0050      */
0051     QList<QString> links()
0052     {
0053         return m_transfers;
0054     };
0055 
0056 Q_SIGNALS:
0057     void error(const KLocalizedString &);
0058     void progress(int progress);
0059 
0060 private Q_SLOTS:
0061     void slotReadFile(const QUrl &url);
0062 
0063 private:
0064     /**
0065      * Checks if an url is valid and adds it to the transfers lists
0066      */
0067     void addTransfer(QString &link);
0068 
0069 private:
0070     QUrl m_url;
0071     QList<QString> m_transfers;
0072     QString m_tempFile;
0073 };
0074 #endif