summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/tinykate/libkate/document/katesyntaxdocument.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/noncore/apps/tinykate/libkate/document/katesyntaxdocument.cpp b/noncore/apps/tinykate/libkate/document/katesyntaxdocument.cpp
index 3390bdb..e45daa4 100644
--- a/noncore/apps/tinykate/libkate/document/katesyntaxdocument.cpp
+++ b/noncore/apps/tinykate/libkate/document/katesyntaxdocument.cpp
@@ -1,310 +1,311 @@
1/*************************************************************************** 1/***************************************************************************
2 katesyntaxdocument.cpp - description 2 katesyntaxdocument.cpp - description
3 ------------------- 3 -------------------
4 begin : Sat 31 March 2001 4 begin : Sat 31 March 2001
5 copyright : (C) 2001,2002 by Joseph Wenninger 5 copyright : (C) 2001,2002 by Joseph Wenninger
6 email : jowenn@kde.org 6 email : jowenn@kde.org
7 ***************************************************************************/ 7 ***************************************************************************/
8 8
9/*************************************************************************** 9/***************************************************************************
10 * * 10 * *
11 * This program is free software; you can redistribute it and/or modify * 11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by * 12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or * 13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. * 14 * (at your option) any later version. *
15 * * 15 * *
16 ***************************************************************************/ 16 ***************************************************************************/
17 17
18#include "katesyntaxdocument.h" 18#include "katesyntaxdocument.h"
19#include <qfile.h> 19#include <qfile.h>
20#include <kdebug.h> 20#include <kdebug.h>
21#include <kstddirs.h> 21#include <kstddirs.h>
22#include <klocale.h> 22#include <klocale.h>
23#include <kmessagebox.h> 23#include <kmessagebox.h>
24#include <qstringlist.h> 24#include <qstringlist.h>
25#include <kconfig.h> 25#include <kconfig.h>
26#include <kglobal.h> 26#include <kglobal.h>
27#include <qpe/qpeapplication.h> 27#include <qpe/qpeapplication.h>
28#include <qdir.h> 28#include <qdir.h>
29 29
30SyntaxDocument::SyntaxDocument() 30SyntaxDocument::SyntaxDocument()
31{ 31{
32 m_root=0; 32 m_root=0;
33 currentFile=""; 33 currentFile="";
34 setupModeList(); 34 setupModeList();
35} 35}
36 36
37void SyntaxDocument::setIdentifier(const QString& identifier) 37void SyntaxDocument::setIdentifier(const QString& identifier)
38{ 38{
39#warning FIXME delete m_root; 39#warning FIXME delete m_root;
40 m_root=Opie::XMLElement::load(identifier); 40 m_root=Opie::XMLElement::load(identifier);
41 if (!m_root) KMessageBox::error( 0L, i18n("Can't open %1").arg(identifier) ); 41 if (!m_root) KMessageBox::error( 0L, i18n("Can't open %1").arg(identifier) );
42 42
43} 43}
44 44
45SyntaxDocument::~SyntaxDocument() 45SyntaxDocument::~SyntaxDocument()
46{ 46{
47} 47}
48 48
49void SyntaxDocument::setupModeList(bool force) 49void SyntaxDocument::setupModeList(bool force)
50{ 50{
51 51
52 if (myModeList.count() > 0) return; 52 if (myModeList.count() > 0) return;
53 53
54 KConfig *config=KGlobal::config(); 54 KConfig *config=KGlobal::config();
55 KStandardDirs *dirs = KGlobal::dirs(); 55 KStandardDirs *dirs = KGlobal::dirs();
56 56
57// QStringList list=dirs->findAllResources("data","kate/syntax/*.xml",false,true); 57// QStringList list=dirs->findAllResources("data","kate/syntax/*.xml",false,true);
58 QString path=QPEApplication::qpeDir() +"share/tinykate/syntax/"; 58 QString path=QPEApplication::qpeDir() +"share/tinykate/syntax/";
59 59
60 QDir dir(path); 60 QDir dir(path);
61 QStringList list=dir.entryList("*.xml"); 61 QStringList list=dir.entryList("*.xml");
62 62
63 for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) 63 for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it )
64 { 64 {
65 QString Group="Highlighting_Cache"+path+*it; 65 QString Group="Highlighting_Cache"+path+*it;
66 66
67 if ((config->hasGroup(Group)) && (!force)) 67 if ((config->hasGroup(Group)) && (!force))
68 { 68 {
69 config->setGroup(Group); 69 config->setGroup(Group);
70 syntaxModeListItem *mli=new syntaxModeListItem; 70 syntaxModeListItem *mli=new syntaxModeListItem;
71 mli->name = config->readEntry("name",""); 71 mli->name = config->readEntry("name","");
72 mli->section = config->readEntry("section",""); 72 mli->section = config->readEntry("section","");
73 mli->mimetype = config->readEntry("mimetype",""); 73 mli->mimetype = config->readEntry("mimetype","");
74 mli->extension = config->readEntry("extension",""); 74 mli->extension = config->readEntry("extension","");
75 mli->identifier = *it; 75 mli->identifier = *it;
76 myModeList.append(mli); 76 myModeList.append(mli);
77 } 77 }
78 else 78 else
79 { 79 {
80 qDebug("Found a description file:"+path+(*it)); 80 qDebug("Found a description file:"+path+(*it));
81 setIdentifier(path+(*it)); 81 setIdentifier(path+(*it));
82 Opie::XMLElement *e=m_root; 82 Opie::XMLElement *e=m_root;
83 if (e) 83 if (e)
84 { 84 {
85 e=e->firstChild(); 85 e=e->firstChild();
86 qDebug(e->tagName()); 86 qDebug(e->tagName());
87 if (e->tagName()=="language") 87 if (e->tagName()=="language")
88 { 88 {
89 syntaxModeListItem *mli=new syntaxModeListItem; 89 syntaxModeListItem *mli=new syntaxModeListItem;
90 mli->name = e->attribute("name"); 90 mli->name = e->attribute("name");
91 mli->section = e->attribute("section"); 91 mli->section = e->attribute("section");
92 mli->mimetype = e->attribute("mimetype"); 92 mli->mimetype = e->attribute("mimetype");
93 mli->extension = e->attribute("extensions"); 93 mli->extension = e->attribute("extensions");
94 qDebug(QString("valid description for: %1/%2").arg(mli->section).arg(mli->name)); 94 qDebug(QString("valid description for: %1/%2").arg(mli->section).arg(mli->name));
95 if (mli->section.isEmpty()) 95 if (mli->section.isEmpty())
96 mli->section=i18n("Other"); 96 mli->section=i18n("Other");
97 97
98 mli->identifier = path+(*it); 98 mli->identifier = path+(*it);
99#warning fixme 99#warning fixme
100/* 100/*
101 config->setGroup(Group); 101 config->setGroup(Group);
102 config->writeEntry("name",mli->name); 102 config->writeEntry("name",mli->name);
103 config->writeEntry("section",mli->section); 103 config->writeEntry("section",mli->section);
104 config->writeEntry("mimetype",mli->mimetype); 104 config->writeEntry("mimetype",mli->mimetype);
105 config->writeEntry("extension",mli->extension); 105 config->writeEntry("extension",mli->extension);
106*/ 106*/
107 myModeList.append(mli); 107 myModeList.append(mli);
108 } 108 }
109 } 109 }
110 } 110 }
111 } 111 }
112// } 112// }
113 113
114// config->sync(); 114// config->sync();
115} 115}
116 116
117SyntaxModeList SyntaxDocument::modeList() 117SyntaxModeList SyntaxDocument::modeList()
118{ 118{
119 return myModeList; 119 return myModeList;
120} 120}
121 121
122bool SyntaxDocument::nextGroup( syntaxContextData* data) 122bool SyntaxDocument::nextGroup( syntaxContextData* data)
123{ 123{
124 if(!data) return false; 124 if(!data) return false;
125 125
126 if (!data->currentGroup) 126 if (!data->currentGroup)
127 data->currentGroup=data->parent->firstChild(); 127 data->currentGroup=data->parent->firstChild();
128 else 128 else
129 data->currentGroup=data->currentGroup->nextChild(); 129 data->currentGroup=data->currentGroup->nextChild();
130 130
131 data->item=0; 131 data->item=0;
132 132
133 if (!data->currentGroup) 133 if (!data->currentGroup)
134 return false; 134 return false;
135 else 135 else
136 return true; 136 return true;
137} 137}
138 138
139bool SyntaxDocument::nextItem( syntaxContextData* data) 139bool SyntaxDocument::nextItem( syntaxContextData* data)
140{ 140{
141 if(!data) return false; 141 if(!data) return false;
142 142
143 if (!data->item) 143 if (!data->item)
144 data->item=data->currentGroup->firstChild(); 144 data->item=data->currentGroup->firstChild();
145 else 145 else
146 data->item=data->item->nextChild(); 146 data->item=data->item->nextChild();
147 147
148 if (!data->item) 148 if (!data->item)
149 return false; 149 return false;
150 else 150 else
151 return true; 151 return true;
152} 152}
153 153
154QString SyntaxDocument::groupItemData( syntaxContextData* data,QString name) 154QString SyntaxDocument::groupItemData( syntaxContextData* data,QString name)
155{ 155{
156 if(!data) 156 if(!data)
157 return QString::null; 157 return QString::null;
158 158
159 if ( (data->item) && (name.isEmpty())) 159 if ( (data->item) && (name.isEmpty()))
160 return data->item->tagName(); 160 return data->item->tagName();
161 161
162 if (data->item) 162 if (data->item)
163 return data->item->attribute(name); 163 return data->item->attribute(name);
164 else 164 else
165 return QString(); 165 return QString();
166} 166}
167 167
168QString SyntaxDocument::groupData( syntaxContextData* data,QString name) 168QString SyntaxDocument::groupData( syntaxContextData* data,QString name)
169{ 169{
170 if(!data) 170 if(!data)
171 return QString::null; 171 return QString::null;
172 172
173 if (data->currentGroup) 173 if (data->currentGroup)
174 return data->currentGroup->attribute(name); 174 return data->currentGroup->attribute(name);
175 else 175 else
176 return QString(); 176 return QString();
177} 177}
178 178
179void SyntaxDocument::freeGroupInfo( syntaxContextData* data) 179void SyntaxDocument::freeGroupInfo( syntaxContextData* data)
180{ 180{
181 if (data) 181 if (data)
182 delete data; 182 delete data;
183} 183}
184 184
185syntaxContextData* SyntaxDocument::getSubItems(syntaxContextData* data) 185syntaxContextData* SyntaxDocument::getSubItems(syntaxContextData* data)
186{ 186{
187 syntaxContextData *retval=new syntaxContextData; 187 syntaxContextData *retval=new syntaxContextData;
188 retval->parent=0; 188 retval->parent=0;
189 retval->currentGroup=0; 189 retval->currentGroup=0;
190 retval->item=0; 190 retval->item=0;
191 if (data != 0) 191 if (data != 0)
192 { 192 {
193 retval->parent=data->currentGroup; 193 retval->parent=data->currentGroup;
194 retval->currentGroup=data->item; 194 retval->currentGroup=data->item;
195 retval->item=0; 195 retval->item=0;
196 } 196 }
197 197
198 return retval; 198 return retval;
199} 199}
200 200
201syntaxContextData* SyntaxDocument::getConfig(const QString& mainGroupName, const QString &Config) 201syntaxContextData* SyntaxDocument::getConfig(const QString& mainGroupName, const QString &Config)
202{ 202{
203 Opie::XMLElement *e = m_root->firstChild()->firstChild(); 203 Opie::XMLElement *e = m_root->firstChild()->firstChild();
204 204
205 while (e) 205 while (e)
206 { 206 {
207 kdDebug(13010)<<"in SyntaxDocument::getGroupInfo (outer loop) " <<endl; 207 kdDebug(13010)<<"in SyntaxDocument::getGroupInfo (outer loop) " <<endl;
208 208
209 if (e->tagName().compare(mainGroupName)==0 ) 209 if (e->tagName().compare(mainGroupName)==0 )
210 { 210 {
211 Opie::XMLElement *e1=e->firstChild(); 211 Opie::XMLElement *e1=e->firstChild();
212 212
213 while (e1) 213 while (e1)
214 { 214 {
215 kdDebug(13010)<<"in SyntaxDocument::getGroupInfo (inner loop) " <<endl; 215 kdDebug(13010)<<"in SyntaxDocument::getGroupInfo (inner loop) " <<endl;
216 216
217 if (e1->tagName()==Config) 217 if (e1->tagName()==Config)
218 { 218 {
219 syntaxContextData *data=new ( syntaxContextData); 219 syntaxContextData *data=new ( syntaxContextData);
220 data->currentGroup=0; 220 data->currentGroup=0;
221 data->parent=0; 221 data->parent=0;
222 data->item=e1; 222 data->item=e1;
223 return data; 223 return data;
224 } 224 }
225 225
226 e1=e1->nextChild(); 226 e1=e1->nextChild();
227 } 227 }
228 228
229 kdDebug(13010) << "WARNING :returning null 3"<< endl; 229 kdDebug(13010) << "WARNING :returning null 3"<< endl;
230 return 0; 230 return 0;
231 } 231 }
232 232
233 e=e->nextChild(); 233 e=e->nextChild();
234 } 234 }
235 235
236 kdDebug(13010) << "WARNING :returning null 4" << endl; 236 kdDebug(13010) << "WARNING :returning null 4" << endl;
237 return 0; 237 return 0;
238} 238}
239 239
240 240
241 241
242syntaxContextData* SyntaxDocument::getGroupInfo(const QString& mainGroupName, const QString &group) 242syntaxContextData* SyntaxDocument::getGroupInfo(const QString& mainGroupName, const QString &group)
243{ 243{
244 244
245 Opie::XMLElement *e=m_root->firstChild()->firstChild(); 245 Opie::XMLElement *e=m_root->firstChild()->firstChild();
246 246
247 while (e) 247 while (e)
248 { 248 {
249 kdDebug(13010)<<"in SyntaxDocument::getGroupInfo (outer loop) " <<endl; 249 kdDebug(13010)<<"in SyntaxDocument::getGroupInfo (outer loop) " <<endl;
250 250
251 if (e->tagName().compare(mainGroupName)==0 ) 251 if (e->tagName().compare(mainGroupName)==0 )
252 { 252 {
253 Opie::XMLElement *e1=e->firstChild(); 253 Opie::XMLElement *e1=e->firstChild();
254 254
255 while (e1) 255 while (e1)
256 { 256 {
257 kdDebug(13010)<<"in SyntaxDocument::getGroupInfo (inner loop) " <<endl; 257 kdDebug(13010)<<"in SyntaxDocument::getGroupInfo (inner loop) " <<endl;
258 if (e1->tagName()==group+"s") 258 if (e1->tagName()==group+"s")
259 { 259 {
260 syntaxContextData *data=new ( syntaxContextData); 260 syntaxContextData *data=new ( syntaxContextData);
261 data->parent=e1; 261 data->parent=e1;
262 data->currentGroup=0; 262 data->currentGroup=0;
263 data->item=0; 263 data->item=0;
264 return data; 264 return data;
265 } 265 }
266 266
267 e1=e1->nextChild(); 267 e1=e1->nextChild();
268 } 268 }
269 269
270 kdDebug(13010) << "WARNING : getGroupInfo returning null :1 " << endl; 270 kdDebug(13010) << "WARNING : getGroupInfo returning null :1 " << endl;
271 return 0; 271 return 0;
272 } 272 }
273 273
274 e=e->nextChild(); 274 e=e->nextChild();
275 } 275 }
276 276
277 kdDebug(13010) << "WARNING : getGroupInfo returning null :2" << endl; 277 kdDebug(13010) << "WARNING : getGroupInfo returning null :2" << endl;
278 return 0; 278 return 0;
279} 279}
280 280
281 281
282QStringList& SyntaxDocument::finddata(const QString& mainGroup,const QString& type,bool clearList) 282QStringList& SyntaxDocument::finddata(const QString& mainGroup,const QString& type,bool clearList)
283{ 283{
284 Opie::XMLElement *e = m_root->firstChild(); 284 Opie::XMLElement *e = m_root->firstChild();
285 if (clearList) 285 if (clearList)
286 m_data.clear(); 286 m_data.clear();
287 287
288 for(e=e->firstChild(); e; e=e->nextChild()) 288 for(e=e->firstChild(); e; e=e->nextChild())
289 { 289 {
290 if (e->tagName()==mainGroup) 290 if (e->tagName()==mainGroup)
291 { 291 {
292 for (Opie::XMLElement *e1=e->firstChild();e1;e1=e1->nextChild()) 292 for (Opie::XMLElement *e1=e->firstChild();e1;e1=e1->nextChild())
293 { 293 {
294 if (e1->tagName()!="list") continue; 294 if (e1->tagName()!="list") continue;
295 295
296 if (e1->attribute("name")==type) 296 if (e1->attribute("name")==type)
297 { 297 {
298 for (Opie::XMLElement *e2=e1->firstChild();e2;e2=e2->nextChild()) 298 for (Opie::XMLElement *e2=e1->firstChild();e2;e2=e2->nextChild())
299 qDebug("FOUND A LIST ENTRY("+e2->tagName()+"):"+e2->value()); 299 {
300 m_data+="TEST";//e2->value().stripWhiteSpace(); 300 qDebug("FOUND A LIST ENTRY("+e2->tagName()+"):"+e2->firstChild()->value());
301 301 m_data+=e2->firstChild()->value().stripWhiteSpace();
302 }
302 break; 303 break;
303 } 304 }
304 } 305 }
305 break; 306 break;
306 } 307 }
307 } 308 }
308 309
309 return m_data; 310 return m_data;
310} 311}