42 Q_PROPERTY(
bool autoDecompress READ autoDecompress WRITE setAutoDecompress NOTIFY
autoDecompressChanged FINAL)
51 Q_PROPERTY(QString outputDirectory READ outputDirectory WRITE setOutputDirectory
56 enum class FilterMode {
72 void setFilterMode(FilterMode mode);
73 FilterMode filterMode()
const {
return _filterMode; }
77 void setAutoDecompress(
bool enable);
78 bool autoDecompress()
const {
return _autoDecompress; }
82 void setOutputDirectory(
const QString &directory);
83 QString outputDirectory()
const {
return _outputDirectory; }
87 void setRemoveAfterExtraction(
bool remove);
88 bool removeAfterExtraction()
const {
return _removeAfterExtraction; }
92 void setDebounceDelay(
int milliseconds);
93 int debounceDelay()
const;
102 bool watchDirectory(
const QString &directoryPath);
107 bool unwatchDirectory(
const QString &directoryPath);
111 QStringList watchedDirectories()
const;
121 bool isExtracting()
const {
return _extracting; }
124 qreal progress()
const {
return _progress; }
133 QStringList scanDirectory(
const QString &directoryPath)
const;
136 void cancelExtraction();
159 void _onDirectoryChanged(
const QString &path);
160 void _onExtractionProgress(qreal progress);
161 void _onExtractionFinished(
bool success);
164 bool _isWatchedFormat(
const QString &filePath)
const;
165 void _processNewFile(
const QString &filePath);
166 void _startExtraction(
const QString &archivePath);
167 void _setExtracting(
bool extracting);
168 void _setProgress(qreal progress);
174 FilterMode _filterMode = FilterMode::Both;
175 bool _autoDecompress =
false;
176 bool _removeAfterExtraction =
false;
177 QString _outputDirectory;
180 bool _extracting =
false;
181 qreal _progress = 0.0;
184 QHash<QString, QSet<QString>> _knownFiles;
187 QStringList _pendingExtractions;
188 QString _currentArchive;
189 bool _cancelPending =
false;