This repository has been archived on 2022-08-16. You can view files and clone it, but cannot push or open issues or pull requests.
modern-linbo-gui/headers/backend/linboos.h

113 lines
5 KiB
C++

/****************************************************************************
** Modern Linbo GUI
** Copyright (C) 2020 Dorian Zedler <dorian@itsblue.de>
**
** Portions of the code in this file are based on code by:
** Copyright (C) 2007 Martin Oehler <oehler@knopper.net>
** Copyright (C) 2007 Klaus Knopper <knopper@knopper.net>
**
** This program is free software: you can redistribute it and/or modify
** it under the terms of the GNU Affero General Public License as published
** by the Free Software Foundation, either version 3 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU Affero General Public License for more details.
**
** You should have received a copy of the GNU Affero General Public License
** along with this program. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
#ifndef LINBOOS_H
#define LINBOOS_H
#include <QObject>
#include <QtDebug>
#include "linboimage.h"
class LinboOs : public QObject
{
Q_OBJECT
public:
friend class LinboBackend;
enum LinboOsStartAction {
UnknownAction = -1,
StartOs,
SyncOs,
ReinstallOs
};
const QString& getName() const {return this->name;}
const QString& getDescription() const {return this->description;}
const QString& getVersion() const {return this->version;}
const LinboImage* getBaseImage() const {return this->baseImage;}
const LinboImage* getDifferentialImage() const {return this->differentialImage;}
const QString& getIconName() const {return this->iconName;}
const QString& getRootPartition() const {return this->rootPartition;}
const QString& getBootPartition() const {return this->bootPartition;}
const QString& getKernel() const {return this->kernel;}
const QString& getInitrd() const {return this->initrd;}
const QString& getKernelOptions() const {return this->kernelOptions;}
bool getSyncActionEnabled() const {return this->baseImage != nullptr && this->syncButtonEnabled;}
bool getStartActionEnabled() const {return this->baseImage != nullptr && this->startButtonEnabled;}
bool getReinstallActionEnabled() const {return this->baseImage != nullptr && this->reinstallButtonEnabled;}
bool getAutostartEnabled() const {return this->baseImage != nullptr && this->autostartEnabled;}
const int& getAutostartTimeout() const {return this->autostartTimeout;}
const LinboOsStartAction& getDefaultAction() const {return this->defaultAction;}
const bool& getHidden() const {return this->hidden;}
bool getActionEnabled(LinboOsStartAction action);
static LinboOsStartAction startActionFromString(const QString& name);
private:
explicit LinboOs(QObject *parent = nullptr);
void setName (const QString& name) {this->name = name;}
void setDescription (const QString& description) {this->description = description;}
void setVersion (const QString& version) {this->version = version;}
void setBaseImage (LinboImage* baseImage) {this->baseImage = baseImage;}
void setDifferentialImage(LinboImage* differentialImage) {this->differentialImage = differentialImage;}
void setIconName (const QString& iconName) {this->iconName = iconName;}
void setRootPartition (const QString& rootPartition) {this->rootPartition = rootPartition;}
void setBootPartition (const QString& bootPartition) {this->bootPartition = bootPartition;}
void setKernel (const QString& kernel) {this->kernel = kernel;}
void setInitrd (const QString& initrd) {this->initrd = initrd;}
void setKernelOptions (const QString& kernelOptions) {this->kernelOptions = kernelOptions;}
void setSyncButtonEnabled (const bool& syncButtonEnabled) {this->syncButtonEnabled = syncButtonEnabled;}
void setStartButtonEnabled (const bool& startButtonEnabled) {this->startButtonEnabled = startButtonEnabled;}
void setReinstallButtonEnabled (const bool& reinstallButtonEnabled) {this->reinstallButtonEnabled = reinstallButtonEnabled;}
void setAutostartEnabled (const bool& autostartEnabled) {this->autostartEnabled = autostartEnabled;}
void setAutostartTimeout (const int& autostartTimeout) {this->autostartTimeout = autostartTimeout;}
void setDefaultAction (const LinboOsStartAction& defaultAction) {this->defaultAction = defaultAction;}
void setHidden (const bool& hidden) {this->hidden = hidden;}
QString name;
QString version;
QString description;
QString iconName;
QString rootPartition;
QString bootPartition;
QString image;
QString kernel;
QString initrd;
QString kernelOptions;
int autostartTimeout;
bool syncButtonEnabled;
bool startButtonEnabled;
bool reinstallButtonEnabled;
bool autostartEnabled;
bool hidden;
LinboOsStartAction defaultAction;
LinboImage* baseImage;
LinboImage* differentialImage;
};
#endif // LINBOOS_H