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

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

class CalendarConfig : public KConfigSkeleton
{
  Q_OBJECT
  public:
    enum EnumLocationMarker { Circle, Pin };
    Q_ENUM(EnumLocationMarker)
    enum EnumLastOpenedView { MonthView, ScheduleView, TodoView, WeekView, WorkWeekView, ThreeDayView, DayView, ContactView, MailView };
    Q_ENUM(EnumLastOpenedView)
    enum EnumMonthGridMode { SwipeableMonthGrid, BasicMonthGrid };
    Q_ENUM(EnumMonthGridMode)
    enum EnumWeekdayLabelAlignment { Left, Center, Right };
    Q_ENUM(EnumWeekdayLabelAlignment)
    enum EnumWeekdayLabelLength { Full, Abbreviated, Letter };
    Q_ENUM(EnumWeekdayLabelLength)
    enum EnumHourlyViewMode { SwipeableInternalHourlyView, BasicInternalHourlyView };
    Q_ENUM(EnumHourlyViewMode)
    enum EnumMonthListMode { SwipeableMonthList, BasicMonthList };
    Q_ENUM(EnumMonthListMode)
    enum EnumSort { DueTime, Alphabetically, Priority };
    Q_ENUM(EnumSort)

    CalendarConfig( QObject *parent = nullptr );
    ~CalendarConfig() override;

    /**
      Set Show the Menubar.
    */
    void setShowMenubar( bool v )
    {
      if (v != mShowMenubar && !isShowMenubarImmutable()) {
        mShowMenubar = v;
        Q_EMIT showMenubarChanged();
      }
    }

    Q_PROPERTY(bool showMenubar READ showMenubar WRITE setShowMenubar NOTIFY showMenubarChanged)
    Q_PROPERTY(bool isShowMenubarImmutable READ isShowMenubarImmutable CONSTANT)
    Q_PROPERTY(bool defaultShowMenubarValue READ defaultShowMenubarValue CONSTANT)
    /**
      Get Show the Menubar.
    */
    bool showMenubar() const
    {
      return mShowMenubar;
    }

    /**
      Is Show the Menubar. Immutable
    */
    bool isShowMenubarImmutable() const
    {
      return isImmutable( QStringLiteral( "showMenubar" ) );
    }

    /**
      Get Show the Menubar. default value
    */
    bool defaultShowMenubarValue() const
    {
        return defaultShowMenubarValue_helper();
    }

    /**
      Set Always have mainDrawer.collapsed.
    */
    void setForceCollapsedMainDrawer( bool v )
    {
      if (v != mForceCollapsedMainDrawer && !isForceCollapsedMainDrawerImmutable()) {
        mForceCollapsedMainDrawer = v;
        Q_EMIT forceCollapsedMainDrawerChanged();
      }
    }

    Q_PROPERTY(bool forceCollapsedMainDrawer READ forceCollapsedMainDrawer WRITE setForceCollapsedMainDrawer NOTIFY forceCollapsedMainDrawerChanged)
    Q_PROPERTY(bool isForceCollapsedMainDrawerImmutable READ isForceCollapsedMainDrawerImmutable CONSTANT)
    Q_PROPERTY(bool defaultForceCollapsedMainDrawerValue READ defaultForceCollapsedMainDrawerValue CONSTANT)
    /**
      Get Always have mainDrawer.collapsed.
    */
    bool forceCollapsedMainDrawer() const
    {
      return mForceCollapsedMainDrawer;
    }

    /**
      Is Always have mainDrawer.collapsed. Immutable
    */
    bool isForceCollapsedMainDrawerImmutable() const
    {
      return isImmutable( QStringLiteral( "forceCollapsedMainDrawer" ) );
    }

    /**
      Get Always have mainDrawer.collapsed. default value
    */
    bool defaultForceCollapsedMainDrawerValue() const
    {
        return defaultForceCollapsedMainDrawerValue_helper();
    }

    /**
      Set Enable maps. NOTE: may cause crashing on some systems.
    */
    void setEnableMaps( bool v )
    {
      if (v != mEnableMaps && !isEnableMapsImmutable()) {
        mEnableMaps = v;
        Q_EMIT enableMapsChanged();
      }
    }

    Q_PROPERTY(bool enableMaps READ enableMaps WRITE setEnableMaps NOTIFY enableMapsChanged)
    Q_PROPERTY(bool isEnableMapsImmutable READ isEnableMapsImmutable CONSTANT)
    Q_PROPERTY(bool defaultEnableMapsValue READ defaultEnableMapsValue CONSTANT)
    /**
      Get Enable maps. NOTE: may cause crashing on some systems.
    */
    bool enableMaps() const
    {
      return mEnableMaps;
    }

    /**
      Is Enable maps. NOTE: may cause crashing on some systems. Immutable
    */
    bool isEnableMapsImmutable() const
    {
      return isImmutable( QStringLiteral( "enableMaps" ) );
    }

    /**
      Get Enable maps. NOTE: may cause crashing on some systems. default value
    */
    bool defaultEnableMapsValue() const
    {
        return defaultEnableMapsValue_helper();
    }

    /**
      Set Enable mail integration
    */
    void setEnableMailIntegration( bool v )
    {
      if (v != mEnableMailIntegration && !isEnableMailIntegrationImmutable()) {
        mEnableMailIntegration = v;
        Q_EMIT enableMailIntegrationChanged();
      }
    }

    Q_PROPERTY(bool enableMailIntegration READ enableMailIntegration WRITE setEnableMailIntegration NOTIFY enableMailIntegrationChanged)
    Q_PROPERTY(bool isEnableMailIntegrationImmutable READ isEnableMailIntegrationImmutable CONSTANT)
    Q_PROPERTY(bool defaultEnableMailIntegrationValue READ defaultEnableMailIntegrationValue CONSTANT)
    /**
      Get Enable mail integration
    */
    bool enableMailIntegration() const
    {
      return mEnableMailIntegration;
    }

    /**
      Is Enable mail integration Immutable
    */
    bool isEnableMailIntegrationImmutable() const
    {
      return isImmutable( QStringLiteral( "enableMailIntegration" ) );
    }

