File indexing completed on 2024-06-23 05:13:51

0001 /* -*- mode: c++; c-basic-offset:4 -*-
0002     crypto/gui/resultlistwidget.h
0003 
0004     This file is part of Kleopatra, the KDE keymanager
0005     SPDX-FileCopyrightText: 2008 Klarälvdalens Datakonsult AB
0006 
0007     SPDX-License-Identifier: GPL-2.0-or-later
0008 */
0009 
0010 #pragma once
0011 
0012 #include <QWidget>
0013 
0014 #include <crypto/taskcollection.h>
0015 
0016 #include <utils/pimpl_ptr.h>
0017 
0018 #include <memory>
0019 
0020 class QString;
0021 
0022 namespace Kleo
0023 {
0024 namespace Crypto
0025 {
0026 
0027 class TaskCollection;
0028 
0029 namespace Gui
0030 {
0031 
0032 class ResultListWidget : public QWidget
0033 {
0034     Q_OBJECT
0035 public:
0036     explicit ResultListWidget(QWidget *parent = nullptr, Qt::WindowFlags flags = {});
0037     ~ResultListWidget() override;
0038 
0039     void setTaskCollection(const std::shared_ptr<TaskCollection> &coll);
0040     void addTaskCollection(const std::shared_ptr<TaskCollection> &coll);
0041 
0042     void setStandaloneMode(bool standalone);
0043 
0044     bool isComplete() const;
0045 
0046     unsigned int totalNumberOfTasks() const;
0047     unsigned int numberOfCompletedTasks() const;
0048 
0049 Q_SIGNALS:
0050     void linkActivated(const QString &link);
0051     void showButtonClicked(const std::shared_ptr<const Task::Result> &result);
0052     void completeChanged();
0053 
0054 private:
0055     class Private;
0056     kdtools::pimpl_ptr<Private> d;
0057     Q_PRIVATE_SLOT(d, void result(std::shared_ptr<const Kleo::Crypto::Task::Result>))
0058     Q_PRIVATE_SLOT(d, void started(std::shared_ptr<Kleo::Crypto::Task>))
0059     Q_PRIVATE_SLOT(d, void allTasksDone())
0060 };
0061 }
0062 }
0063 }