X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fprojectlistview.cpp;h=0b3c67dfc43014ae6c9d63af270c4c797d4ae4a6;hb=1404e8f1d631c81399e0e92ffce7dfac0195fabb;hp=e4a2641b2323fc5484f33530f74a21b5a8cefa52;hpb=12a5d89680803b84dc83a52f7eb8805cccb865a8;p=kdenlive diff --git a/src/projectlistview.cpp b/src/projectlistview.cpp index e4a2641b..0b3c67df 100644 --- a/src/projectlistview.cpp +++ b/src/projectlistview.cpp @@ -55,10 +55,10 @@ ProjectListView::ProjectListView(QWidget *parent) : QHeaderView* headerView = header(); headerView->setContextMenuPolicy(Qt::CustomContextMenu); - connect(headerView, SIGNAL(customContextMenuRequested(const QPoint&)), - this, SLOT(configureColumns(const QPoint&))); - connect(this, SIGNAL(itemCollapsed(QTreeWidgetItem *)), this, SLOT(slotCollapsed(QTreeWidgetItem *))); - connect(this, SIGNAL(itemExpanded(QTreeWidgetItem *)), this, SLOT(slotExpanded(QTreeWidgetItem *))); + connect(headerView, SIGNAL(customContextMenuRequested(QPoint)), + this, SLOT(configureColumns(QPoint))); + connect(this, SIGNAL(itemCollapsed(QTreeWidgetItem*)), this, SLOT(slotCollapsed(QTreeWidgetItem*))); + connect(this, SIGNAL(itemExpanded(QTreeWidgetItem*)), this, SLOT(slotExpanded(QTreeWidgetItem*))); headerView->setClickable(true); headerView->setSortIndicatorShown(true); headerView->setMovable(false); @@ -184,6 +184,7 @@ void ProjectListView::mouseDoubleClickEvent(QMouseEvent * event) { QTreeWidgetItem *it = itemAt(event->pos()); if (!it) { + emit pauseMonitor(); emit addClip(); return; } @@ -332,7 +333,7 @@ void ProjectListView::mouseReleaseEvent(QMouseEvent *event) { QTreeWidget::mouseReleaseEvent(event); QTreeWidgetItem *underMouse = itemAt(event->pos()); - if (underMouse) emit focusMonitor(); + if (underMouse) emit focusMonitor(true); } // virtual @@ -347,56 +348,40 @@ void ProjectListView::mouseMoveEvent(QMouseEvent *event) QTreeWidgetItem *it = itemAt(m_DragStartPosition); if (!it) return; - if (it->type() == PROJECTSUBCLIPTYPE) { - // subitem - SubProjectItem *clickItem = static_cast (it); - if (clickItem && (clickItem->flags() & Qt::ItemIsDragEnabled)) { - ProjectItem *clip = static_cast (it->parent()); - QDrag *drag = new QDrag(this); - QMimeData *mimeData = new QMimeData; - - QStringList list; - list.append(clip->clipId()); - QPoint p = clickItem->zone(); - list.append(QString::number(p.x())); - list.append(QString::number(p.y())); - QByteArray data; - data.append(list.join(";").toUtf8()); - mimeData->setData("kdenlive/clip", data); - drag->setMimeData(mimeData); - drag->setPixmap(clickItem->data(0, Qt::DecorationRole).value()); - drag->setHotSpot(QPoint(0, 50)); - drag->exec(Qt::CopyAction | Qt::MoveAction, Qt::CopyAction); - } - } else { - if (it && (it->flags() & Qt::ItemIsDragEnabled)) { - QDrag *drag = new QDrag(this); - QMimeData *mimeData = new QMimeData; - const QList list = selectedItems(); - QStringList ids; - foreach(const QTreeWidgetItem *item, list) { - if (item->type() == PROJECTFOLDERTYPE) { - const int children = item->childCount(); - for (int i = 0; i < children; i++) { - ids.append(static_cast (item->child(i))->clipId()); - } - } else { - const ProjectItem *clip = static_cast (item); - ids.append(clip->clipId()); + if (it && (it->flags() & Qt::ItemIsDragEnabled)) { + QDrag *drag = new QDrag(this); + QMimeData *mimeData = new QMimeData; + const QList list = selectedItems(); + QStringList ids; + foreach(const QTreeWidgetItem *item, list) { + if (item->type() == PROJECTFOLDERTYPE) { + const int children = item->childCount(); + for (int i = 0; i < children; ++i) { + ids.append(static_cast (item->child(i))->clipId()); } + } else if (item->type() == PROJECTSUBCLIPTYPE) { + const ProjectItem *parentclip = static_cast (item->parent()); + const SubProjectItem *clickItem = static_cast (item); + QPoint p = clickItem->zone(); + QString data = parentclip->clipId(); + data.append("/" + QString::number(p.x())); + data.append("/" + QString::number(p.y())); + ids.append(data); + } else { + const ProjectItem *clip = static_cast (item); + ids.append(clip->clipId()); } - if (ids.isEmpty()) return; - QByteArray data; - data.append(ids.join(";").toUtf8()); //doc.toString().toUtf8()); - mimeData->setData("kdenlive/producerslist", data); - //mimeData->setText(ids.join(";")); //doc.toString()); - //mimeData->setImageData(image); - drag->setMimeData(mimeData); - drag->setPixmap(it->data(0, Qt::DecorationRole).value()); - drag->setHotSpot(QPoint(0, 50)); - drag->exec(Qt::CopyAction | Qt::MoveAction, Qt::CopyAction); } - //event->accept(); + if (ids.isEmpty()) return; + QByteArray data; + data.append(ids.join(";").toUtf8()); //doc.toString().toUtf8()); + mimeData->setData("kdenlive/producerslist", data); + //mimeData->setText(ids.join(";")); //doc.toString()); + //mimeData->setImageData(image); + drag->setMimeData(mimeData); + drag->setPixmap(it->data(0, Qt::DecorationRole).value()); + drag->setHotSpot(QPoint(0, 40)); + drag->exec(Qt::CopyAction | Qt::MoveAction, Qt::CopyAction); } }