    /**
      Get Enable mail integration default value
    */
    bool defaultEnableMailIntegrationValue() const
    {
        return defaultEnableMailIntegrationValue_helper();
    }

    /**
      Set Type of marker for showing a place's location.
    */
    void setLocationMarker( EnumLocationMarker v )
    {
      if (v != mLocationMarker && !isLocationMarkerImmutable()) {
        mLocationMarker = int(v);
        Q_EMIT locationMarkerChanged();
      }
    }

    Q_PROPERTY(EnumLocationMarker locationMarker READ locationMarker WRITE setLocationMarker NOTIFY locationMarkerChanged)
    Q_PROPERTY(bool isLocationMarkerImmutable READ isLocationMarkerImmutable CONSTANT)
    Q_PROPERTY(EnumLocationMarker defaultLocationMarkerValue READ defaultLocationMarkerValue CONSTANT)
    /**
      Get Type of marker for showing a place's location.
    */
    EnumLocationMarker locationMarker() const
    {
      return static_cast<EnumLocationMarker>(mLocationMarker);
    }

    /**
      Is Type of marker for showing a place's location. Immutable
    */
    bool isLocationMarkerImmutable() const
    {
      return isImmutable( QStringLiteral( "locationMarker" ) );
    }

    /**
      Get Type of marker for showing a place's location. default value
    */
    EnumLocationMarker defaultLocationMarkerValue() const
    {
        return static_cast<EnumLocationMarker>(defaultLocationMarkerValue_helper());
    }

    /**
      Set Remember the last opened view.
    */
    void setLastOpenedView( EnumLastOpenedView v )
    {
      if (v != mLastOpenedView && !isLastOpenedViewImmutable()) {
        mLastOpenedView = int(v);
        Q_EMIT lastOpenedViewChanged();
      }
    }

    Q_PROPERTY(EnumLastOpenedView lastOpenedView READ lastOpenedView WRITE setLastOpenedView NOTIFY lastOpenedViewChanged)
    Q_PROPERTY(bool isLastOpenedViewImmutable READ isLastOpenedViewImmutable CONSTANT)
    Q_PROPERTY(EnumLastOpenedView defaultLastOpenedViewValue READ defaultLastOpenedViewValue CONSTANT)
    /**
      Get Remember the last opened view.
    */
    EnumLastOpenedView lastOpenedView() const
    {
      return static_cast<EnumLastOpenedView>(mLastOpenedView);
    }

    /**
      Is Remember the last opened view. Immutable
    */
    bool isLastOpenedViewImmutable() const
    {
      return isImmutable( QStringLiteral( "lastOpenedView" ) );
    }

    /**
      Get Remember the last opened view. default value
    */
    EnumLastOpenedView defaultLastOpenedViewValue() const
    {
        return static_cast<EnumLastOpenedView>(defaultLastOpenedViewValue_helper());
    }

    /**
      Set Width of the incidence drawer
    */
    void setIncidenceInfoDrawerDrawerWidth( int v )
    {
      if (v != mIncidenceInfoDrawerDrawerWidth && !isIncidenceInfoDrawerDrawerWidthImmutable()) {
        mIncidenceInfoDrawerDrawerWidth = v;
        Q_EMIT incidenceInfoDrawerDrawerWidthChanged();
      }
    }

    Q_PROPERTY(int incidenceInfoDrawerDrawerWidth READ incidenceInfoDrawerDrawerWidth WRITE setIncidenceInfoDrawerDrawerWidth NOTIFY incidenceInfoDrawerDrawerWidthChanged)
    Q_PROPERTY(bool isIncidenceInfoDrawerDrawerWidthImmutable READ isIncidenceInfoDrawerDrawerWidthImmutable CONSTANT)
    Q_PROPERTY(int defaultIncidenceInfoDrawerDrawerWidthValue READ defaultIncidenceInfoDrawerDrawerWidthValue CONSTANT)
    /**
      Get Width of the incidence drawer
    */
    int incidenceInfoDrawerDrawerWidth() const
    {
      return mIncidenceInfoDrawerDrawerWidth;
    }

    /**
      Is Width of the incidence drawer Immutable
    */
    bool isIncidenceInfoDrawerDrawerWidthImmutable() const
    {
      return isImmutable( QStringLiteral( "incidenceInfoDrawerDrawerWidth" ) );
    }

    /**
      Get Width of the incidence drawer default value
    */
    int defaultIncidenceInfoDrawerDrawerWidthValue() const
    {
        return defaultIncidenceInfoDrawerDrawerWidthValue_helper();
    }

    /**
      Set Whether the "Tags" section of the mainDrawer is expanded.
    */
    void setTagsSectionExpanded( bool v )
    {
      if (v != mTagsSectionExpanded && !isTagsSectionExpandedImmutable()) {
        mTagsSectionExpanded = v;
        Q_EMIT tagsSectionExpandedChanged();
      }
    }

    Q_PROPERTY(bool tagsSectionExpanded READ tagsSectionExpanded WRITE setTagsSectionExpanded NOTIFY tagsSectionExpandedChanged)
    Q_PROPERTY(bool isTagsSectionExpandedImmutable READ isTagsSectionExpandedImmutable CONSTANT)
    Q_PROPERTY(bool defaultTagsSectionExpandedValue READ defaultTagsSectionExpandedValue CONSTANT)
    /**
      Get Whether the "Tags" section of the mainDrawer is expanded.
    */
    bool tagsSectionExpanded() const
    {
      return mTagsSectionExpanded;
    }

    /**
      Is Whether the "Tags" section of the mainDrawer is expanded. Immutable
    */
    bool isTagsSectionExpandedImmutable() const
    {
      return isImmutable( QStringLiteral( "tagsSectionExpanded" ) );
    }

    /**
      Get Whether the "Tags" section of the mainDrawer is expanded. default value
    */
    bool defaultTagsSectionExpandedValue() const
    {
        return defaultTagsSectionExpandedValue_helper();
    }

