File indexing completed on 2024-05-05 05:48:32

0001 /*
0002     CT Environment Variable Header
0003     --------------------------------------------------------------------
0004     SPDX-FileCopyrightText: 1999 Gary Meyer <gary@meyer.net>
0005     --------------------------------------------------------------------
0006     SPDX-License-Identifier: GPL-2.0-or-later
0007 */
0008 
0009 #pragma once
0010 
0011 #include <QIcon>
0012 #include <QString>
0013 
0014 /**
0015  * An environment variable (encapsulation of crontab environment variable
0016  * entry).  Encapsulates parsing and tokenization.
0017  */
0018 class CTVariable
0019 {
0020 public:
0021     /**
0022      * Constructs environment variable from crontab format string.
0023      */
0024     explicit CTVariable(const QString &tokenString, const QString &_comment, const QString &_userLogin);
0025 
0026     /**
0027      * Copy constructor.
0028      */
0029     CTVariable(const CTVariable &source);
0030 
0031     /**
0032      * Assignment operator.
0033      */
0034     CTVariable &operator=(const CTVariable &source);
0035 
0036     /**
0037      * Tokenizes environment variable to crontab format.
0038      */
0039     QString exportVariable();
0040 
0041     /**
0042      * Mark changes as applied.
0043      */
0044     void apply();
0045 
0046     /**
0047      * Cancel changes.
0048      */
0049     void cancel();
0050 
0051     /**
0052      * Indicates whether or not the environment variable has been modified.
0053      */
0054     bool dirty() const;
0055 
0056     QIcon variableIcon() const;
0057 
0058     QString information() const;
0059 
0060     QString variable;
0061     QString value;
0062     QString comment;
0063     QString userLogin;
0064 
0065     bool enabled;
0066 
0067 private:
0068     QString mInitialVariable;
0069     QString mInitialValue;
0070     QString mInitialComment;
0071     QString mInitialUserLogin;
0072     bool mInitialEnabled;
0073 };
0074