238672ef78
Put the Item class in a separate header; give it functionality to create itself from Variants (e.g. from the configuration data) and to run itself (do whatever the item is supposed to do). This makes the polymorphic approach unnecessary: we just have items that are sufficiently smart. This moves do-a-thing to the Item, while the Job now has one job: be a loop around creating Items and running items.
40 lines
829 B
C++
40 lines
829 B
C++
/* === This file is part of Calamares - <https://calamares.io> ===
|
|
*
|
|
* SPDX-FileCopyrightText: 2018 Adriaan de Groot <groot@kde.org>
|
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
|
*
|
|
*/
|
|
|
|
#ifndef PRESERVEFILES_H
|
|
#define PRESERVEFILES_H
|
|
|
|
#include "CppJob.h"
|
|
#include "DllMacro.h"
|
|
#include "utils/PluginFactory.h"
|
|
|
|
class Item;
|
|
|
|
class PLUGINDLLEXPORT PreserveFiles : public Calamares::CppJob
|
|
{
|
|
Q_OBJECT
|
|
|
|
using ItemList = QList< Item >;
|
|
|
|
public:
|
|
explicit PreserveFiles( QObject* parent = nullptr );
|
|
~PreserveFiles() override;
|
|
|
|
QString prettyName() const override;
|
|
|
|
Calamares::JobResult exec() override;
|
|
|
|
void setConfigurationMap( const QVariantMap& configurationMap ) override;
|
|
|
|
private:
|
|
ItemList m_items;
|
|
};
|
|
|
|
CALAMARES_PLUGIN_FACTORY_DECLARATION( PreserveFilesFactory )
|
|
|
|
#endif // PRESERVEFILES_H
|