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

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

#include <QFontDatabase>

class QQmlEngine;
class QJSEngine;

class Config : public KConfigSkeleton
{
  Q_OBJECT
  QML_ELEMENT
  QML_SINGLETON
  public:

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

    /**
      Set sortBehaviour
    */
    static
    void setSortBehaviour( const QString & v )
    {
      if (v != self()->mSortBehaviour && !self()->isSortBehaviourImmutable()) {
        self()->mSortBehaviour = v;
        Q_EMIT self()->sortBehaviourChanged();
      }
    }

    Q_PROPERTY(QString sortBehaviour READ sortBehaviour WRITE setSortBehaviour NOTIFY sortBehaviourChanged)
    Q_PROPERTY(bool isSortBehaviourImmutable READ isSortBehaviourImmutable CONSTANT)
    Q_PROPERTY(QString defaultSortBehaviourValue READ defaultSortBehaviourValue CONSTANT)
    /**
      Get sortBehaviour
    */
    static
    QString sortBehaviour()
    {
      return self()->mSortBehaviour;
    }

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

    /**
      Get sortBehaviour default value
    */
    static
    QString defaultSortBehaviourValue()
    {
        return defaultSortBehaviourValue_helper();
    }

    /**
      Set expandedSidebar
    */
    static
    void setExpandedSidebar( bool v )
    {
      if (v != self()->mExpandedSidebar && !self()->isExpandedSidebarImmutable()) {
        self()->mExpandedSidebar = v;
        Q_EMIT self()->expandedSidebarChanged();
      }
    }

    Q_PROPERTY(bool expandedSidebar READ expandedSidebar WRITE setExpandedSidebar NOTIFY expandedSidebarChanged)
    Q_PROPERTY(bool isExpandedSidebarImmutable READ isExpandedSidebarImmutable CONSTANT)
    Q_PROPERTY(bool defaultExpandedSidebarValue READ defaultExpandedSidebarValue CONSTANT)
    /**
      Get expandedSidebar
    */
    static
    bool expandedSidebar()
    {
      return self()->mExpandedSidebar;
    }

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

    /**
      Get expandedSidebar default value
    */
    static
    bool defaultExpandedSidebarValue()
    {
        return defaultExpandedSidebarValue_helper();
    }

    /**
      Set fillWindow
    */
    static
    void setFillWindow( bool v )
    {
      if (v != self()->mFillWindow && !self()->isFillWindowImmutable()) {
        self()->mFillWindow = v;
        Q_EMIT self()->fillWindowChanged();
      }
    }

    Q_PROPERTY(bool fillWindow READ fillWindow WRITE setFillWindow NOTIFY fillWindowChanged)
    Q_PROPERTY(bool isFillWindowImmutable READ isFillWindowImmutable CONSTANT)
    Q_PROPERTY(bool defaultFillWindowValue READ defaultFillWindowValue CONSTANT)
    /**
      Get fillWindow
    */
    static
    bool fillWindow()
    {
      return self()->mFillWindow;
    }

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

    /**
      Get fillWindow default value
    */
    static
    bool defaultFillWindowValue()
    {
        return defaultFillWindowValue_helper();
    }

    /**
      Set columnWidth
    */
    static
    void setColumnWidth( int v )
    {
      if (v != self()->mColumnWidth && !self()->isColumnWidthImmutable()) {
        self()->mColumnWidth = v;
        Q_EMIT self()->columnWidthChanged();
      }
    }

    Q_PROPERTY(int columnWidth READ columnWidth WRITE setColumnWidth NOTIFY columnWidthChanged)
    Q_PROPERTY(bool isColumnWidthImmutable READ isColumnWidthImmutable CONSTANT)
    Q_PROPERTY(int defaultColumnWidthValue READ defaultColumnWidthValue CONSTANT)
    /**
      Get columnWidth
    */
    static
    int columnWidth()
    {
      return self()->mColumnWidth;
    }

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

