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

#include <settings_core.h>
#include <okularpart_export.h>

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

#include <kuser.h>

namespace Okular {

class SettingsPrivate;

class OKULARPART_EXPORT Settings : public SettingsCore
{
  Q_OBJECT
  public:
    class EnumDisplayDocumentNameOrPath
    {
      public:
      enum type { Name, Path, COUNT };
    };
    class EnumSlidesTransition
    {
      public:
      enum type { NoTransitions, Replace, Random, BlindsHorizontal, BlindsVertical, BoxIn, BoxOut, Dissolve, Fade, GlitterDown, GlitterRight, GlitterRightDown, SplitHorizontalIn, SplitHorizontalOut, SplitVerticalIn, SplitVerticalOut, WipeDown, WipeRight, WipeLeft, WipeUp, COUNT };
    };
    class EnumSlidesCursor
    {
      public:
      enum type { HiddenDelay, Visible, Hidden, COUNT };
    };
    class EnumPrimaryAnnotationToolBar
    {
      public:
      enum type { FullAnnotationToolBar, QuickAnnotationToolBar, COUNT };
    };
    class EnumViewMode
    {
      public:
      enum type { Single, Facing, FacingFirstCentered, Summary, COUNT };
    };
    class EnumTrimMode
    {
      public:
      enum type { None, Margins, Selection, COUNT };
    };
    class EnumMouseMode
    {
      public:
      enum type { Browse, Zoom, RectSelect, TextSelect, TableSelect, Magnifier, TrimSelect, COUNT };
    };

    static Settings *self();
    static void instance(const QString& cfgfilename);
    static void instance(KSharedConfig::Ptr config);
    ~Settings() override;

    /**
      Set EnableCompositing
    */
    static
    void setEnableCompositing( bool v );

    /**
      Get EnableCompositing
    */
    static
    bool enableCompositing();

    /**
      Is EnableCompositing Immutable
    */
    static
    bool isEnableCompositingImmutable();

    /**
      Set DebugDrawBoundaries
    */
    static
    void setDebugDrawBoundaries( bool v );

    /**
      Get DebugDrawBoundaries
    */
    static
    bool debugDrawBoundaries();

    /**
      Is DebugDrawBoundaries Immutable
    */
    static
    bool isDebugDrawBoundariesImmutable();

    /**
      Set DebugDrawAnnotationRect
    */
    static
    void setDebugDrawAnnotationRect( bool v );

    /**
      Get DebugDrawAnnotationRect
    */
    static
    bool debugDrawAnnotationRect();

    /**
      Is DebugDrawAnnotationRect Immutable
    */
    static
    bool isDebugDrawAnnotationRectImmutable();

    /**
      Set ContentsSearchCaseSensitive
    */
    static
    void setContentsSearchCaseSensitive( bool v );

    /**
      Get ContentsSearchCaseSensitive
    */
    static
    bool contentsSearchCaseSensitive();

    /**
      Is ContentsSearchCaseSensitive Immutable
    */
    static
    bool isContentsSearchCaseSensitiveImmutable();

    /**
      Set ContentsSearchRegularExpression
    */
    static
    void setContentsSearchRegularExpression( bool v );

    /**
      Get ContentsSearchRegularExpression
    */
    static
    bool contentsSearchRegularExpression();

    /**
      Is ContentsSearchRegularExpression Immutable
    */
    static
    bool isContentsSearchRegularExpressionImmutable();

    /**
      Set LayersSearchCaseSensitive
    */
    static
    void setLayersSearchCaseSensitive( bool v );

    /**
      Get LayersSearchCaseSensitive
    */
    static
    bool layersSearchCaseSensitive();

    /**
      Is LayersSearchCaseSensitive Immutable
    */
    static
    bool isLayersSearchCaseSensitiveImmutable();

    /**
      Set LayersSearchRegularExpression
    */
    static
    void setLayersSearchRegularExpression( bool v );

    /**
      Get LayersSearchRegularExpression
    */
    static
    bool layersSearchRegularExpression();