    /**
      Set Whether the "Calendar" or "Contacts" section of the mainDrawer is expanded.
    */
    void setCollectionsSectionExpanded( bool v )
    {
      if (v != mCollectionsSectionExpanded && !isCollectionsSectionExpandedImmutable()) {
        mCollectionsSectionExpanded = v;
        Q_EMIT collectionsSectionExpandedChanged();
      }
    }

    Q_PROPERTY(bool collectionsSectionExpanded READ collectionsSectionExpanded WRITE setCollectionsSectionExpanded NOTIFY collectionsSectionExpandedChanged)
    Q_PROPERTY(bool isCollectionsSectionExpandedImmutable READ isCollectionsSectionExpandedImmutable CONSTANT)
    Q_PROPERTY(bool defaultCollectionsSectionExpandedValue READ defaultCollectionsSectionExpandedValue CONSTANT)
    /**
      Get Whether the "Calendar" or "Contacts" section of the mainDrawer is expanded.
    */
    bool collectionsSectionExpanded() const
    {
      return mCollectionsSectionExpanded;
    }

    /**
      Is Whether the "Calendar" or "Contacts" section of the mainDrawer is expanded. Immutable
    */
    bool isCollectionsSectionExpandedImmutable() const
    {
      return isImmutable( QStringLiteral( "collectionsSectionExpanded" ) );
    }

    /**
      Get Whether the "Calendar" or "Contacts" section of the mainDrawer is expanded. default value
    */
    bool defaultCollectionsSectionExpandedValue() const
    {
        return defaultCollectionsSectionExpandedValue_helper();
    }

    /**
      Set The last used event collection used when creating a event.
    */
    void setLastUsedEventCollection( int v )
    {
      if (v != mLastUsedEventCollection && !isLastUsedEventCollectionImmutable()) {
        mLastUsedEventCollection = v;
        Q_EMIT lastUsedEventCollectionChanged();
      }
    }

    Q_PROPERTY(int lastUsedEventCollection READ lastUsedEventCollection WRITE setLastUsedEventCollection NOTIFY lastUsedEventCollectionChanged)
    Q_PROPERTY(bool isLastUsedEventCollectionImmutable READ isLastUsedEventCollectionImmutable CONSTANT)
    Q_PROPERTY(int defaultLastUsedEventCollectionValue READ defaultLastUsedEventCollectionValue CONSTANT)
    /**
      Get The last used event collection used when creating a event.
    */
    int lastUsedEventCollection() const
    {
      return mLastUsedEventCollection;
    }

    /**
      Is The last used event collection used when creating a event. Immutable
    */
    bool isLastUsedEventCollectionImmutable() const
    {
      return isImmutable( QStringLiteral( "lastUsedEventCollection" ) );
    }

    /**
      Get The last used event collection used when creating a event. default value
    */
    int defaultLastUsedEventCollectionValue() const
    {
        return defaultLastUsedEventCollectionValue_helper();
    }

    /**
      Set The last used todo collection used when creating a todo.
    */
    void setLastUsedTodoCollection( int v )
    {
      if (v != mLastUsedTodoCollection && !isLastUsedTodoCollectionImmutable()) {
        mLastUsedTodoCollection = v;
        Q_EMIT lastUsedTodoCollectionChanged();
      }
    }

    Q_PROPERTY(int lastUsedTodoCollection READ lastUsedTodoCollection WRITE setLastUsedTodoCollection NOTIFY lastUsedTodoCollectionChanged)
    Q_PROPERTY(bool isLastUsedTodoCollectionImmutable READ isLastUsedTodoCollectionImmutable CONSTANT)
    Q_PROPERTY(int defaultLastUsedTodoCollectionValue READ defaultLastUsedTodoCollectionValue CONSTANT)
    /**
      Get The last used todo collection used when creating a todo.
    */
    int lastUsedTodoCollection() const
    {
      return mLastUsedTodoCollection;
    }

    /**
      Is The last used todo collection used when creating a todo. Immutable
    */
    bool isLastUsedTodoCollectionImmutable() const
    {
      return isImmutable( QStringLiteral( "lastUsedTodoCollection" ) );
    }

    /**
      Get The last used todo collection used when creating a todo. default value
    */
    int defaultLastUsedTodoCollectionValue() const
    {
        return defaultLastUsedTodoCollectionValue_helper();
    }

    /**
      Set Use a popup to view incidence information instead of a drawer.
    */
    void setUseIncidenceInfoPopup( bool v )
    {
      if (v != mUseIncidenceInfoPopup && !isUseIncidenceInfoPopupImmutable()) {
        mUseIncidenceInfoPopup = v;
        Q_EMIT useIncidenceInfoPopupChanged();
      }
    }

    Q_PROPERTY(bool useIncidenceInfoPopup READ useIncidenceInfoPopup WRITE setUseIncidenceInfoPopup NOTIFY useIncidenceInfoPopupChanged)
    Q_PROPERTY(bool isUseIncidenceInfoPopupImmutable READ isUseIncidenceInfoPopupImmutable CONSTANT)
    Q_PROPERTY(bool defaultUseIncidenceInfoPopupValue READ defaultUseIncidenceInfoPopupValue CONSTANT)
    /**
      Get Use a popup to view incidence information instead of a drawer.
    */
    bool useIncidenceInfoPopup() const
    {
      return mUseIncidenceInfoPopup;
    }

    /**
      Is Use a popup to view incidence information instead of a drawer. Immutable
    */
    bool isUseIncidenceInfoPopupImmutable() const
    {
      return isImmutable( QStringLiteral( "useIncidenceInfoPopup" ) );
    }

    /**
      Get Use a popup to view incidence information instead of a drawer. default value
    */
    bool defaultUseIncidenceInfoPopupValue() const
    {
        return defaultUseIncidenceInfoPopupValue_helper();
    }

    /**
      Set Show Holidays in the calendar views.
    */
    void setShowHolidaysInCalendarViews( bool v )
    {
      if (v != mShowHolidaysInCalendarViews && !isShowHolidaysInCalendarViewsImmutable()) {
        mShowHolidaysInCalendarViews = v;
        Q_EMIT showHolidaysInCalendarViewsChanged();
      }
    }

