Explorar o código

Implemented configuration saving for current preference structure items.

git-svn-id: file:///var/svn/tigccpp/trunk@480 9552661e-59e3-4036-b4f2-dbe53926924f
joeyadams %!s(int64=18) %!d(string=hai) anos
pai
achega
e2b7d937b5
Modificáronse 2 ficheiros con 62 adicións e 42 borrados
  1. 60 40
      ktigcc/preferences.cxx
  2. 2 2
      ktigcc/preferences.h

+ 60 - 40
ktigcc/preferences.cxx

@@ -14,61 +14,61 @@
 
 //these macros return 0 on success.
 #define syn_XMLStart(f) (fputs( \
-	"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" \
-	"<!DOCTYPE language SYSTEM \"language.dtd\">\n" \
-	"<!-- Syntax highlighting information autogenerated by KTIGCC. -->\n" \
-	"<language version=\"1.11\" kateversion=\"2.4\" name=\"Scheme\" section=\"Scripts\" extensions=\"*.scm;*.ss;*.scheme;*.guile\" mimetype=\"text/x-scheme\" author=\"KTIGCC\" license=\"LGPL\">\n" \
+    "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" \
+    "<!DOCTYPE language SYSTEM \"language.dtd\">\n" \
+    "<!-- Syntax highlighting information autogenerated by KTIGCC. -->\n" \
+    "<language version=\"1.11\" kateversion=\"2.4\" name=\"Scheme\" section=\"Scripts\" extensions=\"*.scm;*.ss;*.scheme;*.guile\" mimetype=\"text/x-scheme\" author=\"KTIGCC\" license=\"LGPL\">\n" \
 ,(f))==EOF)
 #define syn_XMLEnd(f) (fputs("</language>\n",(f))==EOF)
 
 void stringReplaceItems(QString &dest,const QString &oldStr,const QString &newStr,unsigned long start,unsigned long maxoccurances)
 {
-	unsigned long o;
-	unsigned long len=oldStr.length();
-	o=0;
-	while ((start=dest.find(oldStr,start))!=0xFFFFFFFF&&(--maxoccurances))
-	{
-		dest.replace(start,len,newStr);
-		start+=len;
-	}
+    unsigned long o;
+    unsigned long len=oldStr.length();
+    o=0;
+    while ((start=dest.find(oldStr,start))!=0xFFFFFFFF&&(--maxoccurances))
+    {
+        dest.replace(start,len,newStr);
+        start+=len;
+    }
 }
 
 QString syn_encodeString(const QString &str)
 {
-	QString ret=str;
-	stringReplaceItems(ret,"&","&#38;",0,0xFFFFFFFF);
-	stringReplaceItems(ret,"\n","&#10;",0,0xFFFFFFFF);
-	stringReplaceItems(ret,"\r","&#13;",0,0xFFFFFFFF);
-	stringReplaceItems(ret,"<","&#60;",0,0xFFFFFFFF);
-	stringReplaceItems(ret,">","&#62;",0,0xFFFFFFFF);
-	return ret;
+    QString ret=str;
+    stringReplaceItems(ret,"&","&#38;",0,0xFFFFFFFF);
+    stringReplaceItems(ret,"\n","&#10;",0,0xFFFFFFFF);
+    stringReplaceItems(ret,"\r","&#13;",0,0xFFFFFFFF);
+    stringReplaceItems(ret,"<","&#60;",0,0xFFFFFFFF);
+    stringReplaceItems(ret,">","&#62;",0,0xFFFFFFFF);
+    return ret;
 }
 
 //returns 0 on success
 int syn_XMLStrList(FILE *f,const QString &name,const QStringList &clist)
 {
-	unsigned long i,e;
-	if (fprintf(f,"<list name=\"%s\">\n",smartAscii(syn_encodeString(name)))==EOF)
+    unsigned long i,e;
+    if (fprintf(f,"<list name=\"%s\">\n",smartAscii(syn_encodeString(name)))==EOF)
       return 1;
-	e=clist.count();
-	for (i=0;i<e;i++)
-	{
-		if (fprintf(f,"<item> %s </item>\n",smartAscii(syn_encodeString(clist[i])))==EOF)
+    e=clist.count();
+    for (i=0;i<e;i++)
+    {
+        if (fprintf(f,"<item> %s </item>\n",smartAscii(syn_encodeString(clist[i])))==EOF)
             return 1;
-	}
-	if (fputs("</list>\n",f)==EOF)
+    }
+    if (fputs("</list>\n",f)==EOF)
       return 1;
-	return 0;
+    return 0;
 }
 
 //returns 0 on success,-1 on file couldn't be created, and 1 if file couldn't be written to correctly.
 int SynToXML(Syn_SettingsForDoc &syn,const QString &destFileName)
 {
-	FILE *f=fopen(destFileName,"wb");
-	if (!f)
-		return -1;
-	syn_XMLStart(f);
-	if (fputs("<highlighting>\n",f)==EOF)
+    FILE *f=fopen(destFileName,"wb");
+    if (!f)
+        return -1;
+    syn_XMLStart(f);
+    if (fputs("<highlighting>\n",f)==EOF)
       return 1;
     if (fputs("<list name=\"symbols\">\n"
              "<item> &#60; </item>\n" //for '<'
@@ -104,23 +104,43 @@ int SynToXML(Syn_SettingsForDoc &syn,const QString &destFileName)
     ,f)==EOF)
       return 1;
     
-	syn_XMLEnd(f);
-	return 0;
+    syn_XMLEnd(f);
+    return 0;
 }
 
 void loadPreferences(TIGCCPrefs *prefs,KConfig *cfg)
 {
-  defaultPreferences(prefs);
+    if (!cfg->hasGroup("Preferences")) {
+      defaultPreferences(prefs);
+      return;
+    }
+    cfg->setGroup("Preferences");
+    
+    if (cfg->hasKey("Lazy Loading"))
+        prefs->lazyLoading=cfg->readBoolEntry("Lazy Loading");
+    else
+        prefs->lazyLoading=true;
+    if (cfg->hasKey("Tab Width Asm"))
+        prefs->tabWidthAsm=cfg->readUnsignedNumEntry("Tab Width Asm");
+    else
+        prefs->tabWidthAsm=8;
+    if (cfg->hasKey("Tab Width C"))
+        prefs->tabWidthC=cfg->readUnsignedNumEntry("Tab Width C");
+    else
+        prefs->tabWidthC=2;
 }
 
 void savePreferences(TIGCCPrefs *prefs,KConfig *cfg)
 {
-   
+    cfg->setGroup("Preferences");
+    cfg->writeEntry("Lazy Loading",(bool)prefs->lazyLoading);
+    cfg->writeEntry("Tab Width Asm",(unsigned short)prefs->tabWidthAsm);
+    cfg->writeEntry("Tab Width C",(unsigned short)prefs->tabWidthC);
 }
 
 void defaultPreferences(TIGCCPrefs *prefs)
 {
-  prefs->lazyLoading=true;
-  prefs->tabWidthC=2;
-  prefs->tabWidthAsm=8;
+    prefs->lazyLoading=true;
+    prefs->tabWidthC=2;
+    prefs->tabWidthAsm=8;
 }

+ 2 - 2
ktigcc/preferences.h

@@ -47,8 +47,8 @@ int SynToXML(Syn_SettingsForDoc &syn,const QString &destFileName);
 typedef struct
 {
   bool lazyLoading;
-  unsigned char tabWidthC;
-  unsigned char tabWidthAsm;
+  unsigned short tabWidthC;
+  unsigned short tabWidthAsm;
 } TIGCCPrefs;
 
 void loadPreferences(TIGCCPrefs *prefs,KConfig *cfg);