setCentralWidget(m_timelineArea);
projectListDock = new QDockWidget(i18n("Project Tree"), this);
+ projectListDock->setObjectName("project_tree");
m_projectList = new ProjectList(NULL, this);
projectListDock->setWidget(m_projectList);
addDockWidget(Qt::TopDockWidgetArea, projectListDock);
effectListDock = new QDockWidget(i18n("Effect List"), this);
+ effectListDock->setObjectName("project_tree");
effectList = new KListWidget(this);
effectListDock->setWidget(effectList);
addDockWidget(Qt::TopDockWidgetArea, effectListDock);
effectStackDock = new QDockWidget(i18n("Effect Stack"), this);
+ effectStackDock->setObjectName("project_tree");
effectStack = new KListWidget(this);
effectStackDock->setWidget(effectStack);
addDockWidget(Qt::TopDockWidgetArea, effectStackDock);
transitionConfigDock = new QDockWidget(i18n("Transition"), this);
+ transitionConfigDock->setObjectName("project_tree");
transitionConfig = new KListWidget(this);
transitionConfigDock->setWidget(transitionConfig);
addDockWidget(Qt::TopDockWidgetArea, transitionConfigDock);
Mlt::Factory::init(NULL);
clipMonitorDock = new QDockWidget(i18n("Clip Monitor"), this);
+ clipMonitorDock->setObjectName("project_tree");
m_clipMonitor = new Monitor("clip", this);
clipMonitorDock->setWidget(m_clipMonitor);
addDockWidget(Qt::TopDockWidgetArea, clipMonitorDock);
projectMonitorDock = new QDockWidget(i18n("Project Monitor"), this);
+ projectMonitorDock->setObjectName("project_tree");
m_projectMonitor = new Monitor("project", this);
projectMonitorDock->setWidget(m_projectMonitor);
addDockWidget(Qt::TopDockWidgetArea, projectMonitorDock);
#include <QStylePainter>
#include <QPixmap>
#include <QIcon>
+#include <QToolBar>
+#include <QDialog>
#include <KDebug>
+#include <KAction>
#include <KLocale>
#include <KFileDialog>
#include <klistwidgetsearchline.h>
#include "projectlist.h"
#include "projectitem.h"
+#include "ui_colorclip_ui.h"
#include <QtGui>
: QWidget(parent), m_render(projectRender)
{
- ui.setupUi(this);
- ui.project_search->setTreeWidget(ui.project_list);
- QStringList itemEntry;
- itemEntry.append(QString::null);
- itemEntry.append("coucou");
- new ProjectItem(ui.project_list, itemEntry);
- connect(ui.button_add, SIGNAL(clicked ( bool )), this, SLOT(slotAddClip()));
- connect(ui.project_list, SIGNAL(itemSelectionChanged()), this, SLOT(slotClipSelected()));
- connect(ui.project_list, SIGNAL(itemDoubleClicked ( QTreeWidgetItem *, int )), this, SLOT(slotEditClip(QTreeWidgetItem *, int)));
+ QWidget *vbox = new QWidget;
+ listView = new QTreeWidget(this);;
+ QVBoxLayout *layout = new QVBoxLayout;
+
+ // setup toolbar
+ searchView = new KTreeWidgetSearchLine (this);
+ QToolBar *bar = new QToolBar("projectToolBar", this);
+ bar->addWidget (searchView);
+
+ QToolButton *addButton = new QToolButton( bar );
+ QMenu *addMenu = new QMenu(this);
+ addButton->setMenu( addMenu );
+ addButton->setPopupMode(QToolButton::MenuButtonPopup);
+ bar->addWidget (addButton);
+
+ QAction *addClip = addMenu->addAction (KIcon("document-new"), i18n("Add Clip"));
+ connect(addClip, SIGNAL(triggered()), this, SLOT(slotAddClip()));
+
+ QAction *addColorClip = addMenu->addAction (KIcon("document-new"), i18n("Add Color Clip"));
+ connect(addColorClip, SIGNAL(triggered()), this, SLOT(slotAddColorClip()));
+
+ QAction *deleteClip = bar->addAction (KIcon("edit-delete"), i18n("Delete Clip"));
+ connect(deleteClip, SIGNAL(triggered()), this, SLOT(slotRemoveClip()));
+
+ QAction *editClip = bar->addAction (KIcon("document-properties"), i18n("Edit Clip"));
+ connect(editClip, SIGNAL(triggered()), this, SLOT(slotEditClip()));
+ addButton->setDefaultAction( addClip );
- ui.project_list->setItemDelegate(new ItemDelegate(ui.project_list));
- ui.project_list->setIconSize(QSize(60, 40));
- ui.project_list->setSortingEnabled (true);
+ layout->addWidget( bar );
+ layout->addWidget( listView );
+ setLayout( layout );
+
+ searchView->setTreeWidget(listView);
+ listView->setColumnCount(3);
+ QStringList headers;
+ headers<<i18n("Thumbnail")<<i18n("Filename")<<i18n("Description");
+ listView->setHeaderLabels(headers);
+
+ QStringList itemEntry;
+ itemEntry.append(QString::null);
+ itemEntry.append("coucou");
+ new ProjectItem(listView, itemEntry);
+
+ connect(listView, SIGNAL(itemSelectionChanged()), this, SLOT(slotClipSelected()));
+ //connect(listView, SIGNAL(itemDoubleClicked ( QTreeWidgetItem *, int )), this, SLOT(slotEditClip(QTreeWidgetItem *, int)));
+
+
+ listView->setItemDelegate(new ItemDelegate(listView));
+ listView->setIconSize(QSize(60, 40));
+ listView->setSortingEnabled (true);
}
void ProjectList::slotClipSelected()
{
- ProjectItem *item = (ProjectItem*) ui.project_list->currentItem();
+ ProjectItem *item = (ProjectItem*) listView->currentItem();
if (item) emit clipSelected(item->toXml());
}
-void ProjectList::slotEditClip(QTreeWidgetItem *item, int column)
+void ProjectList::slotEditClip()
{
- if (column != 2){
- return;
- }
+
+}
+
+void ProjectList::slotRemoveClip()
+{
+ kDebug()<<"////////// SLOT REMOVE";
+ if (!listView->currentItem()) return;
+ delete listView->currentItem();
}
void ProjectList::slotAddClip()
QStringList itemEntry;
itemEntry.append(QString::null);
itemEntry.append((*it).fileName());
- ProjectItem *item = new ProjectItem(ui.project_list, itemEntry, QDomElement());
+ ProjectItem *item = new ProjectItem(listView, itemEntry, QDomElement());
item->setData(1, FullPathRole, (*it).path());
emit getFileProperties((*it), 0);
}
+}
+
+void ProjectList::slotAddColorClip()
+{
+ QDialog *dia = new QDialog;
+ Ui::ColorClip_UI *dia_ui = new Ui::ColorClip_UI();
+ dia_ui->setupUi(dia);
+ dia_ui->clip_name->setText(i18n("Color Clip"));
+ if (dia->exec() == QDialog::Accepted)
+ {
+ QDomDocument doc;
+ QDomElement element = doc.createElement("producer");
+ element.setAttribute("mlt_service", "colour");
+ QString color = dia_ui->clip_color->color().name();
+ color = color.replace(0, 1, "0x") + "ff";
+ element.setAttribute("colour", color);
+ element.setAttribute("type", (int) DocClipBase::COLOR);
+ QStringList itemEntry;
+ itemEntry.append(QString::null);
+ itemEntry.append(dia_ui->clip_name->text());
+ ProjectItem *item = new ProjectItem(listView, itemEntry, element);
+ QPixmap pix(60, 40);
+ pix.fill(dia_ui->clip_color->color());
+ item->setIcon(0, QIcon(pix));
+
+ }
+ delete dia_ui;
+ delete dia;
+ /*for (it = list.begin(); it != list.end(); it++) {
+ QStringList itemEntry;
+ itemEntry.append(QString::null);
+ itemEntry.append((*it).fileName());
+ ProjectItem *item = new ProjectItem(listView, itemEntry, QDomElement());
+ item->setData(1, FullPathRole, (*it).path());
+ emit getFileProperties((*it), 0);
+ }*/
}
void ProjectList::populate(QDomNodeList prods)
{
- ui.project_list->clear();
+ listView->clear();
for (int i = 0; i < prods.count () ; i++)
{
addProducer(prods.item(i).toElement());
{
QTreeWidgetItem *parent = 0;
int count =
- parent ? parent->childCount() : ui.project_list->topLevelItemCount();
+ parent ? parent->childCount() : listView->topLevelItemCount();
for (int i = 0; i < count; i++)
{
QTreeWidgetItem *item =
- parent ? parent->child(i) : ui.project_list->topLevelItem(i);
+ parent ? parent->child(i) : listView->topLevelItem(i);
if (item->data(1, FullPathRole).toString() == properties["filename"]) {
((ProjectItem *) item)->setProperties(properties, metadata);
{
QTreeWidgetItem *parent = 0;
int count =
- parent ? parent->childCount() : ui.project_list->topLevelItemCount();
+ parent ? parent->childCount() : listView->topLevelItemCount();
for (int i = 0; i < count; i++)
{
QTreeWidgetItem *item =
- parent ? parent->child(i) : ui.project_list->topLevelItem(i);
+ parent ? parent->child(i) : listView->topLevelItem(i);
if (item->data(1, FullPathRole).toString() == url.path()) {
item->setIcon(0,pix);
QStringList itemEntry;
itemEntry.append(QString::null);
itemEntry.append(resource.fileName());
- ProjectItem *item = new ProjectItem(ui.project_list, itemEntry, producer);
+ ProjectItem *item = new ProjectItem(listView, itemEntry, producer);
//item->setIcon(0, Render::getVideoThumbnail(resource, 0, 60, 40));
item->setData(1, FullPathRole, resource.path());
item->setData(1, ClipTypeRole, (int) type);
pix.fill(QColor(colour.left(7)));
QStringList itemEntry;
itemEntry.append(QString::null);
- itemEntry.append(i18n("Color Clip"));
- ProjectItem *item = new ProjectItem(ui.project_list, itemEntry, producer);
+ itemEntry.append(producer.attribute("name"););
+ ProjectItem *item = new ProjectItem(listView, itemEntry, producer);
item->setIcon(0, QIcon(pix));
item->setData(1, ClipTypeRole, (int) type);
}
--- /dev/null
+<ui version="4.0" >
+ <class>ColorClip_UI</class>
+ <widget class="QDialog" name="ColorClip_UI" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>286</width>
+ <height>176</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Dialog</string>
+ </property>
+ <layout class="QGridLayout" >
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label_3" >
+ <property name="text" >
+ <string>Name</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" colspan="2" >
+ <widget class="KLineEdit" name="clip_name" />
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label" >
+ <property name="text" >
+ <string>Clip Color</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" colspan="2" >
+ <widget class="KColorButton" name="clip_color" >
+ <property name="color" >
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="label_2" >
+ <property name="text" >
+ <string>Duration</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" colspan="2" >
+ <widget class="KRestrictedLine" name="clip_duration" >
+ <property name="inputMask" >
+ <string>99:99:99:99; </string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="2" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>31</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="4" column="0" colspan="3" >
+ <widget class="QDialogButtonBox" name="buttonBox" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons" >
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::NoButton|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <customwidgets>
+ <customwidget>
+ <class>KColorButton</class>
+ <extends>QPushButton</extends>
+ <header>kcolorbutton.h</header>
+ </customwidget>
+ <customwidget>
+ <class>KLineEdit</class>
+ <extends>QLineEdit</extends>
+ <header>klineedit.h</header>
+ </customwidget>
+ <customwidget>
+ <class>KRestrictedLine</class>
+ <extends>KLineEdit</extends>
+ <header>krestrictedline.h</header>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>ColorClip_UI</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>248</x>
+ <y>254</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>157</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>ColorClip_UI</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>316</x>
+ <y>260</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>