]> git.sesse.net Git - kdenlive/blobdiff - src/renderwidget.cpp
Krazy fixes: cleanup all headers
[kdenlive] / src / renderwidget.cpp
index 04d7cbdccde39e04b23d42c6abfc72ea726306ca..92e4c61417023b1f975a097fccd29d6f10996524 100644 (file)
  ***************************************************************************/
 
 
-#include <QDomDocument>
-#include <QItemDelegate>
-#include <QTreeWidgetItem>
-#include <QListWidgetItem>
-#include <QHeaderView>
-#include <QMenu>
-#include <QProcess>
-#include <QInputDialog>
+#include "renderwidget.h"
+#include "kdenlivesettings.h"
+#include "ui_saveprofile_ui.h"
 
 #include <KStandardDirs>
 #include <KDebug>
 #include <KIO/NetAccess>
 // #include <knewstuff2/engine.h>
 
-#include "kdenlivesettings.h"
-#include "renderwidget.h"
-#include "ui_saveprofile_ui.h"
+#include <QDomDocument>
+#include <QItemDelegate>
+#include <QTreeWidgetItem>
+#include <QListWidgetItem>
+#include <QHeaderView>
+#include <QMenu>
+#include <QProcess>
+#include <QInputDialog>
 
 const int GroupRole = Qt::UserRole;
 const int ExtensionRole = GroupRole + 1;
@@ -490,12 +490,12 @@ void RenderWidget::updateButtons() {
         m_view.buttonSave->setEnabled(true);
         m_view.buttonStart->setEnabled(m_view.size_list->currentItem()->flags() & Qt::ItemIsEnabled);
         QString edit = m_view.size_list->currentItem()->data(EditableRole).toString();
-        if (edit.isEmpty()) {
+        if (edit.isEmpty() || !edit.endsWith("customprofiles.xml")) {
             m_view.buttonDelete->setEnabled(false);
             m_view.buttonEdit->setEnabled(false);
         } else {
-            m_view.buttonDelete->setEnabled(edit.endsWith("customprofiles.xml"));
-            m_view.buttonEdit->setEnabled(edit.endsWith("customprofiles.xml"));
+            m_view.buttonDelete->setEnabled(true);
+            m_view.buttonEdit->setEnabled(true);
         }
     }
 }
@@ -575,7 +575,7 @@ void RenderWidget::slotExport(bool scriptExport) {
         width = m_profile.width;
         height = m_profile.height;
     }
-    renderArgs.replace("%dar", "@" + QString::number(m_profile.display_aspect_num) + "/" + QString::number(m_profile.display_aspect_den));
+    renderArgs.replace("%dar", '@' + QString::number(m_profile.display_aspect_num) + '/' + QString::number(m_profile.display_aspect_den));
 
     // Adjust scanning
     if (m_view.scanning_list->currentIndex() == 1) renderArgs.append(" progressive=1");
@@ -614,7 +614,7 @@ void RenderWidget::slotExport(bool scriptExport) {
     if (group == "dvd" && m_view.open_dvd->isChecked()) {
         renderItem->setData(0, Qt::UserRole, group);
         if (renderArgs.contains("profile=")) {
-            // rendering profile contains an MLT profile, so pass it to the running jog item, usefull for dvd
+            // rendering profile contains an MLT profile, so pass it to the running jog item, useful for dvd
             QString prof = renderArgs.section("profile=", 1, 1);
             prof = prof.section(' ', 0, 0);
             kDebug() << "// render profile: " << prof;
@@ -819,12 +819,12 @@ void RenderWidget::refreshParams() {
 //     }
     m_view.out_file->setFilter("*." + extension);
     QString edit = item->data(EditableRole).toString();
-    if (edit.isEmpty()) {
+    if (edit.isEmpty() || !edit.endsWith("customprofiles.xml")) {
         m_view.buttonDelete->setEnabled(false);
         m_view.buttonEdit->setEnabled(false);
     } else {
-        m_view.buttonDelete->setEnabled(edit.endsWith("customprofiles.xml"));
-        m_view.buttonEdit->setEnabled(edit.endsWith("customprofiles.xml"));
+        m_view.buttonDelete->setEnabled(true);
+        m_view.buttonEdit->setEnabled(true);
     }
 
     m_view.buttonStart->setEnabled(m_view.size_list->currentItem()->flags() & Qt::ItemIsEnabled);
@@ -854,9 +854,13 @@ void RenderWidget::parseProfiles(QString meta, QString group, QString profile) {
     QDir directory = QDir(exportFolder);
     QStringList filter;
     filter << "*.xml";
-    const QStringList fileList = directory.entryList(filter, QDir::Files);
-    foreach(const QString filename, fileList)
-    parseFile(exportFolder + '/' + filename, true); //filename == "customprofiles.xml");
+    QStringList fileList = directory.entryList(filter, QDir::Files);
+    // We should parse customprofiles.xml in last position, so that user profiles
+    // can also override profiles installed by KNewStuff
+    fileList.removeAll("customprofiles.xml");
+    foreach(const QString &filename, fileList)
+       parseFile(exportFolder + '/' + filename, true);
+    if (QFile::exists(exportFolder + "/customprofiles.xml")) parseFile(exportFolder + "/customprofiles.xml", true);
 
     if (!meta.isEmpty()) {
         m_view.destination_list->blockSignals(true);
@@ -981,6 +985,7 @@ void RenderWidget::parseFile(QString exportFile, bool editable) {
             if (editable) {
                 item->setData(EditableRole, exportFile);
                 if (exportFile.endsWith("customprofiles.xml")) item->setIcon(KIcon("emblem-favorite"));
+                else item->setIcon(KIcon("applications-internet"));
             }
             node = doc.elementsByTagName("profile").at(count);
             count++;
@@ -1017,8 +1022,8 @@ void RenderWidget::parseFile(QString exportFile, bool editable) {
             }
         }
         groupName = documentElement.attribute("name", i18n("Custom"));
-        extension = documentElement.attribute("extension", QString::null);
-        renderer = documentElement.attribute("renderer", QString::null);
+        extension = documentElement.attribute("extension", QString());
+        renderer = documentElement.attribute("renderer", QString());
         QList <QListWidgetItem *> list = m_view.format_list->findItems(groupName, Qt::MatchExactly);
         bool exists = false;
         for (int j = 0; j < list.count(); j++) {
@@ -1204,4 +1209,5 @@ void RenderWidget::slotDeleteScript() {
 
 void RenderWidget::slotGenerateScript() {
     slotExport(true);
-}
\ No newline at end of file
+}
+