    /**
      Is LayersSearchRegularExpression Immutable
    */
    static
    bool isLayersSearchRegularExpressionImmutable();

    /**
      Set ReviewsSearchCaseSensitive
    */
    static
    void setReviewsSearchCaseSensitive( bool v );

    /**
      Get ReviewsSearchCaseSensitive
    */
    static
    bool reviewsSearchCaseSensitive();

    /**
      Is ReviewsSearchCaseSensitive Immutable
    */
    static
    bool isReviewsSearchCaseSensitiveImmutable();

    /**
      Set ReviewsSearchRegularExpression
    */
    static
    void setReviewsSearchRegularExpression( bool v );

    /**
      Get ReviewsSearchRegularExpression
    */
    static
    bool reviewsSearchRegularExpression();

    /**
      Is ReviewsSearchRegularExpression Immutable
    */
    static
    bool isReviewsSearchRegularExpressionImmutable();

    /**
      Set DrawingTools
    */
    static
    void setDrawingTools( const QStringList & v );

    /**
      Get DrawingTools
    */
    static
    QStringList drawingTools();

    /**
      Is DrawingTools Immutable
    */
    static
    bool isDrawingToolsImmutable();

    /**
      Set BuiltinAnnotationTools
    */
    static
    void setBuiltinAnnotationTools( const QStringList & v );

    /**
      Get BuiltinAnnotationTools
    */
    static
    QStringList builtinAnnotationTools();

    /**
      Is BuiltinAnnotationTools Immutable
    */
    static
    bool isBuiltinAnnotationToolsImmutable();

    /**
      Set QuickAnnotationTools
    */
    static
    void setQuickAnnotationTools( const QStringList & v );

    /**
      Get QuickAnnotationTools
    */
    static
    QStringList quickAnnotationTools();

    /**
      Is QuickAnnotationTools Immutable
    */
    static
    bool isQuickAnnotationToolsImmutable();

    /**
      Set AnnotationContinuousMode
    */
    static
    void setAnnotationContinuousMode( bool v );

    /**
      Get AnnotationContinuousMode
    */
    static
    bool annotationContinuousMode();

    /**
      Is AnnotationContinuousMode Immutable
    */
    static
    bool isAnnotationContinuousModeImmutable();

    /**
      Set QuickAnnotationDefaultAction
    */
    static
    void setQuickAnnotationDefaultAction( uint v );

    /**
      Get QuickAnnotationDefaultAction
    */
    static
    uint quickAnnotationDefaultAction();

    /**
      Is QuickAnnotationDefaultAction Immutable
    */
    static
    bool isQuickAnnotationDefaultActionImmutable();

    /**
      Set ZoomMode
    */
    static
    void setZoomMode( uint v );

    /**
      Get ZoomMode
    */
    static
    uint zoomMode();

    /**
      Is ZoomMode Immutable
    */
    static
    bool isZoomModeImmutable();

    /**
      Set CustomZoomFactor
    */
    static
    void setCustomZoomFactor( uint v );

    /**
      Get CustomZoomFactor
    */
    static
    uint customZoomFactor();

    /**
      Is CustomZoomFactor Immutable
    */
    static
    bool isCustomZoomFactorImmutable();

    /**
      Set ShellOpenFileInTabs
    */
    static
    void setShellOpenFileInTabs( bool v );

    /**
      Get ShellOpenFileInTabs
    */
    static
    bool shellOpenFileInTabs();

    /**
      Is ShellOpenFileInTabs Immutable
    */
    static
    bool isShellOpenFileInTabsImmutable();

    /**
      Set SwitchToTabIfOpen
    */
    static
    void setSwitchToTabIfOpen( bool v );

    /**
      Get SwitchToTabIfOpen
    */
    static
    bool switchToTabIfOpen();

    /**
      Is SwitchToTabIfOpen Immutable
    */
    static
    bool isSwitchToTabIfOpenImmutable();

    /**
      Set ShowOSD
    */
    static
    void setShowOSD( bool v );

    /**
      Get ShowOSD
    */
    static
    bool showOSD();

