Browse Source

Add disable, different defaults for mobile/desktop to video auto-delete

QGC4.4
dheideman 8 years ago
parent
commit
df78b98d9f
  1. 11
      src/Settings/Video.SettingsGroup.json
  2. 11
      src/Settings/VideoSettings.cc
  3. 4
      src/Settings/VideoSettings.h
  4. 3
      src/VideoStreaming/VideoReceiver.cc
  5. 16
      src/ui/preferences/GeneralSettings.qml

11
src/Settings/Video.SettingsGroup.json

@ -75,7 +75,16 @@ @@ -75,7 +75,16 @@
"type": "uint32",
"min": 100,
"units": "MB",
"defaultValue": 2048
"defaultValue": 10240,
"mobileDefaultValue": 2048
},
{
"name": "EnableStorageLimit",
"shortDescription": "Enable/Disable Limits on Storage Usage",
"longDescription": "When enabled, old video files will be auto-deleted when the total size of QGC-recorded video exceeds the maximum video storage usage.",
"type": "bool",
"defaultValue": false,
"mobileDefaultValue": true
},
{
"name": "RtspTimeout",

11
src/Settings/VideoSettings.cc

@ -28,6 +28,7 @@ const char* VideoSettings::videoGridLinesName = "VideoGridLines"; @@ -28,6 +28,7 @@ const char* VideoSettings::videoGridLinesName = "VideoGridLines";
const char* VideoSettings::showRecControlName = "ShowRecControl";
const char* VideoSettings::recordingFormatName = "RecordingFormat";
const char* VideoSettings::maxVideoSizeName = "MaxVideoSize";
const char* VideoSettings::enableStorageLimitName = "EnableStorageLimit";
const char* VideoSettings::rtspTimeoutName = "RtspTimeout";
const char* VideoSettings::videoSourceNoVideo = "No Video Available";
@ -47,6 +48,7 @@ VideoSettings::VideoSettings(QObject* parent) @@ -47,6 +48,7 @@ VideoSettings::VideoSettings(QObject* parent)
, _showRecControlFact(NULL)
, _recordingFormatFact(NULL)
, _maxVideoSizeFact(NULL)
, _enableStorageLimitFact(NULL)
, _rtspTimeoutFact(NULL)
{
QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership);
@ -169,6 +171,15 @@ Fact* VideoSettings::maxVideoSize(void) @@ -169,6 +171,15 @@ Fact* VideoSettings::maxVideoSize(void)
return _maxVideoSizeFact;
}
Fact* VideoSettings::enableStorageLimit(void)
{
if (!_enableStorageLimitFact) {
_enableStorageLimitFact = _createSettingsFact(enableStorageLimitName);
}
return _enableStorageLimitFact;
}
Fact* VideoSettings::rtspTimeout(void)
{
if (!_rtspTimeoutFact) {

4
src/Settings/VideoSettings.h

@ -28,6 +28,7 @@ public: @@ -28,6 +28,7 @@ public:
Q_PROPERTY(Fact* showRecControl READ showRecControl CONSTANT)
Q_PROPERTY(Fact* recordingFormat READ recordingFormat CONSTANT)
Q_PROPERTY(Fact* maxVideoSize READ maxVideoSize CONSTANT)
Q_PROPERTY(Fact* enableStorageLimit READ enableStorageLimit CONSTANT)
Q_PROPERTY(Fact* rtspTimeout READ rtspTimeout CONSTANT)
Fact* videoSource (void);
@ -39,6 +40,7 @@ public: @@ -39,6 +40,7 @@ public:
Fact* showRecControl (void);
Fact* recordingFormat (void);
Fact* maxVideoSize (void);
Fact* enableStorageLimit(void);
Fact* rtspTimeout (void);
static const char* videoSettingsGroupName;
@ -52,6 +54,7 @@ public: @@ -52,6 +54,7 @@ public:
static const char* showRecControlName;
static const char* recordingFormatName;
static const char* maxVideoSizeName;
static const char* enableStorageLimitName;
static const char* rtspTimeoutName;
static const char* videoSourceNoVideo;
@ -70,6 +73,7 @@ private: @@ -70,6 +73,7 @@ private:
SettingsFact* _showRecControlFact;
SettingsFact* _recordingFormatFact;
SettingsFact* _maxVideoSizeFact;
SettingsFact* _enableStorageLimitFact;
SettingsFact* _rtspTimeoutFact;
};

3
src/VideoStreaming/VideoReceiver.cc

@ -549,6 +549,8 @@ VideoReceiver::_onBusMessage(GstBus* bus, GstMessage* msg, gpointer data) @@ -549,6 +549,8 @@ VideoReceiver::_onBusMessage(GstBus* bus, GstMessage* msg, gpointer data)
void
VideoReceiver::_cleanupOldVideos()
{
//-- Only perform cleanup if storage limit is enabled
if(qgcApp()->toolbox()->settingsManager()->videoSettings()->enableStorageLimit()->rawValue().toBool()) {
QString savePath = qgcApp()->toolbox()->settingsManager()->appSettings()->videoSavePath();
QDir videoDir = QDir(savePath);
videoDir.setFilter(QDir::Files | QDir::Readable | QDir::NoSymLinks | QDir::Writable);
@ -578,6 +580,7 @@ VideoReceiver::_cleanupOldVideos() @@ -578,6 +580,7 @@ VideoReceiver::_cleanupOldVideos()
vidList.removeLast();
}
}
}
}
#endif

16
src/ui/preferences/GeneralSettings.qml

@ -630,7 +630,21 @@ QGCView { @@ -630,7 +630,21 @@ QGCView {
anchors.centerIn: parent
Row {
spacing: ScreenTools.defaultFontPixelWidth
visible: QGroundControl.videoManager.isGStreamer && videoSource.currentIndex && videoSource.currentIndex < 4 && QGroundControl.settingsManager.videoSettings.maxVideoSize.visible
visible: QGroundControl.videoManager.isGStreamer && videoSource.currentIndex && videoSource.currentIndex < 4 && QGroundControl.settingsManager.videoSettings.enableStorageLimit.visible
QGCLabel {
text: qsTr("Auto-Delete Files:")
width: _labelWidth
anchors.verticalCenter: parent.verticalCenter
}
FactCheckBox {
text: ""
fact: QGroundControl.settingsManager.videoSettings.enableStorageLimit
anchors.verticalCenter: parent.verticalCenter
}
}
Row {
spacing: ScreenTools.defaultFontPixelWidth
visible: QGroundControl.videoManager.isGStreamer && videoSource.currentIndex && videoSource.currentIndex < 4 && QGroundControl.settingsManager.videoSettings.maxVideoSize.visible && QGroundControl.settingsManager.videoSettings.enableStorageLimit.value
QGCLabel {
text: qsTr("Max Storage Usage:")
width: _labelWidth

Loading…
Cancel
Save