#include <QPixmap>
#include <QIcon>
#include <QDialog>
+#include <QtGui>
#include <KDebug>
#include <KAction>
#include "projectlist.h"
#include "projectitem.h"
#include "kdenlivesettings.h"
+#include "slideshowclip.h"
#include "ui_colorclip_ui.h"
+
#include "definitions.h"
-#include "titlewidget.h"
#include "clipmanager.h"
#include "docclipbase.h"
#include "kdenlivedoc.h"
#include "renderer.h"
+#include "kthumb.h"
#include "projectlistview.h"
-#include <QtGui>
ProjectList::ProjectList(QWidget *parent)
: QWidget(parent), m_render(NULL), m_fps(-1), m_commandStack(NULL) {
QAction *addColorClip = addMenu->addAction(KIcon("document-new"), i18n("Add Color Clip"));
connect(addColorClip, SIGNAL(triggered()), this, SLOT(slotAddColorClip()));
+ QAction *addSlideClip = addMenu->addAction(KIcon("document-new"), i18n("Add Slideshow Clip"));
+ connect(addSlideClip, SIGNAL(triggered()), this, SLOT(slotAddSlideshowClip()));
+
QAction *addTitleClip = addMenu->addAction(KIcon("document-new"), i18n("Add Title Clip"));
connect(addTitleClip, SIGNAL(triggered()), this, SLOT(slotAddTitleClip()));
delete m_toolbar;
}
+void ProjectList::slotEditClip() {
+ ProjectItem *item = static_cast <ProjectItem*>(listView->currentItem());
+ if (item && !item->isGroup()) emit clipSelected(item->toXml());
+ emit showClipProperties(item->referencedClip());
+}
+
void ProjectList::setRenderer(Render *projectRender) {
void ProjectList::slotUpdateClipProperties(int id, QMap <QString, QString> properties) {
ProjectItem *item = getItemById(id);
- if (item) slotUpdateClipProperties(item, properties);
+ if (item) {
+ slotUpdateClipProperties(item, properties);
+ if (properties.contains("colour") || properties.contains("resource")) slotRefreshClipThumbnail(item);
+ if (properties.contains("out")) item->changeDuration(properties.value("out").toInt());
+ }
}
void ProjectList::slotUpdateClipProperties(ProjectItem *clip, QMap <QString, QString> properties) {
void ProjectList::slotAddColorClip() {
if (!m_commandStack) kDebug() << "!!!!!!!!!!!!!!!! NO CMD STK";
- QDialog *dia = new QDialog;
+ QDialog *dia = new QDialog(this);
Ui::ColorClip_UI *dia_ui = new Ui::ColorClip_UI();
dia_ui->setupUi(dia);
dia_ui->clip_name->setText(i18n("Color Clip"));
delete dia;
}
-void ProjectList::slotAddTitleClip() {
+void ProjectList::slotAddSlideshowClip() {
if (!m_commandStack) kDebug() << "!!!!!!!!!!!!!!!! NO CMD STK";
- //QDialog *dia = new QDialog;
-
- TitleWidget *dia_ui = new TitleWidget();
- //dia_ui->setupUi(dia);
- //dia_ui->clip_name->setText(i18n("Title Clip"));
- //dia_ui->clip_duration->setText(KdenliveSettings::color_duration());
- if (dia_ui->exec() == QDialog::Accepted) {
- //QString color = dia_ui->clip_color->color().name();
- //color = color.replace(0, 1, "0x") + "ff";
- //m_doc->slotAddColorClipFile(dia_ui->clip_name->text(), color, dia_ui->clip_duration->text(), QString::null);
+ SlideshowClip *dia = new SlideshowClip(this);
+
+ if (dia->exec() == QDialog::Accepted) {
+
+ QString group = QString();
+ int groupId = -1;
+ ProjectItem *item = static_cast <ProjectItem*>(listView->currentItem());
+ if (item && item->clipType() != FOLDER) {
+ while (item->parent()) {
+ item = static_cast <ProjectItem*>(item->parent());
+ if (item->clipType() == FOLDER) break;
+ }
+ }
+ if (item && item->clipType() == FOLDER) {
+ group = item->groupName();
+ groupId = item->clipId();
+ }
+
+ m_doc->slotAddSlideshowClipFile(dia->clipName(), dia->selectedPath(), dia->imageCount(), dia->clipDuration(), dia->loop(), group, groupId);
}
- delete dia_ui;
- //delete dia;
+ delete dia;
}
+void ProjectList::slotAddTitleClip() {
+ QString group = QString();
+ int groupId = -1;
+ ProjectItem *item = static_cast <ProjectItem*>(listView->currentItem());
+ if (item && item->clipType() != FOLDER) {
+ while (item->parent()) {
+ item = static_cast <ProjectItem*>(item->parent());
+ if (item->clipType() == FOLDER) break;
+ }
+ }
+ if (item && item->clipType() == FOLDER) {
+ group = item->groupName();
+ groupId = item->clipId();
+ }
+
+ m_doc->slotCreateTextClip(group, groupId);
+}
+
void ProjectList::setDocument(KdenliveDoc *doc) {
listView->clear();
QList <DocClipBase*> list = doc->clipManager()->documentClipList();
return prods;
}
+void ProjectList::slotRefreshClipThumbnail(int clipId) {
+ ProjectItem *item = getItemById(clipId);
+ if (item) slotRefreshClipThumbnail(item);
+}
+
+void ProjectList::slotRefreshClipThumbnail(ProjectItem *item) {
+ if (item) {
+ int height = 40;
+ int width = (int)(height * (double) m_render->renderWidth() / m_render->renderHeight());
+ QPixmap pix = KThumb::getImage(item->toXml(), item->referencedClip()->getProjectThumbFrame(), width, height);
+ //QPixmap pix = KThumb::getFrame(item->toXml()), 0, width, height);
+ item->setIcon(0, pix);
+ }
+}
void ProjectList::slotReplyGetFileProperties(int clipId, const QMap < QString, QString > &properties, const QMap < QString, QString > &metadata) {
ProjectItem *item = getItemById(clipId);
}
}
-
-
void ProjectList::slotReplyGetImage(int clipId, int pos, const QPixmap &pix, int w, int h) {
ProjectItem *item = getItemById(clipId);
if (item) item->setIcon(0, pix);