112 lines
5 KiB
C++
112 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
|