summaryrefslogtreecommitdiff
authorar <ar>2004-08-21 10:08:44 (UTC)
committer ar <ar>2004-08-21 10:08:44 (UTC)
commit2304c546ec73f2643621f04d61128c2686812cd1 (patch) (unidiff)
tree9ab2b011fcdd376fbbd70000bb035e7521ef5490
parente67b6a8748af0856d77eeb46048d36e58314793e (diff)
downloadopie-2304c546ec73f2643621f04d61128c2686812cd1.zip
opie-2304c546ec73f2643621f04d61128c2686812cd1.tar.gz
opie-2304c546ec73f2643621f04d61128c2686812cd1.tar.bz2
- BugFix: #1383 - Language settings doesn't warn about losing open apps (Thanks to Markus Litz for the patch)
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/language/language.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/noncore/settings/language/language.cpp b/noncore/settings/language/language.cpp
index d30a041..8dff063 100644
--- a/noncore/settings/language/language.cpp
+++ b/noncore/settings/language/language.cpp
@@ -64,66 +64,79 @@ LanguageSettings::LanguageSettings( QWidget* parent, const char* name, WFlags fl
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
91LanguageSettings::~LanguageSettings() 91LanguageSettings::~LanguageSettings()
92{} 92{}
93 93
94void LanguageSettings::accept() 94void LanguageSettings::accept()
95{ 95{
96 applyLanguage(); 96 switch( QMessageBox::warning( this, "Language",
97 QDialog::accept(); 97 "Attention, all windows will be closed\n"
98 "by changing the language\n"
99 "without saving the Data.\n\n"
100 "Go on?",
101 "Ok", "Cancel", 0,
102 0, 1 ))
103 {
104 case 0: // OK
105 applyLanguage();
106 QDialog::accept();
107 break;
108 case 1: // Abbruch
109 break;
110 }
98} 111}
99 112
100void LanguageSettings::applyLanguage() 113void LanguageSettings::applyLanguage()
101{ 114{
102 setLanguage ( langAvail. at ( languages-> currentItem ( ))); 115 setLanguage ( langAvail. at ( languages-> currentItem ( )));
103} 116}
104 117
105 118
106void LanguageSettings::reject() 119void LanguageSettings::reject()
107{ 120{
108 reset(); 121 reset();
109 QDialog::reject(); 122 QDialog::reject();
110} 123}
111 124
112void LanguageSettings::reset() 125void LanguageSettings::reset()
113{ 126{
114 QString l = getenv("LANG"); 127 QString l = getenv("LANG");
115 Config config("locale"); 128 Config config("locale");
116 config.setGroup("Language"); 129 config.setGroup("Language");
117 l = config.readEntry( "Language", l ); 130 l = config.readEntry( "Language", l );
118 actualLanguage = l; 131 actualLanguage = l;
119 if (l.isEmpty()) 132 if (l.isEmpty())
120 l = "en"; 133 l = "en";
121 134
122 int n = langAvail.find( l ); 135 int n = langAvail.find( l );
123 languages->setCurrentItem( n ); 136 languages->setCurrentItem( n );
124} 137}
125 138
126QString LanguageSettings::actualLanguage; 139QString LanguageSettings::actualLanguage;
127 140
128void LanguageSettings::setLanguage(const QString& lang) 141void LanguageSettings::setLanguage(const QString& lang)
129{ 142{