    Q_PROPERTY(bool showHolidaysInCalendarViews READ showHolidaysInCalendarViews WRITE setShowHolidaysInCalendarViews NOTIFY showHolidaysInCalendarViewsChanged)
    Q_PROPERTY(bool isShowHolidaysInCalendarViewsImmutable READ isShowHolidaysInCalendarViewsImmutable CONSTANT)
    Q_PROPERTY(bool defaultShowHolidaysInCalendarViewsValue READ defaultShowHolidaysInCalendarViewsValue CONSTANT)
    /**
      Get Show Holidays in the calendar views.
    */
    bool showHolidaysInCalendarViews() const
    {
      return mShowHolidaysInCalendarViews;
    }

    /**
      Is Show Holidays in the calendar views. Immutable
    */
    bool isShowHolidaysInCalendarViewsImmutable() const
    {
      return isImmutable( QStringLiteral( "showHolidaysInCalendarViews" ) );
    }

    /**
      Get Show Holidays in the calendar views. default value
    */
    bool defaultShowHolidaysInCalendarViewsValue() const
    {
        return defaultShowHolidaysInCalendarViewsValue_helper();
    }

    /**
      Set Holidays regions selected.
    */
    void setHolidayRegions( const QStringList & v )
    {
      if (v != mHolidayRegions && !isHolidayRegionsImmutable()) {
        mHolidayRegions = v;
        Q_EMIT holidayRegionsChanged();
      }
    }

    Q_PROPERTY(QStringList holidayRegions READ holidayRegions WRITE setHolidayRegions NOTIFY holidayRegionsChanged)
    Q_PROPERTY(bool isHolidayRegionsImmutable READ isHolidayRegionsImmutable CONSTANT)
    /**
      Get Holidays regions selected.
    */
    QStringList holidayRegions() const
    {
      return mHolidayRegions;
    }

    /**
      Is Holidays regions selected. Immutable
    */
    bool isHolidayRegionsImmutable() const
    {
      return isImmutable( QStringLiteral( "holidayRegions" ) );
    }

    /**
      Set Show Tasks in the calendar views (e.g. month, schedule, etc. views).
    */
    void setShowTodosInCalendarViews( bool v )
    {
      if (v != mShowTodosInCalendarViews && !isShowTodosInCalendarViewsImmutable()) {
        mShowTodosInCalendarViews = v;
        Q_EMIT showTodosInCalendarViewsChanged();
      }
    }

    Q_PROPERTY(bool showTodosInCalendarViews READ showTodosInCalendarViews WRITE setShowTodosInCalendarViews NOTIFY showTodosInCalendarViewsChanged)
    Q_PROPERTY(bool isShowTodosInCalendarViewsImmutable READ isShowTodosInCalendarViewsImmutable CONSTANT)
    Q_PROPERTY(bool defaultShowTodosInCalendarViewsValue READ defaultShowTodosInCalendarViewsValue CONSTANT)
    /**
      Get Show Tasks in the calendar views (e.g. month, schedule, etc. views).
    */
    bool showTodosInCalendarViews() const
    {
      return mShowTodosInCalendarViews;
    }

    /**
      Is Show Tasks in the calendar views (e.g. month, schedule, etc. views). Immutable
    */
    bool isShowTodosInCalendarViewsImmutable() const
    {
      return isImmutable( QStringLiteral( "showTodosInCalendarViews" ) );
    }

    /**
      Get Show Tasks in the calendar views (e.g. month, schedule, etc. views). default value
    */
    bool defaultShowTodosInCalendarViewsValue() const
    {
        return defaultShowTodosInCalendarViewsValue_helper();
    }

    /**
      Set Show subtasks in the calendar views (e.g. month, schedule, etc. views).
    */
    void setShowSubtodosInCalendarViews( bool v )
    {
      if (v != mShowSubtodosInCalendarViews && !isShowSubtodosInCalendarViewsImmutable()) {
        mShowSubtodosInCalendarViews = v;
        Q_EMIT showSubtodosInCalendarViewsChanged();
      }
    }

    Q_PROPERTY(bool showSubtodosInCalendarViews READ showSubtodosInCalendarViews WRITE setShowSubtodosInCalendarViews NOTIFY showSubtodosInCalendarViewsChanged)
    Q_PROPERTY(bool isShowSubtodosInCalendarViewsImmutable READ isShowSubtodosInCalendarViewsImmutable CONSTANT)
    Q_PROPERTY(bool defaultShowSubtodosInCalendarViewsValue READ defaultShowSubtodosInCalendarViewsValue CONSTANT)
    /**
      Get Show subtasks in the calendar views (e.g. month, schedule, etc. views).
    */
    bool showSubtodosInCalendarViews() const
    {
      return mShowSubtodosInCalendarViews;
    }

    /**
      Is Show subtasks in the calendar views (e.g. month, schedule, etc. views). Immutable
    */
    bool isShowSubtodosInCalendarViewsImmutable() const
    {
      return isImmutable( QStringLiteral( "showSubtodosInCalendarViews" ) );
    }

    /**
      Get Show subtasks in the calendar views (e.g. month, schedule, etc. views). default value
    */
    bool defaultShowSubtodosInCalendarViewsValue() const
    {
        return defaultShowSubtodosInCalendarViewsValue_helper();
    }

    /**
      Set Type of day grid view to be used internally in the month view"
    */
    void setMonthGridMode( EnumMonthGridMode v )
    {
      if (v != mMonthGridMode && !isMonthGridModeImmutable()) {
        mMonthGridMode = int(v);
        Q_EMIT monthGridModeChanged();
      }
    }

    Q_PROPERTY(EnumMonthGridMode monthGridMode READ monthGridMode WRITE setMonthGridMode NOTIFY monthGridModeChanged)
    Q_PROPERTY(bool isMonthGridModeImmutable READ isMonthGridModeImmutable CONSTANT)
    Q_PROPERTY(EnumMonthGridMode defaultMonthGridModeValue READ defaultMonthGridModeValue CONSTANT)
    /**
      Get Type of day grid view to be used internally in the month view"
    */
    EnumMonthGridMode monthGridMode() const
    {
      return static_cast<EnumMonthGridMode>(mMonthGridMode);
    }

