author | ar <ar> | 2004-08-21 10:08:44 (UTC) |
---|---|---|
committer | ar <ar> | 2004-08-21 10:08:44 (UTC) |
commit | 2304c546ec73f2643621f04d61128c2686812cd1 (patch) (unidiff) | |
tree | 9ab2b011fcdd376fbbd70000bb035e7521ef5490 | |
parent | e67b6a8748af0856d77eeb46048d36e58314793e (diff) | |
download | opie-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)
-rw-r--r-- | noncore/settings/language/language.cpp | 17 |
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 | ||
91 | LanguageSettings::~LanguageSettings() | 91 | LanguageSettings::~LanguageSettings() |
92 | {} | 92 | {} |
93 | 93 | ||
94 | void LanguageSettings::accept() | 94 | void 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 | ||
100 | void LanguageSettings::applyLanguage() | 113 | void LanguageSettings::applyLanguage() |
101 | { | 114 | { |
102 | setLanguage ( langAvail. at ( languages-> currentItem ( ))); | 115 | setLanguage ( langAvail. at ( languages-> currentItem ( ))); |
103 | } | 116 | } |
104 | 117 | ||
105 | 118 | ||
106 | void LanguageSettings::reject() | 119 | void LanguageSettings::reject() |
107 | { | 120 | { |
108 | reset(); | 121 | reset(); |
109 | QDialog::reject(); | 122 | QDialog::reject(); |
110 | } | 123 | } |
111 | 124 | ||
112 | void LanguageSettings::reset() | 125 | void 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 | ||
126 | QString LanguageSettings::actualLanguage; | 139 | QString LanguageSettings::actualLanguage; |
127 | 140 | ||
128 | void LanguageSettings::setLanguage(const QString& lang) | 141 | void LanguageSettings::setLanguage(const QString& lang) |
129 | { | 142 | { |