}
void MainWindow::newFile() {
- MltVideoProfile prof = ProfilesDialog::getVideoProfile(KdenliveSettings::default_profile());
+ QString profileName;
+ if (m_timelineArea->count() == 0) profileName = KdenliveSettings::default_profile();
+ else {
+ ProjectSettings *w = new ProjectSettings;
+ w->exec();
+ profileName = w->selectedProfile();
+ delete w;
+ }
+ MltVideoProfile prof = ProfilesDialog::getVideoProfile(profileName);
if (prof.width == 0) prof = ProfilesDialog::getVideoProfile("dv_pal");
KdenliveDoc *doc = new KdenliveDoc(KUrl(), prof, m_commandStack);
TrackView *trackView = new TrackView(doc);
return QMap< QString, QString >();
}
+// static
+QString ProfilesDialog::getPathFromDescription(const QString profileDesc) {
+ QStringList profilesNames;
+ QStringList profilesFiles;
+ QStringList profilesFilter;
+ profilesFilter << "*";
+
+ // List the Mlt profiles
+ profilesFiles = QDir(KdenliveSettings::mltpath()).entryList(profilesFilter, QDir::Files);
+ for (int i = 0; i < profilesFiles.size(); ++i) {
+ KConfig confFile(KdenliveSettings::mltpath() + "/" + profilesFiles.at(i));
+ QMap< QString, QString > values = confFile.entryMap();
+ if (values.value("description") == profileDesc) return profilesFiles.at(i);
+ }
+
+ // List custom profiles
+ QStringList customProfiles = KGlobal::dirs()->findDirs("appdata", "profiles");
+ for (int i = 0; i < customProfiles.size(); ++i) {
+ QStringList profiles = QDir(customProfiles.at(i)).entryList(profilesFilter, QDir::Files);
+ for (int i = 0; i < profiles.size(); ++i) {
+ KConfig confFile(customProfiles.at(i) + "/" + profiles.at(i));
+ QMap< QString, QString > values = confFile.entryMap();
+ if (values.value("description") == profileDesc) return customProfiles.at(i) + "/" + profiles.at(i);
+ }
+ }
+ return QString();
+}
+
+
void ProfilesDialog::slotUpdateDisplay() {
QString currentProfile = m_view.profiles_list->currentText();
QString currentProfilePath;
static QString getProfileDescription(QString name);
static QMap< QString, QString > getSettingsForProfile(const QString profileName);
static QMap< QString, QString > getSettingsFromFile(const QString path);
+ static QString getPathFromDescription(const QString profileDesc);
static MltVideoProfile getVideoProfile(QString name);
private slots:
QStringList profilesNames = ProfilesDialog::getProfileNames();
m_view.profiles_list->addItems(profilesNames);
+ m_view.project_folder->setMode(KFile::Directory);
QString defaulfProf = ProfilesDialog::getSettingsFromFile(KdenliveSettings::current_profile()).value("description");
if (profilesNames.contains(defaulfProf)) m_view.profiles_list->setCurrentItem(defaulfProf);
-
+ buttonOk = m_view.buttonBox->button(QDialogButtonBox::Ok);
+ //buttonOk->setEnabled(false);
+ m_view.audio_thumbs->setChecked(KdenliveSettings::audiothumbnails());
+ m_view.video_thumbs->setChecked(KdenliveSettings::videothumbnails());
slotUpdateDisplay();
connect(m_view.profiles_list, SIGNAL(currentIndexChanged(int)), this, SLOT(slotUpdateDisplay()));
+ connect(m_view.project_folder, SIGNAL(textChanged(const QString &)), this, SLOT(slotUpdateButton(const QString &)));
}
else m_view.p_progressive->setText(i18n("Progressive"));
}
+void ProjectSettings::slotUpdateButton(const QString &path) {
+ if (path.isEmpty()) buttonOk->setEnabled(false);
+ else buttonOk->setEnabled(true);
+}
+
+QString ProjectSettings::selectedProfile() {
+ return ProfilesDialog::getPathFromDescription(m_view.profiles_list->currentText());
+}
#include "projectsettings.moc"
#define PROJECTSETTINGS_H
#include <QDialog>
+#include <QPushButton>
#include "ui_projectsettings_ui.h"
public:
ProjectSettings(QWidget * parent = 0);
+ QString selectedProfile();
private slots:
void slotUpdateDisplay();
+ void slotUpdateButton(const QString &path);
private:
Ui::ProjectSettings_UI m_view;
QStringList m_mltProfilesList;
QStringList m_customProfilesList;
bool m_isCustomProfile;
+ QPushButton *buttonOk;
};
<rect>
<x>0</x>
<y>0</y>
- <width>475</width>
- <height>333</height>
+ <width>370</width>
+ <height>257</height>
</rect>
</property>
<property name="windowTitle" >
<string>Project Settings</string>
</property>
<layout class="QGridLayout" name="gridLayout_3" >
- <item row="0" column="0" >
- <widget class="QLabel" name="label_11" >
+ <item row="0" column="0" colspan="2" >
+ <widget class="QLabel" name="label_4" >
<property name="text" >
<string>Project folder</string>
</property>
</widget>
</item>
- <item row="0" column="1" colspan="3" >
- <widget class="KUrlRequester" name="kurlrequester" />
+ <item row="0" column="2" colspan="3" >
+ <widget class="KUrlRequester" name="project_folder" />
</item>
- <item row="1" column="0" colspan="4" >
+ <item row="1" column="0" colspan="5" >
<widget class="QGroupBox" name="properties" >
<property name="title" >
<string>Video Profile</string>
</property>
</widget>
</item>
- <item row="2" column="1" >
+ <item row="2" column="1" colspan="2" >
<widget class="QCheckBox" name="video_thumbs" >
<property name="text" >
<string>Video</string>
</property>
</widget>
</item>
- <item row="2" column="2" >
+ <item row="2" column="3" >
<widget class="QCheckBox" name="audio_thumbs" >
<property name="text" >
<string>Audio</string>
</property>
</widget>
</item>
- <item row="2" column="3" >
+ <item row="2" column="4" >
<spacer name="horizontalSpacer" >
<property name="orientation" >
<enum>Qt::Horizontal</enum>
</property>
</spacer>
</item>
- <item row="3" column="0" colspan="4" >
+ <item row="3" column="0" colspan="5" >
<spacer name="verticalSpacer" >
<property name="orientation" >
<enum>Qt::Vertical</enum>
</property>
</spacer>
</item>
- <item row="4" column="1" colspan="3" >
+ <item row="4" column="1" colspan="4" >
<widget class="QDialogButtonBox" name="buttonBox" >
<property name="orientation" >
<enum>Qt::Horizontal</enum>