// This file is generated by kconfig_compiler_kf5 from kwordquiz.kcfg.
// All changes you do to this file will be lost.

#include "prefs.h"

#include <qglobal.h>
#include <QFile>

class PrefsHelper
{
  public:
    PrefsHelper() : q(nullptr) {}
    ~PrefsHelper() { delete q; q = nullptr; }
    PrefsHelper(const PrefsHelper&) = delete;
    PrefsHelper& operator=(const PrefsHelper&) = delete;
    Prefs *q;
};
Q_GLOBAL_STATIC(PrefsHelper, s_globalPrefs)
Prefs *Prefs::self()
{
  if (!s_globalPrefs()->q) {
    new Prefs;
    s_globalPrefs()->q->read();
  }

  return s_globalPrefs()->q;
}

Prefs::Prefs( )
  : KConfigSkeleton( QStringLiteral( "kwordquizrc" ) )
{
  Q_ASSERT(!s_globalPrefs()->q);
  s_globalPrefs()->q = this;
  setCurrentGroup( QStringLiteral( "General" ) );

  KConfigSkeleton::ItemBool  *itemFirstRun;
  itemFirstRun = new KConfigSkeleton::ItemBool( currentGroup(), QStringLiteral( "FirstRun" ), mFirstRun, true );
  addItem( itemFirstRun, QStringLiteral( "FirstRun" ) );
  KConfigSkeleton::ItemBool  *itemShowSearch;
  itemShowSearch = new KConfigSkeleton::ItemBool( currentGroup(), QStringLiteral( "ShowSearch" ), mShowSearch, true );
  addItem( itemShowSearch, QStringLiteral( "ShowSearch" ) );
  QList<KConfigSkeleton::ItemEnum::Choice> valuesStartSession;
  {
    KConfigSkeleton::ItemEnum::Choice choice;
    choice.name = QStringLiteral("Editor");
    valuesStartSession.append( choice );
  }
  {
    KConfigSkeleton::ItemEnum::Choice choice;
    choice.name = QStringLiteral("Flashcard");
    valuesStartSession.append( choice );
  }
  {
    KConfigSkeleton::ItemEnum::Choice choice;
    choice.name = QStringLiteral("MultipleChoice");
    valuesStartSession.append( choice );
  }
  {
    KConfigSkeleton::ItemEnum::Choice choice;
    choice.name = QStringLiteral("QA");
    valuesStartSession.append( choice );
  }
  KConfigSkeleton::ItemEnum  *itemStartSession;
  itemStartSession = new KConfigSkeleton::ItemEnum( currentGroup(), QStringLiteral( "StartSession" ), mStartSession, valuesStartSession, EnumStartSession::Editor );
  addItem( itemStartSession, QStringLiteral( "StartSession" ) );
  QList<KConfigSkeleton::ItemEnum::Choice> valuesPrintStyle;
  {
    KConfigSkeleton::ItemEnum::Choice choice;
    choice.name = QStringLiteral("List");
    valuesPrintStyle.append( choice );
  }
  {
    KConfigSkeleton::ItemEnum::Choice choice;
    choice.name = QStringLiteral("Exam");
    valuesPrintStyle.append( choice );
  }
  {
    KConfigSkeleton::ItemEnum::Choice choice;
    choice.name = QStringLiteral("Flashcard");
    valuesPrintStyle.append( choice );
  }
  KConfigSkeleton::ItemEnum  *itemPrintStyle;
  itemPrintStyle = new KConfigSkeleton::ItemEnum( currentGroup(), QStringLiteral( "PrintStyle" ), mPrintStyle, valuesPrintStyle, EnumPrintStyle::List );
  addItem( itemPrintStyle, QStringLiteral( "PrintStyle" ) );

  setCurrentGroup( QStringLiteral( "Editor" ) );

  KConfigSkeleton::ItemStringList  *itemColumnTitles1;
  itemColumnTitles1 = new KConfigSkeleton::ItemStringList( currentGroup(), QStringLiteral( "ColumnTitles1" ), mColumnTitles1 );
  addItem( itemColumnTitles1, QStringLiteral( "ColumnTitles1" ) );
  KConfigSkeleton::ItemStringList  *itemColumnTitles2;
  itemColumnTitles2 = new KConfigSkeleton::ItemStringList( currentGroup(), QStringLiteral( "ColumnTitles2" ), mColumnTitles2 );
  addItem( itemColumnTitles2, QStringLiteral( "ColumnTitles2" ) );
  KConfigSkeleton::ItemFont  *itemEditorFont;
  itemEditorFont = new KConfigSkeleton::ItemFont( currentGroup(), QStringLiteral( "EditorFont" ), mEditorFont, QFontDatabase::systemFont(QFontDatabase::GeneralFont) );
  addItem( itemEditorFont, QStringLiteral( "EditorFont" ) );
  KConfigSkeleton::ItemBool  *itemEnableBlanks;
  itemEnableBlanks = new KConfigSkeleton::ItemBool( currentGroup(), QStringLiteral( "EnableBlanks" ), mEnableBlanks, false );
  addItem( itemEnableBlanks, QStringLiteral( "EnableBlanks" ) );
  KConfigSkeleton::ItemInt  *itemEnterMove;
  itemEnterMove = new KConfigSkeleton::ItemInt( currentGroup(), QStringLiteral( "EnterMove" ), mEnterMove, 1 );
  addItem( itemEnterMove, QStringLiteral( "EnterMove" ) );
  KConfigSkeleton::ItemString  *itemSpecialCharacters;
  itemSpecialCharacters = new KConfigSkeleton::ItemString( currentGroup(), QStringLiteral( "SpecialCharacters" ), mSpecialCharacters, QStringLiteral( "abcdefghi" ) );
  addItem( itemSpecialCharacters, QStringLiteral( "SpecialCharacters" ) );
  KConfigSkeleton::ItemBool  *itemClearAll;
  itemClearAll = new KConfigSkeleton::ItemBool( currentGroup(), QStringLiteral( "ClearAll" ), mClearAll, false );
  addItem( itemClearAll, QStringLiteral( "ClearAll" ) );
  KConfigSkeleton::ItemBool  *itemClearText;
  itemClearText = new KConfigSkeleton::ItemBool( currentGroup(), QStringLiteral( "ClearText" ), mClearText, true );
  addItem( itemClearText, QStringLiteral( "ClearText" ) );
  KConfigSkeleton::ItemBool  *itemClearImageLink;
  itemClearImageLink = new KConfigSkeleton::ItemBool( currentGroup(), QStringLiteral( "ClearImageLink" ), mClearImageLink, false );
  addItem( itemClearImageLink, QStringLiteral( "ClearImageLink" ) );
  KConfigSkeleton::ItemBool  *itemClearSoundLink;
  itemClearSoundLink = new KConfigSkeleton::ItemBool( currentGroup(), QStringLiteral( "ClearSoundLink" ), mClearSoundLink, false );
  addItem( itemClearSoundLink, QStringLiteral( "ClearSoundLink" ) );

  setCurrentGroup( QStringLiteral( "Quiz" ) );

  KConfigSkeleton::ItemBool  *itemAutoCheck;
  itemAutoCheck = new KConfigSkeleton::ItemBool( currentGroup(), QStringLiteral( "AutoCheck" ), mAutoCheck, false );
  addItem( itemAutoCheck, QStringLiteral( "AutoCheck" ) );
  KConfigSkeleton::ItemBool  *itemAutoFlip;
  itemAutoFlip = new KConfigSkeleton::ItemBool( currentGroup(), QStringLiteral( "AutoFlip" ), mAutoFlip, false );
  addItem( itemAutoFlip, QStringLiteral( "AutoFlip" ) );
  KConfigSkeleton::ItemInt  *itemFlipDelay;
  itemFlipDelay = new KConfigSkeleton::ItemInt( currentGroup(), QStringLiteral( "FlipDelay" ), mFlipDelay, 3 );
  addItem( itemFlipDelay, QStringLiteral( "FlipDelay" ) );
  KConfigSkeleton::ItemBool  *itemHintError;
  itemHintError = new KConfigSkeleton::ItemBool( currentGroup(), QStringLiteral( "HintError" ), mHintError, false );
  addItem( itemHintError, QStringLiteral( "HintError" ) );
  KConfigSkeleton::ItemInt  *itemKeepDiscard;
  itemKeepDiscard = new KConfigSkeleton::ItemInt( currentGroup(), QStringLiteral( "KeepDiscard" ), mKeepDiscard, 1 );
  addItem( itemKeepDiscard, QStringLiteral( "KeepDiscard" ) );
  KConfigSkeleton::ItemInt  *itemMode;
  itemMode = new KConfigSkeleton::ItemInt( currentGroup(), QStringLiteral( "Mode" ), mMode, 1 );
  addItem( itemMode, QStringLiteral( "Mode" ) );
  KConfigSkeleton::ItemBool  *itemPercent;
  itemPercent = new KConfigSkeleton::ItemBool( currentGroup(), QStringLiteral( "Percent" ), mPercent, false );
  addItem( itemPercent, QStringLiteral( "Percent" ) );

  setCurrentGroup( QStringLiteral( "FlashCard" ) );

  KConfigSkeleton::ItemFont  *itemFrontFont;
  itemFrontFont = new KConfigSkeleton::ItemFont( currentGroup(), QStringLiteral( "FrontFont" ), mFrontFont, QFontDatabase::systemFont(QFontDatabase::GeneralFont) );
  addItem( itemFrontFont, QStringLiteral( "FrontFont" ) );
  KConfigSkeleton::ItemColor  *itemFrontTextColor;
  itemFrontTextColor = new KConfigSkeleton::ItemColor( currentGroup(), QStringLiteral( "FrontTextColor" ), mFrontTextColor, Qt::black );
  addItem( itemFrontTextColor, QStringLiteral( "FrontTextColor" ) );
  KConfigSkeleton::ItemColor  *itemFrontCardColor;
  itemFrontCardColor = new KConfigSkeleton::ItemColor( currentGroup(), QStringLiteral( "FrontCardColor" ), mFrontCardColor, Qt::white );
  addItem( itemFrontCardColor, QStringLiteral( "FrontCardColor" ) );
  KConfigSkeleton::ItemColor  *itemFrontFrameColor;
  itemFrontFrameColor = new KConfigSkeleton::ItemColor( currentGroup(), QStringLiteral( "FrontFrameColor" ), mFrontFrameColor, Qt::red );
  addItem( itemFrontFrameColor, QStringLiteral( "FrontFrameColor" ) );
  KConfigSkeleton::ItemFont  *itemBackFont;
  itemBackFont = new KConfigSkeleton::ItemFont( currentGroup(), QStringLiteral( "BackFont" ), mBackFont, QFontDatabase::systemFont(QFontDatabase::GeneralFont) );
  addItem( itemBackFont, QStringLiteral( "BackFont" ) );
  KConfigSkeleton::ItemColor  *itemBackTextColor;
  itemBackTextColor = new KConfigSkeleton::ItemColor( currentGroup(), QStringLiteral( "BackTextColor" ), mBackTextColor, Qt::black );
  addItem( itemBackTextColor, QStringLiteral( "BackTextColor" ) );
  KConfigSkeleton::ItemColor  *itemBackCardColor;
  itemBackCardColor = new KConfigSkeleton::ItemColor( currentGroup(), QStringLiteral( "BackCardColor" ), mBackCardColor, Qt::white );
  addItem( itemBackCardColor, QStringLiteral( "BackCardColor" ) );
  KConfigSkeleton::ItemColor  *itemBackFrameColor;
  itemBackFrameColor = new KConfigSkeleton::ItemColor( currentGroup(), QStringLiteral( "BackFrameColor" ), mBackFrameColor, Qt::blue );
  addItem( itemBackFrameColor, QStringLiteral( "BackFrameColor" ) );

  setCurrentGroup( QStringLiteral( "KNewStuff" ) );

  KConfigSkeleton::ItemPath  *itemProvidersUrl;
  itemProvidersUrl = new KConfigSkeleton::ItemPath( currentGroup(), QStringLiteral( "ProvidersUrl" ), mProvidersUrl, "https://edu.kde.org/contrib/kvtml/providers.xml" );
  addItem( itemProvidersUrl, QStringLiteral( "ProvidersUrl" ) );
  KConfigSkeleton::ItemString  *itemInstallationCommand;
  itemInstallationCommand = new KConfigSkeleton::ItemString( currentGroup(), QStringLiteral( "InstallationCommand" ), mInstallationCommand, QStringLiteral( "kwordquiz %f" ) );
  addItem( itemInstallationCommand, QStringLiteral( "InstallationCommand" ) );
  KConfigSkeleton::ItemPath  *itemInstallPath;
  itemInstallPath = new KConfigSkeleton::ItemPath( currentGroup(), QStringLiteral( "InstallPath" ), mInstallPath, QStringLiteral( "Vocabularies" ) );
  addItem( itemInstallPath, QStringLiteral( "InstallPath" ) );

  setCurrentGroup( QStringLiteral( "Tutor" ) );

  QList<KConfigSkeleton::ItemEnum::Choice> valuesTutorTiming;
  {
    KConfigSkeleton::ItemEnum::Choice choice;
    choice.name = QStringLiteral("FixedInterval");
    valuesTutorTiming.append( choice );
  }
  {
    KConfigSkeleton::ItemEnum::Choice choice;
    choice.name = QStringLiteral("RandomInterval");
    valuesTutorTiming.append( choice );
  }
  KConfigSkeleton::ItemEnum  *itemTutorTiming;
  itemTutorTiming = new KConfigSkeleton::ItemEnum( currentGroup(), QStringLiteral( "TutorTiming" ), mTutorTiming, valuesTutorTiming, EnumTutorTiming::FixedInterval );
  addItem( itemTutorTiming, QStringLiteral( "TutorTiming" ) );
  KConfigSkeleton::ItemInt  *itemTutorEvery;
  itemTutorEvery = new KConfigSkeleton::ItemInt( currentGroup(), QStringLiteral( "TutorEvery" ), mTutorEvery, 10 );
  addItem( itemTutorEvery, QStringLiteral( "TutorEvery" ) );
  KConfigSkeleton::ItemInt  *itemTutorMin;
  itemTutorMin = new KConfigSkeleton::ItemInt( currentGroup(), QStringLiteral( "TutorMin" ), mTutorMin, 20 );
  addItem( itemTutorMin, QStringLiteral( "TutorMin" ) );
  KConfigSkeleton::ItemInt  *itemTutorMax;
  itemTutorMax = new KConfigSkeleton::ItemInt( currentGroup(), QStringLiteral( "TutorMax" ), mTutorMax, 40 );
  addItem( itemTutorMax, QStringLiteral( "TutorMax" ) );
  KConfigSkeleton::ItemRect  *itemTutorFlashCardGeometry;
  itemTutorFlashCardGeometry = new KConfigSkeleton::ItemRect( currentGroup(), QStringLiteral( "TutorFlashCardGeometry" ), mTutorFlashCardGeometry, QRect(2,2,200,80) );
  addItem( itemTutorFlashCardGeometry, QStringLiteral( "TutorFlashCardGeometry" ) );
  QList<KConfigSkeleton::ItemEnum::Choice> valuesTutorCardAppearance;
  {
    KConfigSkeleton::ItemEnum::Choice choice;
    choice.name = QStringLiteral("Native");
    valuesTutorCardAppearance.append( choice );
  }
  {
    KConfigSkeleton::ItemEnum::Choice choice;
    choice.name = QStringLiteral("Minimalistic");
    valuesTutorCardAppearance.append( choice );
  }
  KConfigSkeleton::ItemEnum  *itemTutorCardAppearance;
  itemTutorCardAppearance = new KConfigSkeleton::ItemEnum( currentGroup(), QStringLiteral( "TutorCardAppearance" ), mTutorCardAppearance, valuesTutorCardAppearance, EnumTutorCardAppearance::Native );
  addItem( itemTutorCardAppearance, QStringLiteral( "TutorCardAppearance" ) );
  KConfigSkeleton::ItemString  *itemLastVocabFile;
  itemLastVocabFile = new KConfigSkeleton::ItemString( currentGroup(), QStringLiteral( "LastVocabFile" ), mLastVocabFile );
  addItem( itemLastVocabFile, QStringLiteral( "LastVocabFile" ) );
  KConfigSkeleton::ItemBool  *itemStartExerciseAsSoonAsFileIsLoaded;
  itemStartExerciseAsSoonAsFileIsLoaded = new KConfigSkeleton::ItemBool( currentGroup(), QStringLiteral( "StartExerciseAsSoonAsFileIsLoaded" ), mStartExerciseAsSoonAsFileIsLoaded, true );
  addItem( itemStartExerciseAsSoonAsFileIsLoaded, QStringLiteral( "StartExerciseAsSoonAsFileIsLoaded" ) );
}

Prefs::~Prefs()
{
  if (s_globalPrefs.exists() && !s_globalPrefs.isDestroyed()) {
    s_globalPrefs()->q = nullptr;
  }
}

