--nowriteaccess first steps
This commit is contained in:
+57
-11
@@ -31,11 +31,22 @@
|
||||
class QtToolsWrapper;
|
||||
|
||||
|
||||
ConfigFile::ConfigFile(bool configFirstStart)
|
||||
ConfigFile::ConfigFile(int argc, char **argv) : noWriteAccess(0)
|
||||
{
|
||||
// !!!! Revisionsnummer der Configdefaults !!!!!
|
||||
configRev = 18;
|
||||
int i;
|
||||
|
||||
for (i=0; i<argc; i++) {
|
||||
if(strcmp(argv[i], "--nowriteaccess") == 0) { noWriteAccess = 1; }
|
||||
}
|
||||
// !!!! Revisionsnummer der Configdefaults !!!!!
|
||||
configRev = 20;
|
||||
|
||||
//standard defaults
|
||||
logOnOffDefault = "1";
|
||||
claNoWriteAccess = "0";
|
||||
|
||||
|
||||
if(!noWriteAccess) {
|
||||
// Pfad und Dateinamen setzen
|
||||
#ifdef _WIN32
|
||||
const char *appDataPath = getenv("AppData");
|
||||
@@ -76,11 +87,10 @@ ConfigFile::ConfigFile(bool configFirstStart)
|
||||
dataDir = configFileName;
|
||||
dataDir += "data\\";
|
||||
//create directories on first start of app
|
||||
if (configFirstStart) {
|
||||
mkdir(configFileName.c_str());
|
||||
mkdir(logDir.c_str());
|
||||
mkdir(dataDir.c_str());
|
||||
}
|
||||
|
||||
|
||||
#else
|
||||
//define app-dir
|
||||
@@ -95,13 +105,22 @@ ConfigFile::ConfigFile(bool configFirstStart)
|
||||
dataDir = configFileName;
|
||||
dataDir += "data/";
|
||||
//create directories on first start of app
|
||||
if (configFirstStart) {
|
||||
mkdir(configFileName.c_str(), MODUS) ;
|
||||
mkdir(logDir.c_str(), MODUS);
|
||||
mkdir(dataDir.c_str(), MODUS);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
//no writeaccess
|
||||
configFileName = "";
|
||||
logDir = "";
|
||||
dataDir = "";
|
||||
logOnOffDefault = "0";
|
||||
claNoWriteAccess = "1";
|
||||
}
|
||||
|
||||
ostringstream tempIntToString;
|
||||
tempIntToString << configRev;
|
||||
@@ -146,20 +165,21 @@ ConfigFile::ConfigFile(bool configFirstStart)
|
||||
configList.push_back(ConfigInfo("Opponent5Avatar", CONFIG_TYPE_STRING, ""));
|
||||
configList.push_back(ConfigInfo("Opponent6Name", CONFIG_TYPE_STRING, "Player 6"));
|
||||
configList.push_back(ConfigInfo("Opponent6Avatar", CONFIG_TYPE_STRING, ""));
|
||||
configList.push_back(ConfigInfo("LogOnOff", CONFIG_TYPE_INT, "1"));
|
||||
configList.push_back(ConfigInfo("LogOnOff", CONFIG_TYPE_INT, logOnOffDefault));
|
||||
configList.push_back(ConfigInfo("LogDir", CONFIG_TYPE_STRING, logDir));
|
||||
configList.push_back(ConfigInfo("LogStoreDuration", CONFIG_TYPE_INT, "2"));
|
||||
configList.push_back(ConfigInfo("LogInterval", CONFIG_TYPE_INT, "0"));
|
||||
configList.push_back(ConfigInfo("DataDir", CONFIG_TYPE_STRING, dataDir));
|
||||
configList.push_back(ConfigInfo("CLA_NoWriteAccess", CONFIG_TYPE_INT, claNoWriteAccess));
|
||||
|
||||
//fill tempList firstTime
|
||||
configBufferList = configList;
|
||||
|
||||
// cout << configTempList[3].name << " " << configTempList[10].defaultValue << endl;
|
||||
|
||||
if(!noWriteAccess) {
|
||||
configFileName += "config.xml";
|
||||
|
||||
if (configFirstStart) {
|
||||
//Prüfen ob Configfile existiert --> sonst anlegen
|
||||
TiXmlDocument doc(configFileName);
|
||||
if(!doc.LoadFile()){
|
||||
@@ -177,10 +197,11 @@ ConfigFile::ConfigFile(bool configFirstStart)
|
||||
updateConfig(myConfigState) ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fillBuffer();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
ConfigFile::~ConfigFile()
|
||||
@@ -392,7 +413,8 @@ int ConfigFile::readConfigInt(string varName)
|
||||
|
||||
void ConfigFile::writeConfigInt(string varName, int varCont)
|
||||
{
|
||||
|
||||
if(!noWriteAccess) {
|
||||
//writeaccess
|
||||
TiXmlDocument doc(configFileName);
|
||||
if(!doc.LoadFile()) { cout << "Could Not Load Config-File!!! " << configFileName << "\n"; }
|
||||
TiXmlHandle docHandle( &doc );
|
||||
@@ -417,12 +439,28 @@ void ConfigFile::writeConfigInt(string varName, int varCont)
|
||||
if(!doc.SaveFile()) { cout << "Could Not Save Config-File!!! " << configFileName << "\n"; }
|
||||
|
||||
fillBuffer();
|
||||
}
|
||||
else {
|
||||
//no writeaccess
|
||||
size_t i;
|
||||
string tempString;
|
||||
ostringstream intToString;
|
||||
|
||||
for (i=0; i<configBufferList.size(); i++) {
|
||||
|
||||
if (configBufferList[i].name == varName) {
|
||||
intToString << varCont;
|
||||
configBufferList[i].defaultValue = intToString.str();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ConfigFile::writeConfigString(string varName, string varCont)
|
||||
{
|
||||
|
||||
if(!noWriteAccess) {
|
||||
//writeaccess
|
||||
TiXmlDocument doc(configFileName);
|
||||
if(!doc.LoadFile()) { cout << "Could Not Load Config-File!!! " << configFileName << "\n"; }
|
||||
TiXmlHandle docHandle( &doc );
|
||||
@@ -443,5 +481,13 @@ void ConfigFile::writeConfigString(string varName, string varCont)
|
||||
if(!doc.SaveFile()) { cout << "Could Not Save Config-File!!! " << configFileName << "\n"; }
|
||||
|
||||
fillBuffer();
|
||||
}
|
||||
else {
|
||||
//no writeaccess
|
||||
size_t i;
|
||||
for (i=0; i<configBufferList.size(); i++) {
|
||||
if (configBufferList[i].name == varName) { configBufferList[i].defaultValue = varCont; }
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ enum ConfigType { CONFIG_TYPE_INT, CONFIG_TYPE_STRING };
|
||||
|
||||
class ConfigFile{
|
||||
public:
|
||||
ConfigFile(bool configFirstStart =0);
|
||||
ConfigFile(int, char **);
|
||||
|
||||
~ConfigFile();
|
||||
|
||||
@@ -75,6 +75,10 @@ private:
|
||||
std::string logDir;
|
||||
std::string dataDir;
|
||||
int configRev;
|
||||
bool noWriteAccess;
|
||||
|
||||
std::string logOnOffDefault;
|
||||
std::string claNoWriteAccess;
|
||||
|
||||
ConfigState myConfigState;
|
||||
};
|
||||
|
||||
@@ -34,6 +34,13 @@ joinNetworkGameDialogImpl::joinNetworkGameDialogImpl(QWidget *parent, ConfigFile
|
||||
// QShortcut *connectKey = new QShortcut(QKeySequence(Qt::Key_Enter), this);
|
||||
// connect( connectKey, SIGNAL(activated() ), pushButton_connect, SLOT( click() ) );
|
||||
|
||||
if (myConfig->readConfigInt("CLA_NoWriteAccess")) {
|
||||
|
||||
pushButton_save->setDisabled(TRUE);
|
||||
pushButton_delete->setDisabled(TRUE);
|
||||
treeWidget->setDisabled(TRUE);
|
||||
}
|
||||
|
||||
connect( pushButton_connect, SIGNAL( clicked() ), this, SLOT( startClient() ) );
|
||||
connect( pushButton_save, SIGNAL( clicked() ), this, SLOT( saveServerProfile() ) );
|
||||
connect( pushButton_delete, SIGNAL( clicked() ), this, SLOT( deleteServerProfile() ) );
|
||||
|
||||
+1
-2
@@ -64,8 +64,7 @@ class GuiWrapper;
|
||||
int main( int argc, char **argv )
|
||||
{
|
||||
//create defaultconfig
|
||||
bool configFirstStart = 1;
|
||||
ConfigFile *myConfig = new ConfigFile(configFirstStart);
|
||||
ConfigFile *myConfig = new ConfigFile(argc, argv);
|
||||
|
||||
//ENABLE_LEAK_CHECK();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user