File indexing completed on 2024-05-19 15:46:02

0001 /*
0002     SPDX-FileCopyrightText: 2019 Daniel Mensinger <daniel@mensinger-ka.de>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "mesonactionbase.h"
0010 
0011 #include <KJob>
0012 #include <QFutureWatcher>
0013 #include <QVector>
0014 
0015 namespace KDevelop
0016 {
0017 class IProject;
0018 }
0019 
0020 class MesonRewriterJob : public KJob
0021 {
0022     Q_OBJECT
0023 public:
0024     explicit MesonRewriterJob(KDevelop::IProject* project, const QVector<MesonRewriterActionPtr>& actions,
0025                               QObject* parent);
0026 
0027     void start() override;
0028     bool doKill() override;
0029 
0030 private:
0031     QString execute();
0032     void finished();
0033 
0034 private:
0035     KDevelop::IProject* m_project = nullptr;
0036     QVector<MesonRewriterActionPtr> m_actions;
0037 
0038     QFutureWatcher<QString> m_futureWatcher;
0039 };