summaryrefslogtreecommitdiff
authormickeyl <mickeyl>2004-09-08 21:38:59 (UTC)
committer mickeyl <mickeyl>2004-09-08 21:38:59 (UTC)
commitf0fdb800d57e9a1d95ba593185e9462300539eea (patch) (side-by-side diff)
treeab3c3620dfb6395c87ed97748609a5b47311c7bd
parent189f40847bbaaed928cb99d64f51f708c96a967b (diff)
downloadopie-f0fdb800d57e9a1d95ba593185e9462300539eea.zip
opie-f0fdb800d57e9a1d95ba593185e9462300539eea.tar.gz
opie-f0fdb800d57e9a1d95ba593185e9462300539eea.tar.bz2
don't need confirmance if started in first-usage mode
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/language/language.cpp23
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
@@ -32,134 +32,127 @@
#include <qlabel.h>
#include <qcheckbox.h>
#include <qradiobutton.h>
#include <qtabwidget.h>
#include <qslider.h>
#include <qfile.h>
#include <qtextstream.h>
#include <qdatastream.h>
#include <qmessagebox.h>
#include <qcombobox.h>
#include <qspinbox.h>
#include <qlistbox.h>
#include <qdir.h>
#if QT_VERSION >= 300
#include <qstylefactory.h>
#endif
#include <stdlib.h>
LanguageSettings::LanguageSettings( QWidget* parent, const char* name, WFlags fl )
: LanguageSettingsBase( parent, name, TRUE, fl )
{
if ( FontManager::hasUnicodeFont() )
languages->setFont(FontManager::unicodeFont(FontManager::Proportional));
QString tfn = QPEApplication::qpeDir() + "/i18n/";
QDir langDir = tfn;
QStringList list = langDir.entryList("*", QDir::Dirs );
QStringList::Iterator it;
for ( it = list.begin(); it != list.end(); ++it ) {
QString name = (*it);
QFileInfo desktopFile( tfn + "/" + name + "/.directory" );
if ( desktopFile.exists() ) {
langAvail.append(name);
Config conf( desktopFile.filePath(), Config::File );
QString langName = conf.readEntry( "Name" );
QString ownName = conf.readEntryDirect( "Name[" + name + "]" );
if ( ownName.isEmpty() )
ownName = conf.readEntryDirect( "Name" );
if ( !ownName.isEmpty() && ownName != langName )
langName = langName + " [" + ownName + "]";
languages->insertItem( langName );
}
}
if ( langAvail. find ( "en" ) == -1 ) {
langAvail. prepend ( "" ); // no tr
languages-> insertItem ( QString ( "English [%1] (%2)" /* no tr (!) */ ). arg ( tr ( "English" )). arg ( tr( "default" )), 0 );
}
dl = new QPEDialogListener(this);
reset();
}
LanguageSettings::~LanguageSettings()
{}
void LanguageSettings::accept()
{
- switch( QMessageBox::warning( this, "Language",
- "Attention, all windows will be closed\n"
- "by changing the language\n"
- "without saving the Data.\n\n"
- "Go on?",
- "Ok", "Cancel", 0,
- 0, 1 ))
- {
- case 0: // OK
- applyLanguage();
- QDialog::accept();
- break;
- case 1: // Abbruch
- break;
- }
+ Config c( "qpe" );
+ c.setGroup( "Startup" );
+ if ( ( c.readNumEntry( "FirstUse", 42 ) == 0 ) &&
+ ( QMessageBox::warning( this, "Language", "Attention, all windows will be closed\nby changing the language\n"
+ "without saving the Data.\n\nGo on?", "Ok", "Cancel", 0, 0, 1 ) ) )
+ return;
+ applyLanguage();
+ QDialog::accept();
}
void LanguageSettings::applyLanguage()
{
setLanguage ( langAvail. at ( languages-> currentItem ( )));
}
void LanguageSettings::reject()
{
reset();
QDialog::reject();
}
void LanguageSettings::reset()
{
QString l = getenv("LANG");
Config config("locale");
config.setGroup("Language");
l = config.readEntry( "Language", l );
actualLanguage = l;
if (l.isEmpty())
l = "en";
int n = langAvail.find( l );
languages->setCurrentItem( n );
}
QString LanguageSettings::actualLanguage;
void LanguageSettings::setLanguage(const QString& lang)
{
if ( lang != actualLanguage ) {
Config config("locale");
config.setGroup( "Language" );
if ( lang. isEmpty ( ))
config. removeEntry ( "Language" );
else
config.writeEntry( "Language", lang );
config.write();
#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
QCopEnvelope e("QPE/System", "language(QString)");
e << lang;
#endif
}
}
void LanguageSettings::done(int r)
{
QDialog::done(r);
close();
}