    /**
      Is Type of day grid view to be used internally in the month view" Immutable
    */
    bool isMonthGridModeImmutable() const
    {
      return isImmutable( QStringLiteral( "monthGridMode" ) );
    }

    /**
      Get Type of day grid view to be used internally in the month view" default value
    */
    EnumMonthGridMode defaultMonthGridModeValue() const
    {
        return static_cast<EnumMonthGridMode>(defaultMonthGridModeValue_helper());
    }

    /**
      Set Alignment of week day header in month view.
    */
    void setWeekdayLabelAlignment( EnumWeekdayLabelAlignment v )
    {
      if (v != mWeekdayLabelAlignment && !isWeekdayLabelAlignmentImmutable()) {
        mWeekdayLabelAlignment = int(v);
        Q_EMIT weekdayLabelAlignmentChanged();
      }
    }

    Q_PROPERTY(EnumWeekdayLabelAlignment weekdayLabelAlignment READ weekdayLabelAlignment WRITE setWeekdayLabelAlignment NOTIFY weekdayLabelAlignmentChanged)
    Q_PROPERTY(bool isWeekdayLabelAlignmentImmutable READ isWeekdayLabelAlignmentImmutable CONSTANT)
    Q_PROPERTY(EnumWeekdayLabelAlignment defaultWeekdayLabelAlignmentValue READ defaultWeekdayLabelAlignmentValue CONSTANT)
    /**
      Get Alignment of week day header in month view.
    */
    EnumWeekdayLabelAlignment weekdayLabelAlignment() const
    {
      return static_cast<EnumWeekdayLabelAlignment>(mWeekdayLabelAlignment);
    }

    /**
      Is Alignment of week day header in month view. Immutable
    */
    bool isWeekdayLabelAlignmentImmutable() const
    {
      return isImmutable( QStringLiteral( "weekdayLabelAlignment" ) );
    }

    /**
      Get Alignment of week day header in month view. default value
    */
    EnumWeekdayLabelAlignment defaultWeekdayLabelAlignmentValue() const
    {
        return static_cast<EnumWeekdayLabelAlignment>(defaultWeekdayLabelAlignmentValue_helper());
    }

    /**
      Set Format of weekday name.
    */
    void setWeekdayLabelLength( EnumWeekdayLabelLength v )
    {
      if (v != mWeekdayLabelLength && !isWeekdayLabelLengthImmutable()) {
        mWeekdayLabelLength = int(v);
        Q_EMIT weekdayLabelLengthChanged();
      }
    }

    Q_PROPERTY(EnumWeekdayLabelLength weekdayLabelLength READ weekdayLabelLength WRITE setWeekdayLabelLength NOTIFY weekdayLabelLengthChanged)
    Q_PROPERTY(bool isWeekdayLabelLengthImmutable READ isWeekdayLabelLengthImmutable CONSTANT)
    Q_PROPERTY(EnumWeekdayLabelLength defaultWeekdayLabelLengthValue READ defaultWeekdayLabelLengthValue CONSTANT)
    /**
      Get Format of weekday name.
    */
    EnumWeekdayLabelLength weekdayLabelLength() const
    {
      return static_cast<EnumWeekdayLabelLength>(mWeekdayLabelLength);
    }

    /**
      Is Format of weekday name. Immutable
    */
    bool isWeekdayLabelLengthImmutable() const
    {
      return isImmutable( QStringLiteral( "weekdayLabelLength" ) );
    }

    /**
      Get Format of weekday name. default value
    */
    EnumWeekdayLabelLength defaultWeekdayLabelLengthValue() const
    {
        return static_cast<EnumWeekdayLabelLength>(defaultWeekdayLabelLengthValue_helper());
    }

    /**
      Set Show week numbers to the side of the month grid.
    */
    void setShowWeekNumbers( bool v )
    {
      if (v != mShowWeekNumbers && !isShowWeekNumbersImmutable()) {
        mShowWeekNumbers = v;
        Q_EMIT showWeekNumbersChanged();
      }
    }

    Q_PROPERTY(bool showWeekNumbers READ showWeekNumbers WRITE setShowWeekNumbers NOTIFY showWeekNumbersChanged)
    Q_PROPERTY(bool isShowWeekNumbersImmutable READ isShowWeekNumbersImmutable CONSTANT)
    Q_PROPERTY(bool defaultShowWeekNumbersValue READ defaultShowWeekNumbersValue CONSTANT)
    /**
      Get Show week numbers to the side of the month grid.
    */
    bool showWeekNumbers() const
    {
      return mShowWeekNumbers;
    }

    /**
      Is Show week numbers to the side of the month grid. Immutable
    */
    bool isShowWeekNumbersImmutable() const
    {
      return isImmutable( QStringLiteral( "showWeekNumbers" ) );
    }

    /**
      Get Show week numbers to the side of the month grid. default value
    */
    bool defaultShowWeekNumbersValue() const
    {
        return defaultShowWeekNumbersValue_helper();
    }

    /**
      Set Set the width of the month grid's borders in pixels.
    */
    void setMonthGridBorderWidth( int v )
    {
      if (v != mMonthGridBorderWidth && !isMonthGridBorderWidthImmutable()) {
        mMonthGridBorderWidth = v;
        Q_EMIT monthGridBorderWidthChanged();
      }
    }

    Q_PROPERTY(int monthGridBorderWidth READ monthGridBorderWidth WRITE setMonthGridBorderWidth NOTIFY monthGridBorderWidthChanged)
    Q_PROPERTY(bool isMonthGridBorderWidthImmutable READ isMonthGridBorderWidthImmutable CONSTANT)
    Q_PROPERTY(int defaultMonthGridBorderWidthValue READ defaultMonthGridBorderWidthValue CONSTANT)
    /**
      Get Set the width of the month grid's borders in pixels.
    */
    int monthGridBorderWidth() const
    {
      return mMonthGridBorderWidth;
    }

