// This file is generated by kconfig_compiler_kf6 from projectbase.kcfg.
// All changes you do to this file will be lost.
#ifndef PROJECTBASE_H
#define PROJECTBASE_H

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

#include <kde-i18n-lists.h>
#include <klocalizedstring.h>

class ProjectBase : public KConfigSkeleton
{
  public:
    enum LangSource { Automatic, Application, Project, Undefined };

    ProjectBase( KSharedConfig::Ptr config = KSharedConfig::openConfig() );
    ~ProjectBase() override;

    /**
      Set ProjectID
    */
    void setProjectID( const QString & v )
    {
      if (!isProjectIDImmutable())
        mProjectID = v;
    }

    /**
      Get ProjectID
    */
    QString projectID() const
    {
      return mProjectID;
    }

    /**
      Is ProjectID Immutable
    */
    bool isProjectIDImmutable() const
    {
      return isImmutable( QStringLiteral( "ProjectID" ) );
    }

    /**
      Set Kind
    */
    void setKind( const QString & v )
    {
      if (!isKindImmutable())
        mKind = v;
    }

    /**
      Get Kind
    */
    QString kind() const
    {
      return mKind;
    }

    /**
      Is Kind Immutable
    */
    bool isKindImmutable() const
    {
      return isImmutable( QStringLiteral( "Kind" ) );
    }

    /**
      Set LangCode
    */
    void setLangCode( const QString & v )
    {
      if (!isLangCodeImmutable())
        mLangCode = v;
    }

    /**
      Get LangCode
    */
    QString langCode() const
    {
      return mLangCode;
    }

    /**
      Is LangCode Immutable
    */
    bool isLangCodeImmutable() const
    {
      return isImmutable( QStringLiteral( "LangCode" ) );
    }

    /**
      Set TargetLangCode
    */
    void setTargetLangCode( const QString & v )
    {
      if (!isTargetLangCodeImmutable())
        mTargetLangCode = v;
    }

    /**
      Get TargetLangCode
    */
    QString targetLangCode() const
    {
      return mTargetLangCode;
    }

    /**
      Is TargetLangCode Immutable
    */
    bool isTargetLangCodeImmutable() const
    {
      return isImmutable( QStringLiteral( "TargetLangCode" ) );
    }

    /**
      Set SourceLangCode
    */
    void setSourceLangCode( const QString & v )
    {
      if (!isSourceLangCodeImmutable())
        mSourceLangCode = v;
    }

    /**
      Get SourceLangCode
    */
    QString sourceLangCode() const
    {
      return mSourceLangCode;
    }

    /**
      Is SourceLangCode Immutable
    */
    bool isSourceLangCodeImmutable() const
    {
      return isImmutable( QStringLiteral( "SourceLangCode" ) );
    }

    /**
      Set MailingList
    */
    void setMailingList( const QString & v )
    {
      if (!isMailingListImmutable())
        mMailingList = v;
    }

    /**
      Get MailingList
    */
    QString mailingList() const
    {
      return mMailingList;
    }

    /**
      Is MailingList Immutable
    */
    bool isMailingListImmutable() const
    {
      return isImmutable( QStringLiteral( "MailingList" ) );
    }

    /**
      Set UserLangTeam
    */
    void setUserLangTeam( const QString & v )
    {
      if (!isUserLangTeamImmutable())
        mUserLangTeam = v;
    }

    /**
      Get UserLangTeam
    */
    QString userLangTeam() const
    {
      return mUserLangTeam;
    }

    /**
      Is UserLangTeam Immutable
    */
    bool isUserLangTeamImmutable() const
    {
      return isImmutable( QStringLiteral( "UserLangTeam" ) );
    }

    /**
      Set OverrideLangTeam
    */
    void setOverrideLangTeam( bool v )
    {
      if (!isOverrideLangTeamImmutable())
        mOverrideLangTeam = v;
    }

    /**
      Get OverrideLangTeam
    */
    bool overrideLangTeam() const
    {
      return mOverrideLangTeam;
    }

    /**
      Is OverrideLangTeam Immutable
    */
    bool isOverrideLangTeamImmutable() const
    {
      return isImmutable( QStringLiteral( "OverrideLangTeam" ) );
    }

    /**
      Set ProjLangTeam
    */
    void setProjLangTeam( const QString & v )
    {
      if (!isProjLangTeamImmutable())
        mProjLangTeam = v;
    }

    /**
      Get ProjLangTeam
    */
    QString projLangTeam() const
    {
      return mProjLangTeam;
    }

    /**
      Is ProjLangTeam Immutable
    */
    bool isProjLangTeamImmutable() const
    {
      return isImmutable( QStringLiteral( "ProjLangTeam" ) );
    }

    /**
      Set LanguageSource
    */
    void setLanguageSource( LangSource v )
    {
      if (!isLanguageSourceImmutable())
        mLanguageSource = int(v);
    }

    /**
      Get LanguageSource
    */
    LangSource languageSource() const
    {
      return static_cast<LangSource>(mLanguageSource);
    }

    /**
      Is LanguageSource Immutable
    */
    bool isLanguageSourceImmutable() const
    {
      return isImmutable( QStringLiteral( "LanguageSource" ) );
    }

    /**
      Set PoBaseDir
    */
    void setPoBaseDir( const QString & v )
    {
      if (!isPoBaseDirImmutable())
        mPoBaseDir = v;
    }

    /**
      Get PoBaseDir
    */
    QString poBaseDir() const
    {
      return mPoBaseDir;
    }

    /**
      Is PoBaseDir Immutable
    */
    bool isPoBaseDirImmutable() const
    {
      return isImmutable( QStringLiteral( "PoBaseDir" ) );
    }

