File indexing completed on 2024-05-05 05:48:32
0001 /* 0002 CT Environment Variable Implementation 0003 -------------------------------------------------------------------- 0004 SPDX-FileCopyrightText: 1999 Gary Meyer <gary@meyer.net> 0005 -------------------------------------------------------------------- 0006 SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 #include "ctvariable.h" 0010 0011 #include <KLocalizedString> 0012 #include <QRegularExpression> 0013 0014 #include "ctHelper.h" 0015 0016 CTVariable::CTVariable(const QString &tokenString, const QString &_comment, const QString &_userLogin) 0017 { 0018 QString tokStr = tokenString; 0019 0020 if (tokStr.mid(0, 2) == QLatin1String("#\\")) { 0021 tokStr = tokStr.mid(2, tokStr.length() - 2); 0022 enabled = false; 0023 } else { 0024 enabled = true; 0025 } 0026 0027 const int spacepos = tokStr.indexOf(QRegularExpression(QLatin1String("[ =]"))); 0028 variable = tokStr.mid(0, spacepos); 0029 0030 value = tokStr.mid(spacepos + 1, tokStr.length() - spacepos - 1); 0031 comment = _comment; 0032 0033 userLogin = _userLogin; 0034 0035 mInitialVariable = variable; 0036 mInitialValue = value; 0037 mInitialComment = comment; 0038 mInitialUserLogin = userLogin; 0039 mInitialEnabled = enabled; 0040 } 0041 0042 CTVariable::CTVariable(const CTVariable &source) 0043 : variable(source.variable) 0044 , value(source.value) 0045 , comment(source.comment) 0046 , userLogin(source.userLogin) 0047 , enabled(source.enabled) 0048 , mInitialVariable(QLatin1String("")) 0049 , mInitialValue(QLatin1String("")) 0050 , mInitialComment(QLatin1String("")) 0051 , mInitialUserLogin(QLatin1String("")) 0052 , mInitialEnabled(true) 0053 { 0054 } 0055 0056 CTVariable &CTVariable::operator=(const CTVariable &source) 0057 { 0058 if (this == &source) { 0059 return *this; 0060 } 0061 0062 variable = source.variable; 0063 value = source.value; 0064 comment = source.comment; 0065 userLogin = source.userLogin; 0066 enabled = source.enabled; 0067 0068 mInitialVariable = QLatin1String(""); 0069 mInitialValue = QLatin1String(""); 0070 mInitialComment = QLatin1String(""); 0071 mInitialUserLogin = QLatin1String(""); 0072 mInitialEnabled = true; 0073 return *this; 0074 } 0075 0076 QString CTVariable::exportVariable() 0077 { 0078 QString exportVariable = CTHelper::exportComment(comment); 0079 0080 if (!enabled) { 0081 exportVariable += QLatin1String("#\\"); 0082 } 0083 0084 exportVariable += variable + QLatin1String("=") + value + QLatin1String("\n"); 0085 0086 return exportVariable; 0087 } 0088 0089 void CTVariable::apply() 0090 { 0091 mInitialVariable = variable; 0092 mInitialValue = value; 0093 mInitialComment = comment; 0094 mInitialUserLogin = userLogin; 0095 0096 mInitialEnabled = enabled; 0097 } 0098 0099 void CTVariable::cancel() 0100 { 0101 variable = mInitialVariable; 0102 value = mInitialValue; 0103 comment = mInitialComment; 0104 userLogin = mInitialUserLogin; 0105 enabled = mInitialEnabled; 0106 } 0107 0108 bool CTVariable::dirty() const 0109 { 0110 return (variable != mInitialVariable) || (value != mInitialValue) || (comment != mInitialComment) || (userLogin != mInitialUserLogin) 0111 || (enabled != mInitialEnabled); 0112 } 0113 0114 QIcon CTVariable::variableIcon() const 0115 { 0116 if (variable == QLatin1String("MAILTO")) { 0117 return QIcon::fromTheme(QLatin1String("mail-message")); 0118 } else if (variable == QLatin1String("SHELL")) { 0119 return QIcon::fromTheme(QLatin1String("utilities-terminal")); 0120 } else if (variable == QLatin1String("HOME")) { 0121 return QIcon::fromTheme(QLatin1String("go-home")); 0122 } else if (variable == QLatin1String("PATH")) { 0123 return QIcon::fromTheme(QLatin1String("folder")); 0124 } else if (variable == QLatin1String("LD_CONFIG_PATH")) { 0125 return QIcon::fromTheme(QLatin1String("application-x-sharedlib")); 0126 } 0127 0128 return QIcon::fromTheme(QLatin1String("text-plain")); 0129 } 0130 0131 QString CTVariable::information() const 0132 { 0133 if (variable == QLatin1String("HOME")) { 0134 return i18n("Override default home folder."); 0135 } else if (variable == QLatin1String("MAILTO")) { 0136 return i18n("Email output to specified account."); 0137 } else if (variable == QLatin1String("SHELL")) { 0138 return i18n("Override default shell."); 0139 } else if (variable == QLatin1String("PATH")) { 0140 return i18n("Folders to search for program files."); 0141 } else if (variable == QLatin1String("LD_CONFIG_PATH")) { 0142 return i18n("Dynamic libraries location."); 0143 } 0144 0145 return i18n("Local Variable"); 0146 }