    /**
      Is Set the width of the month grid's borders in pixels. Immutable
    */
    bool isMonthGridBorderWidthImmutable() const
    {
      return isImmutable( QStringLiteral( "monthGridBorderWidth" ) );
    }

    /**
      Get Set the width of the month grid's borders in pixels. default value
    */
    int defaultMonthGridBorderWidthValue() const
    {
        return defaultMonthGridBorderWidthValue_helper();
    }

    /**
      Set Type of day grid view to be used internally in the month view"
    */
    void setHourlyViewMode( EnumHourlyViewMode v )
    {
      if (v != mHourlyViewMode && !isHourlyViewModeImmutable()) {
        mHourlyViewMode = int(v);
        Q_EMIT hourlyViewModeChanged();
      }
    }

    Q_PROPERTY(EnumHourlyViewMode hourlyViewMode READ hourlyViewMode WRITE setHourlyViewMode NOTIFY hourlyViewModeChanged)
    Q_PROPERTY(bool isHourlyViewModeImmutable READ isHourlyViewModeImmutable CONSTANT)
    Q_PROPERTY(EnumHourlyViewMode defaultHourlyViewModeValue READ defaultHourlyViewModeValue CONSTANT)
    /**
      Get Type of day grid view to be used internally in the month view"
    */
    EnumHourlyViewMode hourlyViewMode() const
    {
      return static_cast<EnumHourlyViewMode>(mHourlyViewMode);
    }

    /**
      Is Type of day grid view to be used internally in the month view" Immutable
    */
    bool isHourlyViewModeImmutable() const
    {
      return isImmutable( QStringLiteral( "hourlyViewMode" ) );
    }

    /**
      Get Type of day grid view to be used internally in the month view" default value
    */
    EnumHourlyViewMode defaultHourlyViewModeValue() const
    {
        return static_cast<EnumHourlyViewMode>(defaultHourlyViewModeValue_helper());
    }

    /**
      Set Set the height of the all-day header at the top of the week view."
    */
    void setWeekViewAllDayHeaderHeight( int v )
    {
      if (v != mWeekViewAllDayHeaderHeight && !isWeekViewAllDayHeaderHeightImmutable()) {
        mWeekViewAllDayHeaderHeight = v;
        Q_EMIT weekViewAllDayHeaderHeightChanged();
      }
    }

    Q_PROPERTY(int weekViewAllDayHeaderHeight READ weekViewAllDayHeaderHeight WRITE setWeekViewAllDayHeaderHeight NOTIFY weekViewAllDayHeaderHeightChanged)
    Q_PROPERTY(bool isWeekViewAllDayHeaderHeightImmutable READ isWeekViewAllDayHeaderHeightImmutable CONSTANT)
    Q_PROPERTY(int defaultWeekViewAllDayHeaderHeightValue READ defaultWeekViewAllDayHeaderHeightValue CONSTANT)
    /**
      Get Set the height of the all-day header at the top of the week view."
    */
    int weekViewAllDayHeaderHeight() const
    {
      return mWeekViewAllDayHeaderHeight;
    }

    /**
      Is Set the height of the all-day header at the top of the week view." Immutable
    */
    bool isWeekViewAllDayHeaderHeightImmutable() const
    {
      return isImmutable( QStringLiteral( "weekViewAllDayHeaderHeight" ) );
    }

    /**
      Get Set the height of the all-day header at the top of the week view." default value
    */
    int defaultWeekViewAllDayHeaderHeightValue() const
    {
        return defaultWeekViewAllDayHeaderHeightValue_helper();
    }

    /**
      Set Type of day list view to be used internally in the schedule view"
    */
    void setMonthListMode( EnumMonthListMode v )
    {
      if (v != mMonthListMode && !isMonthListModeImmutable()) {
        mMonthListMode = int(v);
        Q_EMIT monthListModeChanged();
      }
    }

    Q_PROPERTY(EnumMonthListMode monthListMode READ monthListMode WRITE setMonthListMode NOTIFY monthListModeChanged)
    Q_PROPERTY(bool isMonthListModeImmutable READ isMonthListModeImmutable CONSTANT)
    Q_PROPERTY(EnumMonthListMode defaultMonthListModeValue READ defaultMonthListModeValue CONSTANT)
    /**
      Get Type of day list view to be used internally in the schedule view"
    */
    EnumMonthListMode monthListMode() const
    {
      return static_cast<EnumMonthListMode>(mMonthListMode);
    }

    /**
      Is Type of day list view to be used internally in the schedule view" Immutable
    */
    bool isMonthListModeImmutable() const
    {
      return isImmutable( QStringLiteral( "monthListMode" ) );
    }

    /**
      Get Type of day list view to be used internally in the schedule view" default value
    */
    EnumMonthListMode defaultMonthListModeValue() const
    {
        return static_cast<EnumMonthListMode>(defaultMonthListModeValue_helper());
    }

    /**
      Set Show week headers in schedule view.
    */
    void setShowWeekHeaders( bool v )
    {
      if (v != mShowWeekHeaders && !isShowWeekHeadersImmutable()) {
        mShowWeekHeaders = v;
        Q_EMIT showWeekHeadersChanged();
      }
    }

    Q_PROPERTY(bool showWeekHeaders READ showWeekHeaders WRITE setShowWeekHeaders NOTIFY showWeekHeadersChanged)
    Q_PROPERTY(bool isShowWeekHeadersImmutable READ isShowWeekHeadersImmutable CONSTANT)
    Q_PROPERTY(bool defaultShowWeekHeadersValue READ defaultShowWeekHeadersValue CONSTANT)
    /**
      Get Show week headers in schedule view.
    */
    bool showWeekHeaders() const
    {
      return mShowWeekHeaders;
    }

    /**
      Is Show week headers in schedule view. Immutable
    */
    bool isShowWeekHeadersImmutable() const
    {
      return isImmutable( QStringLiteral( "showWeekHeaders" ) );
    }

    /**
      Get Show week headers in schedule view. default value
    */
    bool defaultShowWeekHeadersValue() const
    {
        return defaultShowWeekHeadersValue_helper();
    }

