summaryrefslogtreecommitdiff
path: root/library/qpeapplication.cpp
Unidiff
Diffstat (limited to 'library/qpeapplication.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--library/qpeapplication.cpp40
1 files changed, 11 insertions, 29 deletions
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp
index 70ffec1..4dbfbd8 100644
--- a/library/qpeapplication.cpp
+++ b/library/qpeapplication.cpp
@@ -1,45 +1,46 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qtopia Environment. 4** This file is part of Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
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** $Id$ 19** $Id$
20** 20**
21**********************************************************************/ 21**********************************************************************/
22#define QTOPIA_INTERNAL_LANGLIST
22#include <stdlib.h> 23#include <stdlib.h>
23#include <unistd.h> 24#include <unistd.h>
24#include <qfile.h> 25#include <qfile.h>
25#ifdef Q_WS_QWS 26#ifdef Q_WS_QWS
26#ifndef QT_NO_COP 27#ifndef QT_NO_COP
27#if QT_VERSION <= 231 28#if QT_VERSION <= 231
28#define private public 29#define private public
29#define sendLocally processEvent 30#define sendLocally processEvent
30#include "qcopenvelope_qws.h" 31#include "qcopenvelope_qws.h"
31#undef private 32#undef private
32#else 33#else
33#include "qcopenvelope_qws.h" 34#include "qcopenvelope_qws.h"
34#endif 35#endif
35#endif 36#endif
36#include <qwindowsystem_qws.h> 37#include <qwindowsystem_qws.h>
37#endif 38#endif
38#include <qtextstream.h> 39#include <qtextstream.h>
39#include <qpalette.h> 40#include <qpalette.h>
40#include <qbuffer.h> 41#include <qbuffer.h>
41#include <qptrdict.h> 42#include <qptrdict.h>
42#include <qregexp.h> 43#include <qregexp.h>
43#include <qdir.h> 44#include <qdir.h>
44#include <qlabel.h> 45#include <qlabel.h>
45#include <qdialog.h> 46#include <qdialog.h>
@@ -116,64 +117,49 @@ public:
116 bool forceshow; 117 bool forceshow;
117 bool nomaximize; 118 bool nomaximize;
118 QWidget* qpe_main_widget; 119 QWidget* qpe_main_widget;
119 bool keep_running; 120 bool keep_running;
120 QList<QCopRec> qcopq; 121 QList<QCopRec> qcopq;
121 122
122 void enqueueQCop(const QCString &ch, const QCString &msg, 123 void enqueueQCop(const QCString &ch, const QCString &msg,
123 const QByteArray &data) 124 const QByteArray &data)
124 { 125 {
125 qcopq.append(new QCopRec(ch,msg,data)); 126 qcopq.append(new QCopRec(ch,msg,data));
126 } 127 }
127 void sendQCopQ() 128 void sendQCopQ()
128 { 129 {
129 QCopRec* r; 130 QCopRec* r;
130 for (QListIterator<QCopRec> it(qcopq); (r=it.current()); ++it) 131 for (QListIterator<QCopRec> it(qcopq); (r=it.current()); ++it)
131 QCopChannel::sendLocally(r->channel,r->message,r->data); 132 QCopChannel::sendLocally(r->channel,r->message,r->data);
132 qcopq.clear(); 133 qcopq.clear();
133 } 134 }
134}; 135};
135 136
136class ResourceMimeFactory : public QMimeSourceFactory { 137class ResourceMimeFactory : public QMimeSourceFactory {
137public: 138public:
138 ResourceMimeFactory() 139 ResourceMimeFactory()
139 { 140 {
140 QStringList path; 141 setFilePath( Global::helpPath() );
141 QString lang = getenv("LANG");
142 if ( !lang.isEmpty() )
143 path += QPEApplication::qpeDir() + "/help/" + lang + "/html";
144 path += QPEApplication::qpeDir() + "/pics";
145 path += QPEApplication::qpeDir() + "/help/en/html";
146 path += QPEApplication::qpeDir() + "/docs";
147 QString dir = QDir::current().canonicalPath();
148 if ( dir == "/" )
149 dir += "/docs";
150 else {
151 path += dir + "/../pics";
152 dir += "/../docs";
153 path += dir;
154 }
155 setFilePath( path );
156 setExtensionType("html","text/html;charset=UTF-8"); 142 setExtensionType("html","text/html;charset=UTF-8");
157 } 143 }
158 144
159 const QMimeSource* data(const QString& abs_name) const 145 const QMimeSource* data(const QString& abs_name) const
160 { 146 {
161 const QMimeSource* r = QMimeSourceFactory::data(abs_name); 147 const QMimeSource* r = QMimeSourceFactory::data(abs_name);
162 if ( !r ) { 148 if ( !r ) {
163 int sl = abs_name.length(); 149 int sl = abs_name.length();
164 do { 150 do {
165 sl = abs_name.findRev('/',sl-1); 151 sl = abs_name.findRev('/',sl-1);
166 QString name = sl>=0 ? abs_name.mid(sl+1) : abs_name; 152 QString name = sl>=0 ? abs_name.mid(sl+1) : abs_name;
167 int dot = name.findRev('.'); 153 int dot = name.findRev('.');
168 if ( dot >= 0 ) 154 if ( dot >= 0 )
169 name = name.left(dot); 155 name = name.left(dot);
170 QImage img = Resource::loadImage(name); 156 QImage img = Resource::loadImage(name);
171 if ( !img.isNull() ) 157 if ( !img.isNull() )
172 r = new QImageDrag(img); 158 r = new QImageDrag(img);
173 } while (!r && sl>0); 159 } while (!r && sl>0);
174 } 160 }
175 return r; 161 return r;
176 } 162 }
177}; 163};
178 164
179static int muted=0; 165static int muted=0;
@@ -516,74 +502,70 @@ QPEApplication::QPEApplication( int& argc, char **argv, Type t )
516 502
517 for (int a=0; a<argc; a++) { 503 for (int a=0; a<argc; a++) {
518 if ( qstrcmp(argv[a],"-preload")==0 ) { 504 if ( qstrcmp(argv[a],"-preload")==0 ) {
519 argv[a] = argv[a+1]; 505 argv[a] = argv[a+1];
520 a++; 506 a++;
521 d->preloaded = TRUE; 507 d->preloaded = TRUE;
522 argc-=1; 508 argc-=1;
523 } else if ( qstrcmp(argv[a],"-preload-show")==0 ) { 509 } else if ( qstrcmp(argv[a],"-preload-show")==0 ) {
524 argv[a] = argv[a+1]; 510 argv[a] = argv[a+1];
525 a++; 511 a++;
526 d->preloaded = TRUE; 512 d->preloaded = TRUE;
527 d->forceshow = TRUE; 513 d->forceshow = TRUE;
528 argc-=1; 514 argc-=1;
529 } 515 }
530 } 516 }
531 517
532 /* overide stored arguments */ 518 /* overide stored arguments */
533 setArgs(argc, argv); 519 setArgs(argc, argv);
534 520
535#endif 521#endif
536 522
537 qwsSetDecoration( new QPEDecoration() ); 523 qwsSetDecoration( new QPEDecoration() );
538 524
539#ifndef QT_NO_TRANSLATION 525#ifndef QT_NO_TRANSLATION
540 char *l = getenv( "LANG" ); 526 QStringList langs = Global::languageList();
541 QString lang; 527 for (QStringList::ConstIterator it = langs.begin(); it!=langs.end(); ++it) {
542 if ( l ) { 528 QString lang = *it;
543 lang = l;
544 529
545 /* 530 QTranslator * trans;
546 Config config("qpe"); 531 QString tfn;
547 config.setGroup( "Appearance" );
548 lang = config.readEntry( "Language", lang );
549 */
550 532
551 QTranslator * trans = new QTranslator(this); 533 trans = new QTranslator(this);
552 QString tfn = qpeDir()+"/i18n/"+lang+"/"+d->appName+".qm"; 534 tfn = qpeDir()+"/i18n/"+lang+"/libqpe.qm";
553 if ( trans->load( tfn )) 535 if ( trans->load( tfn ))
554 installTranslator( trans ); 536 installTranslator( trans );
555 else 537 else
556 delete trans; 538 delete trans;
557 539
558 trans = new QTranslator(this); 540 trans = new QTranslator(this);
559 tfn = qpeDir()+"/i18n/"+lang+"/libqpe.qm"; 541 tfn = qpeDir()+"/i18n/"+lang+"/"+d->appName+".qm";
560 if ( trans->load( tfn )) 542 if ( trans->load( tfn ))
561 installTranslator( trans ); 543 installTranslator( trans );
562 else 544 else
563 delete trans; 545 delete trans;
564 546
565 //###language/font hack; should look it up somewhere 547 //###language/font hack; should look it up somewhere
566 if ( lang == "ja" || lang == "zh_CN" || lang == "zh_TW" || lang == "ko" ) { 548 if ( lang == "ja" || lang == "zh_CN" || lang == "zh_TW" || lang == "ko" ) {
567 QFont fn = FontManager::unicodeFont( FontManager::Proportional ); 549 QFont fn = FontManager::unicodeFont( FontManager::Proportional );
568 setFont( fn ); 550 setFont( fn );
569 } 551 }
570 } 552 }
571#endif 553#endif
572 554
573 applyStyle(); 555 applyStyle();
574 556
575 if ( type() == GuiServer ) { 557 if ( type() == GuiServer ) {
576 setScreenSaverInterval(-1); 558 setScreenSaverInterval(-1);
577 setVolume(); 559 setVolume();
578 QWSServer::setScreenSaver(new QPEScreenSaver); 560 QWSServer::setScreenSaver(new QPEScreenSaver);
579 } 561 }
580 562
581 installEventFilter( this ); 563 installEventFilter( this );
582 564
583 QPEMenuToolFocusManager::initialize(); 565 QPEMenuToolFocusManager::initialize();
584 566
585#ifdef QT_NO_QWS_CURSOR 567#ifdef QT_NO_QWS_CURSOR
586 // if we have no cursor, probably don't want tooltips 568 // if we have no cursor, probably don't want tooltips
587 QToolTip::setEnabled( FALSE ); 569 QToolTip::setEnabled( FALSE );
588#endif 570#endif
589} 571}