File indexing completed on 2024-12-08 07:56:29

0001 // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0002 // SPDX-FileCopyrightText: 2022 Harald Sitter <sitter@kde.org>
0003 
0004 #pragma once
0005 
0006 #include <memory>
0007 
0008 #include <QObject>
0009 #include <QProcess>
0010 
0011 #include "Patient.h"
0012 
0013 Q_DECLARE_METATYPE(Patient *)
0014 class DetailsLoader : public QObject
0015 {
0016     Q_OBJECT
0017 
0018     Q_PROPERTY(Patient *patient MEMBER m_patient WRITE setPatient NOTIFY patientChanged)
0019     Patient *m_patient = nullptr;
0020     void setPatient(Patient *patient);
0021     Q_SIGNAL void patientChanged();
0022 
0023 public:
0024     using QObject::QObject;
0025 
0026 Q_SIGNALS:
0027     void details(const QString &details);
0028     void error(const QString &error);
0029 
0030 private:
0031     void load();
0032     std::unique_ptr<QProcess> m_LoaderProcess;
0033 };