File indexing completed on 2024-12-08 07:31:54
0001 /* This file is part of the KDE project 0002 0003 Copyright (C) 2007 by Javier Goday <jgoday@gmail.com> 0004 Copyright (C) 2009 by Dario Massarin <nekkar@libero.it> 0005 Copyright (C) 2010 by Matthias Fuchs <mat69@gmx.net> 0006 0007 This program is free software; you can redistribute it and/or 0008 modify it under the terms of the GNU General Public 0009 License as published by the Free Software Foundation; either 0010 version 2 of the License, or (at your option) any later version. 0011 */ 0012 0013 #ifndef KUISERVERJOBS_H 0014 #define KUISERVERJOBS_H 0015 0016 #include "kgetglobaljob.h" 0017 #include "transfer.h" 0018 0019 #include <kio/filejob.h> 0020 #include <kio/job.h> 0021 0022 #include <QList> 0023 #include <QObject> 0024 0025 class KGetKJobAdapter; 0026 class TransferHandler; 0027 0028 class KUiServerJobs : public QObject 0029 { 0030 Q_OBJECT 0031 public: 0032 KUiServerJobs(QObject *parent = nullptr); 0033 ~KUiServerJobs() override; 0034 0035 void settingsChanged(); 0036 0037 public Q_SLOTS: 0038 void slotTransfersAdded(QList<TransferHandler *> transfers); 0039 void slotTransfersAboutToBeRemoved(const QList<TransferHandler *> &transfer); 0040 void slotTransfersChanged(QMap<TransferHandler *, Transfer::ChangesFlags> transfers); 0041 0042 private Q_SLOTS: 0043 void slotRequestStop(KJob *job, TransferHandler *transfer); 0044 void slotRequestSuspend(KJob *job, TransferHandler *transfer); 0045 void slotRequestResume(KJob *job, TransferHandler *transfer); 0046 0047 private: 0048 void registerJob(KJob *job, TransferHandler *transfer); 0049 void registerJob(KGetKJobAdapter *job, TransferHandler *transfer); 0050 /** 0051 * Unregisters job and returns true if it worked 0052 */ 0053 bool unregisterJob(KJob *job, TransferHandler *transfer); 0054 bool shouldBeShown(TransferHandler *transfer); 0055 bool existRunningTransfers(); 0056 KGetGlobalJob *globalJob(); 0057 0058 private: 0059 QMap<TransferHandler *, KJob *> m_registeredJobs; 0060 QList<TransferHandler *> m_invalidTransfers; 0061 QList<TransferHandler *> m_suspendRequested; 0062 KGetGlobalJob *m_globalJob; 0063 }; 0064 0065 #endif