    /**
      Set Hide Empty Days in schedule view.
    */
    void setHideEmptyDays( bool v )
    {
      if (v != mHideEmptyDays && !isHideEmptyDaysImmutable()) {
        mHideEmptyDays = v;
        Q_EMIT hideEmptyDaysChanged();
      }
    }

    Q_PROPERTY(bool hideEmptyDays READ hideEmptyDays WRITE setHideEmptyDays NOTIFY hideEmptyDaysChanged)
    Q_PROPERTY(bool isHideEmptyDaysImmutable READ isHideEmptyDaysImmutable CONSTANT)
    Q_PROPERTY(bool defaultHideEmptyDaysValue READ defaultHideEmptyDaysValue CONSTANT)
    /**
      Get Hide Empty Days in schedule view.
    */
    bool hideEmptyDays() const
    {
      return mHideEmptyDays;
    }

    /**
      Is Hide Empty Days in schedule view. Immutable
    */
    bool isHideEmptyDaysImmutable() const
    {
      return isImmutable( QStringLiteral( "hideEmptyDays" ) );
    }

    /**
      Get Hide Empty Days in schedule view. default value
    */
    bool defaultHideEmptyDaysValue() const
    {
        return defaultHideEmptyDaysValue_helper();
    }

    /**
      Set Sorting of the taskview.
    */
    void setSort( EnumSort v )
    {
      if (v != mSort && !isSortImmutable()) {
        mSort = int(v);
        Q_EMIT sortChanged();
      }
    }

    Q_PROPERTY(EnumSort sort READ sort WRITE setSort NOTIFY sortChanged)
    Q_PROPERTY(bool isSortImmutable READ isSortImmutable CONSTANT)
    Q_PROPERTY(EnumSort defaultSortValue READ defaultSortValue CONSTANT)
    /**
      Get Sorting of the taskview.
    */
    EnumSort sort() const
    {
      return static_cast<EnumSort>(mSort);
    }

    /**
      Is Sorting of the taskview. Immutable
    */
    bool isSortImmutable() const
    {
      return isImmutable( QStringLiteral( "sort" ) );
    }

    /**
      Get Sorting of the taskview. default value
    */
    EnumSort defaultSortValue() const
    {
        return static_cast<EnumSort>(defaultSortValue_helper());
    }

    /**
      Set Sort order
    */
    void setAscendingOrder( bool v )
    {
      if (v != mAscendingOrder && !isAscendingOrderImmutable()) {
        mAscendingOrder = v;
        Q_EMIT ascendingOrderChanged();
      }
    }

    Q_PROPERTY(bool ascendingOrder READ ascendingOrder WRITE setAscendingOrder NOTIFY ascendingOrderChanged)
    Q_PROPERTY(bool isAscendingOrderImmutable READ isAscendingOrderImmutable CONSTANT)
    Q_PROPERTY(bool defaultAscendingOrderValue READ defaultAscendingOrderValue CONSTANT)
    /**
      Get Sort order
    */
    bool ascendingOrder() const
    {
      return mAscendingOrder;
    }

    /**
      Is Sort order Immutable
    */
    bool isAscendingOrderImmutable() const
    {
      return isImmutable( QStringLiteral( "ascendingOrder" ) );
    }

    /**
      Get Sort order default value
    */
    bool defaultAscendingOrderValue() const
    {
        return defaultAscendingOrderValue_helper();
    }

    /**
      Set Show all completed subtasks even if the parent task is incomplete
    */
    void setShowCompletedSubtodos( bool v )
    {
      if (v != mShowCompletedSubtodos && !isShowCompletedSubtodosImmutable()) {
        mShowCompletedSubtodos = v;
        Q_EMIT showCompletedSubtodosChanged();
      }
    }

    Q_PROPERTY(bool showCompletedSubtodos READ showCompletedSubtodos WRITE setShowCompletedSubtodos NOTIFY showCompletedSubtodosChanged)
    Q_PROPERTY(bool isShowCompletedSubtodosImmutable READ isShowCompletedSubtodosImmutable CONSTANT)
    Q_PROPERTY(bool defaultShowCompletedSubtodosValue READ defaultShowCompletedSubtodosValue CONSTANT)
    /**
      Get Show all completed subtasks even if the parent task is incomplete
    */
    bool showCompletedSubtodos() const
    {
      return mShowCompletedSubtodos;
    }

    /**
      Is Show all completed subtasks even if the parent task is incomplete Immutable
    */
    bool isShowCompletedSubtodosImmutable() const
    {
      return isImmutable( QStringLiteral( "showCompletedSubtodos" ) );
    }

    /**
      Get Show all completed subtasks even if the parent task is incomplete default value
    */
    bool defaultShowCompletedSubtodosValue() const
    {
        return defaultShowCompletedSubtodosValue_helper();
    }

    /**
      Set Dimmer
    */
    void setPastEventsTransparencyLevel( double v )
    {
      if (v != mPastEventsTransparencyLevel && !isPastEventsTransparencyLevelImmutable()) {
        mPastEventsTransparencyLevel = v;
        Q_EMIT pastEventsTransparencyLevelChanged();
      }
    }

    Q_PROPERTY(double pastEventsTransparencyLevel READ pastEventsTransparencyLevel WRITE setPastEventsTransparencyLevel NOTIFY pastEventsTransparencyLevelChanged)
    Q_PROPERTY(bool isPastEventsTransparencyLevelImmutable READ isPastEventsTransparencyLevelImmutable CONSTANT)
    Q_PROPERTY(double defaultPastEventsTransparencyLevelValue READ defaultPastEventsTransparencyLevelValue CONSTANT)
    /**
      Get Dimmer
    */
    double pastEventsTransparencyLevel() const
    {
      return mPastEventsTransparencyLevel;
    }

    /**
      Is Dimmer Immutable
    */
    bool isPastEventsTransparencyLevelImmutable() const
    {
      return isImmutable( QStringLiteral( "pastEventsTransparencyLevel" ) );
    }

    /**
      Get Dimmer default value
    */
    double defaultPastEventsTransparencyLevelValue() const
    {
        return defaultPastEventsTransparencyLevelValue_helper();
    }


