author | kergoth <kergoth> | 2002-01-25 22:14:26 (UTC) |
---|---|---|
committer | kergoth <kergoth> | 2002-01-25 22:14:26 (UTC) |
commit | 15318cad33835e4e2dc620d033e43cd930676cdd (patch) (side-by-side diff) | |
tree | c2fa0399a2c47fda8e2cd0092c73a809d17f68eb /noncore/settings/language | |
download | opie-15318cad33835e4e2dc620d033e43cd930676cdd.zip opie-15318cad33835e4e2dc620d033e43cd930676cdd.tar.gz opie-15318cad33835e4e2dc620d033e43cd930676cdd.tar.bz2 |
Initial revision
-rw-r--r-- | noncore/settings/language/.cvsignore | 4 | ||||
-rw-r--r-- | noncore/settings/language/Makefile.in | 135 | ||||
-rw-r--r-- | noncore/settings/language/language.cpp | 150 | ||||
-rw-r--r-- | noncore/settings/language/language.pro | 12 | ||||
-rw-r--r-- | noncore/settings/language/languagesettingsbase.ui | 51 | ||||
-rw-r--r-- | noncore/settings/language/main.cpp | 36 | ||||
-rw-r--r-- | noncore/settings/language/qpe-language.control | 9 | ||||
-rw-r--r-- | noncore/settings/language/settings.h | 58 |
8 files changed, 455 insertions, 0 deletions
diff --git a/noncore/settings/language/.cvsignore b/noncore/settings/language/.cvsignore new file mode 100644 index 0000000..30ff791 --- a/dev/null +++ b/noncore/settings/language/.cvsignore @@ -0,0 +1,4 @@ +moc_* +Makefile +languagesettingsbase.h +languagesettingsbase.cpp diff --git a/noncore/settings/language/Makefile.in b/noncore/settings/language/Makefile.in new file mode 100644 index 0000000..2babf6e --- a/dev/null +++ b/noncore/settings/language/Makefile.in @@ -0,0 +1,135 @@ +############################################################################# + +####### Compiler, tools and options + +CXX = $(SYSCONF_CXX) $(QT_CXX_MT) +CXXFLAGS= $(SYSCONF_CXXFLAGS_QT) $(SYSCONF_CXXFLAGS) +CC = $(SYSCONF_CC) $(QT_C_MT) +CFLAGS = $(SYSCONF_CFLAGS) +INCPATH = -I$(QPEDIR)/include +LFLAGS = $(SYSCONF_LFLAGS_QT) $(SYSCONF_RPATH_QT) $(SYSCONF_LFLAGS) $(QT_LFLAGS_MT) +LIBS = $(SUBLIBS) -lqpe $(SYSCONF_LIBS_QT) $(SYSCONF_LIBS) $(SYSCONF_LIBS_QTAPP) +MOC = $(SYSCONF_MOC) +UIC = $(SYSCONF_UIC) + +####### Target + +DESTDIR = ../../bin/ +VER_MAJ = 1 +VER_MIN = 0 +VER_PATCH = 0 +TARGET = language +TARGET1 = lib$(TARGET).so.$(VER_MAJ) + +####### Files + +HEADERS = settings.h +SOURCES = language.cpp \ + main.cpp +OBJECTS = language.o \ + main.o \ + languagesettingsbase.o +INTERFACES = languagesettingsbase.ui +UICDECLS = languagesettingsbase.h +UICIMPLS = languagesettingsbase.cpp +SRCMOC = moc_settings.cpp \ + moc_languagesettingsbase.cpp +OBJMOC = moc_settings.o \ + moc_languagesettingsbase.o + + +####### Implicit rules + +.SUFFIXES: .cpp .cxx .cc .C .c + +.cpp.o: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $< + +.cxx.o: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $< + +.cc.o: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $< + +.C.o: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $< + +.c.o: + $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $< + +####### Build rules + + +all: $(DESTDIR)$(TARGET) + +$(DESTDIR)$(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC) $(SUBLIBS) + $(SYSCONF_LINK) $(LFLAGS) -o $(DESTDIR)$(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS) + +moc: $(SRCMOC) + +tmake: + tmake language.pro + +clean: + -rm -f $(OBJECTS) $(OBJMOC) $(SRCMOC) $(UICIMPLS) $(UICDECLS) + -rm -f *~ core + -rm -f allmoc.cpp + +####### Extension Modules + +listpromodules: + @echo + +listallmodules: + @echo + +listaddonpromodules: + @echo + +listaddonentmodules: + @echo + + +REQUIRES= + +####### Sub-libraries + + +###### Combined headers + + + +####### Compile + +language.o: language.cpp \ + settings.h \ + languagesettingsbase.h + +main.o: main.cpp \ + settings.h \ + languagesettingsbase.h + +languagesettingsbase.h: languagesettingsbase.ui + $(UIC) languagesettingsbase.ui -o $(INTERFACE_DECL_PATH)/languagesettingsbase.h + +languagesettingsbase.cpp: languagesettingsbase.ui + $(UIC) languagesettingsbase.ui -i languagesettingsbase.h -o languagesettingsbase.cpp + +languagesettingsbase.o: languagesettingsbase.cpp \ + languagesettingsbase.h \ + languagesettingsbase.ui + +moc_settings.o: moc_settings.cpp \ + settings.h \ + languagesettingsbase.h + +moc_languagesettingsbase.o: moc_languagesettingsbase.cpp \ + languagesettingsbase.h + +moc_settings.cpp: settings.h + $(MOC) settings.h -o moc_settings.cpp + +moc_languagesettingsbase.cpp: languagesettingsbase.h + $(MOC) languagesettingsbase.h -o moc_languagesettingsbase.cpp + + diff --git a/noncore/settings/language/language.cpp b/noncore/settings/language/language.cpp new file mode 100644 index 0000000..397d372 --- a/dev/null +++ b/noncore/settings/language/language.cpp @@ -0,0 +1,150 @@ +/********************************************************************** +** Copyright (C) 2000 Trolltech AS. All rights reserved. +** +** This file is part of Qtopia Environment. +** +** This file may be distributed and/or modified under the terms of the +** GNU General Public License version 2 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. +** +** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +** +** See http://www.trolltech.com/gpl/ for GPL licensing information. +** +** Contact info@trolltech.com if any conditions of this licensing are +** not clear to you. +** +**********************************************************************/ + +#include "settings.h" + +#include <qpe/global.h> +#include <qpe/fontmanager.h> +#include <qpe/config.h> +#include <qpe/applnk.h> +#include <qpe/qpedialog.h> +#include <qpe/qpeapplication.h> +#if defined(Q_WS_QWS) && !defined(QT_NO_COP) +#include <qpe/qcopenvelope_qws.h> +#endif + +#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 + +#if defined(QT_QWS_IPAQ) || defined(QT_QWS_EBX) +#include <unistd.h> +#include <linux/fb.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <sys/ioctl.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 ); + + } + } + + dl = new QPEDialogListener(this); + reset(); +} + +LanguageSettings::~LanguageSettings() +{ +} + +void LanguageSettings::accept() +{ + applyLanguage(); + QDialog::accept(); +} + +void LanguageSettings::applyLanguage() +{ + QString lang = langAvail.at( languages->currentItem() ); + setLanguage( lang ); +} + + +void LanguageSettings::reject() +{ + reset(); + QDialog::reject(); +} + +void LanguageSettings::reset() +{ + QString l = getenv("LANG"); + Config config("language"); + l = config.readEntry( "Language", l ); + if(l.isEmpty()) l = "en"; + actualLanguage = l; + + 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" ); + 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(); +} diff --git a/noncore/settings/language/language.pro b/noncore/settings/language/language.pro new file mode 100644 index 0000000..d1f1bf0 --- a/dev/null +++ b/noncore/settings/language/language.pro @@ -0,0 +1,12 @@ +TEMPLATE = app +CONFIG += qt warn_on release +DESTDIR = ../../bin +HEADERS = settings.h +SOURCES = language.cpp main.cpp +INTERFACES = languagesettingsbase.ui +INCLUDEPATH += $(QPEDIR)/include +DEPENDPATH += ../$(QPEDIR)/include +LIBS += -lqpe +TARGET = language + +TRANSLATIONS = ../../i18n/de/language.ts diff --git a/noncore/settings/language/languagesettingsbase.ui b/noncore/settings/language/languagesettingsbase.ui new file mode 100644 index 0000000..62bdafa --- a/dev/null +++ b/noncore/settings/language/languagesettingsbase.ui @@ -0,0 +1,51 @@ +<!DOCTYPE UI><UI> +<class>LanguageSettingsBase</class> +<widget> + <class>QDialog</class> + <property stdset="1"> + <name>name</name> + <cstring>LanguageSettingsBase</cstring> + </property> + <property stdset="1"> + <name>geometry</name> + <rect> + <x>0</x> + <y>0</y> + <width>369</width> + <height>492</height> + </rect> + </property> + <property stdset="1"> + <name>caption</name> + <string>Language</string> + </property> + <vbox> + <property stdset="1"> + <name>margin</name> + <number>11</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>6</number> + </property> + <widget> + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel1</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Select language</string> + </property> + </widget> + <widget> + <class>QListBox</class> + <property stdset="1"> + <name>name</name> + <cstring>languages</cstring> + </property> + </widget> + </vbox> +</widget> +</UI> diff --git a/noncore/settings/language/main.cpp b/noncore/settings/language/main.cpp new file mode 100644 index 0000000..a760ff3 --- a/dev/null +++ b/noncore/settings/language/main.cpp @@ -0,0 +1,36 @@ +/********************************************************************** +** Copyright (C) 2000 Trolltech AS. All rights reserved. +** +** This file is part of Qtopia Environment. +** +** This file may be distributed and/or modified under the terms of the +** GNU General Public License version 2 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. +** +** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +** +** See http://www.trolltech.com/gpl/ for GPL licensing information. +** +** Contact info@trolltech.com if any conditions of this licensing are +** not clear to you. +** +**********************************************************************/ + +#include "settings.h" + +#include <qpe/qpeapplication.h> + + +int main(int argc, char** argv) +{ + QPEApplication a(argc,argv); + + LanguageSettings dlg; + + a.showMainWidget(&dlg); + + return a.exec(); +} + diff --git a/noncore/settings/language/qpe-language.control b/noncore/settings/language/qpe-language.control new file mode 100644 index 0000000..b33c947 --- a/dev/null +++ b/noncore/settings/language/qpe-language.control @@ -0,0 +1,9 @@ +Files: bin/language apps/Settings/Language.desktop +Priority: optional +Section: qpe/settings +Maintainer: Warwick Allison <warwick@trolltech.com> +Architecture: arm +Version: $QPE_VERSION-3 +Depends: qpe-base ($QPE_VERSION) +Description: Language settings dialog + For the Qtopia environment. diff --git a/noncore/settings/language/settings.h b/noncore/settings/language/settings.h new file mode 100644 index 0000000..22cc987 --- a/dev/null +++ b/noncore/settings/language/settings.h @@ -0,0 +1,58 @@ +/********************************************************************** +** Copyright (C) 2000 Trolltech AS. All rights reserved. +** +** This file is part of Qtopia Environment. +** +** This file may be distributed and/or modified under the terms of the +** GNU General Public License version 2 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. +** +** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +** +** See http://www.trolltech.com/gpl/ for GPL licensing information. +** +** Contact info@trolltech.com if any conditions of this licensing are +** not clear to you. +** +**********************************************************************/ +#ifndef SETTINGS_H +#define SETTINGS_H + + +#include <qstrlist.h> +#include <qasciidict.h> +#include "languagesettingsbase.h" + +class QPEDialogListener; + +class LanguageSettings : public LanguageSettingsBase +{ + Q_OBJECT + +public: + LanguageSettings( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); + ~LanguageSettings(); + +protected: + void accept(); + void reject(); + void done(int); + + QStrList langAvail; + +private slots: + void applyLanguage(); + void reset(); + +private: + static void setLanguage(const QString&); + static QString actualLanguage; + + QPEDialogListener *dl; +}; + + +#endif // SETTINGS_H + |