File indexing completed on 2024-05-12 04:46:01

0001 #pragma once
0002 
0003 #include <QObject>
0004 
0005 #include <MauiKit3/FileBrowsing/fmlist.h>
0006 #include <MauiKit3/FileBrowsing/fmstatic.h>
0007 #include <QQmlParserStatus>
0008 
0009 class QSettings;
0010 
0011 class FolderConfig : public QObject , public QQmlParserStatus
0012 {
0013     Q_OBJECT
0014     Q_INTERFACES(QQmlParserStatus)
0015 
0016     Q_PROPERTY(QUrl path READ getPath WRITE setPath NOTIFY pathChanged)
0017 
0018     Q_PROPERTY(FMList::SORTBY sortKey READ sortKey WRITE setSortKey NOTIFY sortKeyChanged)
0019     Q_PROPERTY(FMList::SORTBY fallbackSortKey READ fallbackSortKey WRITE setFallbackSortKey NOTIFY fallbackSortKeyChanged)
0020 
0021     Q_PROPERTY(FMList::VIEW_TYPE viewType READ viewType WRITE setViewType NOTIFY viewTypeChanged)
0022     Q_PROPERTY(FMList::VIEW_TYPE fallbackViewType READ fallbackViewType WRITE setFallbackViewType NOTIFY fallbackViewTypeChanged)
0023 
0024     Q_PROPERTY(bool terminalVisible READ terminalVisible WRITE setTerminalVisible NOTIFY terminalVisibleChanged)
0025 
0026     Q_PROPERTY(bool enabled READ enabled WRITE setEnabled NOTIFY enabledChanged)
0027 
0028 
0029 public:
0030     explicit FolderConfig(QObject *parent = nullptr);
0031 ~FolderConfig();
0032 
0033     void setSortKey(const FMList::SORTBY &value);
0034     FMList::SORTBY sortKey() const;
0035 
0036     void setTerminalVisible(const bool &value);
0037     bool terminalVisible() const;
0038 
0039     QUrl getPath() const;
0040     void setPath(QUrl path);
0041 
0042     FMList::VIEW_TYPE viewType() const;
0043 
0044     FMList::SORTBY fallbackSortKey() const;
0045 
0046     FMList::VIEW_TYPE fallbackViewType() const;
0047 
0048 public Q_SLOTS:
0049     void setViewType(FMList::VIEW_TYPE viewType);
0050 
0051     void setFallbackSortKey(FMList::SORTBY fallbackSortKey);
0052 
0053     void setFallbackViewType(FMList::VIEW_TYPE fallbackViewType);
0054 
0055     void setEnabled(bool enabled);
0056 
0057 private:
0058     QSettings *m_settings;
0059     QUrl m_path;
0060     bool m_terminalVisible = false;
0061 
0062     const QVariantMap dirConf(const QUrl &path);
0063     void setDirConf(const QString &key, const QVariant &value);
0064 
0065     void setValues();
0066     void resetToFallbackValues();
0067 
0068     FMList::SORTBY m_sortKey ;
0069     FMList::SORTBY m_fallbackSortKey;
0070 
0071     FMList::VIEW_TYPE m_fallbackViewType;
0072     FMList::VIEW_TYPE m_viewType;
0073 
0074     bool m_enabled = false;
0075 
0076 Q_SIGNALS:
0077     void sortKeyChanged();
0078     void terminalVisibleChanged();
0079     void pathChanged(QUrl path);
0080     void viewTypeChanged(FMList::VIEW_TYPE viewType);
0081     void fallbackSortKeyChanged();
0082     void fallbackViewTypeChanged();
0083 
0084     void enabledChanged();
0085 
0086 public:
0087     void classBegin() override final;
0088     void componentComplete() override final;
0089     bool enabled() const;
0090 };
0091