if (!isCustom) {
// List the Mlt profiles
profilesFiles = QDir(KdenliveSettings::mltpath()).entryList(profilesFilter, QDir::Files);
- if (profilesFiles.contains(name)) path = KdenliveSettings::mltpath() + '/' + name;
+ if (profilesFiles.contains(name)) path = KdenliveSettings::mltpath() + name;
}
if (isCustom || path.isEmpty()) {
path = name;
}
// static
-QString ProfilesDialog::getProfileDescription(QString name)
+double ProfilesDialog::getStringEval(const MltVideoProfile &profile, QString eval)
{
- QStringList profilesNames;
- QStringList profilesFiles;
- QStringList profilesFilter;
- profilesFilter << "*";
-
- // List the Mlt profiles
- profilesFiles = QDir(KdenliveSettings::mltpath()).entryList(profilesFilter, QDir::Files);
- if (profilesFiles.contains(name)) {
- KConfig confFile(KdenliveSettings::mltpath() + '/' + name, KConfig::SimpleConfig);
- return confFile.entryMap().value("description");
- }
-
- // List custom profiles
- QStringList customProfiles = KGlobal::dirs()->findDirs("appdata", "profiles");
- for (int i = 0; i < customProfiles.size(); ++i) {
- profilesFiles = QDir(customProfiles.at(i)).entryList(profilesFilter, QDir::Files);
- if (profilesFiles.contains(name)) {
- KConfig confFile(customProfiles.at(i) + '/' + name, KConfig::SimpleConfig);
- return confFile.entryMap().value("description");
- }
- }
-
- return QString();
+ double result;
+ eval.replace("%width", QString::number(profile.width));
+ eval.replace("%height", QString::number(profile.height));
+ if (eval.contains('/')) result = (double) eval.section('/', 0, 0).toInt() / eval.section('/', 1, 1).toInt();
+ else if (eval.contains('*')) result = (double) eval.section('*', 0, 0).toInt() * eval.section('*', 1, 1).toInt();
+ else if (eval.contains('+')) result = (double) eval.section('+', 0, 0).toInt() + eval.section('+', 1, 1).toInt();
+ else if (eval.contains('-')) result = (double) eval.section('-', 0, 0).toInt() - eval.section('-', 1, 1).toInt();
+ else result = eval.toDouble();
+ return result;
}
+
// static
bool ProfilesDialog::existingProfileDescription(const QString &desc)
{
// List the Mlt profiles
QStringList profilesFiles = QDir(KdenliveSettings::mltpath()).entryList(profilesFilter, QDir::Files);
for (int i = 0; i < profilesFiles.size(); ++i) {
- KConfig confFile(KdenliveSettings::mltpath() + '/' + profilesFiles.at(i), KConfig::SimpleConfig);
+ KConfig confFile(KdenliveSettings::mltpath() + profilesFiles.at(i), KConfig::SimpleConfig);
if (desc == confFile.entryMap().value("description")) return true;
}
for (int i = 0; i < customProfiles.size(); ++i) {
profilesFiles = QDir(customProfiles.at(i)).entryList(profilesFilter, QDir::Files);
for (int j = 0; j < profilesFiles.size(); ++j) {
- KConfig confFile(customProfiles.at(i) + '/' + profilesFiles.at(j), KConfig::SimpleConfig);
+ KConfig confFile(customProfiles.at(i) + profilesFiles.at(j), KConfig::SimpleConfig);
if (desc == confFile.entryMap().value("description")) return true;
}
}
// Check the Mlt profiles
QStringList profilesFiles = QDir(KdenliveSettings::mltpath()).entryList(profilesFilter, QDir::Files);
for (int i = 0; i < profilesFiles.size(); ++i) {
- KConfig confFile(KdenliveSettings::mltpath() + '/' + profilesFiles.at(i), KConfig::SimpleConfig);
+ KConfig confFile(KdenliveSettings::mltpath() + profilesFiles.at(i), KConfig::SimpleConfig);
if (profile.display_aspect_den != confFile.entryMap().value("display_aspect_den").toInt()) continue;
if (profile.display_aspect_num != confFile.entryMap().value("display_aspect_num").toInt()) continue;
if (profile.sample_aspect_den != confFile.entryMap().value("sample_aspect_den").toInt()) continue;
for (int i = 0; i < customProfiles.size(); ++i) {
profilesFiles = QDir(customProfiles.at(i)).entryList(profilesFilter, QDir::Files);
for (int j = 0; j < profilesFiles.size(); ++j) {
- KConfig confFile(customProfiles.at(i) + '/' + profilesFiles.at(j), KConfig::SimpleConfig);
+ KConfig confFile(customProfiles.at(i) + profilesFiles.at(j), KConfig::SimpleConfig);
if (profile.display_aspect_den != confFile.entryMap().value("display_aspect_den").toInt()) continue;
if (profile.display_aspect_num != confFile.entryMap().value("display_aspect_num").toInt()) continue;
if (profile.sample_aspect_den != confFile.entryMap().value("sample_aspect_den").toInt()) continue;
if (profile.frame_rate_den != confFile.entryMap().value("frame_rate_den").toInt()) continue;
if (profile.frame_rate_num != confFile.entryMap().value("frame_rate_num").toInt()) continue;
if (profile.progressive != confFile.entryMap().value("progressive").toInt()) continue;
- return customProfiles.at(i) + '/' + profilesFiles.at(j);
+ return customProfiles.at(i) + profilesFiles.at(j);
}
}
return QString();
// List the Mlt profiles
QStringList profilesFiles = QDir(KdenliveSettings::mltpath()).entryList(profilesFilter, QDir::Files);
for (int i = 0; i < profilesFiles.size(); ++i) {
- KConfig confFile(KdenliveSettings::mltpath() + '/' + profilesFiles.at(i), KConfig::SimpleConfig);
+ KConfig confFile(KdenliveSettings::mltpath() + profilesFiles.at(i), KConfig::SimpleConfig);
QString desc = confFile.entryMap().value("description");
if (!desc.isEmpty()) result.insert(desc, profilesFiles.at(i));
}
for (int i = 0; i < customProfiles.size(); ++i) {
profilesFiles = QDir(customProfiles.at(i)).entryList(profilesFilter, QDir::Files);
for (int j = 0; j < profilesFiles.size(); ++j) {
- KConfig confFile(customProfiles.at(i) + '/' + profilesFiles.at(j), KConfig::SimpleConfig);
+ KConfig confFile(customProfiles.at(i) + profilesFiles.at(j), KConfig::SimpleConfig);
QString desc = confFile.entryMap().value("description");
- if (!desc.isEmpty()) result.insert(desc, customProfiles.at(i) + '/' + profilesFiles.at(j));
+ if (!desc.isEmpty()) result.insert(desc, customProfiles.at(i) + profilesFiles.at(j));
}
}
return result;
if (!path.contains('/')) {
// This is an MLT profile
- KConfig confFile(KdenliveSettings::mltpath() + '/' + path, KConfig::SimpleConfig);
+ KConfig confFile(KdenliveSettings::mltpath() + path, KConfig::SimpleConfig);
return confFile.entryMap();
} else {
// This is a custom profile
// 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), KConfig::SimpleConfig);
+ KConfig confFile(KdenliveSettings::mltpath() + profilesFiles.at(i), KConfig::SimpleConfig);
QMap< QString, QString > values = confFile.entryMap();
if (values.value("description") == profileName) {
values.insert("path", profilesFiles.at(i));
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), KConfig::SimpleConfig);
+ KConfig confFile(customProfiles.at(i) + profiles.at(i), KConfig::SimpleConfig);
QMap< QString, QString > values = confFile.entryMap();
if (values.value("description") == profileName) {
- values.insert("path", customProfiles.at(i) + '/' + profiles.at(i));
+ values.insert("path", customProfiles.at(i) + profiles.at(i));
return values;
}
}
// 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), KConfig::SimpleConfig);
+ KConfig confFile(KdenliveSettings::mltpath() + profilesFiles.at(i), KConfig::SimpleConfig);
QMap< QString, QString > values = confFile.entryMap();
if (values.value("description") == profileDesc) return profilesFiles.at(i);
}
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), KConfig::SimpleConfig);
+ KConfig confFile(customProfiles.at(i) + profiles.at(i), KConfig::SimpleConfig);
QMap< QString, QString > values = confFile.entryMap();
- if (values.value("description") == profileDesc) return customProfiles.at(i) + '/' + profiles.at(i);
+ if (values.value("description") == profileDesc) return customProfiles.at(i) + profiles.at(i);
}
}
return QString();
m_selectedProfileIndex = m_view.profiles_list->currentIndex();
QString currentProfile = m_view.profiles_list->itemData(m_view.profiles_list->currentIndex()).toString();
m_isCustomProfile = currentProfile.contains('/');
+ m_view.button_create->setEnabled(true);
m_view.button_delete->setEnabled(m_isCustomProfile);
m_view.properties->setEnabled(m_isCustomProfile);
m_view.button_save->setEnabled(m_isCustomProfile);