]> git.sesse.net Git - kdenlive/blobdiff - src/dvdwizardvob.cpp
Fix compilation with KDE < 4.2
[kdenlive] / src / dvdwizardvob.cpp
index d127c804d49bcfd4b2697f12b1805846b1e654ed..cb66953e938f1d467db7dd8dc1f72572d468c910 100644 (file)
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA          *
  ***************************************************************************/
 
+#include "dvdwizardvob.h"
+
 #include <KUrlRequester>
 #include <KDebug>
+#include <KStandardDirs>
+#include <KFileItem>
 
-#include "dvdwizardvob.h"
+#include <QHBoxLayout>
 
 DvdWizardVob::DvdWizardVob(QWidget *parent): QWizardPage(parent) {
     m_view.setupUi(this);
@@ -29,17 +33,33 @@ DvdWizardVob::DvdWizardVob(QWidget *parent): QWizardPage(parent) {
     m_view.intro_vob->setFilter("video/mpeg");
     connect(m_view.use_intro, SIGNAL(toggled(bool)), m_view.intro_vob, SLOT(setEnabled(bool)));
     connect(m_view.vob_1, SIGNAL(textChanged(const QString &)), this, SLOT(slotCheckVobList(const QString &)));
+    if (KStandardDirs::findExe("dvdauthor").isEmpty()) m_errorMessage.append(i18n("<strong>Program %1 is required for the DVD wizard.", i18n("dvdauthor")));
+    if (KStandardDirs::findExe("mkisofs").isEmpty()) m_errorMessage.append(i18n("<strong>Program %1 is required for the DVD wizard.", i18n("mkisofs")));
+    if (m_errorMessage.isEmpty()) m_view.error_message->setVisible(false);
+    else m_view.error_message->setText(m_errorMessage);
 
+#if KDE_IS_VERSION(4,2,0)
+    m_capacityBar = new KCapacityBar(KCapacityBar::DrawTextInline, this);
+    QHBoxLayout *layout = new QHBoxLayout;
+    layout->addWidget(m_capacityBar);
+    m_view.size_box->setLayout(layout);
+#else
+    m_view.size_box->setHidden(true);
+#endif
 }
 
 DvdWizardVob::~DvdWizardVob() {
     QList<KUrlRequester *> allUrls = m_view.vob_list->findChildren<KUrlRequester *>();
     qDeleteAll(allUrls);
+#if KDE_IS_VERSION(4,2,0)
+    delete m_capacityBar;
+#endif
 }
 
 // virtual
 
 bool DvdWizardVob::isComplete() const {
+    if (!m_view.error_message->text().isEmpty()) return false;
     if (m_view.vob_1->url().path().isEmpty()) return false;
     if (QFile::exists(m_view.vob_1->url().path())) return true;
     return false;
@@ -90,5 +110,16 @@ void DvdWizardVob::slotCheckVobList(const QString &text) {
         m_view.vob_list->layout()->addWidget(vob);
         connect(vob, SIGNAL(textChanged(const QString &)), this, SLOT(slotCheckVobList(const QString &)));
     }
+    qint64 maxSize = (qint64) 47000 * 100000;
+    qint64 totalSize = 0;
+    for (int i = 0; i < allUrls.count(); i++) {
+        QFile f(allUrls.at(i)->url().path());
+        totalSize += f.size();
+    }
+
+#if KDE_IS_VERSION(4,2,0)
+    m_capacityBar->setValue(100 * totalSize / maxSize);
+    m_capacityBar->setText(KIO::convertSize(totalSize));
+#endif
 }