    /**
      Is ShowOSD Immutable
    */
    static
    bool isShowOSDImmutable();

    /**
      Set ShowEmbeddedContentMessages
    */
    static
    void setShowEmbeddedContentMessages( bool v );

    /**
      Get ShowEmbeddedContentMessages
    */
    static
    bool showEmbeddedContentMessages();

    /**
      Is ShowEmbeddedContentMessages Immutable
    */
    static
    bool isShowEmbeddedContentMessagesImmutable();

    /**
      Set DisplayDocumentTitle
    */
    static
    void setDisplayDocumentTitle( bool v );

    /**
      Get DisplayDocumentTitle
    */
    static
    bool displayDocumentTitle();

    /**
      Is DisplayDocumentTitle Immutable
    */
    static
    bool isDisplayDocumentTitleImmutable();

    /**
      Set rtlReadingDirection
    */
    static
    void setRtlReadingDirection( bool v );

    /**
      Get rtlReadingDirection
    */
    static
    bool rtlReadingDirection();

    /**
      Is rtlReadingDirection Immutable
    */
    static
    bool isRtlReadingDirectionImmutable();

    /**
      Set DisplayDocumentNameOrPath
    */
    static
    void setDisplayDocumentNameOrPath( int v );

    /**
      Get DisplayDocumentNameOrPath
    */
    static
    int displayDocumentNameOrPath();

    /**
      Is DisplayDocumentNameOrPath Immutable
    */
    static
    bool isDisplayDocumentNameOrPathImmutable();

    /**
      Set UseTTS
    */
    static
    void setUseTTS( bool v );

    /**
      Get UseTTS
    */
    static
    bool useTTS();

    /**
      Is UseTTS Immutable
    */
    static
    bool isUseTTSImmutable();

    /**
      Set ttsEngine
    */
    static
    void setTtsEngine( const QString & v );

    /**
      Get ttsEngine
    */
    static
    QString ttsEngine();

    /**
      Is ttsEngine Immutable
    */
    static
    bool isTtsEngineImmutable();

    /**
      Set ttsVoice
    */
    static
    void setTtsVoice( const QString & v );

    /**
      Get ttsVoice
    */
    static
    QString ttsVoice();

    /**
      Is ttsVoice Immutable
    */
    static
    bool isTtsVoiceImmutable();

    /**
      Set WatchFile
    */
    static
    void setWatchFile( bool v );

    /**
      Get WatchFile
    */
    static
    bool watchFile();

    /**
      Is WatchFile Immutable
    */
    static
    bool isWatchFileImmutable();

    /**
      Set MaxRecentItems
    */
    static
    void setMaxRecentItems( int v );

    /**
      Get MaxRecentItems
    */
    static
    int maxRecentItems();

    /**
      Is MaxRecentItems Immutable
    */
    static
    bool isMaxRecentItemsImmutable();

    /**
      Set SlidesBackgroundColor
    */
    static
    void setSlidesBackgroundColor( const QColor & v );

    /**
      Get SlidesBackgroundColor
    */
    static
    QColor slidesBackgroundColor();

    /**
      Is SlidesBackgroundColor Immutable
    */
    static
    bool isSlidesBackgroundColorImmutable();

    /**
      Set SlidesTransition
    */
    static
    void setSlidesTransition( int v );

    /**
      Get SlidesTransition
    */
    static
    int slidesTransition();

    /**
      Is SlidesTransition Immutable
    */
    static
    bool isSlidesTransitionImmutable();

    /**
      Set SlidesCursor
    */
    static
    void setSlidesCursor( int v );

    /**
      Get SlidesCursor
    */
    static
    int slidesCursor();

    /**
      Is SlidesCursor Immutable
    */
    static
    bool isSlidesCursorImmutable();

    /**
      Set SlidesShowProgress
    */
    static
    void setSlidesShowProgress( bool v );

    /**
      Get SlidesShowProgress
    */
    static
    bool slidesShowProgress();

    /**
      Is SlidesShowProgress Immutable
    */
    static
    bool isSlidesShowProgressImmutable();

