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

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

class WorkspaceOptionsKwinSettings : public KConfigSkeleton
{
  Q_OBJECT
  public:

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

    /**
      Set Automatically switch to touch-optimized mode
    */
    void setTabletMode( const QString & v )
    {
      if (v != mTabletMode && !isTabletModeImmutable()) {
        mTabletMode = v;
        Q_EMIT tabletModeChanged();
      }
    }

    Q_PROPERTY(QString tabletMode READ tabletMode WRITE setTabletMode NOTIFY tabletModeChanged)
    Q_PROPERTY(bool isTabletModeImmutable READ isTabletModeImmutable CONSTANT)
    Q_PROPERTY(QString defaultTabletModeValue READ defaultTabletModeValue CONSTANT)
    /**
      Get Automatically switch to touch-optimized mode
    */
    QString tabletMode() const
    {
      return mTabletMode;
    }

    /**
      Is Automatically switch to touch-optimized mode Immutable
    */
    bool isTabletModeImmutable() const
    {
      return isImmutable( QStringLiteral( "tabletMode" ) );
    }

    /**
      Get Automatically switch to touch-optimized mode default value
    */
    QString defaultTabletModeValue() const
    {
        return defaultTabletModeValue_helper();
    }

    /**
      Set Enable middle click selection pasting
    */
    void setPrimarySelection( bool v )
    {
      if (v != mPrimarySelection && !isPrimarySelectionImmutable()) {
        mPrimarySelection = v;
        Q_EMIT primarySelectionChanged();
      }
    }

    Q_PROPERTY(bool primarySelection READ primarySelection WRITE setPrimarySelection NOTIFY primarySelectionChanged)
    Q_PROPERTY(bool isPrimarySelectionImmutable READ isPrimarySelectionImmutable CONSTANT)
    Q_PROPERTY(bool defaultPrimarySelectionValue READ defaultPrimarySelectionValue CONSTANT)
    /**
      Get Enable middle click selection pasting
    */
    bool primarySelection() const
    {
      return mPrimarySelection;
    }

    /**
      Is Enable middle click selection pasting Immutable
    */
    bool isPrimarySelectionImmutable() const
    {
      return isImmutable( QStringLiteral( "primarySelection" ) );
    }

    /**
      Get Enable middle click selection pasting default value
    */
    bool defaultPrimarySelectionValue() const
    {
        return defaultPrimarySelectionValue_helper();
    }


    enum {
      signalTabletModeChanged = 1,
      signalPrimarySelectionChanged = 2
    };

  Q_SIGNALS:
    void tabletModeChanged();

    void primarySelectionChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:

    // Input
    QString mTabletMode;
    QString defaultTabletModeValue_helper() const;

    // Wayland
    bool mPrimarySelection;
    bool defaultPrimarySelectionValue_helper() const;
};

#endif

