Preferences.h
Go to the documentation of this file.00001 #ifndef PREFERENCES_H
00002 #define PREFERENCES_H
00003
00004 #include <stdio.h>
00005 #include <qfile.h>
00006 #include <qfont.h>
00007 #include <qmap.h>
00008 #include <qobject.h>
00009 #include <qtextstream.h>
00010 #include <qstring.h>
00011 #include <qvaluelist.h>
00012 #include <qpe/resource.h>
00013 #include "PreferencesParser.h"
00014 #include "Sequence.h"
00015 #include "Util.h"
00016
00017 class Preferences : public QObject {
00018
00019 Q_OBJECT
00020
00021 public:
00022
00023 static const Q_UINT32 magicNumber( Q_UINT32( 0x77556644 ) );
00024
00025 enum { SHORTEST, SHORT, MEDIUM, LONG, LONGEST };
00026
00027 typedef QValueList<Sequence> SequenceList;
00028
00029 static const uint fontSizeList[];
00030
00031 Preferences();
00032 ~Preferences();
00033
00034 bool load();
00035 bool save();
00036
00037 uint getQuizLength() const;
00038 void setQuizLength( uint quizLength );
00039
00040 void clearRevealingSequences();
00041 void addRevealingSequence( Sequence sequence );
00042 int getRevealingSequence( const QString& seqStr );
00043 void removeRevealingSequence( int index );
00044 void removeRevealingSequence( const QString& seqStr );
00045 int getActiveRevealingSequenceCount();
00046 int getRevealingSequenceCount() const;
00047 Sequence getRevealingSequenceAt( int index );
00048
00049 QString getInterfaceLanguage() const;
00050 void setInterfaceLanguage( const QString& interfaceLanguage );
00051
00052 bool isDigraphEnabled() const;
00053 void setDigraphEnabled( bool isEnabled );
00054
00055 bool areQuizButtonsHidden() const;
00056 void setQuizButtonsHidden( bool areHidden );
00057
00058 bool isAltInTermListShown() const;
00059 void setAltInTermListShown( bool isShown );
00060
00061 QString getFirstLanguage() const;
00062 void setFirstLanguage( const QString& firstLanguage );
00063
00064 QValueList<QString> getStudyLanguages();
00065 bool isStudyLanguage( const QString& language );
00066 void addStudyLanguage( const QString& language );
00067 void removeStudyLanguage( const QString& language );
00068 void clearStudyLanguages();
00069
00070 QString getTestLanguage() const;
00071 void setTestLanguage( const QString& testLanguage );
00072
00073 QString getFontFamily() const;
00074 void setFontFamily( const QString& fontFamily );
00075 QString getDefaultFontFamily() const;
00076 int getDefaultFontSizeModifier() const;
00077 int getFontSizeModifier() const;
00078 void setFontSizeModifier( int fontSizeModifier );
00079
00080 QFont getLargeFont( const QString& language = QString::null ) const;
00081 QFont getMediumFont( const QString& language = QString::null ) const;
00082 QFont getSmallFont( const QString& language = QString::null ) const;
00083 QFont getBestFont( const QString& lang1, const QString& lang2 ) const;
00084
00085 QString getLabelsFontFamily() const;
00086 void setLabelsFontFamily( const QString& labelsFontFamily );
00087 QString getDefaultLabelsFontFamily() const;
00088 int getDefaultLabelsFontSizeModifier() const;
00089 int getLabelsFontSizeModifier() const;
00090 void setLabelsFontSizeModifier( int labelsFontSizeModifier );
00091 QFont getLabelsFont() const;
00092
00093 QString getFontOverrideFamily( const QString& language ) const;
00094 int getFontOverrideSize( const QString& language ) const;
00095 void setFontOverrideFamily( const QString& language, const QString& fontFamily );
00096 void setFontOverrideSize( const QString& language, int fontSize );
00097 bool isFontOverrideFamilyDefined( const QString& language ) const;
00098 bool isFontOverrideSizeDefined( const QString& language ) const;
00099 void clearFontOverrideFamilies();
00100 void clearFontOverrideSizes();
00101
00102 bool isLanguageFilterEnabled() const;
00103 void setLanguageFilterEnabled( bool isEnabled );
00104
00105 bool isFolderOpen( int folderId ) const;
00106 void setFolderOpen( int folderId, bool isOpen );
00107
00108 void setApplicationDirName( const QString& applDir );
00109
00110 int getDefaultAccelerator( Action action );
00111 void setAccelerator( Action action, int accel );
00112 int getAccelerator( Action action );
00113
00114 signals:
00115
00116 void studyLanguageSelected( QString language );
00117 void studyLanguageDeselected( QString language );
00118
00119 private:
00120
00121 void initDefaultKeyboardAccelerators();
00122 QFont getFont( const QString& fontFamily, uint size ) const;
00123
00124 uint quizLength;
00125 SequenceList sequences;
00126
00127 QString interfaceLanguage;
00128 bool digraphEnabled;
00129 bool quizButtonsHidden;
00130 bool altInTermListShown;
00131
00132 QString firstLanguage;
00133 QValueList<QString> studyLanguages;
00134 QString testLanguage;
00135
00136 QString labelsFontFamily;
00137 int labelsFontSizeModifier;
00138
00139 QString fontFamily;
00140 int fontSizeModifier;
00141
00142 QMap<QString,QString> fontOverrideFamilies;
00143 QMap<QString,int> fontOverrideSizes;
00144
00145 bool languageFilterEnabled;
00146
00147 QValueList<int> closedFolders;
00148
00149 QString prefsXmlFilename;
00150 QString prefsFilename;
00151
00152 QMap<int,int> defaultAccel;
00153 QMap<int,int> accel;
00154
00155 };
00156
00157 #endif