summaryrefslogtreecommitdiff
path: root/library/global.cpp
Unidiff
Diffstat (limited to 'library/global.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--library/global.cpp55
1 files changed, 49 insertions, 6 deletions
diff --git a/library/global.cpp b/library/global.cpp
index fd7579a..dd15eb7 100644
--- a/library/global.cpp
+++ b/library/global.cpp
@@ -8,24 +8,25 @@
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20#define QTOPIA_INTERNAL_LANGLIST
20#include <qpe/qpedebug.h> 21#include <qpe/qpedebug.h>
21#include <qpe/global.h> 22#include <qpe/global.h>
22#include <qpe/qdawg.h> 23#include <qpe/qdawg.h>
23#include <qpe/qpeapplication.h> 24#include <qpe/qpeapplication.h>
24#include <qpe/resource.h> 25#include <qpe/resource.h>
25#include <qpe/storage.h> 26#include <qpe/storage.h>
26#include <qpe/applnk.h> 27#include <qpe/applnk.h>
27#if defined(Q_WS_QWS) && !defined(QT_NO_COP) 28#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
28#include "qpe/qcopenvelope_qws.h" 29#include "qpe/qcopenvelope_qws.h"
29#endif 30#endif
30 31
31#include <qfile.h> 32#include <qfile.h>
@@ -161,30 +162,36 @@ Global::Global()
161 words for the current locale. 162 words for the current locale.
162 163
163 \sa addedDawg() 164 \sa addedDawg()
164*/ 165*/
165const QDawg& Global::fixedDawg() 166const QDawg& Global::fixedDawg()
166{ 167{
167 if ( !fixed_dawg ) { 168 if ( !fixed_dawg ) {
168 if ( !docDirCreated ) 169 if ( !docDirCreated )
169 createDocDir(); 170 createDocDir();
170 171
171 fixed_dawg = new QDawg; 172 fixed_dawg = new QDawg;
172 QString dawgfilename = dictDir() + "/dawg"; 173 QString dawgfilename = dictDir() + "/dawg";
173 QString lang = getenv( "LANG" ); 174 QString words_lang;
174 QString dawgfilename_lang = dawgfilename + "." + lang; 175 QStringList langs = Global::languageList();
175 QString words_lang = dictDir() + "/words." + lang; 176 for (QStringList::ConstIterator it = langs.begin(); it!=langs.end(); ++it) {
176 if ( QFile::exists(dawgfilename_lang) || 177 QString lang = *it;
177 QFile::exists(words_lang) ) 178 words_lang = dictDir() + "/words." + lang;
178 dawgfilename = dawgfilename_lang; 179 QString dawgfilename_lang = dawgfilename + "." + lang;
180 if ( QFile::exists(dawgfilename_lang) ||
181 QFile::exists(words_lang) ) {
182 dawgfilename = dawgfilename_lang;
183 break;
184 }
185 }
179 QFile dawgfile(dawgfilename); 186 QFile dawgfile(dawgfilename);
180 187
181 if ( !dawgfile.exists() ) { 188 if ( !dawgfile.exists() ) {
182 QString fn = dictDir() + "/words"; 189 QString fn = dictDir() + "/words";
183 if ( QFile::exists(words_lang) ) 190 if ( QFile::exists(words_lang) )
184 fn = words_lang; 191 fn = words_lang;
185 QFile in(fn); 192 QFile in(fn);
186 if ( in.open(IO_ReadOnly) ) { 193 if ( in.open(IO_ReadOnly) ) {
187 fixed_dawg->createFromWords(&in); 194 fixed_dawg->createFromWords(&in);
188 dawgfile.open(IO_WriteOnly); 195 dawgfile.open(IO_WriteOnly);
189 fixed_dawg->write(&dawgfile); 196 fixed_dawg->write(&dawgfile);
190 dawgfile.close(); 197 dawgfile.close();
@@ -630,15 +637,51 @@ void Global::findDocuments(DocLnkSet* folder, const QString &mimefilter)
630 StorageInfo storage; 637 StorageInfo storage;
631 const QList<FileSystem> &fs = storage.fileSystems(); 638 const QList<FileSystem> &fs = storage.fileSystems();
632 QListIterator<FileSystem> it ( fs ); 639 QListIterator<FileSystem> it ( fs );
633 for ( ; it.current(); ++it ) { 640 for ( ; it.current(); ++it ) {
634 if ( (*it)->isRemovable() ) { 641 if ( (*it)->isRemovable() ) {
635 QString path = (*it)->path(); 642 QString path = (*it)->path();
636 DocLnkSet ide( path, mimefilter ); 643 DocLnkSet ide( path, mimefilter );
637 folder->appendFrom(ide); 644 folder->appendFrom(ide);
638 } 645 }
639 } 646 }
640} 647}
641 648
649QStringList Global::languageList()
650{
651 QString lang = getenv("LANG");
652 QStringList langs;
653 langs.append(lang);
654 int i = lang.find(".");
655 if ( i > 0 )
656 lang = lang.left( i );
657 i = lang.find( "_" );
658 if ( i > 0 )
659 langs.append(lang.left(i));
660 return langs;
661}
662
663QStringList Global::helpPath()
664{
665 QStringList path;
666 QStringList langs = Global::languageList();
667 for (QStringList::ConstIterator it = langs.fromLast(); it!=langs.end(); --it) {
668 QString lang = *it;
669 if ( !lang.isEmpty() )
670 path += QPEApplication::qpeDir() + "/help/" + lang + "/html";
671 }
672 path += QPEApplication::qpeDir() + "/pics";
673 path += QPEApplication::qpeDir() + "/help/en/html";
674 path += QPEApplication::qpeDir() + "/docs";
675 QString dir = QDir::current().canonicalPath();
676 if ( dir == "/" )
677 dir += "/docs";
678 else {
679 path += dir + "/../pics";
680 dir += "/../docs";
681 path += dir;
682 }
683 return path;
684}
642 685
643 686
644#include "global.moc" 687#include "global.moc"