#include <QDir>
#include <kmessagebox.h>
-ProjectSettings::ProjectSettings(ProjectList *projectlist, QStringList lumas, int videotracks, int audiotracks, const QString projectPath, bool readOnlyTracks, bool savedProject, QWidget * parent) :
+ProjectSettings::ProjectSettings(ProjectList *projectlist, QMap <QString, QString> metadata, QStringList lumas, int videotracks, int audiotracks, const QString projectPath, bool readOnlyTracks, bool savedProject, QWidget * parent) :
QDialog(parent), m_savedProject(savedProject), m_projectList(projectlist), m_lumas(lumas)
{
setupUi(this);
// load proxy profiles
- QString profileFile = KStandardDirs::locateLocal("appdata", "encodingprofiles.rc");
- KConfig conf(profileFile, KConfig::SimpleConfig);
+ KConfig conf("encodingprofiles.rc", KConfig::FullConfig, "appdata");
KConfigGroup group(&conf, "proxy");
QMap <QString, QString> values = group.entryMap();
QMapIterator<QString, QString> k(values);
if (!k.key().isEmpty()) {
QString params = k.value().section(';', 0, 0);
QString extension = k.value().section(';', 1, 1);
- if (params == proxyparameters && extension == proxyextension) {
+ if (ix == -1 && ((params == proxyparameters && extension == proxyextension) || (proxyparameters.isEmpty() || proxyextension.isEmpty()))) {
// this is the current profile
ix = proxy_profile->count();
}
video_tracks->setEnabled(false);
audio_tracks->setEnabled(false);
}
+
+
+ // Metadata list
+ QTreeWidgetItem *item = new QTreeWidgetItem(metadata_list, QStringList() << i18n("Title"));
+ item->setData(0, Qt::UserRole, QString("meta.attr.title.markup"));
+ if (metadata.contains("meta.attr.title.markup")) item->setText(1, metadata.value("meta.attr.title.markup"));
+ item->setFlags(Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsEnabled);
+ item = new QTreeWidgetItem(metadata_list, QStringList() << i18n("Author"));
+ item->setData(0, Qt::UserRole, QString("meta.attr.author.markup"));
+ if (metadata.contains("meta.attr.author.markup")) item->setText(1, metadata.value("meta.attr.author.markup"));
+ item->setFlags(Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsEnabled);
+ item = new QTreeWidgetItem(metadata_list, QStringList() << i18n("Copyright"));
+ item->setData(0, Qt::UserRole, QString("meta.attr.copyright.markup"));
+ if (metadata.contains("meta.attr.copyright.markup")) item->setText(1, metadata.value("meta.attr.copyright.markup"));
+ item->setFlags(Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsEnabled);
+ item = new QTreeWidgetItem(metadata_list, QStringList() << i18n("Year"));
+ item->setData(0, Qt::UserRole, QString("meta.attr.year.markup"));
+ if (metadata.contains("meta.attr.year.markup")) item->setText(1, metadata.value("meta.attr.year.markup"));
+ item->setFlags(Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsEnabled);
+
slotUpdateDisplay();
if (m_projectList != NULL) {
slotUpdateFiles();
void ProjectSettings::slotDeleteProxies()
{
+ if (KMessageBox::warningContinueCancel(this, i18n("Deleting proxy clips will disable proxies for this project.")) != KMessageBox::Continue) return;
buttonBox->setEnabled(false);
-
+ enable_proxy->setChecked(false);
+ emit disableProxies();
KIO::NetAccess::del(KUrl(project_folder->url().path(KUrl::AddTrailingSlash) + "proxy/"), this);
KStandardDirs::makeDir(project_folder->url().path(KUrl::AddTrailingSlash) + "proxy/");
buttonBox->setEnabled(true);
// List all files that are used in the project. That also means:
// images included in slideshow and titles, files in playlist clips
- // TODO: images used in luma transitions, files used for LADSPA effects?
+ // TODO: images used in luma transitions?
// Setup categories
QTreeWidgetItem *videos = new QTreeWidgetItem(files_list, QStringList() << i18n("Video clips"));
QTreeWidgetItem *texts = new QTreeWidgetItem(files_list, QStringList() << i18n("Text clips"));
texts->setIcon(0, KIcon("text-plain"));
texts->setExpanded(true);
+ QTreeWidgetItem *playlists = new QTreeWidgetItem(files_list, QStringList() << i18n("Playlist clips"));
+ playlists->setIcon(0, KIcon("video-mlt-playlist"));
+ playlists->setExpanded(true);
QTreeWidgetItem *others = new QTreeWidgetItem(files_list, QStringList() << i18n("Other clips"));
others->setIcon(0, KIcon("unknown"));
others->setExpanded(true);
case IMAGE:
new QTreeWidgetItem(images, QStringList() << clip->fileURL().path());
break;
+ case PLAYLIST:
+ new QTreeWidgetItem(playlists, QStringList() << clip->fileURL().path());
+ break;
case UNKNOWN:
new QTreeWidgetItem(others, QStringList() << clip->fileURL().path());
break;
usedSize += clip->fileSize();
}
}
-#if QT_VERSION >= 0x040500
allFonts.removeDuplicates();
-#endif
// Hide unused categories
for (int i = 0; i < files_list->topLevelItemCount(); i++) {
if (files_list->topLevelItem(i)->childCount() == 0) {
void ProjectSettings::slotUpdateDisplay()
{
+ QLocale locale;
QString currentProfile = profiles_list->itemData(profiles_list->currentIndex()).toString();
QMap< QString, QString > values = ProfilesDialog::getSettingsFromFile(currentProfile);
p_size->setText(values.value("width") + 'x' + values.value("height"));
p_display->setText(values.value("display_aspect_num") + '/' + values.value("display_aspect_den"));
if (values.value("progressive").toInt() == 0) {
p_progressive->setText(i18n("Interlaced (%1 fields per second)",
- QString::number((double)2 * values.value("frame_rate_num").toInt() / values.value("frame_rate_den").toInt(), 'f', 2)));
+ locale.toString((double)2 * values.value("frame_rate_num").toInt() / values.value("frame_rate_den").toInt(), 'f', 2)));
} else {
p_progressive->setText(i18n("Progressive"));
}
QString type = EffectsList::property(e, "mlt_service");
if (type != "colour") {
QString url = EffectsList::property(e, "resource");
+ if (type == "framebuffer") {
+ url = url.section('?', 0, 0);
+ }
if (!url.isEmpty()) {
if (!url.startsWith('/')) url.prepend(root);
if (url.section('.', 0, -2).endsWith("/.all")) {
proxyparams->setPlainText(params.section(';', 0, 0));
}
+const QMap <QString, QString> ProjectSettings::metadata() const
+{
+ QMap <QString, QString> metadata;
+ for (int i = 0; i < metadata_list->topLevelItemCount(); i++)
+ {
+ QTreeWidgetItem *item = metadata_list->topLevelItem(i);
+ if (!item->text(1).simplified().isEmpty()) {
+ // Insert metadata entry
+ QString key = item->data(0, Qt::UserRole).toString();
+ QString value = item->text(1);
+ metadata.insert(key, value);
+ }
+ }
+ return metadata;
+}
+
#include "projectsettings.moc"