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

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

class PluginSettings : public KConfigSkeleton
{
  public:

    static PluginSettings *self();
    ~PluginSettings();

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

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

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

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

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

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

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

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

    /**
      Set If the reminders should repeat or not
    */
    static
    void setRepeatingReminders( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "repeatingReminders" ) ))
        self()->mRepeatingReminders = v;
    }

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

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

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

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

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

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

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

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

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

  protected:
    PluginSettings();
    friend class PluginSettingsHelper;


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

  private:
};

#endif

