9#include <QtCore/QObject>
11#include <QtCore/QString>
131 QStringList
scanDirectory(
const QString &directoryPath)
const;
157 void _onDirectoryChanged(
const QString &path);
158 void _onExtractionProgress(qreal
progress);
159 void _onExtractionFinished(
bool success);
162 bool _isWatchedFormat(
const QString &filePath)
const;
163 void _processNewFile(
const QString &filePath);
164 void _startExtraction(
const QString &archivePath);
165 void _setExtracting(
bool extracting);
173 bool _autoDecompress =
false;
174 bool _removeAfterExtraction =
false;
175 QString _outputDirectory;
178 bool _extracting =
false;
179 qreal _progress = 0.0;
182 QHash<QString, QSet<QString>> _knownFiles;
185 QStringList _pendingExtractions;
186 QString _currentArchive;
187 bool _cancelPending =
false;
Wrapper around QFileSystemWatcher with callback-based API.
Watches directories for new archive files and optionally auto-decompresses them.
int debounceDelay() const
void setRemoveAfterExtraction(bool remove)
QStringList watchedDirectories() const
QStringList scanDirectory(const QString &directoryPath) const
qreal progress() const
Get current extraction progress.
void setOutputDirectory(const QString &directory)
void cancelExtraction()
Cancel current extraction.
void autoDecompressChanged(bool autoDecompress)
Property change signals.
void setFilterMode(FilterMode mode)
void setDebounceDelay(int milliseconds)
bool watchDirectory(const QString &directoryPath)
bool unwatchDirectory(const QString &directoryPath)
bool removeAfterExtraction() const
QString outputDirectory() const
bool isExtracting() const
Check if extraction is in progress.
bool autoDecompress() const
void progressChanged(qreal progress)
void setAutoDecompress(bool enable)
FilterMode filterMode() const
FilterMode
Whether auto-decompression is enabled.
@ Both
Watch for both archives and compressed files.
@ Archives
Watch for archive files (.zip, .tar, .tar.gz, .7z)
@ Compressed
Watch for single-file compressed (.gz, .xz, .zst, .bz2, .lz4)
void extractionComplete(const QString &archivePath, const QString &outputPath, bool success, const QString &errorString)
void outputDirectoryChanged(const QString &directory)
void clear()
Stop watching all directories.
~QGCArchiveWatcher() override
void extractingChanged(bool extracting)
void archiveDetected(const QString &archivePath, QGCCompression::Format format)
QObject wrapper for compression operations with progress signals.
Callback-based file/directory watcher with debouncing support.
Format
Archive and compression format types (for decompression)