From 6db742825234aa849c925839b0b221a8b3fc2fbf Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Mardelle Date: Sat, 26 Sep 2009 13:52:48 +0000 Subject: [PATCH] Update free space info every 30 seconds when capturing svn path=/trunk/kdenlive/; revision=3936 --- src/recmonitor.cpp | 20 +++++++++++--------- src/recmonitor.h | 9 +++++---- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/recmonitor.cpp b/src/recmonitor.cpp index b40c6437..ed19f302 100644 --- a/src/recmonitor.cpp +++ b/src/recmonitor.cpp @@ -98,8 +98,11 @@ RecMonitor::RecMonitor(QString name, QWidget *parent) : m_freeSpace->setMaximumWidth(150); QFontMetricsF fontMetrics(font()); m_freeSpace->setMaximumHeight(fontMetrics.height() * 1.2); - updatedFreeSpace(); + slotUpdatedFreeSpace(); layout->addWidget(m_freeSpace); + connect(&m_spaceTimer, SIGNAL(timeout()), this, SLOT(slotUpdatedFreeSpace())); + m_spaceTimer.setInterval(30000); + m_spaceTimer.setSingleShot(false); #endif m_ui.control_frame_firewire->setLayout(layout); @@ -137,6 +140,7 @@ RecMonitor::RecMonitor(QString name, QWidget *parent) : RecMonitor::~RecMonitor() { + m_spaceTimer.stop(); delete m_captureProcess; delete m_displayProcess; } @@ -159,7 +163,7 @@ void RecMonitor::slotUpdateCaptureFolder() #if KDE_IS_VERSION(4,2,0) // update free space info - updatedFreeSpace(); + slotUpdatedFreeSpace(); #endif } @@ -433,6 +437,7 @@ void RecMonitor::slotRecord() m_isCapturing = true; m_didCapture = true; m_captureProcess->write("c\n", 3); + m_spaceTimer.start(); return; } if (m_captureProcess->state() == QProcess::NotRunning) { @@ -574,14 +579,11 @@ void RecMonitor::slotProcessStatus(QProcess::ProcessState status) else m_ui.video_frame->setPixmap(mergeSideBySide(KIcon("video-display").pixmap(QSize(50, 50)), i18n("Press record button\nto start screen capture\nFiles will be saved in:\n%1", KdenliveSettings::capturefolder()))); } m_isCapturing = false; + m_spaceTimer.stop(); #if KDE_IS_VERSION(4,2,0) // update free space info - KDiskFreeSpaceInfo info = KDiskFreeSpaceInfo::freeSpaceInfo(KdenliveSettings::capturefolder()); - if (info.isValid()) { - m_freeSpace->setValue(100 * info.used() / info.size()); - m_freeSpace->setText(i18n("Free space: %1", KIO::convertSize(info.available()))); - } + slotUpdatedFreeSpace(); #endif } else { @@ -638,12 +640,12 @@ void RecMonitor::manageCapturedFiles() void RecMonitor::mousePressEvent(QMouseEvent * /*event*/) { #if KDE_IS_VERSION(4,2,0) - if (m_freeSpace->underMouse()) updatedFreeSpace(); + if (m_freeSpace->underMouse()) slotUpdatedFreeSpace(); #endif } #if KDE_IS_VERSION(4,2,0) -void RecMonitor::updatedFreeSpace() +void RecMonitor::slotUpdatedFreeSpace() { KDiskFreeSpaceInfo info = KDiskFreeSpaceInfo::freeSpaceInfo(KdenliveSettings::capturefolder()); if (info.isValid()) { diff --git a/src/recmonitor.h b/src/recmonitor.h index 7eeb0ccb..9f7e82d6 100644 --- a/src/recmonitor.h +++ b/src/recmonitor.h @@ -62,6 +62,7 @@ private: #if KDE_IS_VERSION(4,2,0) KCapacityBar *m_freeSpace; + QTimer m_spaceTimer; #endif KUrl m_captureFile; @@ -86,10 +87,6 @@ private: QPixmap mergeSideBySide(const QPixmap& pix, const QString txt); void manageCapturedFiles(); -#if KDE_IS_VERSION(4,2,0) - void updatedFreeSpace(); -#endif - private slots: void slotStartCapture(bool play = true); void slotStopCapture(); @@ -103,6 +100,10 @@ private slots: void slotConfigure(); void slotReadDvgrabInfo(); +#if KDE_IS_VERSION(4,2,0) + void slotUpdatedFreeSpace(); +#endif + public slots: void refreshRecMonitor(bool visible); void stop(); -- 2.39.2