// This file is generated by kconfig_compiler_kf5 from languagesettings.kcfg.
// All changes you do to this file will be lost.
#ifndef LANGUAGESETTINGS_H
#define LANGUAGESETTINGS_H

#include <kconfigskeleton.h>
#include <QCoreApplication>
#include <QDebug>

#include <qfontdatabase.h>
class LanguageSettings : public KConfigSkeleton
{
  public:

    LanguageSettings( const QString & locale );
    ~LanguageSettings();

    /**
      Set Keyboard layout for this locale
    */
    void setKeyboardLayout( const QString & v )
    {
      if (!isImmutable( QStringLiteral( "KeyboardLayout" ) ))
        mKeyboardLayout = v;
    }

    /**
      Get Keyboard layout for this locale
    */
    QString keyboardLayout() const
    {
      return mKeyboardLayout;
    }

    /**
      Get Item object corresponding to KeyboardLayout()
    */
    ItemString *keyboardLayoutItem()
    {
      return mKeyboardLayoutItem;
    }

    /**
      Set Spell checker for this language
    */
    void setSpellChecker( const QString & v )
    {
      if (!isImmutable( QStringLiteral( "SpellChecker" ) ))
        mSpellChecker = v;
    }

    /**
      Get Spell checker for this language
    */
    QString spellChecker() const
    {
      return mSpellChecker;
    }

    /**
      Get Item object corresponding to SpellChecker()
    */
    ItemString *spellCheckerItem()
    {
      return mSpellCheckerItem;
    }

    /**
      Set Selected tenses for conjugation practice.
    */
    void setConjugationTenses( const QStringList & v )
    {
      if (!isImmutable( QStringLiteral( "ConjugationTenses" ) ))
        mConjugationTenses = v;
    }

    /**
      Get Selected tenses for conjugation practice.
    */
    QStringList conjugationTenses() const
    {
      return mConjugationTenses;
    }

    /**
      Get Item object corresponding to ConjugationTenses()
    */
    ItemStringList *conjugationTensesItem()
    {
      return mConjugationTensesItem;
    }

    /**
      Set Visible columns in the main editor window.
    */
    void setVisibleColumns( const QList<int> & v )
    {
      if (!isImmutable( QStringLiteral( "VisibleColumns" ) ))
        mVisibleColumns = v;
    }

    /**
      Get Visible columns in the main editor window.
    */
    QList<int> visibleColumns() const
    {
      return mVisibleColumns;
    }

    /**
      Get Item object corresponding to VisibleColumns()
    */
    ItemIntList *visibleColumnsItem()
    {
      return mVisibleColumnsItem;
    }

    /**
      Set The font used during practice
    */
    void setPracticeFont( const QFont & v )
    {
      if (!isImmutable( QStringLiteral( "PracticeFont" ) ))
        mPracticeFont = v;
    }

    /**
      Get The font used during practice
    */
    QFont practiceFont() const
    {
      return mPracticeFont;
    }

    /**
      Get Item object corresponding to PracticeFont()
    */
    ItemFont *practiceFontItem()
    {
      return mPracticeFontItem;
    }

    /**
      Set The font used in the editor
    */
    void setEditorFont( const QFont & v )
    {
      if (!isImmutable( QStringLiteral( "EditorFont" ) ))
        mEditorFont = v;
    }

    /**
      Get The font used in the editor
    */
    QFont editorFont() const
    {
      return mEditorFont;
    }

    /**
      Get Item object corresponding to EditorFont()
    */
    ItemFont *editorFontItem()
    {
      return mEditorFontItem;
    }

  protected:
    QString mParamlocale;

    // Locale $(locale)
    QString mKeyboardLayout;
    QString mSpellChecker;
    QStringList mConjugationTenses;
    QList<int> mVisibleColumns;
    QFont mPracticeFont;
    QFont mEditorFont;

  private:
    ItemString *mKeyboardLayoutItem;
    ItemString *mSpellCheckerItem;
    ItemStringList *mConjugationTensesItem;
    ItemIntList *mVisibleColumnsItem;
    ItemFont *mPracticeFontItem;
    ItemFont *mEditorFontItem;
};

#endif