    /**
      Set PotBaseDir
    */
    void setPotBaseDir( const QString & v )
    {
      if (!isPotBaseDirImmutable())
        mPotBaseDir = v;
    }

    /**
      Get PotBaseDir
    */
    QString potBaseDir() const
    {
      return mPotBaseDir;
    }

    /**
      Is PotBaseDir Immutable
    */
    bool isPotBaseDirImmutable() const
    {
      return isImmutable( QStringLiteral( "PotBaseDir" ) );
    }

    /**
      Set BranchDir
    */
    void setBranchDir( const QString & v )
    {
      if (!isBranchDirImmutable())
        mBranchDir = v;
    }

    /**
      Get BranchDir
    */
    QString branchDir() const
    {
      return mBranchDir;
    }

    /**
      Is BranchDir Immutable
    */
    bool isBranchDirImmutable() const
    {
      return isImmutable( QStringLiteral( "BranchDir" ) );
    }

    /**
      Set PotBranchDir
    */
    void setPotBranchDir( const QString & v )
    {
      if (!isPotBranchDirImmutable())
        mPotBranchDir = v;
    }

    /**
      Get PotBranchDir
    */
    QString potBranchDir() const
    {
      return mPotBranchDir;
    }

    /**
      Is PotBranchDir Immutable
    */
    bool isPotBranchDirImmutable() const
    {
      return isImmutable( QStringLiteral( "PotBranchDir" ) );
    }

    /**
      Set AltDir
    */
    void setAltDir( const QString & v )
    {
      if (!isAltDirImmutable())
        mAltDir = v;
    }

    /**
      Get AltDir
    */
    QString altDir() const
    {
      return mAltDir;
    }

    /**
      Is AltDir Immutable
    */
    bool isAltDirImmutable() const
    {
      return isImmutable( QStringLiteral( "AltDir" ) );
    }

    /**
      Set GlossaryTbx
    */
    void setGlossaryTbx( const QString & v )
    {
      if (!isGlossaryTbxImmutable())
        mGlossaryTbx = v;
    }

    /**
      Get GlossaryTbx
    */
    QString glossaryTbx() const
    {
      return mGlossaryTbx;
    }

    /**
      Is GlossaryTbx Immutable
    */
    bool isGlossaryTbxImmutable() const
    {
      return isImmutable( QStringLiteral( "GlossaryTbx" ) );
    }

    /**
      Set MainQA
    */
    void setMainQA( const QString & v )
    {
      if (!isMainQAImmutable())
        mMainQA = v;
    }

    /**
      Get MainQA
    */
    QString mainQA() const
    {
      return mMainQA;
    }

    /**
      Is MainQA Immutable
    */
    bool isMainQAImmutable() const
    {
      return isImmutable( QStringLiteral( "MainQA" ) );
    }

    /**
      Set Accel
    */
    void setAccel( const QString & v )
    {
      if (!isAccelImmutable())
        mAccel = v;
    }

    /**
      Get Accel
    */
    QString accel() const
    {
      return mAccel;
    }

    /**
      Is Accel Immutable
    */
    bool isAccelImmutable() const
    {
      return isImmutable( QStringLiteral( "Accel" ) );
    }

    /**
      Set Markup
    */
    void setMarkup( const QString & v )
    {
      if (!isMarkupImmutable())
        mMarkup = v;
    }

    /**
      Get Markup
    */
    QString markup() const
    {
      return mMarkup;
    }

    /**
      Is Markup Immutable
    */
    bool isMarkupImmutable() const
    {
      return isImmutable( QStringLiteral( "Markup" ) );
    }

    /**
      Set WordWrap
    */
    void setWordWrap( int v )
    {
      if (!isWordWrapImmutable())
        mWordWrap = v;
    }

    /**
      Get WordWrap
    */
    int wordWrap() const
    {
      return mWordWrap;
    }

    /**
      Is WordWrap Immutable
    */
    bool isWordWrapImmutable() const
    {
      return isImmutable( QStringLiteral( "WordWrap" ) );
    }

    /**
      Set CommentsFiles
    */
    void setCommentsFiles( const QStringList & v )
    {
      if (!isCommentsFilesImmutable())
        mCommentsFiles = v;
    }

    /**
      Get CommentsFiles
    */
    QStringList commentsFiles() const
    {
      return mCommentsFiles;
    }

    /**
      Is CommentsFiles Immutable
    */
    bool isCommentsFilesImmutable() const
    {
      return isImmutable( QStringLiteral( "CommentsFiles" ) );
    }

    /**
      Set CommentsTexts
    */
    void setCommentsTexts( const QStringList & v )
    {
      if (!isCommentsTextsImmutable())
        mCommentsTexts = v;
    }

    /**
      Get CommentsTexts
    */
    QStringList commentsTexts() const
    {
      return mCommentsTexts;
    }

    /**
      Is CommentsTexts Immutable
    */
    bool isCommentsTextsImmutable() const
    {
      return isImmutable( QStringLiteral( "CommentsTexts" ) );
    }

  protected:

    // General
    QString mProjectID;
    QString mKind;
    QString mLangCode;
    QString mTargetLangCode;
    QString mSourceLangCode;
    QString mMailingList;
    QString mUserLangTeam;
    bool mOverrideLangTeam;
    QString mProjLangTeam;
    int mLanguageSource;
    QString mPoBaseDir;
    QString mPotBaseDir;
    QString mBranchDir;
    QString mPotBranchDir;
    QString mAltDir;
    QString mGlossaryTbx;
    QString mMainQA;

    // RegExps
    QString mAccel;
    QString mMarkup;
    int mWordWrap;

    // Comments
    QStringList mCommentsFiles;
    QStringList mCommentsTexts;
};

#endif