    enum {
      signalShowMenubarChanged = 1,
      signalForceCollapsedMainDrawerChanged = 2,
      signalEnableMapsChanged = 3,
      signalEnableMailIntegrationChanged = 4,
      signalLocationMarkerChanged = 5,
      signalLastOpenedViewChanged = 6,
      signalIncidenceInfoDrawerDrawerWidthChanged = 7,
      signalTagsSectionExpandedChanged = 8,
      signalCollectionsSectionExpandedChanged = 9,
      signalLastUsedEventCollectionChanged = 10,
      signalLastUsedTodoCollectionChanged = 11,
      signalUseIncidenceInfoPopupChanged = 12,
      signalShowHolidaysInCalendarViewsChanged = 13,
      signalHolidayRegionsChanged = 14,
      signalShowTodosInCalendarViewsChanged = 15,
      signalShowSubtodosInCalendarViewsChanged = 16,
      signalMonthGridModeChanged = 17,
      signalWeekdayLabelAlignmentChanged = 18,
      signalWeekdayLabelLengthChanged = 19,
      signalShowWeekNumbersChanged = 20,
      signalMonthGridBorderWidthChanged = 21,
      signalHourlyViewModeChanged = 22,
      signalWeekViewAllDayHeaderHeightChanged = 23,
      signalMonthListModeChanged = 24,
      signalShowWeekHeadersChanged = 25,
      signalHideEmptyDaysChanged = 26,
      signalSortChanged = 27,
      signalAscendingOrderChanged = 28,
      signalShowCompletedSubtodosChanged = 29,
      signalPastEventsTransparencyLevelChanged = 30
    };

  Q_SIGNALS:
    void showMenubarChanged();

    void forceCollapsedMainDrawerChanged();

    void enableMapsChanged();

    void enableMailIntegrationChanged();

    void locationMarkerChanged();

    void lastOpenedViewChanged();

    void incidenceInfoDrawerDrawerWidthChanged();

    void tagsSectionExpandedChanged();

    void collectionsSectionExpandedChanged();

    void lastUsedEventCollectionChanged();

    void lastUsedTodoCollectionChanged();

    void useIncidenceInfoPopupChanged();

    void showHolidaysInCalendarViewsChanged();

    void holidayRegionsChanged();

    void showTodosInCalendarViewsChanged();

    void showSubtodosInCalendarViewsChanged();

    void monthGridModeChanged();

    void weekdayLabelAlignmentChanged();

    void weekdayLabelLengthChanged();

    void showWeekNumbersChanged();

    void monthGridBorderWidthChanged();

    void hourlyViewModeChanged();

    void weekViewAllDayHeaderHeightChanged();

    void monthListModeChanged();

    void showWeekHeadersChanged();

    void hideEmptyDaysChanged();

    void sortChanged();

    void ascendingOrderChanged();

    void showCompletedSubtodosChanged();

    void pastEventsTransparencyLevelChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:

    // General
    bool mShowMenubar;
    bool defaultShowMenubarValue_helper() const;
    bool mForceCollapsedMainDrawer;
    bool defaultForceCollapsedMainDrawerValue_helper() const;
    bool mEnableMaps;
    bool defaultEnableMapsValue_helper() const;
    bool mEnableMailIntegration;
    bool defaultEnableMailIntegrationValue_helper() const;
    int mLocationMarker;
    int defaultLocationMarkerValue_helper() const;
    int mLastOpenedView;
    int defaultLastOpenedViewValue_helper() const;
    int mIncidenceInfoDrawerDrawerWidth;
    int defaultIncidenceInfoDrawerDrawerWidthValue_helper() const;

    // MainDrawer
    bool mTagsSectionExpanded;
    bool defaultTagsSectionExpandedValue_helper() const;
    bool mCollectionsSectionExpanded;
    bool defaultCollectionsSectionExpandedValue_helper() const;

    // Editor
    int mLastUsedEventCollection;
    int defaultLastUsedEventCollectionValue_helper() const;
    int mLastUsedTodoCollection;
    int defaultLastUsedTodoCollectionValue_helper() const;

    // GeneralView
    bool mUseIncidenceInfoPopup;
    bool defaultUseIncidenceInfoPopupValue_helper() const;
    bool mShowHolidaysInCalendarViews;
    bool defaultShowHolidaysInCalendarViewsValue_helper() const;
    QStringList mHolidayRegions;
    QStringList defaultHolidayRegionsValue_helper() const;
    bool mShowTodosInCalendarViews;
    bool defaultShowTodosInCalendarViewsValue_helper() const;
    bool mShowSubtodosInCalendarViews;
    bool defaultShowSubtodosInCalendarViewsValue_helper() const;

    // MonthView
    int mMonthGridMode;
    int defaultMonthGridModeValue_helper() const;
    int mWeekdayLabelAlignment;
    int defaultWeekdayLabelAlignmentValue_helper() const;
    int mWeekdayLabelLength;
    int defaultWeekdayLabelLengthValue_helper() const;
    bool mShowWeekNumbers;
    bool defaultShowWeekNumbersValue_helper() const;
    int mMonthGridBorderWidth;
    int defaultMonthGridBorderWidthValue_helper() const;

    // WeekView
    int mHourlyViewMode;
    int defaultHourlyViewModeValue_helper() const;
    int mWeekViewAllDayHeaderHeight;
    int defaultWeekViewAllDayHeaderHeightValue_helper() const;

    // ScheduleView
    int mMonthListMode;
    int defaultMonthListModeValue_helper() const;
    bool mShowWeekHeaders;
    bool defaultShowWeekHeadersValue_helper() const;
    bool mHideEmptyDays;
    bool defaultHideEmptyDaysValue_helper() const;

    // TaskView
    int mSort;
    int defaultSortValue_helper() const;
    bool mAscendingOrder;
    bool defaultAscendingOrderValue_helper() const;
    bool mShowCompletedSubtodos;
    bool defaultShowCompletedSubtodosValue_helper() const;
    double mPastEventsTransparencyLevel;
    double defaultPastEventsTransparencyLevelValue_helper() const;
};

#endif

