summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/tinykate/libkate/document/katesyntaxdocument.cpp18
1 files changed, 11 insertions, 7 deletions
diff --git a/noncore/apps/tinykate/libkate/document/katesyntaxdocument.cpp b/noncore/apps/tinykate/libkate/document/katesyntaxdocument.cpp
index c51221b..3390bdb 100644
--- a/noncore/apps/tinykate/libkate/document/katesyntaxdocument.cpp
+++ b/noncore/apps/tinykate/libkate/document/katesyntaxdocument.cpp
@@ -1,126 +1,130 @@
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 27#include <qpe/qpeapplication.h>
28 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/";
59
60 QDir dir(path);
61 QStringList list=dir.entryList("*.xml");
58 62
59 for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) 63 for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it )
60 { 64 {
61 QString Group="Highlighting_Cache"+*it; 65 QString Group="Highlighting_Cache"+path+*it;
62 66
63 if ((config->hasGroup(Group)) && (!force)) 67 if ((config->hasGroup(Group)) && (!force))
64 { 68 {
65 config->setGroup(Group); 69 config->setGroup(Group);
66 syntaxModeListItem *mli=new syntaxModeListItem; 70 syntaxModeListItem *mli=new syntaxModeListItem;
67 mli->name = config->readEntry("name",""); 71 mli->name = config->readEntry("name","");
68 mli->section = config->readEntry("section",""); 72 mli->section = config->readEntry("section","");
69 mli->mimetype = config->readEntry("mimetype",""); 73 mli->mimetype = config->readEntry("mimetype","");
70 mli->extension = config->readEntry("extension",""); 74 mli->extension = config->readEntry("extension","");
71 mli->identifier = *it; 75 mli->identifier = *it;
72 myModeList.append(mli); 76 myModeList.append(mli);
73 } 77 }
74 else 78 else
75 { 79 {
76 qDebug("Found a description file:"+(*it)); 80 qDebug("Found a description file:"+path+(*it));
77 setIdentifier(*it); 81 setIdentifier(path+(*it));
78 Opie::XMLElement *e=m_root; 82 Opie::XMLElement *e=m_root;
79 if (e) 83 if (e)
80 { 84 {
81 e=e->firstChild(); 85 e=e->firstChild();
82 qDebug(e->tagName()); 86 qDebug(e->tagName());
83 if (e->tagName()=="language") 87 if (e->tagName()=="language")
84 { 88 {
85 syntaxModeListItem *mli=new syntaxModeListItem; 89 syntaxModeListItem *mli=new syntaxModeListItem;
86 mli->name = e->attribute("name"); 90 mli->name = e->attribute("name");
87 mli->section = e->attribute("section"); 91 mli->section = e->attribute("section");
88 mli->mimetype = e->attribute("mimetype"); 92 mli->mimetype = e->attribute("mimetype");
89 mli->extension = e->attribute("extensions"); 93 mli->extension = e->attribute("extensions");
90 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));
91 if (mli->section.isEmpty()) 95 if (mli->section.isEmpty())
92 mli->section=i18n("Other"); 96 mli->section=i18n("Other");
93 97
94 mli->identifier = *it; 98 mli->identifier = path+(*it);
95#warning fixme 99#warning fixme
96/* 100/*
97 config->setGroup(Group); 101 config->setGroup(Group);
98 config->writeEntry("name",mli->name); 102 config->writeEntry("name",mli->name);
99 config->writeEntry("section",mli->section); 103 config->writeEntry("section",mli->section);
100 config->writeEntry("mimetype",mli->mimetype); 104 config->writeEntry("mimetype",mli->mimetype);
101 config->writeEntry("extension",mli->extension); 105 config->writeEntry("extension",mli->extension);
102*/ 106*/
103 myModeList.append(mli); 107 myModeList.append(mli);
104 } 108 }
105 } 109 }
106 } 110 }
107 } 111 }
108// } 112// }
109 113
110// config->sync(); 114// config->sync();
111} 115}
112 116
113SyntaxModeList SyntaxDocument::modeList() 117SyntaxModeList SyntaxDocument::modeList()
114{ 118{
115 return myModeList; 119 return myModeList;
116} 120}
117 121
118bool SyntaxDocument::nextGroup( syntaxContextData* data) 122bool SyntaxDocument::nextGroup( syntaxContextData* data)
119{ 123{
120 if(!data) return false; 124 if(!data) return false;
121 125
122 if (!data->currentGroup) 126 if (!data->currentGroup)
123 data->currentGroup=data->parent->firstChild(); 127 data->currentGroup=data->parent->firstChild();
124 else 128 else
125 data->currentGroup=data->currentGroup->nextChild(); 129 data->currentGroup=data->currentGroup->nextChild();
126 130