-rw-r--r-- | noncore/settings/language/language.cpp | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/noncore/settings/language/language.cpp b/noncore/settings/language/language.cpp index 8dff063..7707452 100644 --- a/noncore/settings/language/language.cpp +++ b/noncore/settings/language/language.cpp | |||
@@ -1,165 +1,158 @@ | |||
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 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | 20 | ||
21 | #include "settings.h" | 21 | #include "settings.h" |
22 | 22 | ||
23 | #include <qpe/global.h> | 23 | #include <qpe/global.h> |
24 | #include <qpe/fontmanager.h> | 24 | #include <qpe/fontmanager.h> |
25 | #include <qpe/config.h> | 25 | #include <qpe/config.h> |
26 | #include <qpe/applnk.h> | 26 | #include <qpe/applnk.h> |
27 | #include <qpe/qpedialog.h> | 27 | #include <qpe/qpedialog.h> |
28 | #include <qpe/qpeapplication.h> | 28 | #include <qpe/qpeapplication.h> |
29 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) | 29 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) |
30 | #include <qpe/qcopenvelope_qws.h> | 30 | #include <qpe/qcopenvelope_qws.h> |
31 | #endif | 31 | #endif |
32 | 32 | ||
33 | #include <qlabel.h> | 33 | #include <qlabel.h> |
34 | #include <qcheckbox.h> | 34 | #include <qcheckbox.h> |
35 | #include <qradiobutton.h> | 35 | #include <qradiobutton.h> |
36 | #include <qtabwidget.h> | 36 | #include <qtabwidget.h> |
37 | #include <qslider.h> | 37 | #include <qslider.h> |
38 | #include <qfile.h> | 38 | #include <qfile.h> |
39 | #include <qtextstream.h> | 39 | #include <qtextstream.h> |
40 | #include <qdatastream.h> | 40 | #include <qdatastream.h> |
41 | #include <qmessagebox.h> | 41 | #include <qmessagebox.h> |
42 | #include <qcombobox.h> | 42 | #include <qcombobox.h> |
43 | #include <qspinbox.h> | 43 | #include <qspinbox.h> |
44 | #include <qlistbox.h> | 44 | #include <qlistbox.h> |
45 | #include <qdir.h> | 45 | #include <qdir.h> |
46 | #if QT_VERSION >= 300 | 46 | #if QT_VERSION >= 300 |
47 | #include <qstylefactory.h> | 47 | #include <qstylefactory.h> |
48 | #endif | 48 | #endif |
49 | 49 | ||
50 | #include <stdlib.h> | 50 | #include <stdlib.h> |
51 | 51 | ||
52 | 52 | ||
53 | LanguageSettings::LanguageSettings( QWidget* parent, const char* name, WFlags fl ) | 53 | LanguageSettings::LanguageSettings( QWidget* parent, const char* name, WFlags fl ) |
54 | : LanguageSettingsBase( parent, name, TRUE, fl ) | 54 | : LanguageSettingsBase( parent, name, TRUE, fl ) |
55 | { | 55 | { |
56 | if ( FontManager::hasUnicodeFont() ) | 56 | if ( FontManager::hasUnicodeFont() ) |
57 | languages->setFont(FontManager::unicodeFont(FontManager::Proportional)); | 57 | languages->setFont(FontManager::unicodeFont(FontManager::Proportional)); |
58 | 58 | ||
59 | 59 | ||
60 | QString tfn = QPEApplication::qpeDir() + "/i18n/"; | 60 | QString tfn = QPEApplication::qpeDir() + "/i18n/"; |
61 | QDir langDir = tfn; | 61 | QDir langDir = tfn; |
62 | QStringList list = langDir.entryList("*", QDir::Dirs ); | 62 | QStringList list = langDir.entryList("*", QDir::Dirs ); |
63 | 63 | ||
64 | QStringList::Iterator it; | 64 | QStringList::Iterator it; |
65 | 65 | ||
66 | for ( it = list.begin(); it != list.end(); ++it ) { | 66 | for ( it = list.begin(); it != list.end(); ++it ) { |
67 | QString name = (*it); | 67 | QString name = (*it); |
68 | QFileInfo desktopFile( tfn + "/" + name + "/.directory" ); | 68 | QFileInfo desktopFile( tfn + "/" + name + "/.directory" ); |
69 | if ( desktopFile.exists() ) { | 69 | if ( desktopFile.exists() ) { |
70 | langAvail.append(name); | 70 | langAvail.append(name); |
71 | Config conf( desktopFile.filePath(), Config::File ); | 71 | Config conf( desktopFile.filePath(), Config::File ); |
72 | QString langName = conf.readEntry( "Name" ); | 72 | QString langName = conf.readEntry( "Name" ); |
73 | QString ownName = conf.readEntryDirect( "Name[" + name + "]" ); | 73 | QString ownName = conf.readEntryDirect( "Name[" + name + "]" ); |
74 | if ( ownName.isEmpty() ) | 74 | if ( ownName.isEmpty() ) |
75 | ownName = conf.readEntryDirect( "Name" ); | 75 | ownName = conf.readEntryDirect( "Name" ); |
76 | if ( !ownName.isEmpty() && ownName != langName ) | 76 | if ( !ownName.isEmpty() && ownName != langName ) |
77 | langName = langName + " [" + ownName + "]"; | 77 | langName = langName + " [" + ownName + "]"; |
78 | languages->insertItem( langName ); | 78 | languages->insertItem( langName ); |
79 | 79 | ||
80 | } | 80 | } |
81 | } | 81 | } |
82 | if ( langAvail. find ( "en" ) == -1 ) { | 82 | if ( langAvail. find ( "en" ) == -1 ) { |
83 | langAvail. prepend ( "" ); // no tr | 83 | langAvail. prepend ( "" ); // no tr |
84 | languages-> insertItem ( QString ( "English [%1] (%2)" /* no tr (!) */ ). arg ( tr ( "English" )). arg ( tr( "default" )), 0 ); | 84 | languages-> insertItem ( QString ( "English [%1] (%2)" /* no tr (!) */ ). arg ( tr ( "English" )). arg ( tr( "default" )), 0 ); |
85 | } | 85 | } |
86 | 86 | ||
87 | dl = new QPEDialogListener(this); | 87 | dl = new QPEDialogListener(this); |
88 | reset(); | 88 | reset(); |
89 | } | 89 | } |
90 | 90 | ||
91 | LanguageSettings::~LanguageSettings() | 91 | LanguageSettings::~LanguageSettings() |
92 | {} | 92 | {} |
93 | 93 | ||
94 | void LanguageSettings::accept() | 94 | void LanguageSettings::accept() |
95 | { | 95 | { |
96 | switch( QMessageBox::warning( this, "Language", | 96 | Config c( "qpe" ); |
97 | "Attention, all windows will be closed\n" | 97 | c.setGroup( "Startup" ); |
98 | "by changing the language\n" | 98 | if ( ( c.readNumEntry( "FirstUse", 42 ) == 0 ) && |
99 | "without saving the Data.\n\n" | 99 | ( QMessageBox::warning( this, "Language", "Attention, all windows will be closed\nby changing the language\n" |
100 | "Go on?", | 100 | "without saving the Data.\n\nGo on?", "Ok", "Cancel", 0, 0, 1 ) ) ) |
101 | "Ok", "Cancel", 0, | 101 | return; |
102 | 0, 1 )) | 102 | applyLanguage(); |
103 | { | 103 | QDialog::accept(); |
104 | case 0: // OK | ||
105 | applyLanguage(); | ||
106 | QDialog::accept(); | ||
107 | break; | ||
108 | case 1: // Abbruch | ||
109 | break; | ||
110 | } | ||
111 | } | 104 | } |
112 | 105 | ||
113 | void LanguageSettings::applyLanguage() | 106 | void LanguageSettings::applyLanguage() |
114 | { | 107 | { |
115 | setLanguage ( langAvail. at ( languages-> currentItem ( ))); | 108 | setLanguage ( langAvail. at ( languages-> currentItem ( ))); |
116 | } | 109 | } |
117 | 110 | ||
118 | 111 | ||
119 | void LanguageSettings::reject() | 112 | void LanguageSettings::reject() |
120 | { | 113 | { |
121 | reset(); | 114 | reset(); |
122 | QDialog::reject(); | 115 | QDialog::reject(); |
123 | } | 116 | } |
124 | 117 | ||
125 | void LanguageSettings::reset() | 118 | void LanguageSettings::reset() |
126 | { | 119 | { |
127 | QString l = getenv("LANG"); | 120 | QString l = getenv("LANG"); |
128 | Config config("locale"); | 121 | Config config("locale"); |
129 | config.setGroup("Language"); | 122 | config.setGroup("Language"); |
130 | l = config.readEntry( "Language", l ); | 123 | l = config.readEntry( "Language", l ); |
131 | actualLanguage = l; | 124 | actualLanguage = l; |
132 | if (l.isEmpty()) | 125 | if (l.isEmpty()) |
133 | l = "en"; | 126 | l = "en"; |
134 | 127 | ||
135 | int n = langAvail.find( l ); | 128 | int n = langAvail.find( l ); |
136 | languages->setCurrentItem( n ); | 129 | languages->setCurrentItem( n ); |
137 | } | 130 | } |
138 | 131 | ||
139 | QString LanguageSettings::actualLanguage; | 132 | QString LanguageSettings::actualLanguage; |
140 | 133 | ||
141 | void LanguageSettings::setLanguage(const QString& lang) | 134 | void LanguageSettings::setLanguage(const QString& lang) |
142 | { | 135 | { |
143 | if ( lang != actualLanguage ) { | 136 | if ( lang != actualLanguage ) { |
144 | Config config("locale"); | 137 | Config config("locale"); |
145 | config.setGroup( "Language" ); | 138 | config.setGroup( "Language" ); |
146 | if ( lang. isEmpty ( )) | 139 | if ( lang. isEmpty ( )) |
147 | config. removeEntry ( "Language" ); | 140 | config. removeEntry ( "Language" ); |
148 | else | 141 | else |
149 | config.writeEntry( "Language", lang ); | 142 | config.writeEntry( "Language", lang ); |
150 | config.write(); | 143 | config.write(); |
151 | 144 | ||
152 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) | 145 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) |
153 | 146 | ||
154 | QCopEnvelope e("QPE/System", "language(QString)"); | 147 | QCopEnvelope e("QPE/System", "language(QString)"); |
155 | e << lang; | 148 | e << lang; |
156 | #endif | 149 | #endif |
157 | 150 | ||
158 | } | 151 | } |
159 | } | 152 | } |
160 | 153 | ||
161 | void LanguageSettings::done(int r) | 154 | void LanguageSettings::done(int r) |
162 | { | 155 | { |
163 | QDialog::done(r); | 156 | QDialog::done(r); |
164 | close(); | 157 | close(); |
165 | } | 158 | } |