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

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

#include <enums/roomsortorder.h>

class QQmlEngine;
class QJSEngine;

class NeoChatConfig : public KConfigSkeleton
{
  Q_OBJECT
  QML_ELEMENT
  QML_SINGLETON
  public:
    class EnumSendMessageWith
    {
      public:
      enum type { Enter, CtrlEnter, COUNT };
    };
    class EnumProxyType
    {
      public:
      enum type { System, HTTP, Socks5, NoProxy, COUNT };
    };

    static NeoChatConfig *self();
    static NeoChatConfig *create(QQmlEngine *, QJSEngine *);
    ~NeoChatConfig() override;

    /**
      Set Show all rooms in the home tab
    */
    static
    void setAllRoomsInHome( bool v )
    {
      if (v != self()->mAllRoomsInHome && !self()->isAllRoomsInHomeImmutable()) {
        self()->mAllRoomsInHome = v;
        Q_EMIT self()->AllRoomsInHomeChanged();
      }
    }

    Q_PROPERTY(bool allRoomsInHome READ allRoomsInHome WRITE setAllRoomsInHome NOTIFY AllRoomsInHomeChanged)
    Q_PROPERTY(bool isAllRoomsInHomeImmutable READ isAllRoomsInHomeImmutable CONSTANT)
    Q_PROPERTY(bool defaultAllRoomsInHomeValue READ defaultAllRoomsInHomeValue CONSTANT)
    /**
      Get Show all rooms in the home tab
    */
    static
    bool allRoomsInHome()
    {
      return self()->mAllRoomsInHome;
    }

