public:
ProfilesDialog(QWidget * parent = 0);
-
- void fillList(const QString selectedProfile = QString());
- 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);
+ /** @brief Using this constructor, the dialog only allows editing one profile. */
+ explicit ProfilesDialog(QString profilePath, QWidget * parent = 0);
+
+ void fillList(const QString &selectedProfile = QString());
+ 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(const QString &name);
static QMap <QString, QString> getProfilesInfo();
- static void saveProfile(MltVideoProfile &profile);
- static QString existingProfile(MltVideoProfile profile);
+ static void saveProfile(MltVideoProfile &profile, QString profilePath = QString());
+ static QString existingProfile(const MltVideoProfile &profile);
static bool existingProfileDescription(const QString &desc);
/** @brief Check if a given profile matches passed properties:
* @param isImage If true, compare width with profile's display width ( = dar * height)
* @param profile The profile to match
* @return true if properties match profile */
- static bool matchProfile(int width, int height, double fps, double par, bool isImage, MltVideoProfile profile);
+ static bool matchProfile(int width, int height, double fps, double par, bool isImage, const MltVideoProfile &profile);
/** @brief Find profiles that match parameter properties:
* @param width The profile frame width
* @param profile The profile that gives width & height
* @param eval The string to be evaluated, for example: "%width / 2"
* @return the evaluated value */
- static double getStringEval(const MltVideoProfile &profile, QString eval);
+ static double getStringEval(const MltVideoProfile &profile, QString eval, const QPoint &frameSize = QPoint());
/** @brief Get the descriptive text for given colorspace code (defined by MLT)
* @param colorspace An int as defined in mlt_profile.h
* @return The string description */
static QString getColorspaceDescription(int colorspace);
+ /** @brief Get the colorspace code (defined by MLT) from a descriptive text
+ * @param desctiption A string description as defined in getColorspaceDescription(int colorspace)
+ * @return The int code */
+ static int getColorspaceFromDescription(const QString &description);
+
protected:
virtual void closeEvent(QCloseEvent *event);
private slots:
- void slotUpdateDisplay();
+ void slotUpdateDisplay(QString currentProfile = QString());
void slotCreateProfile();
bool slotSaveProfile();
void slotDeleteProfile();
int m_selectedProfileIndex;
bool m_profileIsModified;
bool m_isCustomProfile;
- void saveProfile(const QString path);
+ /** @brief If we are in single profile editing, should contain the path for this profile. */
+ QString m_customProfilePath;
+ void saveProfile(QString path);
bool askForSave();
};