+// virtual
+void HeaderTrack::mousePressEvent(QMouseEvent * event)
+{
+ if (track_number->hasFocus()) {
+ track_number->clearFocus();
+ return;
+ }
+ if (!m_isSelected) emit selectTrack(m_index);
+ emit showTrackEffects(m_index);
+ QWidget::mousePressEvent(event);
+}
+
+void HeaderTrack::mouseDoubleClickEvent(QMouseEvent* event)
+{
+ if (track_number->hasFocus()) {
+ track_number->clearFocus();
+ return;
+ }
+ emit configTrack(m_index);
+ QWidget::mouseDoubleClickEvent(event);
+}
+
+//virtual
+void HeaderTrack::dropEvent(QDropEvent * event)
+{
+ const QString effects = QString::fromUtf8(event->mimeData()->data("kdenlive/effectslist"));
+ QDomDocument doc;
+ doc.setContent(effects, true);
+ QDomElement e = doc.documentElement();
+ if (e.tagName() == "effectgroup") {
+ // dropped an effect group
+ QDomNodeList effectlist = e.elementsByTagName("effect");
+ for (int i = 0; i < effectlist.count(); ++i) {
+ effectlist.at(i).toElement().removeAttribute("kdenlive_ix");
+ }
+ } else {
+ // single effect dropped
+ e.removeAttribute("kdenlive_ix");
+ }
+ emit selectTrack(m_index);
+ emit addTrackEffect(e, m_index);
+ /*if (scene() && !scene()->views().isEmpty()) {
+ event->accept();
+ CustomTrackView *view = (CustomTrackView *) scene()->views()[0];
+ if (view) view->slotAddEffect(e, m_info.startPos, track());
+ }*/
+}
+
+//virtual
+void HeaderTrack::dragEnterEvent(QDragEnterEvent *event)
+{
+ if (buttonLock->isChecked()) {
+ event->setAccepted(false);