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

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

class ICalendarSettings : public KConfigSkeleton
{
  public:

    static ICalendarSettings *self();
    ~ICalendarSettings() override;

    /**
      Set To create an alarm for the exported schedules
    */
    static
    void setCreateAlarm( bool v )
    {
      if (!self()->isCreateAlarmImmutable())
        self()->mCreateAlarm = v;
    }

    /**
      Get To create an alarm for the exported schedules
    */
    static
    bool createAlarm()
    {
      return self()->mCreateAlarm;
    }

    /**
      Is To create an alarm for the exported schedules Immutable
    */
    static
    bool isCreateAlarmImmutable()
    {
      return self()->isImmutable( QStringLiteral( "createAlarm" ) );
    }

    /**
      Set Tells whether the reminder should be triggered before or after the schedule start
    */
    static
    void setBeforeAfter( int v )
    {
      if (!self()->isBeforeAfterImmutable())
        self()->mBeforeAfter = v;
    }

    /**
      Get Tells whether the reminder should be triggered before or after the schedule start
    */
    static
    int beforeAfter()
    {
      return self()->mBeforeAfter;
    }

    /**
      Is Tells whether the reminder should be triggered before or after the schedule start Immutable
    */
    static
    bool isBeforeAfterImmutable()
    {
      return self()->isImmutable( QStringLiteral( "beforeAfter" ) );
    }

    /**
      Set The number of units of the interval before or after the schedule starts
    */
    static
    void setTimeUnits( int v )
    {
      if (!self()->isTimeUnitsImmutable())
        self()->mTimeUnits = v;
    }

    /**
      Get The number of units of the interval before or after the schedule starts
    */
    static
    int timeUnits()
    {
      return self()->mTimeUnits;
    }

    /**
      Is The number of units of the interval before or after the schedule starts Immutable
    */
    static
    bool isTimeUnitsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "timeUnits" ) );
    }

    /**
      Set The units of the interval before or after the schedule starts in seconds 
    */
    static
    void setTimeUnitInSeconds( int v )
    {
      if (!self()->isTimeUnitInSecondsImmutable())
        self()->mTimeUnitInSeconds = v;
    }

    /**
      Get The units of the interval before or after the schedule starts in seconds 
    */
    static
    int timeUnitInSeconds()
    {
      return self()->mTimeUnitInSeconds;
    }

    /**
      Is The units of the interval before or after the schedule starts in seconds  Immutable
    */
    static
    bool isTimeUnitInSecondsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "timeUnitInSeconds" ) );
    }

    /**
      Set If the reminders should repeat or not
    */
    static
    void setRepeatingReminders( bool v )
    {
      if (!self()->isRepeatingRemindersImmutable())
        self()->mRepeatingReminders = v;
    }

    /**
      Get If the reminders should repeat or not
    */
    static
    bool repeatingReminders()
    {
      return self()->mRepeatingReminders;
    }

    /**
      Is If the reminders should repeat or not Immutable
    */
    static
    bool isRepeatingRemindersImmutable()
    {
      return self()->isImmutable( QStringLiteral( "repeatingReminders" ) );
    }

    /**
      Set The number of units of the interval between reminders
    */
    static
    void setIntervalBetweenRemindersTimeUnits( int v )
    {
      if (!self()->isIntervalBetweenRemindersTimeUnitsImmutable())
        self()->mIntervalBetweenRemindersTimeUnits = v;
    }

    /**
      Get The number of units of the interval between reminders
    */
    static
    int intervalBetweenRemindersTimeUnits()
    {
      return self()->mIntervalBetweenRemindersTimeUnits;
    }

    /**
      Is The number of units of the interval between reminders Immutable
    */
    static
    bool isIntervalBetweenRemindersTimeUnitsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "intervalBetweenRemindersTimeUnits" ) );
    }

    /**
      Set The units of the interval between reminders in seconds 
    */
    static
    void setIntervalBetweenRemindersTimeUnitInSeconds( int v )
    {
      if (!self()->isIntervalBetweenRemindersTimeUnitInSecondsImmutable())
        self()->mIntervalBetweenRemindersTimeUnitInSeconds = v;
    }

    /**
      Get The units of the interval between reminders in seconds 
    */
    static
    int intervalBetweenRemindersTimeUnitInSeconds()
    {
      return self()->mIntervalBetweenRemindersTimeUnitInSeconds;
    }

    /**
      Is The units of the interval between reminders in seconds  Immutable
    */
    static
    bool isIntervalBetweenRemindersTimeUnitInSecondsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "intervalBetweenRemindersTimeUnitInSeconds" ) );
    }

    /**
      Set The number of reminders to be generated for the schedule 
    */
    static
    void setNumberOfReminders( int v )
    {
      if (!self()->isNumberOfRemindersImmutable())
        self()->mNumberOfReminders = v;
    }

    /**
      Get The number of reminders to be generated for the schedule 
    */
    static
    int numberOfReminders()
    {
      return self()->mNumberOfReminders;
    }

    /**
      Is The number of reminders to be generated for the schedule  Immutable
    */
    static
    bool isNumberOfRemindersImmutable()
    {
      return self()->isImmutable( QStringLiteral( "numberOfReminders" ) );
    }

    /**
      Set The icalendar file in which to export the schedules.
    */
    static
    void setIcalendarFile( const QString & v )
    {
      if (!self()->isIcalendarFileImmutable())
        self()->mIcalendarFile = v;
    }

    /**
      Get The icalendar file in which to export the schedules.
    */
    static
    QString icalendarFile()
    {
      return self()->mIcalendarFile;
    }

    /**
      Is The icalendar file in which to export the schedules. Immutable
    */
    static
    bool isIcalendarFileImmutable()
    {
      return self()->isImmutable( QStringLiteral( "icalendarFile" ) );
    }

    /**
      Set Write Google calendar compatible entries
    */
    static
    void setWriteEventsVsTodos( bool v )
    {
      if (!self()->isWriteEventsVsTodosImmutable())
        self()->mWriteEventsVsTodos = v;
    }

    /**
      Get Write Google calendar compatible entries
    */
    static
    bool writeEventsVsTodos()
    {
      return self()->mWriteEventsVsTodos;
    }

    /**
      Is Write Google calendar compatible entries Immutable
    */
    static
    bool isWriteEventsVsTodosImmutable()
    {
      return self()->isImmutable( QStringLiteral( "writeEventsVsTodos" ) );
    }

  protected:
    ICalendarSettings();
    friend class ICalendarSettingsHelper;


    // General
    bool mCreateAlarm;
    int mBeforeAfter;
    int mTimeUnits;
    int mTimeUnitInSeconds;
    bool mRepeatingReminders;
    int mIntervalBetweenRemindersTimeUnits;
    int mIntervalBetweenRemindersTimeUnitInSeconds;
    int mNumberOfReminders;
    QString mIcalendarFile;
    bool mWriteEventsVsTodos;
};

#endif

