diff options
Diffstat (limited to 'kcron/ctvariable.cpp')
-rw-r--r-- | kcron/ctvariable.cpp | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/kcron/ctvariable.cpp b/kcron/ctvariable.cpp new file mode 100644 index 0000000..f736c76 --- /dev/null +++ b/kcron/ctvariable.cpp @@ -0,0 +1,101 @@ +/*************************************************************************** + * CT Environment Variable Implementation * + * -------------------------------------------------------------------- * + * Copyright (C) 1999, Gary Meyer <gary@meyer.net> * + * -------------------------------------------------------------------- * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + ***************************************************************************/ + +// Do not introduce any Qt or KDE dependencies into the "CT"-prefixed classes. +// I want to be able to reuse these classes with another GUI toolkit. -GM 11/99 + +#include "ctvariable.h" + +using namespace std; + +CTVariable::CTVariable(string tokStr, string _comment) +{ + if (tokStr.substr(0,2) == "#\\") + { + tokStr = tokStr.substr(2,tokStr.length() - 2); + enabled = false; + } + else + enabled = true; + + int spacepos(0); + + spacepos = tokStr.find_first_of(" ="); + variable = tokStr.substr(0,spacepos); + + value = tokStr.substr(spacepos+1,tokStr.length()-spacepos-1); + comment = _comment; + + initialVariable = variable; + initialValue = value; + initialComment = comment; + initialEnabled = enabled; +} + +CTVariable::CTVariable(const CTVariable &source) : + variable(source.variable), + value(source.value), + comment(source.comment), + enabled(source.enabled), + initialVariable(""), + initialValue(""), + initialComment(""), + initialEnabled(true) +{ +} + +void CTVariable::operator = (const CTVariable& source) +{ + variable = source.variable; + value = source.value; + comment = source.comment; + enabled = source.enabled; + initialVariable = ""; + initialValue = ""; + initialComment = ""; + initialEnabled = true; + return; +} + +ostream& operator << (ostream& outputStream, const CTVariable& source) +{ + if (source.comment != string("")) + outputStream << "# " << source.comment << "\n"; + + if (!source.enabled) + outputStream << "#\\"; + + outputStream << source.variable << "=" << source.value << "\n"; + + return outputStream; +} + +void CTVariable::apply() +{ + initialVariable = variable; + initialValue = value; + initialComment = comment; + initialEnabled = enabled; +} + +void CTVariable::cancel() +{ + variable = initialVariable; + value = initialValue; + comment = initialComment; + enabled = initialEnabled; +} + +bool CTVariable::dirty() const +{ + return ((variable != initialVariable) || (value != initialValue) || + (comment != initialComment) || (enabled != initialEnabled)); +} |