]> git.sesse.net Git - kdenlive/commitdiff
Improve profile selection in First run wizard
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Sat, 13 Dec 2008 00:09:54 +0000 (00:09 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Sat, 13 Dec 2008 00:09:54 +0000 (00:09 +0000)
Start implementing project folder

svn path=/branches/KDE4/; revision=2779

17 files changed:
src/clipmanager.cpp
src/clipmanager.h
src/customtrackview.cpp
src/docclipbase.cpp
src/kdenlivedoc.cpp
src/kdenlivesettings.kcfg
src/kdenlivesettingsdialog.cpp
src/kthumb.cpp
src/kthumb.h
src/mainwindow.cpp
src/projectsettings.cpp
src/projectsettings.h
src/widgets/configenv_ui.ui
src/widgets/wizardextra_ui.ui
src/widgets/wizardstandard_ui.ui
src/wizard.cpp
src/wizard.h

index e8bd52ae5916c6bc3e85637820cacc9754c6752b..eff38756e759b40bcfc89fcda796b96caa794db3 100644 (file)
@@ -258,4 +258,9 @@ int ClipManager::lastClipId() const {
     return m_clipIdCounter - 1;
 }
 
+QString ClipManager::projectFolder() const {
+    return m_doc->projectFolder().path();
+}
+
+
 
index cfa0565a749261b5556b8625e8d603945ca4b80a..8e127b32b454efa75ea12573ab108056035a002e 100644 (file)
@@ -63,6 +63,7 @@ Q_OBJECT public:
     void startAudioThumbsGeneration();
     void endAudioThumbsGeneration(const QString &requestedId);
     void askForAudioThumb(const QString &id);
+    QString projectFolder() const;
 
 private:   // Private attributes
     /** the list of clips in the document */
index bb6a36bd37e9df40c247bd8ef4ae5b2367919538..1699aaa7662afe7746b4c76bbd7b959709d3842f 100644 (file)
@@ -1374,6 +1374,7 @@ void CustomTrackView::addTrack(TrackInfo type, int ix) {
     setSceneRect(0, 0, sceneRect().width(), m_tracksHeight * m_document->tracksCount());
     verticalScrollBar()->setMaximum(m_tracksHeight * m_document->tracksCount());
     QTimer::singleShot(300, this, SIGNAL(trackHeightChanged()));
+    viewport()->update();
     //setFixedHeight(50 * m_tracksCount);
 }
 
@@ -1427,6 +1428,7 @@ void CustomTrackView::removeTrack(int ix) {
     setSceneRect(0, 0, sceneRect().width(), m_tracksHeight * m_document->tracksCount());
     verticalScrollBar()->setMaximum(m_tracksHeight * m_document->tracksCount());
     QTimer::singleShot(300, this, SIGNAL(trackHeightChanged()));
+    viewport()->update();
 }
 
 void CustomTrackView::changeTrack(int ix, TrackInfo type) {
@@ -2007,6 +2009,7 @@ Transition *CustomTrackView::getTransitionItemAt(GenTime pos, int track) {
 }
 
 void CustomTrackView::moveClip(const ItemInfo start, const ItemInfo end) {
+    if (m_selectionGroup) resetSelectionGroup(false);
     ClipItem *item = getClipItemAt((int) start.startPos.frames(m_document->fps()) + 1, start.track);
     if (!item) {
         emit displayMessage(i18n("Cannot move clip at time: %1 on track %2", m_document->timecode().getTimecodeFromFrames(start.startPos.frames(m_document->fps())), start.track), ErrorMessage);
@@ -2018,6 +2021,8 @@ void CustomTrackView::moveClip(const ItemInfo start, const ItemInfo end) {
     bool success = m_document->renderer()->mltMoveClip((int)(m_document->tracksCount() - start.track), (int)(m_document->tracksCount() - end.track), (int) start.startPos.frames(m_document->fps()), (int)end.startPos.frames(m_document->fps()), item->baseClip()->producer(end.track));
     if (success) {
         item->setPos((int) end.startPos.frames(m_document->fps()), (int)(end.track * m_tracksHeight + 1));
+        m_scene->clearSelection();
+        item->setSelected(true);
         if (item->baseClip()->isTransparent()) {
             // Also move automatic transition
             Transition *tr = getTransitionItemAt((int) start.startPos.frames(m_document->fps()), start.track);
@@ -2774,8 +2779,8 @@ void CustomTrackView::setOutPoint() {
 
 void CustomTrackView::slotUpdateAllThumbs() {
     QList<QGraphicsItem *> itemList = items();
+    //if (itemList.isEmpty()) return;
     ClipItem *item;
-    Transition *transitionitem;
     for (int i = 0; i < itemList.count(); i++) {
         if (itemList.at(i)->type() == AVWIDGET) {
             item = static_cast <ClipItem *>(itemList.at(i));
index 5dabc00da9dce2b68f450eea7dbd2d8bb373e9d6..bc8c4d193b8a57fdc8b3291d86840c6a51882691 100644 (file)
@@ -48,7 +48,7 @@ DocClipBase::DocClipBase(ClipManager *clipManager, QDomElement xml, const QStrin
 
     //if (!url.isEmpty() && QFile::exists(url.path()))
     {
-        m_thumbProd = new KThumb(clipManager, url, m_id);
+        m_thumbProd = new KThumb(clipManager, url, m_id, m_properties.value("file_hash"));
         if (m_clipType == AV || m_clipType == AUDIO) slotCreateAudioTimer();
     }
     //kDebug() << "type is video" << (m_clipType == AV) << " " << m_clipType;
@@ -590,6 +590,10 @@ QMap <QString, QString> DocClipBase::properties() const {
 
 bool DocClipBase::slotGetAudioThumbs() {
     if (m_thumbProd == NULL) return false;
+    if (!KdenliveSettings::audiothumbnails()) {
+        if (m_audioTimer != NULL) m_audioTimer->stop();
+        return false;
+    }
     if (m_audioThumbCreated) {
         if (m_audioTimer != NULL) m_audioTimer->stop();
         return false;
index d7f59113e6c2ab55cab3fb255c261b7716d432cc..816f7b368425a135d61e69e1b1082d90f47caf06 100644 (file)
@@ -58,6 +58,9 @@ KdenliveDoc::KdenliveDoc(const KUrl &url, const KUrl &projectFolder, QUndoGroup
             if (!infoXmlNode.isNull()) {
                 QDomElement infoXml = infoXmlNode.toElement();
                 QString profilePath = infoXml.attribute("profile");
+                QString projectFolderPath = infoXml.attribute("projectfolder");
+                if (!projectFolderPath.isEmpty()) m_projectFolder = KUrl(projectFolderPath);
+                if (m_projectFolder.isEmpty()) m_projectFolder = KUrl(KdenliveSettings::defaultprojectfolder());
                 m_startPos = infoXml.attribute("position").toInt();
                 m_zoom = infoXml.attribute("zoom", "7").toInt();
                 setProfilePath(profilePath);
@@ -155,6 +158,12 @@ KdenliveDoc::KdenliveDoc(const KUrl &url, const KUrl &projectFolder, QUndoGroup
         m_document = createEmptyDocument(tracks.x(), tracks.y());
         setProfilePath(profileName);
     }
+    if (m_projectFolder.isEmpty()) m_projectFolder = KUrl(KdenliveSettings::defaultprojectfolder());
+
+    // make sure that the necessary folders exist
+    KStandardDirs::makeDir(m_projectFolder.path() + "/titles/");
+    KStandardDirs::makeDir(m_projectFolder.path() + "/thumbs/");
+
     m_scenelist = m_document.toString();
     kDebug() << "KDEnnlive document, init timecode: " << m_fps;
     if (m_fps == 30000.0 / 1001.0) m_timecode.setFormat(30, true);
@@ -810,6 +819,7 @@ bool KdenliveDoc::saveSceneList(const QString &path, QDomDocument sceneList) {
     addedXml.setAttribute("version", "0.8");
     addedXml.setAttribute("profile", profilePath());
     addedXml.setAttribute("position", m_render->seekPosition().frames(m_fps));
+    addedXml.setAttribute("projectfolder", m_projectFolder.path());
     addedXml.setAttribute("tracks", getTracksInfo());
     addedXml.setAttribute("zoom", m_zoom);
 
@@ -851,7 +861,7 @@ ClipManager *KdenliveDoc::clipManager() {
 }
 
 KUrl KdenliveDoc::projectFolder() const {
-    if (m_projectFolder.isEmpty()) return KUrl(KStandardDirs::locateLocal("appdata", "/projects/"));
+    //if (m_projectFolder.isEmpty()) return KUrl(KStandardDirs::locateLocal("appdata", "/projects/"));
     return m_projectFolder;
 }
 
index 767d2211be05d993679a4df4599b1f8556c22f1a..f2407da6046d6a6a16fbf25a8e8d84ff421187a1 100644 (file)
       <default>/tmp/</default>
     </entry>
 
+    <entry name="defaultprojectfolder" type="Path">
+      <label>Default folder for project files.</label>
+      <default></default>
+    </entry>
+
     <entry name="capturefolder" type="Path">
       <label>Default folder for captured files.</label>
       <default>$HOME</default>
index 3eb197b47e90ad53d1c46dfe439e00a18a80e04f..7796b990e74ce21c02fad41ad4f2a142baaa30ff 100644 (file)
@@ -53,6 +53,8 @@ KdenliveSettingsDialog::KdenliveSettingsDialog(QWidget * parent): KConfigDialog(
     m_configEnv.rendererpathurl->lineEdit()->setObjectName("kcfg_rendererpath");
     m_configEnv.tmppathurl->setMode(KFile::Directory);
     m_configEnv.tmppathurl->lineEdit()->setObjectName("kcfg_currenttmpfolder");
+    m_configEnv.projecturl->setMode(KFile::Directory);
+    m_configEnv.projecturl->lineEdit()->setObjectName("kcfg_defaultprojectfolder");
     m_configEnv.capturefolderurl->setMode(KFile::Directory);
     m_configEnv.capturefolderurl->lineEdit()->setObjectName("kcfg_capturefolder");
     page2 = addPage(p2, i18n("Environment"), "terminal");
index b821e93fc68c306a2194beebc7bf9b56d0abc204..88aa4492857a10158eeae35e81085461059fce7d 100644 (file)
@@ -23,7 +23,6 @@
 #include <qxml.h>
 #include <QImage>
 #include <QApplication>
-#include <QCryptographicHash>
 
 #include <kio/netaccess.h>
 #include <kdebug.h>
@@ -59,7 +58,6 @@ bool MyThread::isWorking() {
 }
 
 void MyThread::run() {
-
     if (!f.open(QIODevice::WriteOnly)) {
         kDebug() << "++++++++  ERROR WRITING TO FILE: " << f.fileName() << endl;
         kDebug() << "++++++++  DISABLING AUDIO THUMBS" << endl;
@@ -126,11 +124,8 @@ void MyThread::run() {
 
 }
 
-KThumb::KThumb(ClipManager *clipManager, KUrl url, const QString &id, QObject * parent, const char *name): QObject(parent), m_clipManager(clipManager), m_url(url), m_id(id), m_producer(NULL), m_dar(1), m_mainFrame(-1) {
-    QCryptographicHash context(QCryptographicHash::Sha1);
-    context.addData((KFileItem(m_url, "text/plain", S_IFREG).timeString() + m_url.fileName()).toAscii().data());
-    m_thumbFile = KGlobal::dirs()->saveLocation("tmp" , "kdenlive") + context.result().toHex() + ".thumb";
-    //kDebug() << "thumbfile=" << m_thumbFile;
+KThumb::KThumb(ClipManager *clipManager, KUrl url, const QString &id, const QString &hash, QObject * parent, const char *name): QObject(parent), m_clipManager(clipManager), m_url(url), m_id(id), m_producer(NULL), m_dar(1), m_mainFrame(-1) {
+    m_thumbFile = clipManager->projectFolder() + "/thumbs/" + hash + ".thumb";
     connect(&audioThumbProducer, SIGNAL(audioThumbProgress(const int)), this, SLOT(slotAudioThumbProgress(const int)));
     connect(&audioThumbProducer, SIGNAL(audioThumbOver()), this, SLOT(slotAudioThumbOver()));
 
index 4c3d048c9521c8dd74ba34704db9dd965a1591bd..cb24b9b30bd09bff7b65db5d2012dbcb065b19f0 100644 (file)
@@ -78,7 +78,7 @@ class KThumb: public QObject {
 Q_OBJECT public:
 
 
-    KThumb(ClipManager *clipManager, KUrl url, const QString &id, QObject * parent = 0, const char *name = 0);
+    KThumb(ClipManager *clipManager, KUrl url, const QString &id, const QString &hash, QObject * parent = 0, const char *name = 0);
     ~KThumb();
     void setProducer(Mlt::Producer *producer);
     void askForAudioThumbs(const QString &id);
index 3cb14ff8b2c7ad07ed23f6438e73cdd49654097c..f4f28149768b730e04ca44d0fb8d70ff472059d8 100644 (file)
@@ -900,6 +900,13 @@ void MainWindow::readOptions() {
         } else {
             ::exit(1);
         }
+    } else if (initialGroup.readEntry("version") == "0.7") {
+        //Add new settings from 0.7.1
+        if (KdenliveSettings::defaultprojectfolder().isEmpty()) {
+            QString path = QDir::homePath() + "/kdenlive";
+            if (KStandardDirs::makeDir(path)  == false) kDebug() << "/// ERROR CREATING PROJECT FOLDER: " << path;
+            KdenliveSettings::setDefaultprojectfolder(path);
+        }
     }
     KConfigGroup treecolumns(config, "Project Tree");
     const QByteArray state = treecolumns.readEntry("columns", QByteArray());
@@ -915,7 +922,7 @@ void MainWindow::newFile(bool showProjectSettings) {
         if (!KdenliveSettings::activatetabs()) closeCurrentDocument();
         profileName = KdenliveSettings::default_profile();
     } else {
-        ProjectSettings *w = new ProjectSettings(projectTracks.x(), projectTracks.y(), false, this);
+        ProjectSettings *w = new ProjectSettings(projectTracks.x(), projectTracks.y(), KdenliveSettings::defaultprojectfolder(), false, this);
         if (w->exec() != QDialog::Accepted) return;
         if (!KdenliveSettings::activatetabs()) closeCurrentDocument();
         profileName = w->selectedProfile();
@@ -1187,7 +1194,7 @@ void MainWindow::slotEditProfiles() {
 
 void MainWindow::slotEditProjectSettings() {
     QPoint p = m_activeDocument->getTracksCount();
-    ProjectSettings *w = new ProjectSettings(p.x(), p.y(), true, this);
+    ProjectSettings *w = new ProjectSettings(p.x(), p.y(), m_activeDocument->projectFolder().path(), true, this);
 
     if (w->exec() == QDialog::Accepted) {
         QString profile = w->selectedProfile();
index 9e05027f85a9752c2ccc3b86cc3163047fd3161a..bf7fca0ecbc2610c9ef7dabddd3a2d7aeaf02b2c 100644 (file)
@@ -26,7 +26,7 @@
 #include "profilesdialog.h"
 #include "projectsettings.h"
 
-ProjectSettings::ProjectSettings(int videotracks, int audiotracks, bool readOnlyTracks, QWidget * parent): QDialog(parent), m_isCustomProfile(false) {
+ProjectSettings::ProjectSettings(int videotracks, int audiotracks, const QString projectPath, bool readOnlyTracks, QWidget * parent): QDialog(parent), m_isCustomProfile(false) {
     m_view.setupUi(this);
 
     QMap <QString, QString> profilesInfo = ProfilesDialog::getProfilesInfo();
@@ -36,6 +36,7 @@ ProjectSettings::ProjectSettings(int videotracks, int audiotracks, bool readOnly
         m_view.profiles_list->addItem(i.key(), i.value());
     }
     m_view.project_folder->setMode(KFile::Directory);
+    m_view.project_folder->setPath(projectPath);
     QString currentProf = KdenliveSettings::current_profile();
 
     for (int i = 0; i < m_view.profiles_list->count(); i++) {
index 2cfecf84559542c167dbb5f26650c51652a0c0d6..0fd0d50b6d8ec0dc1f0dde0e65bdc5c232d75179 100644 (file)
@@ -30,7 +30,7 @@ class ProjectSettings : public QDialog {
     Q_OBJECT
 
 public:
-    ProjectSettings(int videotracks, int audiotracks, bool readOnlyTracks, QWidget * parent = 0);
+    ProjectSettings(int videotracks, int audiotracks, const QString projectPath, bool readOnlyTracks, QWidget * parent = 0);
     QString selectedProfile() const;
     KUrl selectedFolder() const;
     QPoint tracks();
index a4aa2ab7c828411f12f2f1a202cbd06959c4cb8b..da323fdb5e0c39968bd41925f69854e492c5a0db 100644 (file)
@@ -5,8 +5,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>304</width>
-    <height>236</height>
+    <width>365</width>
+    <height>240</height>
    </rect>
   </property>
   <layout class="QGridLayout" name="gridLayout" >
       <attribute name="title" >
        <string>Default folders</string>
       </attribute>
-      <layout class="QGridLayout" name="gridLayout_5" >
+      <layout class="QGridLayout" name="gridLayout_2" >
        <item row="0" column="0" >
+        <widget class="QLabel" name="label_5" >
+         <property name="text" >
+          <string>Project folder</string>
+         </property>
+        </widget>
+       </item>
+       <item row="0" column="1" >
+        <widget class="KUrlRequester" name="projecturl" />
+       </item>
+       <item row="1" column="0" >
         <widget class="QLabel" name="label_3" >
          <property name="text" >
           <string>Temporary files</string>
          </property>
         </widget>
        </item>
-       <item row="0" column="1" >
+       <item row="1" column="1" >
         <widget class="KUrlRequester" name="tmppathurl" />
        </item>
-       <item row="1" column="0" >
+       <item row="2" column="0" >
         <widget class="QLabel" name="label_10" >
          <property name="text" >
           <string>Capture folder</string>
          </property>
         </widget>
        </item>
-       <item row="1" column="1" >
+       <item row="2" column="1" >
         <widget class="KUrlRequester" name="capturefolderurl" />
        </item>
-       <item row="2" column="1" >
+       <item row="3" column="1" >
         <spacer name="verticalSpacer_3" >
          <property name="orientation" >
           <enum>Qt::Vertical</enum>
index ca2802ba8ada67a32f1eb1a836085c2511ffc9c9..68ae0cf128081e09051cc4efce186e739c722a72 100644 (file)
@@ -5,12 +5,22 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>335</width>
-    <height>156</height>
+    <width>429</width>
+    <height>282</height>
    </rect>
   </property>
   <layout class="QGridLayout" name="gridLayout_2" >
    <item row="0" column="0" >
+    <widget class="QLabel" name="label" >
+     <property name="text" >
+      <string>Default folder for project files</string>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="0" >
+    <widget class="KUrlRequester" name="projectfolder" />
+   </item>
+   <item row="2" column="0" >
     <widget class="QFrame" name="frame" >
      <property name="frameShape" >
       <enum>QFrame::StyledPanel</enum>
      </layout>
     </widget>
    </item>
-   <item row="1" column="0" >
+   <item row="3" column="0" >
     <widget class="QCheckBox" name="autosave" >
      <property name="text" >
       <string>Activate crash recovery (auto save)</string>
      </property>
     </widget>
    </item>
-   <item row="2" column="0" >
+   <item row="4" column="0" >
     <widget class="QCheckBox" name="installmimes" >
      <property name="text" >
       <string>Install extra video mimetypes</string>
@@ -60,7 +70,7 @@
      </property>
     </widget>
    </item>
-   <item row="3" column="0" >
+   <item row="5" column="0" >
     <spacer name="verticalSpacer" >
      <property name="orientation" >
       <enum>Qt::Vertical</enum>
    </item>
   </layout>
  </widget>
+ <customwidgets>
+  <customwidget>
+   <class>KUrlRequester</class>
+   <extends>QFrame</extends>
+   <header>kurlrequester.h</header>
+  </customwidget>
+ </customwidgets>
  <resources/>
  <connections/>
 </ui>
index 63afda660cc73f6b4acdfd3a64ea59be60b75a26..09999d04e3345af40baf4654b985422c70ceb75d 100644 (file)
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>233</width>
-    <height>180</height>
+    <width>400</width>
+    <height>188</height>
    </rect>
   </property>
-  <layout class="QGridLayout" name="gridLayout_3" >
-   <item row="0" column="0" >
+  <layout class="QGridLayout" name="gridLayout_2" >
+   <item row="0" column="0" colspan="6" >
     <widget class="QLabel" name="label_3" >
      <property name="text" >
-      <string>Please set your default video format</string>
+      <string>Please set your default video profile</string>
      </property>
     </widget>
    </item>
    <item row="1" column="0" >
-    <widget class="QFrame" name="frame" >
-     <property name="frameShape" >
-      <enum>QFrame::StyledPanel</enum>
+    <widget class="QLabel" name="label_2" >
+     <property name="text" >
+      <string>Video Resolution</string>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="1" >
+    <spacer name="horizontalSpacer_2" >
+     <property name="orientation" >
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="sizeHint" stdset="0" >
+      <size>
+       <width>1</width>
+       <height>20</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item row="1" column="2" colspan="2" >
+    <widget class="QRadioButton" name="button_dv" >
+     <property name="text" >
+      <string>DV</string>
      </property>
-     <property name="frameShadow" >
-      <enum>QFrame::Raised</enum>
+     <property name="checked" >
+      <bool>true</bool>
      </property>
-     <layout class="QGridLayout" name="gridLayout" >
-      <item row="0" column="0" >
-       <widget class="QLabel" name="label" >
-        <property name="text" >
-         <string>Video Standard</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="2" >
-       <widget class="QRadioButton" name="button_pal" >
-        <property name="text" >
-         <string>PAL</string>
-        </property>
-        <property name="checked" >
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="3" >
-       <widget class="QRadioButton" name="button_ntsc" >
-        <property name="text" >
-         <string>NTSC</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="1" >
-       <spacer name="horizontalSpacer" >
-        <property name="orientation" >
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeHint" stdset="0" >
-         <size>
-          <width>9</width>
-          <height>20</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-     </layout>
     </widget>
    </item>
-   <item row="2" column="0" >
-    <widget class="QFrame" name="frame_2" >
-     <property name="frameShape" >
-      <enum>QFrame::StyledPanel</enum>
+   <item row="1" column="4" >
+    <widget class="QRadioButton" name="button_hdv" >
+     <property name="text" >
+      <string>HDV</string>
      </property>
-     <property name="frameShadow" >
-      <enum>QFrame::Raised</enum>
+    </widget>
+   </item>
+   <item row="1" column="5" >
+    <widget class="QRadioButton" name="button_all" >
+     <property name="text" >
+      <string>Show All</string>
      </property>
-     <layout class="QGridLayout" name="gridLayout_2" >
-      <item row="0" column="2" >
-       <widget class="QRadioButton" name="button_dv" >
-        <property name="text" >
-         <string>DV</string>
-        </property>
-        <property name="checked" >
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="0" >
-       <widget class="QLabel" name="label_2" >
-        <property name="text" >
-         <string>Video Resolution</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="3" >
-       <widget class="QRadioButton" name="button_hdv" >
-        <property name="text" >
-         <string>HDV</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="1" >
-       <spacer name="horizontalSpacer_2" >
-        <property name="orientation" >
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeHint" stdset="0" >
-         <size>
-          <width>1</width>
-          <height>20</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-     </layout>
     </widget>
    </item>
-   <item row="3" column="0" >
+   <item row="2" column="0" colspan="6" >
     <widget class="QListWidget" name="profiles_list" >
      <property name="sizePolicy" >
-      <sizepolicy vsizetype="Preferred" hsizetype="Expanding" >
+      <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
     </widget>
    </item>
-   <item row="4" column="0" >
-    <spacer name="verticalSpacer" >
-     <property name="orientation" >
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0" >
-      <size>
-       <width>20</width>
-       <height>0</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
   </layout>
  </widget>
  <resources/>
index 2a45f6db4d61f3ee287786bfd8a115ddaed483c6..dc917a7fd45d5a07fab38a04dc402326fe32a144 100644 (file)
@@ -47,8 +47,20 @@ Wizard::Wizard(QWidget *parent): QWizard(parent) {
     QWizardPage *page2 = new QWizardPage;
     page2->setTitle(i18n("Video Standard"));
     m_standard.setupUi(page2);
-    m_standard.profiles_list->setMaximumHeight(100);
-    connect(m_standard.button_pal, SIGNAL(toggled(bool)), this, SLOT(slotCheckStandard()));
+    //m_standard.profiles_list->setMaximumHeight(100);
+    // build profiles lists
+    m_profilesInfo = ProfilesDialog::getProfilesInfo();
+    QMap<QString, QString>::const_iterator i = m_profilesInfo.constBegin();
+    while (i != m_profilesInfo.constEnd()) {
+        QMap< QString, QString > profileData = ProfilesDialog::getSettingsFromFile(i.value());
+        if (profileData.value("width") == "720") m_dvProfiles.append(i.key());
+        else if (profileData.value("width").toInt() >= 1080) m_hdvProfiles.append(i.key());
+        else m_otherProfiles.append(i.key());
+        ++i;
+    }
+
+    connect(m_standard.button_all, SIGNAL(toggled(bool)), this, SLOT(slotCheckStandard()));
+    connect(m_standard.button_hdv, SIGNAL(toggled(bool)), this, SLOT(slotCheckStandard()));
     connect(m_standard.button_dv, SIGNAL(toggled(bool)), this, SLOT(slotCheckStandard()));
     slotCheckStandard();
     connect(m_standard.profiles_list, SIGNAL(itemSelectionChanged()), this, SLOT(slotCheckSelectedItem()));
@@ -57,6 +69,8 @@ Wizard::Wizard(QWidget *parent): QWizard(parent) {
     QWizardPage *page3 = new QWizardPage;
     page3->setTitle(i18n("Additional Settings"));
     m_extra.setupUi(page3);
+    m_extra.projectfolder->setMode(KFile::Directory);
+    m_extra.projectfolder->setPath(QDir::homePath() + "/kdenlive");
     m_extra.videothumbs->setChecked(KdenliveSettings::videothumbnails());
     m_extra.audiothumbs->setChecked(KdenliveSettings::audiothumbnails());
     m_extra.autosave->setChecked(KdenliveSettings::crashrecovery());
@@ -141,31 +155,28 @@ void Wizard::slotCheckThumbs() {
 }
 
 void Wizard::slotCheckStandard() {
+    m_standard.profiles_list->clear();
     QStringList profiles;
-    if (m_standard.button_pal->isChecked()) {
-        // PAL standard
-        if (m_standard.button_dv->isChecked()) {
-            profiles << "dv_pal" << "dv_pal_wide";
-        } else {
-            profiles << "hdv_720_25p" << "hdv_720_50p" << "hdv_1080_50i" << "hdv_1080_25p" << "atsc_1080p_24" << "atsc_1080p_25";
-        }
+    if (m_standard.button_dv->isChecked()) {
+        // DV standard
+        m_standard.profiles_list->addItems(m_dvProfiles);
+    } else if (m_standard.button_hdv->isChecked()) {
+        // HDV standard
+        m_standard.profiles_list->addItems(m_hdvProfiles);
     } else {
-        // NTSC standard
-        if (m_standard.button_dv->isChecked()) {
-            profiles << "dv_ntsc" << "dv_ntsc_wide";
-        } else {
-            profiles << "hdv_720_30p" << "hdv_720_60p" << "hdv_1080_30p" << "hdv_1080_60i" << "atsc_720p_30" << "atsc_1080i_60";
-        }
+        m_standard.profiles_list->addItems(m_dvProfiles);
+        m_standard.profiles_list->addItems(m_hdvProfiles);
+        m_standard.profiles_list->addItems(m_otherProfiles);
+        //m_standard.profiles_list->sortItems();
     }
-    m_standard.profiles_list->clear();
-    QStringList profilesDescription;
-    foreach(const QString &prof, profiles) {
-        QString desc = ProfilesDialog::getProfileDescription(prof);
-        if (!desc.isEmpty()) {
-            QListWidgetItem *item = new QListWidgetItem(desc, m_standard.profiles_list);
-            item->setData(Qt::UserRole, prof);
-        }
+
+    for (int i = 0; i < m_standard.profiles_list->count(); i++) {
+        QListWidgetItem *item = m_standard.profiles_list->item(i);
+        MltVideoProfile prof = ProfilesDialog::getVideoProfile(m_profilesInfo.value(item->text()));
+        const QString infoString = i18n("<b>Frame size:</b>%1x%2<br><b>Frame rate:</b>%3/%4<br><b>Aspect ratio:</b>%5/%6<br><b>Display ratio:</b>%7/%8").arg(QString::number(prof.width), QString::number(prof.height), QString::number(prof.frame_rate_num), QString::number(prof.frame_rate_den), QString::number(prof.sample_aspect_num), QString::number(prof.sample_aspect_den), QString::number(prof.display_aspect_num), QString::number(prof.display_aspect_den));
+        item->setToolTip(infoString);
     }
+
     m_standard.profiles_list->setSortingEnabled(true);
     m_standard.profiles_list->setCurrentRow(0);
 }
@@ -190,8 +201,14 @@ void Wizard::adjustSettings() {
     KdenliveSettings::setVideothumbnails(m_extra.videothumbs->isChecked());
     KdenliveSettings::setCrashrecovery(m_extra.autosave->isChecked());
     if (m_standard.profiles_list->currentItem()) {
-        KdenliveSettings::setDefault_profile(m_standard.profiles_list->currentItem()->data(Qt::UserRole).toString());
+        QString selectedProfile = m_profilesInfo.value(m_standard.profiles_list->currentItem()->text());
+        if (selectedProfile.isEmpty()) selectedProfile = "dv_pal";
+        KdenliveSettings::setDefault_profile(selectedProfile);
     }
+    QString path = m_extra.projectfolder->url().path();
+    if (KStandardDirs::makeDir(path) == false) kDebug() << "/// ERROR CREATING PROJECT FOLDER: " << path;
+    KdenliveSettings::setDefaultprojectfolder(path);
+
 }
 
 void Wizard::slotCheckMlt() {
index 36ea34bd6b4df6f69db3c305c58ee1b81939657f..c874a6944d13adac81a800e9e7085e2d6b2d9d5c 100644 (file)
@@ -43,6 +43,10 @@ private:
     Ui::WizardExtra_UI m_extra;
     QVBoxLayout *m_startLayout;
     bool m_systemCheckIsOk;
+    QStringList m_dvProfiles;
+    QStringList m_hdvProfiles;
+    QStringList m_otherProfiles;
+    QMap <QString, QString> m_profilesInfo;
 
 private slots:
     void slotCheckThumbs();