fix assertion failure when upgrading loading old configuration file
git-svn-id: https://svn.code.sf.net/p/keepassx/code/trunk@86 b624d157-de02-0410-bad0-e51aec6abb33
This commit is contained in:
parent
fe3ae4244d
commit
7d7c8abd1d
|
@ -36,6 +36,8 @@ using namespace std;
|
||||||
|
|
||||||
|
|
||||||
bool CConfig::loadFromIni(QString filename){
|
bool CConfig::loadFromIni(QString filename){
|
||||||
|
QString defaultSearchOptions = "001101111";
|
||||||
|
QString defaultPwGenOptions = "1111100001";
|
||||||
ini.SetPath((const char*)filename);
|
ini.SetPath((const char*)filename);
|
||||||
ini.ReadFile();
|
ini.ReadFile();
|
||||||
ClipboardTimeOut=ini.GetValueI("Options","ClipboardTimeOut",20);
|
ClipboardTimeOut=ini.GetValueI("Options","ClipboardTimeOut",20);
|
||||||
|
@ -50,10 +52,10 @@ BannerTextColor=ParseColorString(ini.GetValue("Options","BannerTextColor","222,2
|
||||||
ShowPasswords=ini.GetValueB("Options","ShowPasswords",false);
|
ShowPasswords=ini.GetValueB("Options","ShowPasswords",false);
|
||||||
OpenUrlCommand=ini.GetValue("Options","UrlCmd","kfmclient openURL %1").c_str();
|
OpenUrlCommand=ini.GetValue("Options","UrlCmd","kfmclient openURL %1").c_str();
|
||||||
Language=ini.GetValue("Options","LangFile","").c_str();
|
Language=ini.GetValue("Options","LangFile","").c_str();
|
||||||
ParseBoolString(ini.GetValue("Options","SearchOptions","001101111").c_str(),SearchOptions,9);
|
ParseBoolString(ini.GetValue("Options","SearchOptions",defaultSearchOptions.ascii()).c_str(),defaultSearchOptions,SearchOptions,9);
|
||||||
ListView_HidePasswords=ini.GetValueB("UI","HidePasswords",true);
|
ListView_HidePasswords=ini.GetValueB("UI","HidePasswords",true);
|
||||||
ListView_HideUsernames=ini.GetValueB("UI","HideUsernames",false);
|
ListView_HideUsernames=ini.GetValueB("UI","HideUsernames",false);
|
||||||
ParseBoolString(ini.GetValue("Options","PwGenOptions","1111100001").c_str(),PwGenOptions,10);
|
ParseBoolString(ini.GetValue("Options","PwGenOptions",defaultPwGenOptions.ascii()).c_str(),defaultPwGenOptions,PwGenOptions,10);
|
||||||
PwGenLength=ini.GetValueI("Options","PwGenLength",25);
|
PwGenLength=ini.GetValueI("Options","PwGenLength",25);
|
||||||
PwGenCharList=ini.GetValue("Options","PwGenCharList","").c_str();
|
PwGenCharList=ini.GetValue("Options","PwGenCharList","").c_str();
|
||||||
ExpandGroupTree=ini.GetValueB("Options","ExpandGroupTree",true);
|
ExpandGroupTree=ini.GetValueB("Options","ExpandGroupTree",true);
|
||||||
|
@ -158,11 +160,16 @@ QString CConfig::CreateColorString(QColor c){
|
||||||
return (QString::number(c.red())+","+QString::number(c.green())+","+QString::number(c.blue()));
|
return (QString::number(c.red())+","+QString::number(c.green())+","+QString::number(c.blue()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void CConfig::ParseBoolString(const QString &str,bool* dst, int count){
|
void CConfig::ParseBoolString(const QString &str,const QString &defaults,bool* dst, int count){
|
||||||
|
Q_ASSERT(defaults.count() == count);
|
||||||
for(int i=0; i<count; i++){
|
for(int i=0; i<count; i++){
|
||||||
if(str[i]==QChar('0'))
|
QChar setting;
|
||||||
|
if(i < str.count()) setting = str[i];
|
||||||
|
else setting = defaults[i];
|
||||||
|
|
||||||
|
if(setting==QChar('0'))
|
||||||
*(dst+i)=false;
|
*(dst+i)=false;
|
||||||
else
|
else
|
||||||
*(dst+i)=true;
|
*(dst+i)=true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,7 +66,7 @@ public:
|
||||||
private:
|
private:
|
||||||
CIniFile ini;
|
CIniFile ini;
|
||||||
void ParseColumnString(QString str, bool* dst);
|
void ParseColumnString(QString str, bool* dst);
|
||||||
void ParseBoolString(const QString &str,bool* dst, int count);
|
void ParseBoolString(const QString &str,const QString &defaults,bool* dst, int count);
|
||||||
void ParseIntString(const QString &str,int* dst, int count);
|
void ParseIntString(const QString &str,int* dst, int count);
|
||||||
QString CreateBoolString(bool* src, int count);
|
QString CreateBoolString(bool* src, int count);
|
||||||
QColor ParseColorString(QString str);
|
QColor ParseColorString(QString str);
|
||||||
|
|
Loading…
Reference in New Issue