+QString ProfilesDialog::getPathFromProperties(int width, int height, double fps, double par, double dar)
+{
+ 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), KConfig::SimpleConfig);
+ QMap< QString, QString > values = confFile.entryMap();
+ if(values.value("width").toInt() == width && values.value("height").toInt() == height) {
+ double profile_fps = values.value("frame_rate_num").toDouble() / values.value("frame_rate_den").toDouble();
+ if(qAbs(profile_fps - fps) < 0.5)
+ 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 j = 0; j < profiles.size(); ++i) {
+ KConfig confFile(customProfiles.at(i) + profiles.at(j), KConfig::SimpleConfig);
+ QMap< QString, QString > values = confFile.entryMap();
+ if(values.value("width").toInt() == width && values.value("height").toInt() == height) {
+ double profile_fps = values.value("frame_rate_num").toDouble() / values.value("frame_rate_den").toDouble();
+ if(qAbs(profile_fps - fps) < 0.5)
+ return customProfiles.at(i) + profiles.at(j);
+ }
+ }
+ }
+ return QString();
+}
+
+// static
+QString ProfilesDialog::getPathFromDescription(const QString profileDesc)
+{