calamares/src/modules/preservefiles/PreserveFiles.h
Adriaan de Groot 238672ef78 [preservefiles] Split file-items into separate header
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.
2021-12-13 15:05:05 +01:00

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