#ifndef RENDERWIDGET_H
#define RENDERWIDGET_H
+#include <kdeversion.h>
+#if KDE_IS_VERSION(4,7,0)
+#include <KMessageWidget>
+#endif
+
#include <QPushButton>
#include <QPainter>
#include <QStyledItemDelegate>
};
+class RenderJobItem: public QTreeWidgetItem
+{
+public:
+ explicit RenderJobItem(QTreeWidget * parent, const QStringList & strings, int type = QTreeWidgetItem::Type);
+ void setStatus(int status);
+ int status() const;
+ void setMetadata(const QString &data);
+ const QString metadata() const;
+ void render();
+
+private:
+ int m_status;
+ QString m_data;
+};
+
class RenderWidget : public QDialog
{
Q_OBJECT
public:
- explicit RenderWidget(const QString &projectfolder, bool enableProxy, QWidget * parent = 0);
+ explicit RenderWidget(const QString &projectfolder, bool enableProxy, MltVideoProfile profile, QWidget * parent = 0);
virtual ~RenderWidget();
void setGuides(QDomElement guidesxml, double duration);
void focusFirstVisibleItem();
void setProfile(MltVideoProfile profile);
void setRenderJob(const QString &dest, int progress = 0);
void setRenderStatus(const QString &dest, int status, const QString &error);
- void setDocumentPath(const QString path);
+ void setDocumentPath(const QString &path);
void reloadProfiles();
void setRenderProfile(QMap <QString, QString> props);
int waitingJobsCount() const;
/** @brief Should we render using proxy clips. */
bool proxyRendering();
+protected:
+ virtual QSize sizeHint() const;
+
public slots:
void slotExport(bool scriptExport, int zoneIn, int zoneOut, const QString &playlistPath, const QString &scriptPath, bool exportAudio);
void slotPlayRendering(QTreeWidgetItem *item, int);
void slotStartCurrentJob();
void slotCopyToFavorites();
+ void slotUpdateEncodeThreads(int);
void slotUpdateRescaleHeight(int);
void slotUpdateRescaleWidth(int);
void slotSwitchAspectRatio();
/** @brief Update export audio label depending on current settings. */
void slotUpdateAudioLabel(int ix);
+ /** @brief Enable / disable the rescale options. */
+ void setRescaleEnabled(bool enable);
private:
Ui::RenderWidget_UI m_view;
- MltVideoProfile m_profile;
QString m_projectFolder;
+ MltVideoProfile m_profile;
RenderViewDelegate *m_scriptsDelegate;
RenderViewDelegate *m_jobsDelegate;
bool m_blockProcessing;
QString m_renderer;
+
+#if KDE_IS_VERSION(4,7,0)
+ KMessageWidget *m_infoMessage;
+#endif
+
void parseProfiles(QString meta = QString(), QString group = QString(), QString profile = QString());
void parseFile(QString exportFile, bool editable);
void updateButtons();
KUrl filenameWithExtension(KUrl url, QString extension);
+ /** @brief Check if a job needs to be started. */
void checkRenderStatus();
- void startRendering(QTreeWidgetItem *item);
+ void startRendering(RenderJobItem *item);
void saveProfile(QDomElement newprofile);
QList <QListWidgetItem *> m_renderItems;
QList <QListWidgetItem *> m_renderCategory;
+ void errorMessage(const QString &message);
signals:
void abortProcess(const QString &url);