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

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

class QQmlEngine;
class QJSEngine;

class Configuration : public KConfigSkeleton
{
  Q_OBJECT
  QML_ELEMENT
  QML_SINGLETON
  public:

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

    /**
      Set sidebarCollapsed
    */
    static
    void setSidebarCollapsed( bool v )
    {
      if (v != self()->mSidebarCollapsed && !self()->isSidebarCollapsedImmutable()) {
        self()->mSidebarCollapsed = v;
        Q_EMIT self()->sidebarCollapsedChanged();
      }
    }

    Q_PROPERTY(bool sidebarCollapsed READ sidebarCollapsed WRITE setSidebarCollapsed NOTIFY sidebarCollapsedChanged)
    Q_PROPERTY(bool isSidebarCollapsedImmutable READ isSidebarCollapsedImmutable CONSTANT)
    /**
      Get sidebarCollapsed
    */
    static
    bool sidebarCollapsed()
    {
      return self()->mSidebarCollapsed;
    }

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

    /**
      Set sidebarWidth
    */
    static
    void setSidebarWidth( int v )
    {
      if (v != self()->mSidebarWidth && !self()->isSidebarWidthImmutable()) {
        self()->mSidebarWidth = v;
        Q_EMIT self()->sidebarWidthChanged();
      }
    }

    Q_PROPERTY(int sidebarWidth READ sidebarWidth WRITE setSidebarWidth NOTIFY sidebarWidthChanged)
    Q_PROPERTY(bool isSidebarWidthImmutable READ isSidebarWidthImmutable CONSTANT)
    /**
      Get sidebarWidth
    */
    static
    int sidebarWidth()
    {
      return self()->mSidebarWidth;
    }

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

    /**
      Set pageOrder
    */
    static
    void setPageOrder( const QStringList & v )
    {
      if (v != self()->mPageOrder && !self()->isPageOrderImmutable()) {
        self()->mPageOrder = v;
        Q_EMIT self()->pageOrderChanged();
      }
    }

    Q_PROPERTY(QStringList pageOrder READ pageOrder WRITE setPageOrder NOTIFY pageOrderChanged)
    Q_PROPERTY(bool isPageOrderImmutable READ isPageOrderImmutable CONSTANT)
    /**
      Get pageOrder
    */
    static
    QStringList pageOrder()
    {
      return self()->mPageOrder;
    }

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

    /**
      Set hiddenPages
    */
    static
    void setHiddenPages( const QStringList & v )
    {
      if (v != self()->mHiddenPages && !self()->isHiddenPagesImmutable()) {
        self()->mHiddenPages = v;
        Q_EMIT self()->hiddenPagesChanged();
      }
    }

    Q_PROPERTY(QStringList hiddenPages READ hiddenPages WRITE setHiddenPages NOTIFY hiddenPagesChanged)
    Q_PROPERTY(bool isHiddenPagesImmutable READ isHiddenPagesImmutable CONSTANT)
    /**
      Get hiddenPages
    */
    static
    QStringList hiddenPages()
    {
      return self()->mHiddenPages;
    }

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

    /**
      Set startPage
    */
    static
    void setStartPage( const QString & v )
    {
      if (v != self()->mStartPage && !self()->isStartPageImmutable()) {
        self()->mStartPage = v;
        Q_EMIT self()->startPageChanged();
      }
    }

    Q_PROPERTY(QString startPage READ startPage WRITE setStartPage NOTIFY startPageChanged)
    Q_PROPERTY(bool isStartPageImmutable READ isStartPageImmutable CONSTANT)
    /**
      Get startPage
    */
    static
    QString startPage()
    {
      return self()->mStartPage;
    }

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

    /**
      Set lastVisitedPage
    */
    static
    void setLastVisitedPage( const QString & v )
    {
      if (v != self()->mLastVisitedPage && !self()->isLastVisitedPageImmutable()) {
        self()->mLastVisitedPage = v;
        Q_EMIT self()->lastVisitedPageChanged();
      }
    }

    Q_PROPERTY(QString lastVisitedPage READ lastVisitedPage WRITE setLastVisitedPage NOTIFY lastVisitedPageChanged)
    Q_PROPERTY(bool isLastVisitedPageImmutable READ isLastVisitedPageImmutable CONSTANT)
    /**
      Get lastVisitedPage
    */
    static
    QString lastVisitedPage()
    {
      return self()->mLastVisitedPage;
    }

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


    enum {
      signalSidebarCollapsedChanged = 1,
      signalSidebarWidthChanged = 2,
      signalPageOrderChanged = 3,
      signalHiddenPagesChanged = 4,
      signalStartPageChanged = 5,
      signalLastVisitedPageChanged = 6
    };

  Q_SIGNALS:
    void sidebarCollapsedChanged();

    void sidebarWidthChanged();

    void pageOrderChanged();

    void hiddenPagesChanged();

    void startPageChanged();

    void lastVisitedPageChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:
    Configuration();
    friend class ConfigurationHelper;


    // General
    bool mSidebarCollapsed;
    int mSidebarWidth;
    QStringList mPageOrder;
    QStringList mHiddenPages;
    QString mStartPage;
    QString mLastVisitedPage;
};

#endif