    /**
      Set SlidesShowSummary
    */
    static
    void setSlidesShowSummary( bool v );

    /**
      Get SlidesShowSummary
    */
    static
    bool slidesShowSummary();

    /**
      Is SlidesShowSummary Immutable
    */
    static
    bool isSlidesShowSummaryImmutable();

    /**
      Set SlidesScreen
    */
    static
    void setSlidesScreen( int v );

    /**
      Get SlidesScreen
    */
    static
    int slidesScreen();

    /**
      Is SlidesScreen Immutable
    */
    static
    bool isSlidesScreenImmutable();

    /**
      Set ShowLeftPanel
    */
    static
    void setShowLeftPanel( bool v );

    /**
      Get ShowLeftPanel
    */
    static
    bool showLeftPanel();

    /**
      Is ShowLeftPanel Immutable
    */
    static
    bool isShowLeftPanelImmutable();

    /**
      Set SplitterSizes
    */
    static
    void setSplitterSizes( const QList<int> & v );

    /**
      Get SplitterSizes
    */
    static
    QList<int> splitterSizes();

    /**
      Is SplitterSizes Immutable
    */
    static
    bool isSplitterSizesImmutable();

    /**
      Set ShowBottomBar
    */
    static
    void setShowBottomBar( bool v );

    /**
      Get ShowBottomBar
    */
    static
    bool showBottomBar();

    /**
      Is ShowBottomBar Immutable
    */
    static
    bool isShowBottomBarImmutable();

    /**
      Set CurrentPageOnly
    */
    static
    void setCurrentPageOnly( bool v );

    /**
      Get CurrentPageOnly
    */
    static
    bool currentPageOnly();

    /**
      Is CurrentPageOnly Immutable
    */
    static
    bool isCurrentPageOnlyImmutable();

    /**
      Set GroupByAuthor
    */
    static
    void setGroupByAuthor( bool v );

    /**
      Get GroupByAuthor
    */
    static
    bool groupByAuthor();

    /**
      Is GroupByAuthor Immutable
    */
    static
    bool isGroupByAuthorImmutable();

    /**
      Set GroupByPage
    */
    static
    void setGroupByPage( bool v );

    /**
      Get GroupByPage
    */
    static
    bool groupByPage();

    /**
      Is GroupByPage Immutable
    */
    static
    bool isGroupByPageImmutable();

    /**
      Set FilterBookmarks
    */
    static
    void setFilterBookmarks( bool v );

    /**
      Get FilterBookmarks
    */
    static
    bool filterBookmarks();

    /**
      Is FilterBookmarks Immutable
    */
    static
    bool isFilterBookmarksImmutable();

    /**
      Set SyncThumbnailsViewport
    */
    static
    void setSyncThumbnailsViewport( bool v );

    /**
      Get SyncThumbnailsViewport
    */
    static
    bool syncThumbnailsViewport();

    /**
      Is SyncThumbnailsViewport Immutable
    */
    static
    bool isSyncThumbnailsViewportImmutable();

    /**
      Set TocPageColumn
    */
    static
    void setTocPageColumn( bool v );

    /**
      Get TocPageColumn
    */
    static
    bool tocPageColumn();

    /**
      Is TocPageColumn Immutable
    */
    static
    bool isTocPageColumnImmutable();

    /**
      Set SidebarShowText
    */
    static
    void setSidebarShowText( bool v );

    /**
      Get SidebarShowText
    */
    static
    bool sidebarShowText();

    /**
      Is SidebarShowText Immutable
    */
    static
    bool isSidebarShowTextImmutable();

    /**
      Set SidebarIconSize
    */
    static
    void setSidebarIconSize( uint v );

    /**
      Get SidebarIconSize
    */
    static
    uint sidebarIconSize();

    /**
      Is SidebarIconSize Immutable
    */
    static
    bool isSidebarIconSizeImmutable();

    /**
      Set EditToolBarPlacement
    */
    static
    void setEditToolBarPlacement( int v );