    /**
      Get columnWidth default value
    */
    static
    int defaultColumnWidthValue()
    {
        return defaultColumnWidthValue_helper();
    }

    /**
      Set storage
    */
    static
    void setStorage( const QString & v )
    {
      if (v != self()->mStorage && !self()->isStorageImmutable()) {
        self()->mStorage = v;
        Q_EMIT self()->storageChanged();
      }
    }

    Q_PROPERTY(QString storage READ storage WRITE setStorage NOTIFY storageChanged)
    Q_PROPERTY(bool isStorageImmutable READ isStorageImmutable CONSTANT)
    Q_PROPERTY(QString defaultStorageValue READ defaultStorageValue CONSTANT)
    /**
      Get storage
    */
    static
    QString storage()
    {
      return self()->mStorage;
    }

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

    /**
      Get storage default value
    */
    static
    QString defaultStorageValue()
    {
        return defaultStorageValue_helper();
    }

    /**
      Set Color scheme
    */
    static
    void setColorScheme( const QString & v )
    {
      if (v != self()->mColorScheme && !self()->isColorSchemeImmutable()) {
        self()->mColorScheme = v;
        Q_EMIT self()->colorSchemeChanged();
      }
    }

    Q_PROPERTY(QString colorScheme READ colorScheme WRITE setColorScheme NOTIFY colorSchemeChanged)
    Q_PROPERTY(bool isColorSchemeImmutable READ isColorSchemeImmutable CONSTANT)
    /**
      Get Color scheme
    */
    static
    QString colorScheme()
    {
      return self()->mColorScheme;
    }

    /**
      Is Color scheme Immutable
    */
    static
    bool isColorSchemeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "colorScheme" ) );
    }

    /**
      Set editor-font
    */
    static
    void setEditorFont( const QFont & v )
    {
      if (v != self()->mEditorFont && !self()->isEditorFontImmutable()) {
        self()->mEditorFont = v;
        Q_EMIT self()->EditorFontChanged();
      }
    }

    Q_PROPERTY(QFont editorFont READ editorFont WRITE setEditorFont NOTIFY EditorFontChanged)
    Q_PROPERTY(bool isEditorFontImmutable READ isEditorFontImmutable CONSTANT)
    Q_PROPERTY(QFont defaultEditorFontValue READ defaultEditorFontValue CONSTANT)
    /**
      Get editor-font
    */
    static
    QFont editorFont()
    {
      return self()->mEditorFont;
    }

    /**
      Is editor-font Immutable
    */
    static
    bool isEditorFontImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EditorFont" ) );
    }

    /**
      Get editor-font default value
    */
    static
    QFont defaultEditorFontValue()
    {
        return defaultEditorFontValue_helper();
    }


    enum {
      signalSortBehaviourChanged = 1,
      signalExpandedSidebarChanged = 2,
      signalFillWindowChanged = 3,
      signalColumnWidthChanged = 4,
      signalStorageChanged = 5,
      signalColorSchemeChanged = 6,
      signalEditorFontChanged = 7
    };

  Q_SIGNALS:
    void sortBehaviourChanged();

    void expandedSidebarChanged();

    void fillWindowChanged();

    void columnWidthChanged();

    void storageChanged();

    void colorSchemeChanged();

    void EditorFontChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:
    Config(QObject *parent = nullptr);
    friend class ConfigHelper;


    // General
    QString mSortBehaviour;
    static QString defaultSortBehaviourValue_helper();
    bool mExpandedSidebar;
    static bool defaultExpandedSidebarValue_helper();
    bool mFillWindow;
    static bool defaultFillWindowValue_helper();
    int mColumnWidth;
    static int defaultColumnWidthValue_helper();
    QString mStorage;
    static QString defaultStorageValue_helper();
    QString mColorScheme;
    static QString defaultColorSchemeValue_helper();

    // Fonts
    QFont mEditorFont;
    static QFont defaultEditorFontValue_helper();
};

#endif

