+void ProjectList::slotAddClip(QUrl givenUrl, QString group) {
+ if (!m_commandStack) kDebug() << "!!!!!!!!!!!!!!!! NO CMD STK";
+ KUrl::List list;
+ if (givenUrl.isEmpty()) {
+ KFileDialog d(KUrl("kfiledialog:///clipfolder"), "application/x-kdenlive application/flv application/vnd.rn-realmedia video/x-dv video/x-msvideo video/mpeg video/x-ms-wmv audio/mpeg audio/x-mp3 audio/x-wav application/ogg video/mp4 video/quicktime image/gif image/jpeg image/png image/x-bmp image/svg+xml image/tiff image/x-xcf-gimp image/x-vnd.adobe.photoshop image/x-pcx image/x-exr", this);
+ d.setFilter(d.currentFilter() + "\n*.m2t *.mts|HDV video\n*.dv|DV video");
+ if (d.exec() == QDialog::Accepted)
+ list = d.selectedUrls();
+ /*list = KFileDialog::getOpenUrls(KUrl("kfiledialog:///clipfolder"), "application/vnd.kde.kdenlive application/vnd.westley.scenelist application/flv application/vnd.rn-realmedia video/x-dv video/x-msvideo video/mpeg video/x-ms-wmv audio/mpeg audio/x-mp3 audio/x-wav application/ogg video/mp4 video/quicktime image/gif image/jpeg image/png image/x-bmp image/svg+xml image/tiff image/x-xcf-gimp image/x-vnd.adobe.photoshop image/x-pcx image/x-exr\n*.m2t *.mts|HDV video\n*.dv|DV video");*/
+ } else list.append(givenUrl);
+ if (list.isEmpty()) return;
+ KUrl::List::Iterator it;
+ int groupId = -1;
+ if (group.isEmpty()) {
+ 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();
+ }
+ }
+ for (it = list.begin(); it != list.end(); it++) {
+ m_doc->slotAddClipFile(*it, group, groupId);
+ }
+}
+
+void ProjectList::slotAddColorClip() {
+ if (!m_commandStack) kDebug() << "!!!!!!!!!!!!!!!! NO CMD STK";
+ 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"));
+ dia_ui->clip_duration->setText(KdenliveSettings::color_duration());
+ if (dia->exec() == QDialog::Accepted) {
+ QString color = dia_ui->clip_color->color().name();
+ color = color.replace(0, 1, "0x") + "ff";
+
+ 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->slotAddColorClipFile(dia_ui->clip_name->text(), color, dia_ui->clip_duration->text(), group, groupId);
+ }
+ delete dia_ui;
+ delete dia;
+}
+
+
+void ProjectList::slotAddSlideshowClip() {
+ if (!m_commandStack) kDebug() << "!!!!!!!!!!!!!!!! NO CMD STK";
+ 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;
+}
+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();
+ for (int i = 0; i < list.count(); i++) {
+ slotAddClip(list.at(i));
+ }
+
+ m_fps = doc->fps();
+ m_timecode = doc->timecode();
+ m_commandStack = doc->commandStack();
+ m_doc = doc;
+ QTreeWidgetItem *first = listView->topLevelItem(0);
+ if (first) listView->setCurrentItem(first);
+ m_toolbar->setEnabled(true);
+}
+
+QDomElement ProjectList::producersList() {
+ QDomDocument doc;
+ QDomElement prods = doc.createElement("producerlist");
+ doc.appendChild(prods);
+ kDebug() << "//////////// PRO LIST BUILD PRDSLIST ";
+ QTreeWidgetItemIterator it(listView);
+ while (*it) {
+ if (!((ProjectItem *)(*it))->isGroup())
+ prods.appendChild(doc.importNode(((ProjectItem *)(*it))->toXml(), true));
+ ++it;
+ }
+ return prods;
+}
+
+void ProjectList::slotRefreshClipThumbnail(int clipId) {
+ ProjectItem *item = getItemById(clipId);
+ if (item) slotRefreshClipThumbnail(item);
+}