    /**
      Get EditToolBarPlacement
    */
    static
    int editToolBarPlacement();

    /**
      Is EditToolBarPlacement Immutable
    */
    static
    bool isEditToolBarPlacementImmutable();

    /**
      Set SmoothScrolling
    */
    static
    void setSmoothScrolling( bool v );

    /**
      Get SmoothScrolling
    */
    static
    bool smoothScrolling();

    /**
      Is SmoothScrolling Immutable
    */
    static
    bool isSmoothScrollingImmutable();

    /**
      Set ShowScrollBars
    */
    static
    void setShowScrollBars( bool v );

    /**
      Get ShowScrollBars
    */
    static
    bool showScrollBars();

    /**
      Is ShowScrollBars Immutable
    */
    static
    bool isShowScrollBarsImmutable();

    /**
      Set ScrollOverlap
    */
    static
    void setScrollOverlap( uint v );

    /**
      Get ScrollOverlap
    */
    static
    uint scrollOverlap();

    /**
      Is ScrollOverlap Immutable
    */
    static
    bool isScrollOverlapImmutable();

    /**
      Set ViewColumns
    */
    static
    void setViewColumns( uint v );

    /**
      Get ViewColumns
    */
    static
    uint viewColumns();

    /**
      Is ViewColumns Immutable
    */
    static
    bool isViewColumnsImmutable();

    /**
      Set TrimMargins
    */
    static
    void setTrimMargins( bool v );

    /**
      Get TrimMargins
    */
    static
    bool trimMargins();

    /**
      Is TrimMargins Immutable
    */
    static
    bool isTrimMarginsImmutable();

    /**
      Set ViewContinuous
    */
    static
    void setViewContinuous( bool v );

    /**
      Get ViewContinuous
    */
    static
    bool viewContinuous();

    /**
      Is ViewContinuous Immutable
    */
    static
    bool isViewContinuousImmutable();

    /**
      Set DragBeyondScreenEdges
    */
    static
    void setDragBeyondScreenEdges( bool v );

    /**
      Get DragBeyondScreenEdges
    */
    static
    bool dragBeyondScreenEdges();

    /**
      Is DragBeyondScreenEdges Immutable
    */
    static
    bool isDragBeyondScreenEdgesImmutable();

    /**
      Set PrimaryAnnotationToolBar
    */
    static
    void setPrimaryAnnotationToolBar( int v );

    /**
      Get PrimaryAnnotationToolBar
    */
    static
    int primaryAnnotationToolBar();

    /**
      Is PrimaryAnnotationToolBar Immutable
    */
    static
    bool isPrimaryAnnotationToolBarImmutable();

    /**
      Set ViewMode
    */
    static
    void setViewMode( int v );

    /**
      Get ViewMode
    */
    static
    int viewMode();

    /**
      Is ViewMode Immutable
    */
    static
    bool isViewModeImmutable();

    /**
      Set TrimMode
    */
    static
    void setTrimMode( int v );

    /**
      Get TrimMode
    */
    static
    int trimMode();

    /**
      Is TrimMode Immutable
    */
    static
    bool isTrimModeImmutable();

    /**
      Set MouseMode
    */
    static
    void setMouseMode( int v );

    /**
      Get MouseMode
    */
    static
    int mouseMode();

    /**
      Is MouseMode Immutable
    */
    static
    bool isMouseModeImmutable();

    /**
      Set ShowSourceLocationsGraphically
    */
    static
    void setShowSourceLocationsGraphically( bool v );

    /**
      Get ShowSourceLocationsGraphically
    */
    static
    bool showSourceLocationsGraphically();

    /**
      Is ShowSourceLocationsGraphically Immutable
    */
    static
    bool isShowSourceLocationsGraphicallyImmutable();

    /**
      Set UseCustomBackgroundColor
    */
    static
    void setUseCustomBackgroundColor( bool v );

    /**
      Get UseCustomBackgroundColor
    */
    static
    bool useCustomBackgroundColor();

    /**
      Is UseCustomBackgroundColor Immutable
    */
    static
    bool isUseCustomBackgroundColorImmutable();

