+void ProjectList::setupMenu(QMenu *addMenu, QAction *defaultAction) {
+ QList <QAction *> actions = addMenu->actions();
+ for (int i = 0; i < actions.count(); i++) {
+ if (actions.at(i)->data().toString() == "clip_properties") {
+ m_editAction = actions.at(i);
+ m_toolbar->addAction(m_editAction);
+ actions.removeAt(i);
+ i--;
+ } else if (actions.at(i)->data().toString() == "delete_clip") {
+ m_deleteAction = actions.at(i);
+ m_toolbar->addAction(m_deleteAction);
+ actions.removeAt(i);
+ i--;
+ } else if (actions.at(i)->data().toString() == "edit_clip") {
+ m_openAction = actions.at(i);
+ actions.removeAt(i);
+ i--;
+ } else if (actions.at(i)->data().toString() == "reload_clip") {
+ m_reloadAction = actions.at(i);
+ actions.removeAt(i);
+ i--;
+ }
+ }
+
+ QMenu *m = new QMenu();
+ m->addActions(actions);
+ m_addButton->setMenu(m);
+ m_addButton->setDefaultAction(defaultAction);
+ m_menu = new QMenu();
+ m_menu->addActions(addMenu->actions());
+}
+
+void ProjectList::setupGeneratorMenu(QMenu *addMenu) {
+ if (!addMenu) return;
+ QMenu *menu = m_addButton->menu();
+ menu->addMenu(addMenu);
+ m_addButton->setMenu(menu);
+
+ m_menu->addMenu(addMenu);
+ if (addMenu->isEmpty()) addMenu->setEnabled(false);
+ m_menu->addAction(m_reloadAction);
+ m_menu->addAction(m_editAction);
+ m_menu->addAction(m_openAction);
+ m_menu->addAction(m_deleteAction);
+ m_menu->insertSeparator(m_deleteAction);
+}
+
+
+QByteArray ProjectList::headerInfo() {
+ return listView->header()->saveState();
+}
+
+void ProjectList::setHeaderInfo(const QByteArray &state) {
+ listView->header()->restoreState(state);
+}
+
+void ProjectList::slotEditClip() {
+ ProjectItem *item = static_cast <ProjectItem*>(listView->currentItem());
+ if (item && !item->isGroup()) {
+ emit clipSelected(item->referencedClip());
+ emit showClipProperties(item->referencedClip());
+ }
+}
+
+void ProjectList::slotOpenClip() {
+ ProjectItem *item = static_cast <ProjectItem*>(listView->currentItem());
+ if (item && !item->isGroup()) {
+ if (item->clipType() == IMAGE) {
+ if (KdenliveSettings::defaultimageapp().isEmpty()) KMessageBox::sorry(this, i18n("Please set a default application to open images in the Settings dialog"));
+ else QProcess::startDetached(KdenliveSettings::defaultimageapp(), QStringList() << item->clipUrl().path());
+ }
+ if (item->clipType() == AUDIO) {
+ if (KdenliveSettings::defaultaudioapp().isEmpty()) KMessageBox::sorry(this, i18n("Please set a default application to open audio files in the Settings dialog"));
+ else QProcess::startDetached(KdenliveSettings::defaultaudioapp(), QStringList() << item->clipUrl().path());
+ }
+ }
+}