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

0001 #pragma once
0002 
0003 #include <QObject>
0004 #include <QUrl>
0005 #include <QQmlParserStatus>
0006 
0007 class DirInfo : public QObject
0008 {
0009 //    Q_INTERFACES(QQmlParserStatus)
0010 
0011     Q_OBJECT
0012     Q_PROPERTY(QUrl url READ url WRITE setUrl NOTIFY urlChanged)
0013     Q_PROPERTY(quint64 size READ size NOTIFY sizeChanged FINAL)
0014     Q_PROPERTY(QString sizeString READ sizeString NOTIFY sizeChanged FINAL)
0015 
0016     Q_PROPERTY(quint64 filesCount READ filesCount NOTIFY filesCountChanged FINAL)
0017     Q_PROPERTY(quint64 dirCount READ dirCount NOTIFY dirsCountChanged FINAL)
0018 
0019     Q_PROPERTY(quint64 avaliableSpace READ avaliableSpace NOTIFY avaliableSpaceChanged FINAL)
0020     Q_PROPERTY(quint64 totalSpace READ totalSpace NOTIFY totalSpaceChanged FINAL)
0021 
0022     Q_PROPERTY(QString avaliableSpaceString READ avaliableSpaceString NOTIFY avaliableSpaceChanged FINAL)
0023     Q_PROPERTY(QString totalSpaceString READ totalSpaceString NOTIFY totalSpaceChanged FINAL)
0024 
0025 public:
0026     explicit DirInfo(QObject *parent = nullptr);
0027 
0028     QUrl url() const;
0029 
0030     quint64 size() const;
0031 
0032     quint64 dirCount() const;
0033 
0034     quint64 filesCount() const;
0035 
0036     QString sizeString() const;
0037 
0038     quint64 avaliableSpace() const;
0039 
0040     quint64 totalSpace() const;
0041 
0042     QString avaliableSpaceString() const;
0043 
0044     QString totalSpaceString() const;
0045 
0046 public Q_SLOTS:
0047     void setUrl(QUrl url);
0048 
0049 private:
0050     void getSize();
0051 
0052     QUrl m_url;
0053     quint64 m_size = 0;
0054     quint64 m_filesCount = 0;
0055     quint64 m_dirCount = 0;
0056 
0057     quint64 m_avaliableSpace = 0;
0058 
0059     quint64 m_totalSpace = 0;
0060 
0061 Q_SIGNALS:
0062     void urlChanged(QUrl url);
0063     void sizeChanged(quint64 size);
0064     void dirsCountChanged(quint64 dirCount);
0065     void filesCountChanged(quint64 filesCount);
0066 
0067     void avaliableSpaceChanged(quint64 avaliableSpace);
0068     void totalSpaceChanged(quint64 totalSpace);
0069 };