    /**
      Set BackgroundColor
    */
    static
    void setBackgroundColor( const QColor & v );

    /**
      Get BackgroundColor
    */
    static
    QColor backgroundColor();

    /**
      Is BackgroundColor Immutable
    */
    static
    bool isBackgroundColorImmutable();

    /**
      Set SearchCaseSensitive
    */
    static
    void setSearchCaseSensitive( bool v );

    /**
      Get SearchCaseSensitive
    */
    static
    bool searchCaseSensitive();

    /**
      Is SearchCaseSensitive Immutable
    */
    static
    bool isSearchCaseSensitiveImmutable();

    /**
      Set SearchFromCurrentPage
    */
    static
    void setSearchFromCurrentPage( bool v );

    /**
      Get SearchFromCurrentPage
    */
    static
    bool searchFromCurrentPage();

    /**
      Is SearchFromCurrentPage Immutable
    */
    static
    bool isSearchFromCurrentPageImmutable();

    /**
      Set FindAsYouType
    */
    static
    void setFindAsYouType( bool v );

    /**
      Get FindAsYouType
    */
    static
    bool findAsYouType();

    /**
      Is FindAsYouType Immutable
    */
    static
    bool isFindAsYouTypeImmutable();

    /**
      Set HighlightImages
    */
    static
    void setHighlightImages( bool v );

    /**
      Get HighlightImages
    */
    static
    bool highlightImages();

    /**
      Is HighlightImages Immutable
    */
    static
    bool isHighlightImagesImmutable();

    /**
      Set HighlightLinks
    */
    static
    void setHighlightLinks( bool v );

    /**
      Get HighlightLinks
    */
    static
    bool highlightLinks();

    /**
      Is HighlightLinks Immutable
    */
    static
    bool isHighlightLinksImmutable();

    /**
      Set RecolorForeground
    */
    static
    void setRecolorForeground( const QColor & v );

    /**
      Get RecolorForeground
    */
    static
    QColor recolorForeground();

    /**
      Is RecolorForeground Immutable
    */
    static
    bool isRecolorForegroundImmutable();

    /**
      Set RecolorBackground
    */
    static
    void setRecolorBackground( const QColor & v );

    /**
      Get RecolorBackground
    */
    static
    QColor recolorBackground();

    /**
      Is RecolorBackground Immutable
    */
    static
    bool isRecolorBackgroundImmutable();

    /**
      Set BWThreshold
    */
    static
    void setBWThreshold( uint v );

    /**
      Get BWThreshold
    */
    static
    uint bWThreshold();

    /**
      Is BWThreshold Immutable
    */
    static
    bool isBWThresholdImmutable();

    /**
      Set BWContrast
    */
    static
    void setBWContrast( uint v );

    /**
      Get BWContrast
    */
    static
    uint bWContrast();

    /**
      Is BWContrast Immutable
    */
    static
    bool isBWContrastImmutable();

    /**
      Set IdentityAuthor
    */
    static
    void setIdentityAuthor( const QString & v );

    /**
      Get IdentityAuthor
    */
    static
    QString identityAuthor();

    /**
      Is IdentityAuthor Immutable
    */
    static
    bool isIdentityAuthorImmutable();


    enum {
      signalBuiltinAnnotationToolsChanged = 1,
      signalQuickAnnotationToolsChanged = 2,
      signalViewContinuousChanged = 3,
      signalColorModesChanged2 = 4,
      signalPrimaryAnnotationToolBarChanged = 5
    };

  Q_SIGNALS:
    void builtinAnnotationToolsChanged();

    void quickAnnotationToolsChanged();

    void viewContinuousChanged();

    /**
      Same as colorModesChanged(), but kconfig_compiler does not allow to inherit signals, so appending a '2'.
    */
    void colorModesChanged2();

    void primaryAnnotationToolBarChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:
    Settings(KSharedConfig::Ptr config);
    friend class SettingsHelper;

    bool usrSave() override;
  private:
    SettingsPrivate *d;
};

}

#endif

