// This file is generated by kconfig_compiler from umbrello.kcfg.
// All changes you do to this file will be lost.
#ifndef UMBRELLOSETTINGS_H
#define UMBRELLOSETTINGS_H

#include <kconfigskeleton.h>
#include <kdebug.h>

#include <basictypes.h>
#include <codegenerationpolicy.h>
#include <codegenerators/cpp/cppcodegenerationpolicy.h>
class UmbrelloSettings : public KConfigSkeleton
{
  public:

    static UmbrelloSettings *self();
    ~UmbrelloSettings();

    /**
      Set Geometry
    */
    static
    void setGeometry( const QSize & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "Geometry" ) ))
        self()->mGeometry = v;
    }

    /**
      Get Geometry
    */
    static
    QSize geometry()
    {
      return self()->mGeometry;
    }

    /**
      Set Image Mime Type
    */
    static
    void setImageMimeType( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "imageMimeType" ) ))
        self()->mImageMimeType = v;
    }

    /**
      Get Image Mime Type
    */
    static
    QString imageMimeType()
    {
      return self()->mImageMimeType;
    }

    /**
      Set Undo Support
    */
    static
    void setUndo( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "undo" ) ))
        self()->mUndo = v;
    }

    /**
      Get Undo Support
    */
    static
    bool undo()
    {
      return self()->mUndo;
    }

    /**
      Set Tabbed Diagrams
    */
    static
    void setTabdiagrams( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "tabdiagrams" ) ))
        self()->mTabdiagrams = v;
    }

    /**
      Get Tabbed Diagrams
    */
    static
    bool tabdiagrams()
    {
      return self()->mTabdiagrams;
    }

    /**
      Set New Code Generator
    */
    static
    void setNewcodegen( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "newcodegen" ) ))
        self()->mNewcodegen = v;
    }

    /**
      Get New Code Generator
    */
    static
    bool newcodegen()
    {
      return self()->mNewcodegen;
    }

    /**
      Set Angular Lines
    */
    static
    void setAngularlines( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "angularlines" ) ))
        self()->mAngularlines = v;
    }

    /**
      Get Angular Lines
    */
    static
    bool angularlines()
    {
      return self()->mAngularlines;
    }

    /**
      Set Footer Printing
    */
    static
    void setFooterPrinting( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "footerPrinting" ) ))
        self()->mFooterPrinting = v;
    }

    /**
      Get Footer Printing
    */
    static
    bool footerPrinting()
    {
      return self()->mFooterPrinting;
    }

    /**
      Set Auto Save
    */
    static
    void setAutosave( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "autosave" ) ))
        self()->mAutosave = v;
    }

    /**
      Get Auto Save
    */
    static
    bool autosave()
    {
      return self()->mAutosave;
    }

    /**
      Set Auto Save Time ( Old )
    */
    static
    void setTime( int v )
    {
      if (v < 0)
      {
        kDebug() << "setTime: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 25)
      {
        kDebug() << "setTime: value " << v << " is greater than the maximum value of 25";
        v = 25;
      }

      if (!self()->isImmutable( QString::fromLatin1( "time" ) ))
        self()->mTime = v;
    }

    /**
      Get Auto Save Time ( Old )
    */
    static
    int time()
    {
      return self()->mTime;
    }

    /**
      Set autosavetime
    */
    static
    void setAutosavetime( int v )
    {
      if (v < 0)
      {
        kDebug() << "setAutosavetime: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 25)
      {
        kDebug() << "setAutosavetime: value " << v << " is greater than the maximum value of 25";
        v = 25;
      }

      if (!self()->isImmutable( QString::fromLatin1( "autosavetime" ) ))
        self()->mAutosavetime = v;
    }

    /**
      Get autosavetime
    */
    static
    int autosavetime()
    {
      return self()->mAutosavetime;
    }

    /**
      Set Auto Save Suffix
    */
    static
    void setAutosavesuffix( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "autosavesuffix" ) ))
        self()->mAutosavesuffix = v;
    }

    /**
      Get Auto Save Suffix
    */
    static
    QString autosavesuffix()
    {
      return self()->mAutosavesuffix;
    }

    /**
      Set Load Last
    */
    static
    void setLoadlast( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "loadlast" ) ))
        self()->mLoadlast = v;
    }

    /**
      Get Load Last
    */
    static
    bool loadlast()
    {
      return self()->mLoadlast;
    }

    /**
      Set Diagram To Load at Startup
    */
    static
    void setDiagram( Uml::DiagramType::Enum v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "diagram" ) ))
        self()->mDiagram = v;
    }

    /**
      Get Diagram To Load at Startup
    */
    static
    Uml::DiagramType::Enum diagram()
    {
      return static_cast<Uml::DiagramType::Enum>(self()->mDiagram);
    }

    /**
      Set Default Language at Startup
    */
    static
    void setDefaultLanguage( Uml::ProgrammingLanguage::Enum v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "defaultLanguage" ) ))
        self()->mDefaultLanguage = v;
    }

    /**
      Get Default Language at Startup
    */
    static
    Uml::ProgrammingLanguage::Enum defaultLanguage()
    {
      return static_cast<Uml::ProgrammingLanguage::Enum>(self()->mDefaultLanguage);
    }

    /**
      Set lastFile
    */
    static
    void setLastFile( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "lastFile" ) ))
        self()->mLastFile = v;
    }

    /**
      Get lastFile
    */
    static
    QString lastFile()
    {
      return self()->mLastFile;
    }

    /**
      Set Use UML-2.x Notation
    */
    static
    void setUml2( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "uml2" ) ))
        self()->mUml2 = v;
    }

    /**
      Get Use UML-2.x Notation
    */
    static
    bool uml2()
    {
      return self()->mUml2;
    }

    /**
      Set Use Fill Color
    */
    static
    void setUseFillColor( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "useFillColor" ) ))
        self()->mUseFillColor = v;
    }

    /**
      Get Use Fill Color
    */
    static
    bool useFillColor()
    {
      return self()->mUseFillColor;
    }

    /**
      Set Fill Color
    */
    static
    void setFillColor( const QColor & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "fillColor" ) ))
        self()->mFillColor = v;
    }

    /**
      Get Fill Color
    */
    static
    QColor fillColor()
    {
      return self()->mFillColor;
    }

    /**
      Set Line Color
    */
    static
    void setLineColor( const QColor & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "lineColor" ) ))
        self()->mLineColor = v;
    }

    /**
      Get Line Color
    */
    static
    QColor lineColor()
    {
      return self()->mLineColor;
    }

    /**
      Set Line Width
    */
    static
    void setLineWidth( uint v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "lineWidth" ) ))
        self()->mLineWidth = v;
    }

    /**
      Get Line Width
    */
    static
    uint lineWidth()
    {
      return self()->mLineWidth;
    }

    /**
      Set Text Color
    */
    static
    void setTextColor( const QColor & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "textColor" ) ))
        self()->mTextColor = v;
    }

    /**
      Get Text Color
    */
    static
    QColor textColor()
    {
      return self()->mTextColor;
    }

    /**
      Set Show Doc Window
    */
    static
    void setShowDocWindow( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "showDocWindow" ) ))
        self()->mShowDocWindow = v;
    }

    /**
      Get Show Doc Window
    */
    static
    bool showDocWindow()
    {
      return self()->mShowDocWindow;
    }

    /**
      Set Font
    */
    static
    void setUiFont( const QFont & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "uiFont" ) ))
        self()->mUiFont = v;
    }

    /**
      Get Font
    */
    static
    QFont uiFont()
    {
      return self()->mUiFont;
    }

    /**
      Set Background Color
    */
    static
    void setBackgroundColor( const QColor & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "backgroundColor" ) ))
        self()->mBackgroundColor = v;
    }

    /**
      Get Background Color
    */
    static
    QColor backgroundColor()
    {
      return self()->mBackgroundColor;
    }

    /**
      Set Grid Dot Color
    */
    static
    void setGridDotColor( const QColor & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "gridDotColor" ) ))
        self()->mGridDotColor = v;
    }

    /**
      Get Grid Dot Color
    */
    static
    QColor gridDotColor()
    {
      return self()->mGridDotColor;
    }

    /**
      Set Show Visibility
    */
    static
    void setShowVisibility( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "showVisibility" ) ))
        self()->mShowVisibility = v;
    }

    /**
      Get Show Visibility
    */
    static
    bool showVisibility()
    {
      return self()->mShowVisibility;
    }

    /**
      Set Show Attributes
    */
    static
    void setShowAtts( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "showAtts" ) ))
        self()->mShowAtts = v;
    }

    /**
      Get Show Attributes
    */
    static
    bool showAtts()
    {
      return self()->mShowAtts;
    }

    /**
      Set Show Operations
    */
    static
    void setShowOps( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "showOps" ) ))
        self()->mShowOps = v;
    }

    /**
      Get Show Operations
    */
    static
    bool showOps()
    {
      return self()->mShowOps;
    }

    /**
      Set Show Package
    */
    static
    void setShowPackage( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "showPackage" ) ))
        self()->mShowPackage = v;
    }

    /**
      Get Show Package
    */
    static
    bool showPackage()
    {
      return self()->mShowPackage;
    }

    /**
      Set Show Stereotypes
    */
    static
    void setShowStereoType( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "showStereoType" ) ))
        self()->mShowStereoType = v;
    }

    /**
      Get Show Stereotypes
    */
    static
    bool showStereoType()
    {
      return self()->mShowStereoType;
    }

    /**
      Set Show Attribute Associations
    */
    static
    void setShowAttribAssocs( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "showAttribAssocs" ) ))
        self()->mShowAttribAssocs = v;
    }

    /**
      Get Show Attribute Associations
    */
    static
    bool showAttribAssocs()
    {
      return self()->mShowAttribAssocs;
    }

    /**
      Set Show Public Only
    */
    static
    void setShowPublicOnly( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "showPublicOnly" ) ))
        self()->mShowPublicOnly = v;
    }

    /**
      Get Show Public Only
    */
    static
    bool showPublicOnly()
    {
      return self()->mShowPublicOnly;
    }

    /**
      Set Show Attribute Signature
    */
    static
    void setShowAttSig( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "showAttSig" ) ))
        self()->mShowAttSig = v;
    }

    /**
      Get Show Attribute Signature
    */
    static
    bool showAttSig()
    {
      return self()->mShowAttSig;
    }

    /**
      Set Show Operation Signature
    */
    static
    void setShowOpSig( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "showOpSig" ) ))
        self()->mShowOpSig = v;
    }

    /**
      Get Show Operation Signature
    */
    static
    bool showOpSig()
    {
      return self()->mShowOpSig;
    }

    /**
      Set Default Attribute Scope
    */
    static
    void setDefaultAttributeScope( Uml::Visibility::Enum v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "defaultAttributeScope" ) ))
        self()->mDefaultAttributeScope = v;
    }

    /**
      Get Default Attribute Scope
    */
    static
    Uml::Visibility::Enum defaultAttributeScope()
    {
      return static_cast<Uml::Visibility::Enum>(self()->mDefaultAttributeScope);
    }

    /**
      Set Default Operation Scope
    */
    static
    void setDefaultOperationScope( Uml::Visibility::Enum v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "defaultOperationScope" ) ))
        self()->mDefaultOperationScope = v;
    }

    /**
      Get Default Operation Scope
    */
    static
    Uml::Visibility::Enum defaultOperationScope()
    {
      return static_cast<Uml::Visibility::Enum>(self()->mDefaultOperationScope);
    }

    /**
      Set Height
    */
    static
    void setHeight( int v )
    {

      if (v > 100)
      {
        kDebug() << "setHeight: value " << v << " is greater than the maximum value of 100";
        v = 100;
      }

      if (!self()->isImmutable( QString::fromLatin1( "height" ) ))
        self()->mHeight = v;
    }

    /**
      Get Height
    */
    static
    int height()
    {
      return self()->mHeight;
    }

    /**
      Set Width
    */
    static
    void setWidth( int v )
    {

      if (v > 100)
      {
        kDebug() << "setWidth: value " << v << " is greater than the maximum value of 100";
        v = 100;
      }

      if (!self()->isImmutable( QString::fromLatin1( "width" ) ))
        self()->mWidth = v;
    }

    /**
      Get Width
    */
    static
    int width()
    {
      return self()->mWidth;
    }

    /**
      Set Show Hidden Blocks
    */
    static
    void setShowHiddenBlocks( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "showHiddenBlocks" ) ))
        self()->mShowHiddenBlocks = v;
    }

    /**
      Get Show Hidden Blocks
    */
    static
    bool showHiddenBlocks()
    {
      return self()->mShowHiddenBlocks;
    }

    /**
      Set Highlight Blocks
    */
    static
    void setBlocksAreHighlighted( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "blocksAreHighlighted" ) ))
        self()->mBlocksAreHighlighted = v;
    }

    /**
      Get Highlight Blocks
    */
    static
    bool blocksAreHighlighted()
    {
      return self()->mBlocksAreHighlighted;
    }

    /**
      Set Font
    */
    static
    void setCodeViewerFont( const QFont & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "codeViewerFont" ) ))
        self()->mCodeViewerFont = v;
    }

    /**
      Get Font
    */
    static
    QFont codeViewerFont()
    {
      return self()->mCodeViewerFont;
    }

    /**
      Set Paper Color
    */
    static
    void setPaperColor( const QColor & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "paperColor" ) ))
        self()->mPaperColor = v;
    }

    /**
      Get Paper Color
    */
    static
    QColor paperColor()
    {
      return self()->mPaperColor;
    }

    /**
      Set Font Color
    */
    static
    void setFontColor( const QColor & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "fontColor" ) ))
        self()->mFontColor = v;
    }

    /**
      Get Font Color
    */
    static
    QColor fontColor()
    {
      return self()->mFontColor;
    }

    /**
      Set Selected Color
    */
    static
    void setSelectedColor( const QColor & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "selectedColor" ) ))
        self()->mSelectedColor = v;
    }

    /**
      Get Selected Color
    */
    static
    QColor selectedColor()
    {
      return self()->mSelectedColor;
    }

    /**
      Set Edit Block Color
    */
    static
    void setEditBlockColor( const QColor & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "editBlockColor" ) ))
        self()->mEditBlockColor = v;
    }

    /**
      Get Edit Block Color
    */
    static
    QColor editBlockColor()
    {
      return self()->mEditBlockColor;
    }

    /**
      Set Non Edit Block Color
    */
    static
    void setNonEditBlockColor( const QColor & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "nonEditBlockColor" ) ))
        self()->mNonEditBlockColor = v;
    }

    /**
      Get Non Edit Block Color
    */
    static
    QColor nonEditBlockColor()
    {
      return self()->mNonEditBlockColor;
    }

    /**
      Set UML Object Color
    */
    static
    void setUmlObjectColor( const QColor & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "umlObjectColor" ) ))
        self()->mUmlObjectColor = v;
    }

    /**
      Get UML Object Color
    */
    static
    QColor umlObjectColor()
    {
      return self()->mUmlObjectColor;
    }

    /**
      Set Hidden Color
    */
    static
    void setHiddenColor( const QColor & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "hiddenColor" ) ))
        self()->mHiddenColor = v;
    }

    /**
      Get Hidden Color
    */
    static
    QColor hiddenColor()
    {
      return self()->mHiddenColor;
    }

    /**
      Set Create Artifacts for imported files
    */
    static
    void setCreateArtifacts( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "createArtifacts" ) ))
        self()->mCreateArtifacts = v;
    }

    /**
      Get Create Artifacts for imported files
    */
    static
    bool createArtifacts()
    {
      return self()->mCreateArtifacts;
    }

    /**
      Set Resolve dependencies
    */
    static
    void setResolveDependencies( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "resolveDependencies" ) ))
        self()->mResolveDependencies = v;
    }

    /**
      Get Resolve dependencies
    */
    static
    bool resolveDependencies()
    {
      return self()->mResolveDependencies;
    }

    /**
      Set Support C++11 standard
    */
    static
    void setSupportCPP11( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "supportCPP11" ) ))
        self()->mSupportCPP11 = v;
    }

    /**
      Get Support C++11 standard
    */
    static
    bool supportCPP11()
    {
      return self()->mSupportCPP11;
    }

    /**
      Set Auto Generate Empty Constructors
    */
    static
    void setAutoGenEmptyConstructors( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "autoGenEmptyConstructors" ) ))
        self()->mAutoGenEmptyConstructors = v;
    }

    /**
      Get Auto Generate Empty Constructors
    */
    static
    bool autoGenEmptyConstructors()
    {
      return self()->mAutoGenEmptyConstructors;
    }

    /**
      Set Comment Style
    */
    static
    void setCommentStyle( CodeGenerationPolicy::CommentStyle v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "commentStyle" ) ))
        self()->mCommentStyle = v;
    }

    /**
      Get Comment Style
    */
    static
    CodeGenerationPolicy::CommentStyle commentStyle()
    {
      return static_cast<CodeGenerationPolicy::CommentStyle>(self()->mCommentStyle);
    }

    /**
      Set Default Association Field Scope
    */
    static
    void setDefaultAssocFieldScope( Uml::Visibility::Enum v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "defaultAssocFieldScope" ) ))
        self()->mDefaultAssocFieldScope = v;
    }

    /**
      Get Default Association Field Scope
    */
    static
    Uml::Visibility::Enum defaultAssocFieldScope()
    {
      return static_cast<Uml::Visibility::Enum>(self()->mDefaultAssocFieldScope);
    }

    /**
      Set Default Attribute Accessor Scope
    */
    static
    void setDefaultAttributeAccessorScope( Uml::Visibility::Enum v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "defaultAttributeAccessorScope" ) ))
        self()->mDefaultAttributeAccessorScope = v;
    }

    /**
      Get Default Attribute Accessor Scope
    */
    static
    Uml::Visibility::Enum defaultAttributeAccessorScope()
    {
      return static_cast<Uml::Visibility::Enum>(self()->mDefaultAttributeAccessorScope);
    }

    /**
      Set Force Documentation
    */
    static
    void setForceDoc( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "forceDoc" ) ))
        self()->mForceDoc = v;
    }

    /**
      Get Force Documentation
    */
    static
    bool forceDoc()
    {
      return self()->mForceDoc;
    }

    /**
      Set Force Section Documentation
    */
    static
    void setForceSections( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "forceSections" ) ))
        self()->mForceSections = v;
    }

    /**
      Get Force Section Documentation
    */
    static
    bool forceSections()
    {
      return self()->mForceSections;
    }

    /**
      Set Headings Directory
    */
    static
    void setHeadingsDirectory( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "headingsDirectory" ) ))
        self()->mHeadingsDirectory = v;
    }

    /**
      Get Headings Directory
    */
    static
    QString headingsDirectory()
    {
      return self()->mHeadingsDirectory;
    }

    /**
      Set Include headings
    */
    static
    void setIncludeHeadings( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "includeHeadings" ) ))
        self()->mIncludeHeadings = v;
    }

    /**
      Get Include headings
    */
    static
    bool includeHeadings()
    {
      return self()->mIncludeHeadings;
    }

    /**
      Set Indentation Amount
    */
    static
    void setIndentationAmount( int v )
    {

      if (v > 10)
      {
        kDebug() << "setIndentationAmount: value " << v << " is greater than the maximum value of 10";
        v = 10;
      }

      if (!self()->isImmutable( QString::fromLatin1( "indentationAmount" ) ))
        self()->mIndentationAmount = v;
    }

    /**
      Get Indentation Amount
    */
    static
    int indentationAmount()
    {
      return self()->mIndentationAmount;
    }

    /**
      Set Indentation Type
    */
    static
    void setIndentationType( CodeGenerationPolicy::IndentationType v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "indentationType" ) ))
        self()->mIndentationType = v;
    }

    /**
      Get Indentation Type
    */
    static
    CodeGenerationPolicy::IndentationType indentationType()
    {
      return static_cast<CodeGenerationPolicy::IndentationType>(self()->mIndentationType);
    }

    /**
      Set Line Ending Type
    */
    static
    void setLineEndingType( CodeGenerationPolicy::NewLineType v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "lineEndingType" ) ))
        self()->mLineEndingType = v;
    }

    /**
      Get Line Ending Type
    */
    static
    CodeGenerationPolicy::NewLineType lineEndingType()
    {
      return static_cast<CodeGenerationPolicy::NewLineType>(self()->mLineEndingType);
    }

    /**
      Set Modifier Name Policy
    */
    static
    void setModnamePolicy( CodeGenerationPolicy::ModifyNamePolicy v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "modnamePolicy" ) ))
        self()->mModnamePolicy = v;
    }

    /**
      Get Modifier Name Policy
    */
    static
    CodeGenerationPolicy::ModifyNamePolicy modnamePolicy()
    {
      return static_cast<CodeGenerationPolicy::ModifyNamePolicy>(self()->mModnamePolicy);
    }

    /**
      Set Output Directory
    */
    static
    void setOutputDirectory( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "outputDirectory" ) ))
        self()->mOutputDirectory = v;
    }

    /**
      Get Output Directory
    */
    static
    QString outputDirectory()
    {
      return self()->mOutputDirectory;
    }

    /**
      Set Overwrite Policy
    */
    static
    void setOverwritePolicy( CodeGenerationPolicy::OverwritePolicy v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "overwritePolicy" ) ))
        self()->mOverwritePolicy = v;
    }

    /**
      Get Overwrite Policy
    */
    static
    CodeGenerationPolicy::OverwritePolicy overwritePolicy()
    {
      return static_cast<CodeGenerationPolicy::OverwritePolicy>(self()->mOverwritePolicy);
    }

    /**
      Set Auto Generate Accessors
    */
    static
    void setAutoGenAccessors( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "autoGenAccessors" ) ))
        self()->mAutoGenAccessors = v;
    }

    /**
      Get Auto Generate Accessors
    */
    static
    bool autoGenAccessors()
    {
      return self()->mAutoGenAccessors;
    }

    /**
      Set Inline Accessors
    */
    static
    void setInlineAccessors( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "inlineAccessors" ) ))
        self()->mInlineAccessors = v;
    }

    /**
      Get Inline Accessors
    */
    static
    bool inlineAccessors()
    {
      return self()->mInlineAccessors;
    }

    /**
      Set Inline operations
    */
    static
    void setInlineOps( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "inlineOps" ) ))
        self()->mInlineOps = v;
    }

    /**
      Get Inline operations
    */
    static
    bool inlineOps()
    {
      return self()->mInlineOps;
    }

    /**
      Set Package is namespace
    */
    static
    void setPackageIsNamespace( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "packageIsNamespace" ) ))
        self()->mPackageIsNamespace = v;
    }

    /**
      Get Package is namespace
    */
    static
    bool packageIsNamespace()
    {
      return self()->mPackageIsNamespace;
    }

    /**
      Set Public Accessors
    */
    static
    void setPublicAccessors( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "publicAccessors" ) ))
        self()->mPublicAccessors = v;
    }

    /**
      Get Public Accessors
    */
    static
    bool publicAccessors()
    {
      return self()->mPublicAccessors;
    }

    /**
      Set String Class Name
    */
    static
    void setStringClassName( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "stringClassName" ) ))
        self()->mStringClassName = v;
    }

    /**
      Get String Class Name
    */
    static
    QString stringClassName()
    {
      return self()->mStringClassName;
    }

    /**
      Set String Class Name Include
    */
    static
    void setStringClassNameInclude( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "stringClassNameInclude" ) ))
        self()->mStringClassNameInclude = v;
    }

    /**
      Get String Class Name Include
    */
    static
    QString stringClassNameInclude()
    {
      return self()->mStringClassNameInclude;
    }

    /**
      Set String Include is Global
    */
    static
    void setStringIncludeIsGlobal( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "stringIncludeIsGlobal" ) ))
        self()->mStringIncludeIsGlobal = v;
    }

    /**
      Get String Include is Global
    */
    static
    bool stringIncludeIsGlobal()
    {
      return self()->mStringIncludeIsGlobal;
    }

    /**
      Set Vector Class Name
    */
    static
    void setVectorClassName( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "vectorClassName" ) ))
        self()->mVectorClassName = v;
    }

    /**
      Get Vector Class Name
    */
    static
    QString vectorClassName()
    {
      return self()->mVectorClassName;
    }

    /**
      Set Vector Class Name Include 
    */
    static
    void setVectorClassNameInclude( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "vectorClassNameInclude" ) ))
        self()->mVectorClassNameInclude = v;
    }

    /**
      Get Vector Class Name Include 
    */
    static
    QString vectorClassNameInclude()
    {
      return self()->mVectorClassNameInclude;
    }

    /**
      Set Vector include is global
    */
    static
    void setVectorIncludeIsGlobal( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "vectorIncludeIsGlobal" ) ))
        self()->mVectorIncludeIsGlobal = v;
    }

    /**
      Get Vector include is global
    */
    static
    bool vectorIncludeIsGlobal()
    {
      return self()->mVectorIncludeIsGlobal;
    }

    /**
      Set Virtual Destructors
    */
    static
    void setVirtualDestructors( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "virtualDestructors" ) ))
        self()->mVirtualDestructors = v;
    }

    /**
      Get Virtual Destructors
    */
    static
    bool virtualDestructors()
    {
      return self()->mVirtualDestructors;
    }

    /**
      Set Documentation tags
    */
    static
    void setDocToolTag( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "docToolTag" ) ))
        self()->mDocToolTag = v;
    }

    /**
      Get Documentation tags
    */
    static
    QString docToolTag()
    {
      return self()->mDocToolTag;
    }

    /**
      Set Auto Generate Attribute Accessors ( D ) 
    */
    static
    void setAutoGenerateAttributeAccessorsD( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "autoGenerateAttributeAccessorsD" ) ))
        self()->mAutoGenerateAttributeAccessorsD = v;
    }

    /**
      Get Auto Generate Attribute Accessors ( D ) 
    */
    static
    bool autoGenerateAttributeAccessorsD()
    {
      return self()->mAutoGenerateAttributeAccessorsD;
    }

    /**
      Set Auto Generate Assoc Accessors ( D )
    */
    static
    void setAutoGenerateAssocAccessorsD( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "autoGenerateAssocAccessorsD" ) ))
        self()->mAutoGenerateAssocAccessorsD = v;
    }

    /**
      Get Auto Generate Assoc Accessors ( D )
    */
    static
    bool autoGenerateAssocAccessorsD()
    {
      return self()->mAutoGenerateAssocAccessorsD;
    }

    /**
      Set Build ANT Document (D) 
    */
    static
    void setBuildANTDocumentD( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "buildANTDocumentD" ) ))
        self()->mBuildANTDocumentD = v;
    }

    /**
      Get Build ANT Document (D) 
    */
    static
    bool buildANTDocumentD()
    {
      return self()->mBuildANTDocumentD;
    }

    /**
      Set Auto Generate Attribute Accessors (Java)
    */
    static
    void setAutoGenerateAttributeAccessorsJava( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "autoGenerateAttributeAccessorsJava" ) ))
        self()->mAutoGenerateAttributeAccessorsJava = v;
    }

    /**
      Get Auto Generate Attribute Accessors (Java)
    */
    static
    bool autoGenerateAttributeAccessorsJava()
    {
      return self()->mAutoGenerateAttributeAccessorsJava;
    }

    /**
      Set Auto Generate Assoc Accessors (Java) 
    */
    static
    void setAutoGenerateAssocAccessorsJava( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "autoGenerateAssocAccessorsJava" ) ))
        self()->mAutoGenerateAssocAccessorsJava = v;
    }

    /**
      Get Auto Generate Assoc Accessors (Java) 
    */
    static
    bool autoGenerateAssocAccessorsJava()
    {
      return self()->mAutoGenerateAssocAccessorsJava;
    }

    /**
      Set Build ANT Document (Java) 
    */
    static
    void setBuildANTDocumentJava( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "buildANTDocumentJava" ) ))
        self()->mBuildANTDocumentJava = v;
    }

    /**
      Get Build ANT Document (Java) 
    */
    static
    bool buildANTDocumentJava()
    {
      return self()->mBuildANTDocumentJava;
    }

    /**
      Set Auto Generate Attribute Accessors (Ruby) 
    */
    static
    void setAutoGenerateAttributeAccessorsRuby( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "autoGenerateAttributeAccessorsRuby" ) ))
        self()->mAutoGenerateAttributeAccessorsRuby = v;
    }

    /**
      Get Auto Generate Attribute Accessors (Ruby) 
    */
    static
    bool autoGenerateAttributeAccessorsRuby()
    {
      return self()->mAutoGenerateAttributeAccessorsRuby;
    }

    /**
      Set Auto Generate Assoc Accessors (Ruby)
    */
    static
    void setAutoGenerateAssocAccessorsRuby( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "autoGenerateAssocAccessorsRuby" ) ))
        self()->mAutoGenerateAssocAccessorsRuby = v;
    }

    /**
      Get Auto Generate Assoc Accessors (Ruby)
    */
    static
    bool autoGenerateAssocAccessorsRuby()
    {
      return self()->mAutoGenerateAssocAccessorsRuby;
    }

    /**
      Set Automatic Dot Path
    */
    static
    void setAutoDotPath( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "autoDotPath" ) ))
        self()->mAutoDotPath = v;
    }

    /**
      Get Automatic Dot Path
    */
    static
    bool autoDotPath()
    {
      return self()->mAutoDotPath;
    }

    /**
      Set Dot Path
    */
    static
    void setDotPath( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "dotPath" ) ))
        self()->mDotPath = v;
    }

    /**
      Get Dot Path
    */
    static
    QString dotPath()
    {
      return self()->mDotPath;
    }

    /**
      Set Show Export Layout
    */
    static
    void setShowExportLayout( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "showExportLayout" ) ))
        self()->mShowExportLayout = v;
    }

    /**
      Get Show Export Layout
    */
    static
    bool showExportLayout()
    {
      return self()->mShowExportLayout;
    }

  protected:
    UmbrelloSettings();
    friend class UmbrelloSettingsHelper;


    // General Options
    QSize mGeometry;
    QString mImageMimeType;
    bool mUndo;
    bool mTabdiagrams;
    bool mNewcodegen;
    bool mAngularlines;
    bool mFooterPrinting;
    bool mAutosave;
    int mTime;
    int mAutosavetime;
    QString mAutosavesuffix;
    bool mLoadlast;
    int mDiagram;
    int mDefaultLanguage;
    QString mLastFile;
    bool mUml2;

    // UI Options
    bool mUseFillColor;
    QColor mFillColor;
    QColor mLineColor;
    uint mLineWidth;
    QColor mTextColor;
    bool mShowDocWindow;
    QFont mUiFont;
    QColor mBackgroundColor;
    QColor mGridDotColor;

    // Class Options
    bool mShowVisibility;
    bool mShowAtts;
    bool mShowOps;
    bool mShowPackage;
    bool mShowStereoType;
    bool mShowAttribAssocs;
    bool mShowPublicOnly;
    bool mShowAttSig;
    bool mShowOpSig;
    int mDefaultAttributeScope;
    int mDefaultOperationScope;

    // Code Viewer Options
    int mHeight;
    int mWidth;
    bool mShowHiddenBlocks;
    bool mBlocksAreHighlighted;
    QFont mCodeViewerFont;
    QColor mPaperColor;
    QColor mFontColor;
    QColor mSelectedColor;
    QColor mEditBlockColor;
    QColor mNonEditBlockColor;
    QColor mUmlObjectColor;
    QColor mHiddenColor;

    // Code Importer
    bool mCreateArtifacts;
    bool mResolveDependencies;
    bool mSupportCPP11;

    // Code Generation
    bool mAutoGenEmptyConstructors;
    int mCommentStyle;
    int mDefaultAssocFieldScope;
    int mDefaultAttributeAccessorScope;
    bool mForceDoc;
    bool mForceSections;
    QString mHeadingsDirectory;
    bool mIncludeHeadings;
    int mIndentationAmount;
    int mIndentationType;
    int mLineEndingType;
    int mModnamePolicy;
    QString mOutputDirectory;
    int mOverwritePolicy;

    // CPP Code Generation
    bool mAutoGenAccessors;
    bool mInlineAccessors;
    bool mInlineOps;
    bool mPackageIsNamespace;
    bool mPublicAccessors;
    QString mStringClassName;
    QString mStringClassNameInclude;
    bool mStringIncludeIsGlobal;
    QString mVectorClassName;
    QString mVectorClassNameInclude;
    bool mVectorIncludeIsGlobal;
    bool mVirtualDestructors;
    QString mDocToolTag;

    // D Code Generation
    bool mAutoGenerateAttributeAccessorsD;
    bool mAutoGenerateAssocAccessorsD;
    bool mBuildANTDocumentD;

    // Java Code Generation
    bool mAutoGenerateAttributeAccessorsJava;
    bool mAutoGenerateAssocAccessorsJava;
    bool mBuildANTDocumentJava;

    // Ruby Code Generation
    bool mAutoGenerateAttributeAccessorsRuby;
    bool mAutoGenerateAssocAccessorsRuby;

    // Auto Layout
    bool mAutoDotPath;
    QString mDotPath;
    bool mShowExportLayout;

  private:
};

#endif