    /**
      Is Show all rooms in the home tab Immutable
    */
    static
    bool isAllRoomsInHomeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AllRoomsInHome" ) );
    }

    /**
      Get Show all rooms in the home tab default value
    */
    static
    bool defaultAllRoomsInHomeValue()
    {
        return defaultAllRoomsInHomeValue_helper();
    }

    /**
      Set Collapsed sections in the room list
    */
    static
    void setCollapsedSections( const QList<int> & v )
    {
      if (v != self()->mCollapsedSections && !self()->isCollapsedSectionsImmutable()) {
        self()->mCollapsedSections = v;
        Q_EMIT self()->CollapsedSectionsChanged();
      }
    }

    Q_PROPERTY(QList<int> collapsedSections READ collapsedSections WRITE setCollapsedSections NOTIFY CollapsedSectionsChanged)
    Q_PROPERTY(bool isCollapsedSectionsImmutable READ isCollapsedSectionsImmutable CONSTANT)
    Q_PROPERTY(QList<int> defaultCollapsedSectionsValue READ defaultCollapsedSectionsValue CONSTANT)
    /**
      Get Collapsed sections in the room list
    */
    static
    QList<int> collapsedSections()
    {
      return self()->mCollapsedSections;
    }

    /**
      Is Collapsed sections in the room list Immutable
    */
    static
    bool isCollapsedSectionsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CollapsedSections" ) );
    }

    /**
      Get Collapsed sections in the room list default value
    */
    static
    QList<int> defaultCollapsedSectionsValue()
    {
        return defaultCollapsedSectionsValue_helper();
    }

    /**
      Set Make NeoChat blurry
    */
    static
    void setBlur( bool v )
    {
      if (v != self()->mBlur && !self()->isBlurImmutable()) {
        self()->mBlur = v;
        Q_EMIT self()->BlurChanged();
      }
    }

    Q_PROPERTY(bool blur READ blur WRITE setBlur NOTIFY BlurChanged)
    Q_PROPERTY(bool isBlurImmutable READ isBlurImmutable CONSTANT)
    Q_PROPERTY(bool defaultBlurValue READ defaultBlurValue CONSTANT)
    /**
      Get Make NeoChat blurry
    */
    static
    bool blur()
    {
      return self()->mBlur;
    }

    /**
      Is Make NeoChat blurry Immutable
    */
    static
    bool isBlurImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Blur" ) );
    }

    /**
      Get Make NeoChat blurry default value
    */
    static
    bool defaultBlurValue()
    {
        return defaultBlurValue_helper();
    }

    /**
      Set Background transparency value
    */
    static
    void setTransparency( double v )
    {
      if (v != self()->mTransparency && !self()->isTransparencyImmutable()) {
        self()->mTransparency = v;
        Q_EMIT self()->TransparencyChanged();
      }
    }

    Q_PROPERTY(double transparency READ transparency WRITE setTransparency NOTIFY TransparencyChanged)
    Q_PROPERTY(bool isTransparencyImmutable READ isTransparencyImmutable CONSTANT)
    Q_PROPERTY(double defaultTransparencyValue READ defaultTransparencyValue CONSTANT)
    /**
      Get Background transparency value
    */
    static
    double transparency()
    {
      return self()->mTransparency;
    }

    /**
      Is Background transparency value Immutable
    */
    static
    bool isTransparencyImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Transparency" ) );
    }

    /**
      Get Background transparency value default value
    */
    static
    double defaultTransparencyValue()
    {
        return defaultTransparencyValue_helper();
    }

    /**
      Set Use s/text/replacement syntax to edit your last message.
    */
    static
    void setAllowQuickEdit( bool v )
    {
      if (v != self()->mAllowQuickEdit && !self()->isAllowQuickEditImmutable()) {
        self()->mAllowQuickEdit = v;
        Q_EMIT self()->AllowQuickEditChanged();
      }
    }

    Q_PROPERTY(bool allowQuickEdit READ allowQuickEdit WRITE setAllowQuickEdit NOTIFY AllowQuickEditChanged)
    Q_PROPERTY(bool isAllowQuickEditImmutable READ isAllowQuickEditImmutable CONSTANT)
    Q_PROPERTY(bool defaultAllowQuickEditValue READ defaultAllowQuickEditValue CONSTANT)
    /**
      Get Use s/text/replacement syntax to edit your last message.
    */
    static
    bool allowQuickEdit()
    {
      return self()->mAllowQuickEdit;
    }

    /**
      Is Use s/text/replacement syntax to edit your last message. Immutable
    */
    static
    bool isAllowQuickEditImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AllowQuickEdit" ) );
    }

    /**
      Get Use s/text/replacement syntax to edit your last message. default value
    */
    static
    bool defaultAllowQuickEditValue()
    {
        return defaultAllowQuickEditValue_helper();
    }

    /**
      Set Key combination to send a message
    */
    static
    void setSendMessageWith( int v )
    {
      if (v != self()->mSendMessageWith && !self()->isSendMessageWithImmutable()) {
        self()->mSendMessageWith = v;
        Q_EMIT self()->SendMessageWithChanged();
      }
    }

    Q_PROPERTY(int sendMessageWith READ sendMessageWith WRITE setSendMessageWith NOTIFY SendMessageWithChanged)
    Q_PROPERTY(bool isSendMessageWithImmutable READ isSendMessageWithImmutable CONSTANT)
    /**
      Get Key combination to send a message
    */
    static
    int sendMessageWith()
    {
      return self()->mSendMessageWith;
    }

    /**
      Is Key combination to send a message Immutable
    */
    static
    bool isSendMessageWithImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SendMessageWith" ) );
    }

    /**
      Set "Show your messages on the right
    */
    static
    void setShowLocalMessagesOnRight( bool v )
    {
      if (v != self()->mShowLocalMessagesOnRight && !self()->isShowLocalMessagesOnRightImmutable()) {
        self()->mShowLocalMessagesOnRight = v;
        Q_EMIT self()->ShowLocalMessagesOnRightChanged();
      }
    }

    Q_PROPERTY(bool showLocalMessagesOnRight READ showLocalMessagesOnRight WRITE setShowLocalMessagesOnRight NOTIFY ShowLocalMessagesOnRightChanged)
    Q_PROPERTY(bool isShowLocalMessagesOnRightImmutable READ isShowLocalMessagesOnRightImmutable CONSTANT)
    Q_PROPERTY(bool defaultShowLocalMessagesOnRightValue READ defaultShowLocalMessagesOnRightValue CONSTANT)
    /**
      Get "Show your messages on the right
    */
    static
    bool showLocalMessagesOnRight()
    {
      return self()->mShowLocalMessagesOnRight;
    }

    /**
      Is "Show your messages on the right Immutable
    */
    static
    bool isShowLocalMessagesOnRightImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowLocalMessagesOnRight" ) );
    }

    /**
      Get "Show your messages on the right default value
    */
    static
    bool defaultShowLocalMessagesOnRightValue()
    {
        return defaultShowLocalMessagesOnRightValue_helper();
    }

    /**
      Set RoomDrawerWidth
    */
    static
    void setRoomDrawerWidth( int v )
    {
      if (v != self()->mRoomDrawerWidth && !self()->isRoomDrawerWidthImmutable()) {
        self()->mRoomDrawerWidth = v;
        Q_EMIT self()->RoomDrawerWidthChanged();
      }
    }

    Q_PROPERTY(int roomDrawerWidth READ roomDrawerWidth WRITE setRoomDrawerWidth NOTIFY RoomDrawerWidthChanged)
    Q_PROPERTY(bool isRoomDrawerWidthImmutable READ isRoomDrawerWidthImmutable CONSTANT)
    Q_PROPERTY(int defaultRoomDrawerWidthValue READ defaultRoomDrawerWidthValue CONSTANT)
    /**
      Get RoomDrawerWidth
    */
    static
    int roomDrawerWidth()
    {
      return self()->mRoomDrawerWidth;
    }

    /**
      Is RoomDrawerWidth Immutable
    */
    static
    bool isRoomDrawerWidthImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RoomDrawerWidth" ) );
    }

    /**
      Get RoomDrawerWidth default value
    */
    static
    int defaultRoomDrawerWidthValue()
    {
        return defaultRoomDrawerWidthValue_helper();
    }

    /**
      Set TypingNotifications
    */
    static
    void setTypingNotifications( bool v )
    {
      if (v != self()->mTypingNotifications && !self()->isTypingNotificationsImmutable()) {
        self()->mTypingNotifications = v;
        Q_EMIT self()->TypingNotificationsChanged();
      }
    }

    Q_PROPERTY(bool typingNotifications READ typingNotifications WRITE setTypingNotifications NOTIFY TypingNotificationsChanged)
    Q_PROPERTY(bool isTypingNotificationsImmutable READ isTypingNotificationsImmutable CONSTANT)
    Q_PROPERTY(bool defaultTypingNotificationsValue READ defaultTypingNotificationsValue CONSTANT)
    /**
      Get TypingNotifications
    */
    static
    bool typingNotifications()
    {
      return self()->mTypingNotifications;
    }

    /**
      Is TypingNotifications Immutable
    */
    static
    bool isTypingNotificationsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "TypingNotifications" ) );
    }

    /**
      Get TypingNotifications default value
    */
    static
    bool defaultTypingNotificationsValue()
    {
        return defaultTypingNotificationsValue_helper();
    }

    /**
      Set PublicReadReceipts
    */
    static
    void setPublicReadReceipts( bool v )
    {
      if (v != self()->mPublicReadReceipts && !self()->isPublicReadReceiptsImmutable()) {
        self()->mPublicReadReceipts = v;
        Q_EMIT self()->PublicReadReceiptsChanged();
      }
    }

    Q_PROPERTY(bool publicReadReceipts READ publicReadReceipts WRITE setPublicReadReceipts NOTIFY PublicReadReceiptsChanged)
    Q_PROPERTY(bool isPublicReadReceiptsImmutable READ isPublicReadReceiptsImmutable CONSTANT)
    Q_PROPERTY(bool defaultPublicReadReceiptsValue READ defaultPublicReadReceiptsValue CONSTANT)
    /**
      Get PublicReadReceipts
    */
    static
    bool publicReadReceipts()
    {
      return self()->mPublicReadReceipts;
    }

    /**
      Is PublicReadReceipts Immutable
    */
    static
    bool isPublicReadReceiptsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PublicReadReceipts" ) );
    }

    /**
      Get PublicReadReceipts default value
    */
    static
    bool defaultPublicReadReceiptsValue()
    {
        return defaultPublicReadReceiptsValue_helper();
    }

    /**
      Set Automatic Hide/Unhide Room Information
    */
    static
    void setAutoRoomInfoDrawer( bool v )
    {
      if (v != self()->mAutoRoomInfoDrawer && !self()->isAutoRoomInfoDrawerImmutable()) {
        self()->mAutoRoomInfoDrawer = v;
        Q_EMIT self()->AutoRoomInfoDrawerChanged();
      }
    }

    Q_PROPERTY(bool autoRoomInfoDrawer READ autoRoomInfoDrawer WRITE setAutoRoomInfoDrawer NOTIFY AutoRoomInfoDrawerChanged)
    Q_PROPERTY(bool isAutoRoomInfoDrawerImmutable READ isAutoRoomInfoDrawerImmutable CONSTANT)
    Q_PROPERTY(bool defaultAutoRoomInfoDrawerValue READ defaultAutoRoomInfoDrawerValue CONSTANT)
    /**
      Get Automatic Hide/Unhide Room Information
    */
    static
    bool autoRoomInfoDrawer()
    {
      return self()->mAutoRoomInfoDrawer;
    }

    /**
      Is Automatic Hide/Unhide Room Information Immutable
    */
    static
    bool isAutoRoomInfoDrawerImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AutoRoomInfoDrawer" ) );
    }

    /**
      Get Automatic Hide/Unhide Room Information default value
    */
    static
    bool defaultAutoRoomInfoDrawerValue()
    {
        return defaultAutoRoomInfoDrawerValue_helper();
    }

    /**
      Set Enable developer tools
    */
    static
    void setDeveloperTools( bool v )
    {
      if (v != self()->mDeveloperTools && !self()->isDeveloperToolsImmutable()) {
        self()->mDeveloperTools = v;
        Q_EMIT self()->DeveloperToolsChanged();
      }
    }

    Q_PROPERTY(bool developerTools READ developerTools WRITE setDeveloperTools NOTIFY DeveloperToolsChanged)
    Q_PROPERTY(bool isDeveloperToolsImmutable READ isDeveloperToolsImmutable CONSTANT)
    Q_PROPERTY(bool defaultDeveloperToolsValue READ defaultDeveloperToolsValue CONSTANT)
    /**
      Get Enable developer tools
    */
    static
    bool developerTools()
    {
      return self()->mDeveloperTools;
    }

    /**
      Is Enable developer tools Immutable
    */
    static
    bool isDeveloperToolsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DeveloperTools" ) );
    }

    /**
      Get Enable developer tools default value
    */
    static
    bool defaultDeveloperToolsValue()
    {
        return defaultDeveloperToolsValue_helper();
    }

    /**
      Set Directory last used for saving a file
    */
    static
    void setLastSaveDirectory( const QString & v )
    {
      if (v != self()->mLastSaveDirectory && !self()->isLastSaveDirectoryImmutable()) {
        self()->mLastSaveDirectory = v;
        Q_EMIT self()->LastSaveDirectoryChanged();
      }
    }

    Q_PROPERTY(QString lastSaveDirectory READ lastSaveDirectory WRITE setLastSaveDirectory NOTIFY LastSaveDirectoryChanged)
    Q_PROPERTY(bool isLastSaveDirectoryImmutable READ isLastSaveDirectoryImmutable CONSTANT)
    /**
      Get Directory last used for saving a file
    */
    static
    QString lastSaveDirectory()
    {
      return self()->mLastSaveDirectory;
    }

    /**
      Is Directory last used for saving a file Immutable
    */
    static
    bool isLastSaveDirectoryImmutable()
    {
      return self()->isImmutable( QStringLiteral( "LastSaveDirectory" ) );
    }

    /**
      Set The default setting for a new keyword push rule.
    */
    static
    void setKeywordPushRuleDefault( int v )
    {
      if (v != self()->mKeywordPushRuleDefault && !self()->isKeywordPushRuleDefaultImmutable()) {
        self()->mKeywordPushRuleDefault = v;
        Q_EMIT self()->KeywordPushRuleDefaultChanged();
      }
    }

    Q_PROPERTY(int keywordPushRuleDefault READ keywordPushRuleDefault WRITE setKeywordPushRuleDefault NOTIFY KeywordPushRuleDefaultChanged)
    Q_PROPERTY(bool isKeywordPushRuleDefaultImmutable READ isKeywordPushRuleDefaultImmutable CONSTANT)
    Q_PROPERTY(int defaultKeywordPushRuleDefaultValue READ defaultKeywordPushRuleDefaultValue CONSTANT)
    /**
      Get The default setting for a new keyword push rule.
    */
    static
    int keywordPushRuleDefault()
    {
      return self()->mKeywordPushRuleDefault;
    }

    /**
      Is The default setting for a new keyword push rule. Immutable
    */
    static
    bool isKeywordPushRuleDefaultImmutable()
    {
      return self()->isImmutable( QStringLiteral( "KeywordPushRuleDefault" ) );
    }

    /**
      Get The default setting for a new keyword push rule. default value
    */
    static
    int defaultKeywordPushRuleDefaultValue()
    {
        return defaultKeywordPushRuleDefaultValue_helper();
    }

    /**
      Set Scaling factor for font sizes
    */
    static
    void setFontScale( double v )
    {
      if (v != self()->mFontScale && !self()->isFontScaleImmutable()) {
        self()->mFontScale = v;
        Q_EMIT self()->FontScaleChanged();
      }
    }

    Q_PROPERTY(double fontScale READ fontScale WRITE setFontScale NOTIFY FontScaleChanged)
    Q_PROPERTY(bool isFontScaleImmutable READ isFontScaleImmutable CONSTANT)
    Q_PROPERTY(double defaultFontScaleValue READ defaultFontScaleValue CONSTANT)
    /**
      Get Scaling factor for font sizes
    */
    static
    double fontScale()
    {
      return self()->mFontScale;
    }

    /**
      Is Scaling factor for font sizes Immutable
    */
    static
    bool isFontScaleImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FontScale" ) );
    }

    /**
      Get Scaling factor for font sizes default value
    */
    static
    double defaultFontScaleValue()
    {
        return defaultFontScaleValue_helper();
    }

    /**
      Set Show avatar in the timeline
    */
    static
    void setShowAvatarInTimeline( bool v )
    {
      if (v != self()->mShowAvatarInTimeline && !self()->isShowAvatarInTimelineImmutable()) {
        self()->mShowAvatarInTimeline = v;
        Q_EMIT self()->ShowAvatarInTimelineChanged();
      }
    }

    Q_PROPERTY(bool showAvatarInTimeline READ showAvatarInTimeline WRITE setShowAvatarInTimeline NOTIFY ShowAvatarInTimelineChanged)
    Q_PROPERTY(bool isShowAvatarInTimelineImmutable READ isShowAvatarInTimelineImmutable CONSTANT)
    Q_PROPERTY(bool defaultShowAvatarInTimelineValue READ defaultShowAvatarInTimelineValue CONSTANT)
    /**
      Get Show avatar in the timeline
    */
    static
    bool showAvatarInTimeline()
    {
      return self()->mShowAvatarInTimeline;
    }

    /**
      Is Show avatar in the timeline Immutable
    */
    static
    bool isShowAvatarInTimelineImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowAvatarInTimeline" ) );
    }

    /**
      Get Show avatar in the timeline default value
    */
    static
    bool defaultShowAvatarInTimelineValue()
    {
        return defaultShowAvatarInTimelineValue_helper();
    }

    /**
      Set Use a compact chat layout
    */
    static
    void setCompactLayout( bool v )
    {
      if (v != self()->mCompactLayout && !self()->isCompactLayoutImmutable()) {
        self()->mCompactLayout = v;
        Q_EMIT self()->CompactLayoutChanged();
      }
    }

    Q_PROPERTY(bool compactLayout READ compactLayout WRITE setCompactLayout NOTIFY CompactLayoutChanged)
    Q_PROPERTY(bool isCompactLayoutImmutable READ isCompactLayoutImmutable CONSTANT)
    Q_PROPERTY(bool defaultCompactLayoutValue READ defaultCompactLayoutValue CONSTANT)
    /**
      Get Use a compact chat layout
    */
    static
    bool compactLayout()
    {
      return self()->mCompactLayout;
    }

    /**
      Is Use a compact chat layout Immutable
    */
    static
    bool isCompactLayoutImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CompactLayout" ) );
    }

    /**
      Get Use a compact chat layout default value
    */
    static
    bool defaultCompactLayoutValue()
    {
        return defaultCompactLayoutValue_helper();
    }

    /**
      Set Use a compact room list layout
    */
    static
    void setCompactRoomList( bool v )
    {
      if (v != self()->mCompactRoomList && !self()->isCompactRoomListImmutable()) {
        self()->mCompactRoomList = v;
        Q_EMIT self()->CompactRoomListChanged();
      }
    }

    Q_PROPERTY(bool compactRoomList READ compactRoomList WRITE setCompactRoomList NOTIFY CompactRoomListChanged)
    Q_PROPERTY(bool isCompactRoomListImmutable READ isCompactRoomListImmutable CONSTANT)
    Q_PROPERTY(bool defaultCompactRoomListValue READ defaultCompactRoomListValue CONSTANT)
    /**
      Get Use a compact room list layout
    */
    static
    bool compactRoomList()
    {
      return self()->mCompactRoomList;
    }

    /**
      Is Use a compact room list layout Immutable
    */
    static
    bool isCompactRoomListImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CompactRoomList" ) );
    }

    /**
      Get Use a compact room list layout default value
    */
    static
    bool defaultCompactRoomListValue()
    {
        return defaultCompactRoomListValue_helper();
    }

    /**
      Set The sort order for the rooms in the list.
    */
    static
    void setMarkReadCondition( int v )
    {
      if (v != self()->mMarkReadCondition && !self()->isMarkReadConditionImmutable()) {
        self()->mMarkReadCondition = v;
        Q_EMIT self()->MarkReadConditionChanged();
      }
    }

    Q_PROPERTY(int markReadCondition READ markReadCondition WRITE setMarkReadCondition NOTIFY MarkReadConditionChanged)
    Q_PROPERTY(bool isMarkReadConditionImmutable READ isMarkReadConditionImmutable CONSTANT)
    Q_PROPERTY(int defaultMarkReadConditionValue READ defaultMarkReadConditionValue CONSTANT)
    /**
      Get The sort order for the rooms in the list.
    */
    static
    int markReadCondition()
    {
      return self()->mMarkReadCondition;
    }

    /**
      Is The sort order for the rooms in the list. Immutable
    */
    static
    bool isMarkReadConditionImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MarkReadCondition" ) );
    }

    /**
      Get The sort order for the rooms in the list. default value
    */
    static
    int defaultMarkReadConditionValue()
    {
        return defaultMarkReadConditionValue_helper();
    }

    /**
      Set Show state events in the timeline
    */
    static
    void setShowStateEvent( bool v )
    {
      if (v != self()->mShowStateEvent && !self()->isShowStateEventImmutable()) {
        self()->mShowStateEvent = v;
        Q_EMIT self()->ShowStateEventChanged();
      }
    }

    Q_PROPERTY(bool showStateEvent READ showStateEvent WRITE setShowStateEvent NOTIFY ShowStateEventChanged)
    Q_PROPERTY(bool isShowStateEventImmutable READ isShowStateEventImmutable CONSTANT)
    Q_PROPERTY(bool defaultShowStateEventValue READ defaultShowStateEventValue CONSTANT)
    /**
      Get Show state events in the timeline
    */
    static
    bool showStateEvent()
    {
      return self()->mShowStateEvent;
    }

    /**
      Is Show state events in the timeline Immutable
    */
    static
    bool isShowStateEventImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowStateEvent" ) );
    }

    /**
      Get Show state events in the timeline default value
    */
    static
    bool defaultShowStateEventValue()
    {
        return defaultShowStateEventValue_helper();
    }

    /**
      Set Show leave and join events in the timeline
    */
    static
    void setShowLeaveJoinEvent( bool v )
    {
      if (v != self()->mShowLeaveJoinEvent && !self()->isShowLeaveJoinEventImmutable()) {
        self()->mShowLeaveJoinEvent = v;
        Q_EMIT self()->ShowLeaveJoinEventChanged();
      }
    }

    Q_PROPERTY(bool showLeaveJoinEvent READ showLeaveJoinEvent WRITE setShowLeaveJoinEvent NOTIFY ShowLeaveJoinEventChanged)
    Q_PROPERTY(bool isShowLeaveJoinEventImmutable READ isShowLeaveJoinEventImmutable CONSTANT)
    Q_PROPERTY(bool defaultShowLeaveJoinEventValue READ defaultShowLeaveJoinEventValue CONSTANT)
    /**
      Get Show leave and join events in the timeline
    */
    static
    bool showLeaveJoinEvent()
    {
      return self()->mShowLeaveJoinEvent;
    }

    /**
      Is Show leave and join events in the timeline Immutable
    */
    static
    bool isShowLeaveJoinEventImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowLeaveJoinEvent" ) );
    }

    /**
      Get Show leave and join events in the timeline default value
    */
    static
    bool defaultShowLeaveJoinEventValue()
    {
        return defaultShowLeaveJoinEventValue_helper();
    }

    /**
      Set Show rename events in the timeline
    */
    static
    void setShowRename( bool v )
    {
      if (v != self()->mShowRename && !self()->isShowRenameImmutable()) {
        self()->mShowRename = v;
        Q_EMIT self()->ShowRenameChanged();
      }
    }

    Q_PROPERTY(bool showRename READ showRename WRITE setShowRename NOTIFY ShowRenameChanged)
    Q_PROPERTY(bool isShowRenameImmutable READ isShowRenameImmutable CONSTANT)
    Q_PROPERTY(bool defaultShowRenameValue READ defaultShowRenameValue CONSTANT)
    /**
      Get Show rename events in the timeline
    */
    static
    bool showRename()
    {
      return self()->mShowRename;
    }

    /**
      Is Show rename events in the timeline Immutable
    */
    static
    bool isShowRenameImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowRename" ) );
    }

    /**
      Get Show rename events in the timeline default value
    */
    static
    bool defaultShowRenameValue()
    {
        return defaultShowRenameValue_helper();
    }

    /**
      Set Show avatar update events in the timeline
    */
    static
    void setShowAvatarUpdate( bool v )
    {
      if (v != self()->mShowAvatarUpdate && !self()->isShowAvatarUpdateImmutable()) {
        self()->mShowAvatarUpdate = v;
        Q_EMIT self()->ShowAvatarUpdateChanged();
      }
    }

    Q_PROPERTY(bool showAvatarUpdate READ showAvatarUpdate WRITE setShowAvatarUpdate NOTIFY ShowAvatarUpdateChanged)
    Q_PROPERTY(bool isShowAvatarUpdateImmutable READ isShowAvatarUpdateImmutable CONSTANT)
    Q_PROPERTY(bool defaultShowAvatarUpdateValue READ defaultShowAvatarUpdateValue CONSTANT)
    /**
      Get Show avatar update events in the timeline
    */
    static
    bool showAvatarUpdate()
    {
      return self()->mShowAvatarUpdate;
    }

    /**
      Is Show avatar update events in the timeline Immutable
    */
    static
    bool isShowAvatarUpdateImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowAvatarUpdate" ) );
    }

    /**
      Get Show avatar update events in the timeline default value
    */
    static
    bool defaultShowAvatarUpdateValue()
    {
        return defaultShowAvatarUpdateValue_helper();
    }

    /**
      Set Show deleted messages in the timeline
    */
    static
    void setShowDeletedMessages( bool v )
    {
      if (v != self()->mShowDeletedMessages && !self()->isShowDeletedMessagesImmutable()) {
        self()->mShowDeletedMessages = v;
        Q_EMIT self()->ShowDeletedMessagesChanged();
      }
    }

    Q_PROPERTY(bool showDeletedMessages READ showDeletedMessages WRITE setShowDeletedMessages NOTIFY ShowDeletedMessagesChanged)
    Q_PROPERTY(bool isShowDeletedMessagesImmutable READ isShowDeletedMessagesImmutable CONSTANT)
    Q_PROPERTY(bool defaultShowDeletedMessagesValue READ defaultShowDeletedMessagesValue CONSTANT)
    /**
      Get Show deleted messages in the timeline
    */
    static
    bool showDeletedMessages()
    {
      return self()->mShowDeletedMessages;
    }

    /**
      Is Show deleted messages in the timeline Immutable
    */
    static
    bool isShowDeletedMessagesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowDeletedMessages" ) );
    }

    /**
      Get Show deleted messages in the timeline default value
    */
    static
    bool defaultShowDeletedMessagesValue()
    {
        return defaultShowDeletedMessagesValue_helper();
    }

    /**
      Set Hide images in the timeline
    */
    static
    void setHideImages( bool v )
    {
      if (v != self()->mHideImages && !self()->isHideImagesImmutable()) {
        self()->mHideImages = v;
        Q_EMIT self()->HideImagesChanged();
      }
    }

    Q_PROPERTY(bool hideImages READ hideImages WRITE setHideImages NOTIFY HideImagesChanged)
    Q_PROPERTY(bool isHideImagesImmutable READ isHideImagesImmutable CONSTANT)
    Q_PROPERTY(bool defaultHideImagesValue READ defaultHideImagesValue CONSTANT)
    /**
      Get Hide images in the timeline
    */
    static
    bool hideImages()
    {
      return self()->mHideImages;
    }

    /**
      Is Hide images in the timeline Immutable
    */
    static
    bool isHideImagesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "HideImages" ) );
    }

    /**
      Get Hide images in the timeline default value
    */
    static
    bool defaultHideImagesValue()
    {
        return defaultHideImagesValue_helper();
    }

    /**
      Set Show preview of the links in the chat messages
    */
    static
    void setShowLinkPreview( bool v )
    {
      if (v != self()->mShowLinkPreview && !self()->isShowLinkPreviewImmutable()) {
        self()->mShowLinkPreview = v;
        Q_EMIT self()->ShowLinkPreviewChanged();
      }
    }

    Q_PROPERTY(bool showLinkPreview READ showLinkPreview WRITE setShowLinkPreview NOTIFY ShowLinkPreviewChanged)
    Q_PROPERTY(bool isShowLinkPreviewImmutable READ isShowLinkPreviewImmutable CONSTANT)
    Q_PROPERTY(bool defaultShowLinkPreviewValue READ defaultShowLinkPreviewValue CONSTANT)
    /**
      Get Show preview of the links in the chat messages
    */
    static
    bool showLinkPreview()
    {
      return self()->mShowLinkPreview;
    }

    /**
      Is Show preview of the links in the chat messages Immutable
    */
    static
    bool isShowLinkPreviewImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowLinkPreview" ) );
    }

    /**
      Get Show preview of the links in the chat messages default value
    */
    static
    bool defaultShowLinkPreviewValue()
    {
        return defaultShowLinkPreviewValue_helper();
    }

    /**
      Set Close NeoChat to system tray
    */
    static
    void setSystemTray( bool v )
    {
      if (v != self()->mSystemTray && !self()->isSystemTrayImmutable()) {
        self()->mSystemTray = v;
        Q_EMIT self()->SystemTrayChanged();
      }
    }

    Q_PROPERTY(bool systemTray READ systemTray WRITE setSystemTray NOTIFY SystemTrayChanged)
    Q_PROPERTY(bool isSystemTrayImmutable READ isSystemTrayImmutable CONSTANT)
    Q_PROPERTY(bool defaultSystemTrayValue READ defaultSystemTrayValue CONSTANT)
    /**
      Get Close NeoChat to system tray
    */
    static
    bool systemTray()
    {
      return self()->mSystemTray;
    }

    /**
      Is Close NeoChat to system tray Immutable
    */
    static
    bool isSystemTrayImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SystemTray" ) );
    }

    /**
      Get Close NeoChat to system tray default value
    */
    static
    bool defaultSystemTrayValue()
    {
        return defaultSystemTrayValue_helper();
    }

    /**
      Set Minimize to system tray on startup
    */
    static
    void setMinimizeToSystemTrayOnStartup( bool v )
    {
      if (v != self()->mMinimizeToSystemTrayOnStartup && !self()->isMinimizeToSystemTrayOnStartupImmutable()) {
        self()->mMinimizeToSystemTrayOnStartup = v;
        Q_EMIT self()->MinimizeToSystemTrayOnStartupChanged();
      }
    }

    Q_PROPERTY(bool minimizeToSystemTrayOnStartup READ minimizeToSystemTrayOnStartup WRITE setMinimizeToSystemTrayOnStartup NOTIFY MinimizeToSystemTrayOnStartupChanged)
    Q_PROPERTY(bool isMinimizeToSystemTrayOnStartupImmutable READ isMinimizeToSystemTrayOnStartupImmutable CONSTANT)
    Q_PROPERTY(bool defaultMinimizeToSystemTrayOnStartupValue READ defaultMinimizeToSystemTrayOnStartupValue CONSTANT)
    /**
      Get Minimize to system tray on startup
    */
    static
    bool minimizeToSystemTrayOnStartup()
    {
      return self()->mMinimizeToSystemTrayOnStartup;
    }

    /**
      Is Minimize to system tray on startup Immutable
    */
    static
    bool isMinimizeToSystemTrayOnStartupImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MinimizeToSystemTrayOnStartup" ) );
    }

    /**
      Get Minimize to system tray on startup default value
    */
    static
    bool defaultMinimizeToSystemTrayOnStartupValue()
    {
        return defaultMinimizeToSystemTrayOnStartupValue_helper();
    }

    /**
      Set The maximum width any media item in the timeline can be.
    */
    static
    void setMediaMaxWidth( int v )
    {
      if (v != self()->mMediaMaxWidth && !self()->isMediaMaxWidthImmutable()) {
        self()->mMediaMaxWidth = v;
        Q_EMIT self()->MediaMaxWidthChanged();
      }
    }

    Q_PROPERTY(int mediaMaxWidth READ mediaMaxWidth WRITE setMediaMaxWidth NOTIFY MediaMaxWidthChanged)
    Q_PROPERTY(bool isMediaMaxWidthImmutable READ isMediaMaxWidthImmutable CONSTANT)
    Q_PROPERTY(int defaultMediaMaxWidthValue READ defaultMediaMaxWidthValue CONSTANT)
    /**
      Get The maximum width any media item in the timeline can be.
    */
    static
    int mediaMaxWidth()
    {
      return self()->mMediaMaxWidth;
    }

    /**
      Is The maximum width any media item in the timeline can be. Immutable
    */
    static
    bool isMediaMaxWidthImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MediaMaxWidth" ) );
    }

    /**
      Get The maximum width any media item in the timeline can be. default value
    */
    static
    int defaultMediaMaxWidthValue()
    {
        return defaultMediaMaxWidthValue_helper();
    }

    /**
      Set The maximum height any media item in the timeline can be.
    */
    static
    void setMediaMaxHeight( int v )
    {
      if (v != self()->mMediaMaxHeight && !self()->isMediaMaxHeightImmutable()) {
        self()->mMediaMaxHeight = v;
        Q_EMIT self()->MediaMaxHeightChanged();
      }
    }

    Q_PROPERTY(int mediaMaxHeight READ mediaMaxHeight WRITE setMediaMaxHeight NOTIFY MediaMaxHeightChanged)
    Q_PROPERTY(bool isMediaMaxHeightImmutable READ isMediaMaxHeightImmutable CONSTANT)
    Q_PROPERTY(int defaultMediaMaxHeightValue READ defaultMediaMaxHeightValue CONSTANT)
    /**
      Get The maximum height any media item in the timeline can be.
    */
    static
    int mediaMaxHeight()
    {
      return self()->mMediaMaxHeight;
    }

    /**
      Is The maximum height any media item in the timeline can be. Immutable
    */
    static
    bool isMediaMaxHeightImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MediaMaxHeight" ) );
    }

    /**
      Get The maximum height any media item in the timeline can be. default value
    */
    static
    int defaultMediaMaxHeightValue()
    {
        return defaultMediaMaxHeightValue_helper();
    }

    /**
      Set Show avatar in the room drawer
    */
    static
    void setShowAvatarInRoomDrawer( bool v )
    {
      if (v != self()->mShowAvatarInRoomDrawer && !self()->isShowAvatarInRoomDrawerImmutable()) {
        self()->mShowAvatarInRoomDrawer = v;
        Q_EMIT self()->ShowAvatarInRoomDrawerChanged();
      }
    }

    Q_PROPERTY(bool showAvatarInRoomDrawer READ showAvatarInRoomDrawer WRITE setShowAvatarInRoomDrawer NOTIFY ShowAvatarInRoomDrawerChanged)
    Q_PROPERTY(bool isShowAvatarInRoomDrawerImmutable READ isShowAvatarInRoomDrawerImmutable CONSTANT)
    Q_PROPERTY(bool defaultShowAvatarInRoomDrawerValue READ defaultShowAvatarInRoomDrawerValue CONSTANT)
    /**
      Get Show avatar in the room drawer
    */
    static
    bool showAvatarInRoomDrawer()
    {
      return self()->mShowAvatarInRoomDrawer;
    }

    /**
      Is Show avatar in the room drawer Immutable
    */
    static
    bool isShowAvatarInRoomDrawerImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowAvatarInRoomDrawer" ) );
    }

    /**
      Get Show avatar in the room drawer default value
    */
    static
    bool defaultShowAvatarInRoomDrawerValue()
    {
        return defaultShowAvatarInRoomDrawerValue_helper();
    }

    /**
      Set Save the collapsed state of the room list
    */
    static
    void setCollapsed( bool v )
    {
      if (v != self()->mCollapsed && !self()->isCollapsedImmutable()) {
        self()->mCollapsed = v;
        Q_EMIT self()->CollapsedChanged();
      }
    }

    Q_PROPERTY(bool collapsed READ collapsed WRITE setCollapsed NOTIFY CollapsedChanged)
    Q_PROPERTY(bool isCollapsedImmutable READ isCollapsedImmutable CONSTANT)
    Q_PROPERTY(bool defaultCollapsedValue READ defaultCollapsedValue CONSTANT)
    /**
      Get Save the collapsed state of the room list
    */
    static
    bool collapsed()
    {
      return self()->mCollapsed;
    }

    /**
      Is Save the collapsed state of the room list Immutable
    */
    static
    bool isCollapsedImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Collapsed" ) );
    }

    /**
      Get Save the collapsed state of the room list default value
    */
    static
    bool defaultCollapsedValue()
    {
        return defaultCollapsedValue_helper();
    }

    /**
      Set The sort order for the rooms in the list.
    */
    static
    void setSortOrder( int v )
    {
      if (v != self()->mSortOrder && !self()->isSortOrderImmutable()) {
        self()->mSortOrder = v;
        Q_EMIT self()->SortOrderChanged();
      }
    }

    Q_PROPERTY(int sortOrder READ sortOrder WRITE setSortOrder NOTIFY SortOrderChanged)
    Q_PROPERTY(bool isSortOrderImmutable READ isSortOrderImmutable CONSTANT)
    Q_PROPERTY(int defaultSortOrderValue READ defaultSortOrderValue CONSTANT)
    /**
      Get The sort order for the rooms in the list.
    */
    static
    int sortOrder()
    {
      return self()->mSortOrder;
    }

    /**
      Is The sort order for the rooms in the list. Immutable
    */
    static
    bool isSortOrderImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SortOrder" ) );
    }

    /**
      Get The sort order for the rooms in the list. default value
    */
    static
    int defaultSortOrderValue()
    {
        return defaultSortOrderValue_helper();
    }

    /**
      Set The list of parameter in order to use for custom sorting
    */
    static
    void setCustomSortOrder( const QList<int> & v )
    {
      if (v != self()->mCustomSortOrder && !self()->isCustomSortOrderImmutable()) {
        self()->mCustomSortOrder = v;
        Q_EMIT self()->CustomSortOrderChanged();
      }
    }

    Q_PROPERTY(QList<int> customSortOrder READ customSortOrder WRITE setCustomSortOrder NOTIFY CustomSortOrderChanged)
    Q_PROPERTY(bool isCustomSortOrderImmutable READ isCustomSortOrderImmutable CONSTANT)
    Q_PROPERTY(QList<int> defaultCustomSortOrderValue READ defaultCustomSortOrderValue CONSTANT)
    /**
      Get The list of parameter in order to use for custom sorting
    */
    static
    QList<int> customSortOrder()
    {
      return self()->mCustomSortOrder;
    }

    /**
      Is The list of parameter in order to use for custom sorting Immutable
    */
    static
    bool isCustomSortOrderImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CustomSortOrder" ) );
    }

    /**
      Get The list of parameter in order to use for custom sorting default value
    */
    static
    QList<int> defaultCustomSortOrderValue()
    {
        return defaultCustomSortOrderValue_helper();
    }

    /**
      Set Show avatar in the room information
    */
    static
    void setShowAvatarInRoomInfo( bool v )
    {
      if (v != self()->mShowAvatarInRoomInfo && !self()->isShowAvatarInRoomInfoImmutable()) {
        self()->mShowAvatarInRoomInfo = v;
        Q_EMIT self()->ShowAvatarInRoomInfoChanged();
      }
    }

    Q_PROPERTY(bool showAvatarInRoomInfo READ showAvatarInRoomInfo WRITE setShowAvatarInRoomInfo NOTIFY ShowAvatarInRoomInfoChanged)
    Q_PROPERTY(bool isShowAvatarInRoomInfoImmutable READ isShowAvatarInRoomInfoImmutable CONSTANT)
    Q_PROPERTY(bool defaultShowAvatarInRoomInfoValue READ defaultShowAvatarInRoomInfoValue CONSTANT)
    /**
      Get Show avatar in the room information
    */
    static
    bool showAvatarInRoomInfo()
    {
      return self()->mShowAvatarInRoomInfo;
    }

    /**
      Is Show avatar in the room information Immutable
    */
    static
    bool isShowAvatarInRoomInfoImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowAvatarInRoomInfo" ) );
    }

    /**
      Get Show avatar in the room information default value
    */
    static
    bool defaultShowAvatarInRoomInfoValue()
    {
        return defaultShowAvatarInRoomInfoValue_helper();
    }

    /**
      Set The type of proxy used by the application.
    */
    static
    void setProxyType( int v )
    {
      if (v != self()->mProxyType && !self()->isProxyTypeImmutable()) {
        self()->mProxyType = v;
        Q_EMIT self()->ProxyTypeChanged();
      }
    }

    Q_PROPERTY(int proxyType READ proxyType WRITE setProxyType NOTIFY ProxyTypeChanged)
    Q_PROPERTY(bool isProxyTypeImmutable READ isProxyTypeImmutable CONSTANT)
    /**
      Get The type of proxy used by the application.
    */
    static
    int proxyType()
    {
      return self()->mProxyType;
    }

    /**
      Is The type of proxy used by the application. Immutable
    */
    static
    bool isProxyTypeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ProxyType" ) );
    }

    /**
      Set IP or hostname of the proxy
    */
    static
    void setProxyHost( const QString & v )
    {
      if (v != self()->mProxyHost && !self()->isProxyHostImmutable()) {
        self()->mProxyHost = v;
        Q_EMIT self()->ProxyHostChanged();
      }
    }

    Q_PROPERTY(QString proxyHost READ proxyHost WRITE setProxyHost NOTIFY ProxyHostChanged)
    Q_PROPERTY(bool isProxyHostImmutable READ isProxyHostImmutable CONSTANT)
    Q_PROPERTY(QString defaultProxyHostValue READ defaultProxyHostValue CONSTANT)
    /**
      Get IP or hostname of the proxy
    */
    static
    QString proxyHost()
    {
      return self()->mProxyHost;
    }

    /**
      Is IP or hostname of the proxy Immutable
    */
    static
    bool isProxyHostImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ProxyHost" ) );
    }

    /**
      Get IP or hostname of the proxy default value
    */
    static
    QString defaultProxyHostValue()
    {
        return defaultProxyHostValue_helper();
    }

    /**
      Set The port number of the proxy
    */
    static
    void setProxyPort( int v )
    {
      if (v != self()->mProxyPort && !self()->isProxyPortImmutable()) {
        self()->mProxyPort = v;
        Q_EMIT self()->ProxyPortChanged();
      }
    }

    Q_PROPERTY(int proxyPort READ proxyPort WRITE setProxyPort NOTIFY ProxyPortChanged)
    Q_PROPERTY(bool isProxyPortImmutable READ isProxyPortImmutable CONSTANT)
    Q_PROPERTY(int defaultProxyPortValue READ defaultProxyPortValue CONSTANT)
    /**
      Get The port number of the proxy
    */
    static
    int proxyPort()
    {
      return self()->mProxyPort;
    }

    /**
      Is The port number of the proxy Immutable
    */
    static
    bool isProxyPortImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ProxyPort" ) );
    }

    /**
      Get The port number of the proxy default value
    */
    static
    int defaultProxyPortValue()
    {
        return defaultProxyPortValue_helper();
    }

    /**
      Set The user of the proxy
    */
    static
    void setProxyUser( const QString & v )
    {
      if (v != self()->mProxyUser && !self()->isProxyUserImmutable()) {
        self()->mProxyUser = v;
        Q_EMIT self()->ProxyUserChanged();
      }
    }

    Q_PROPERTY(QString proxyUser READ proxyUser WRITE setProxyUser NOTIFY ProxyUserChanged)
    Q_PROPERTY(bool isProxyUserImmutable READ isProxyUserImmutable CONSTANT)
    /**
      Get The user of the proxy
    */
    static
    QString proxyUser()
    {
      return self()->mProxyUser;
    }

    /**
      Is The user of the proxy Immutable
    */
    static
    bool isProxyUserImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ProxyUser" ) );
    }

    /**
      Set The password of the proxy
    */
    static
    void setProxyPassword( const QString & v )
    {
      if (v != self()->mProxyPassword && !self()->isProxyPasswordImmutable()) {
        self()->mProxyPassword = v;
        Q_EMIT self()->ProxyPasswordChanged();
      }
    }

    Q_PROPERTY(QString proxyPassword READ proxyPassword WRITE setProxyPassword NOTIFY ProxyPasswordChanged)
    Q_PROPERTY(bool isProxyPasswordImmutable READ isProxyPasswordImmutable CONSTANT)
    /**
      Get The password of the proxy
    */
    static
    QString proxyPassword()
    {
      return self()->mProxyPassword;
    }

    /**
      Is The password of the proxy Immutable
    */
    static
    bool isProxyPasswordImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ProxyPassword" ) );
    }

    /**
      Set Don't hide any events in the timeline
    */
    static
    void setShowAllEvents( bool v )
    {
      if (v != self()->mShowAllEvents && !self()->isShowAllEventsImmutable()) {
        self()->mShowAllEvents = v;
        Q_EMIT self()->ShowAllEventsChanged();
      }
    }

    Q_PROPERTY(bool showAllEvents READ showAllEvents WRITE setShowAllEvents NOTIFY ShowAllEventsChanged)
    Q_PROPERTY(bool isShowAllEventsImmutable READ isShowAllEventsImmutable CONSTANT)
    Q_PROPERTY(bool defaultShowAllEventsValue READ defaultShowAllEventsValue CONSTANT)
    /**
      Get Don't hide any events in the timeline
    */
    static
    bool showAllEvents()
    {
      return self()->mShowAllEvents;
    }

    /**
      Is Don't hide any events in the timeline Immutable
    */
    static
    bool isShowAllEventsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowAllEvents" ) );
    }

    /**
      Get Don't hide any events in the timeline default value
    */
    static
    bool defaultShowAllEventsValue()
    {
        return defaultShowAllEventsValue_helper();
    }

    /**
      Set Send relations to any event, including state events and events normally hidden.
    */
    static
    void setRelateAnyEvent( bool v )
    {
      if (v != self()->mRelateAnyEvent && !self()->isRelateAnyEventImmutable()) {
        self()->mRelateAnyEvent = v;
        Q_EMIT self()->RelateAnyEventChanged();
      }
    }

    Q_PROPERTY(bool relateAnyEvent READ relateAnyEvent WRITE setRelateAnyEvent NOTIFY RelateAnyEventChanged)
    Q_PROPERTY(bool isRelateAnyEventImmutable READ isRelateAnyEventImmutable CONSTANT)
    Q_PROPERTY(bool defaultRelateAnyEventValue READ defaultRelateAnyEventValue CONSTANT)
    /**
      Get Send relations to any event, including state events and events normally hidden.
    */
    static
    bool relateAnyEvent()
    {
      return self()->mRelateAnyEvent;
    }

    /**
      Is Send relations to any event, including state events and events normally hidden. Immutable
    */
    static
    bool isRelateAnyEventImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RelateAnyEvent" ) );
    }

    /**
      Get Send relations to any event, including state events and events normally hidden. default value
    */
    static
    bool defaultRelateAnyEventValue()
    {
        return defaultRelateAnyEventValue_helper();
    }

    /**
      Set Always allow device verification
    */
    static
    void setAlwaysVerifyDevice( bool v )
    {
      if (v != self()->mAlwaysVerifyDevice && !self()->isAlwaysVerifyDeviceImmutable()) {
        self()->mAlwaysVerifyDevice = v;
        Q_EMIT self()->AlwaysVerifyDeviceChanged();
      }
    }

    Q_PROPERTY(bool alwaysVerifyDevice READ alwaysVerifyDevice WRITE setAlwaysVerifyDevice NOTIFY AlwaysVerifyDeviceChanged)
    Q_PROPERTY(bool isAlwaysVerifyDeviceImmutable READ isAlwaysVerifyDeviceImmutable CONSTANT)
    Q_PROPERTY(bool defaultAlwaysVerifyDeviceValue READ defaultAlwaysVerifyDeviceValue CONSTANT)
    /**
      Get Always allow device verification
    */
    static
    bool alwaysVerifyDevice()
    {
      return self()->mAlwaysVerifyDevice;
    }

    /**
      Is Always allow device verification Immutable
    */
    static
    bool isAlwaysVerifyDeviceImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AlwaysVerifyDevice" ) );
    }

    /**
      Get Always allow device verification default value
    */
    static
    bool defaultAlwaysVerifyDeviceValue()
    {
        return defaultAlwaysVerifyDeviceValue_helper();
    }

    /**
      Set Show the current focus item in the window title
    */
    static
    void setWindowTitleFocus( bool v )
    {
      if (v != self()->mWindowTitleFocus && !self()->isWindowTitleFocusImmutable()) {
        self()->mWindowTitleFocus = v;
        Q_EMIT self()->WindowTitleFocusChanged();
      }
    }

    Q_PROPERTY(bool windowTitleFocus READ windowTitleFocus WRITE setWindowTitleFocus NOTIFY WindowTitleFocusChanged)
    Q_PROPERTY(bool isWindowTitleFocusImmutable READ isWindowTitleFocusImmutable CONSTANT)
    Q_PROPERTY(bool defaultWindowTitleFocusValue READ defaultWindowTitleFocusValue CONSTANT)
    /**
      Get Show the current focus item in the window title
    */
    static
    bool windowTitleFocus()
    {
      return self()->mWindowTitleFocus;
    }

    /**
      Is Show the current focus item in the window title Immutable
    */
    static
    bool isWindowTitleFocusImmutable()
    {
      return self()->isImmutable( QStringLiteral( "WindowTitleFocus" ) );
    }

    /**
      Get Show the current focus item in the window title default value
    */
    static
    bool defaultWindowTitleFocusValue()
    {
        return defaultWindowTitleFocusValue_helper();
    }

    /**
      Set Enable audio and video calling
    */
    static
    void setCalls( bool v )
    {
      if (v != self()->mCalls && !self()->isCallsImmutable()) {
        self()->mCalls = v;
        Q_EMIT self()->CallsChanged();
      }
    }

    Q_PROPERTY(bool calls READ calls WRITE setCalls NOTIFY CallsChanged)
    Q_PROPERTY(bool isCallsImmutable READ isCallsImmutable CONSTANT)
    Q_PROPERTY(bool defaultCallsValue READ defaultCallsValue CONSTANT)
    /**
      Get Enable audio and video calling
    */
    static
    bool calls()
    {
      return self()->mCalls;
    }

    /**
      Is Enable audio and video calling Immutable
    */
    static
    bool isCallsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Calls" ) );
    }

    /**
      Get Enable audio and video calling default value
    */
    static
    bool defaultCallsValue()
    {
        return defaultCallsValue_helper();
    }

    /**
      Set Enable rich text chat bar
    */
    static
    void setRichChatBar( bool v )
    {
      if (v != self()->mRichChatBar && !self()->isRichChatBarImmutable()) {
        self()->mRichChatBar = v;
        Q_EMIT self()->RichChatBarChanged();
      }
    }

    Q_PROPERTY(bool richChatBar READ richChatBar WRITE setRichChatBar NOTIFY RichChatBarChanged)
    Q_PROPERTY(bool isRichChatBarImmutable READ isRichChatBarImmutable CONSTANT)
    Q_PROPERTY(bool defaultRichChatBarValue READ defaultRichChatBarValue CONSTANT)
    /**
      Get Enable rich text chat bar
    */
    static
    bool richChatBar()
    {
      return self()->mRichChatBar;
    }

    /**
      Is Enable rich text chat bar Immutable
    */
    static
    bool isRichChatBarImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RichChatBar" ) );
    }

    /**
      Get Enable rich text chat bar default value
    */
    static
    bool defaultRichChatBarValue()
    {
        return defaultRichChatBarValue_helper();
    }

    /**
      Set Reject unknown invites
    */
    static
    void setRejectUnknownInvites( bool v )
    {
      if (v != self()->mRejectUnknownInvites && !self()->isRejectUnknownInvitesImmutable()) {
        self()->mRejectUnknownInvites = v;
        Q_EMIT self()->RejectUnknownInvitesChanged();
      }
    }

    Q_PROPERTY(bool rejectUnknownInvites READ rejectUnknownInvites WRITE setRejectUnknownInvites NOTIFY RejectUnknownInvitesChanged)
    Q_PROPERTY(bool isRejectUnknownInvitesImmutable READ isRejectUnknownInvitesImmutable CONSTANT)
    Q_PROPERTY(bool defaultRejectUnknownInvitesValue READ defaultRejectUnknownInvitesValue CONSTANT)
    /**
      Get Reject unknown invites
    */
    static
    bool rejectUnknownInvites()
    {
      return self()->mRejectUnknownInvites;
    }

    /**
      Is Reject unknown invites Immutable
    */
    static
    bool isRejectUnknownInvitesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RejectUnknownInvites" ) );
    }

    /**
      Get Reject unknown invites default value
    */
    static
    bool defaultRejectUnknownInvitesValue()
    {
        return defaultRejectUnknownInvitesValue_helper();
    }

    /**
      Set Prefer encrypting chats
    */
    static
    void setPreferUsingEncryption( bool v )
    {
      if (v != self()->mPreferUsingEncryption && !self()->isPreferUsingEncryptionImmutable()) {
        self()->mPreferUsingEncryption = v;
        Q_EMIT self()->PreferUsingEncryptionChanged();
      }
    }

    Q_PROPERTY(bool preferUsingEncryption READ preferUsingEncryption WRITE setPreferUsingEncryption NOTIFY PreferUsingEncryptionChanged)
    Q_PROPERTY(bool isPreferUsingEncryptionImmutable READ isPreferUsingEncryptionImmutable CONSTANT)
    Q_PROPERTY(bool defaultPreferUsingEncryptionValue READ defaultPreferUsingEncryptionValue CONSTANT)
    /**
      Get Prefer encrypting chats
    */
    static
    bool preferUsingEncryption()
    {
      return self()->mPreferUsingEncryption;
    }

    /**
      Is Prefer encrypting chats Immutable
    */
    static
    bool isPreferUsingEncryptionImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PreferUsingEncryption" ) );
    }

    /**
      Get Prefer encrypting chats default value
    */
    static
    bool defaultPreferUsingEncryptionValue()
    {
        return defaultPreferUsingEncryptionValue_helper();
    }


    enum {
      signalAllRoomsInHomeChanged = 1,
      signalCollapsedSectionsChanged = 2,
      signalBlurChanged = 3,
      signalTransparencyChanged = 4,
      signalAllowQuickEditChanged = 5,
      signalSendMessageWithChanged = 6,
      signalShowLocalMessagesOnRightChanged = 7,
      signalRoomDrawerWidthChanged = 8,
      signalTypingNotificationsChanged = 9,
      signalPublicReadReceiptsChanged = 10,
      signalAutoRoomInfoDrawerChanged = 11,
      signalDeveloperToolsChanged = 12,
      signalLastSaveDirectoryChanged = 13,
      signalKeywordPushRuleDefaultChanged = 14,
      signalFontScaleChanged = 15,
      signalShowAvatarInTimelineChanged = 16,
      signalCompactLayoutChanged = 17,
      signalCompactRoomListChanged = 18,
      signalMarkReadConditionChanged = 19,
      signalShowStateEventChanged = 20,
      signalShowLeaveJoinEventChanged = 21,
      signalShowRenameChanged = 22,
      signalShowAvatarUpdateChanged = 23,
      signalShowDeletedMessagesChanged = 24,
      signalHideImagesChanged = 25,
      signalShowLinkPreviewChanged = 26,
      signalSystemTrayChanged = 27,
      signalMinimizeToSystemTrayOnStartupChanged = 28,
      signalMediaMaxWidthChanged = 29,
      signalMediaMaxHeightChanged = 30,
      signalShowAvatarInRoomDrawerChanged = 31,
      signalCollapsedChanged = 32,
      signalSortOrderChanged = 33,
      signalCustomSortOrderChanged = 34,
      signalShowAvatarInRoomInfoChanged = 35,
      signalProxyTypeChanged = 36,
      signalProxyHostChanged = 37,
      signalProxyPortChanged = 38,
      signalProxyUserChanged = 39,
      signalProxyPasswordChanged = 40,
      signalShowAllEventsChanged = 41,
      signalRelateAnyEventChanged = 42,
      signalAlwaysVerifyDeviceChanged = 43,
      signalWindowTitleFocusChanged = 44,
      signalCallsChanged = 45,
      signalRichChatBarChanged = 46,
      signalRejectUnknownInvitesChanged = 47,
      signalPreferUsingEncryptionChanged = 48
    };

  Q_SIGNALS:
    void AllRoomsInHomeChanged();

    void CollapsedSectionsChanged();

    void BlurChanged();

    void TransparencyChanged();

    void AllowQuickEditChanged();

    void SendMessageWithChanged();

    void ShowLocalMessagesOnRightChanged();

    void RoomDrawerWidthChanged();

    void TypingNotificationsChanged();

    void PublicReadReceiptsChanged();

    void AutoRoomInfoDrawerChanged();

    void DeveloperToolsChanged();

    void LastSaveDirectoryChanged();

    void KeywordPushRuleDefaultChanged();

    void FontScaleChanged();

    void ShowAvatarInTimelineChanged();

    void CompactLayoutChanged();

    void CompactRoomListChanged();

    void MarkReadConditionChanged();

    void ShowStateEventChanged();

    void ShowLeaveJoinEventChanged();

    void ShowRenameChanged();

    void ShowAvatarUpdateChanged();

    void ShowDeletedMessagesChanged();

    void HideImagesChanged();

    void ShowLinkPreviewChanged();

    void SystemTrayChanged();

    void MinimizeToSystemTrayOnStartupChanged();

    void MediaMaxWidthChanged();

    void MediaMaxHeightChanged();

    void ShowAvatarInRoomDrawerChanged();

    void CollapsedChanged();

    void SortOrderChanged();

    void CustomSortOrderChanged();

    void ShowAvatarInRoomInfoChanged();

    void ProxyTypeChanged();

    void ProxyHostChanged();

    void ProxyPortChanged();

    void ProxyUserChanged();

    void ProxyPasswordChanged();

    void ShowAllEventsChanged();

    void RelateAnyEventChanged();

    void AlwaysVerifyDeviceChanged();

    void WindowTitleFocusChanged();

    void CallsChanged();

    void RichChatBarChanged();

    void RejectUnknownInvitesChanged();

    void PreferUsingEncryptionChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:
    NeoChatConfig(QObject *parent = nullptr);
    friend class NeoChatConfigHelper;


    // General
    bool mAllRoomsInHome;
    static bool defaultAllRoomsInHomeValue_helper();
    QList<int> mCollapsedSections;
    static QList<int> defaultCollapsedSectionsValue_helper();
    bool mBlur;
    static bool defaultBlurValue_helper();
    double mTransparency;
    static double defaultTransparencyValue_helper();
    bool mAllowQuickEdit;
    static bool defaultAllowQuickEditValue_helper();
    int mSendMessageWith;
    static int defaultSendMessageWithValue_helper();
    bool mShowLocalMessagesOnRight;
    static bool defaultShowLocalMessagesOnRightValue_helper();
    int mRoomDrawerWidth;
    static int defaultRoomDrawerWidthValue_helper();
    bool mTypingNotifications;
    static bool defaultTypingNotificationsValue_helper();
    bool mPublicReadReceipts;
    static bool defaultPublicReadReceiptsValue_helper();
    bool mAutoRoomInfoDrawer;
    static bool defaultAutoRoomInfoDrawerValue_helper();
    bool mDeveloperTools;
    static bool defaultDeveloperToolsValue_helper();
    QString mLastSaveDirectory;
    static QString defaultLastSaveDirectoryValue_helper();
    int mKeywordPushRuleDefault;
    static int defaultKeywordPushRuleDefaultValue_helper();

    // Timeline
    double mFontScale;
    static double defaultFontScaleValue_helper();
    bool mShowAvatarInTimeline;
    static bool defaultShowAvatarInTimelineValue_helper();
    bool mCompactLayout;
    static bool defaultCompactLayoutValue_helper();
    bool mCompactRoomList;
    static bool defaultCompactRoomListValue_helper();
    int mMarkReadCondition;
    static int defaultMarkReadConditionValue_helper();
    bool mShowStateEvent;
    static bool defaultShowStateEventValue_helper();
    bool mShowLeaveJoinEvent;
    static bool defaultShowLeaveJoinEventValue_helper();
    bool mShowRename;
    static bool defaultShowRenameValue_helper();
    bool mShowAvatarUpdate;
    static bool defaultShowAvatarUpdateValue_helper();
    bool mShowDeletedMessages;
    static bool defaultShowDeletedMessagesValue_helper();
    bool mHideImages;
    static bool defaultHideImagesValue_helper();
    bool mShowLinkPreview;
    static bool defaultShowLinkPreviewValue_helper();
    bool mSystemTray;
    static bool defaultSystemTrayValue_helper();
    bool mMinimizeToSystemTrayOnStartup;
    static bool defaultMinimizeToSystemTrayOnStartupValue_helper();
    int mMediaMaxWidth;
    static int defaultMediaMaxWidthValue_helper();
    int mMediaMaxHeight;
    static int defaultMediaMaxHeightValue_helper();

    // RoomDrawer
    bool mShowAvatarInRoomDrawer;
    static bool defaultShowAvatarInRoomDrawerValue_helper();
    bool mCollapsed;
    static bool defaultCollapsedValue_helper();
    int mSortOrder;
    static int defaultSortOrderValue_helper();
    QList<int> mCustomSortOrder;
    static QList<int> defaultCustomSortOrderValue_helper();

    // RoomInfo
    bool mShowAvatarInRoomInfo;
    static bool defaultShowAvatarInRoomInfoValue_helper();

    // NetworkProxy
    int mProxyType;
    static int defaultProxyTypeValue_helper();
    QString mProxyHost;
    static QString defaultProxyHostValue_helper();
    int mProxyPort;
    static int defaultProxyPortValue_helper();
    QString mProxyUser;
    static QString defaultProxyUserValue_helper();
    QString mProxyPassword;
    static QString defaultProxyPasswordValue_helper();

    // Debug
    bool mShowAllEvents;
    static bool defaultShowAllEventsValue_helper();
    bool mRelateAnyEvent;
    static bool defaultRelateAnyEventValue_helper();
    bool mAlwaysVerifyDevice;
    static bool defaultAlwaysVerifyDeviceValue_helper();
    bool mWindowTitleFocus;
    static bool defaultWindowTitleFocusValue_helper();

    // FeatureFlags
    bool mCalls;
    static bool defaultCallsValue_helper();
    bool mRichChatBar;
    static bool defaultRichChatBarValue_helper();

    // Security
    bool mRejectUnknownInvites;
    static bool defaultRejectUnknownInvitesValue_helper();
    bool mPreferUsingEncryption;
    static bool defaultPreferUsingEncryptionValue_helper();
};

#endif

