m_keyframeFactor(1),
m_fps(fps)
{
- setFlags(/*QGraphicsItem::ItemClipsToShape | */QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
+ setFlags(QGraphicsItem::ItemClipsToShape | QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
setTrack(info.track);
m_startPos = info.startPos;
m_cropDuration = info.endPos - info.startPos;
setSelected(false);
setFlag(QGraphicsItem::ItemIsMovable, false);
setFlag(QGraphicsItem::ItemIsSelectable, false);
- } else setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
+ } else setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemClipsToShape);
}
bool AbstractClipItem::isItemLocked() const
m_maxDuration = clip->maxDuration();
setAcceptDrops(true);
m_audioThumbReady = clip->audioThumbCreated();
-
- setFlags(QGraphicsItem::ItemClipsToShape | QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
//setAcceptsHoverEvents(true);
connect(this , SIGNAL(prepareAudioThumb(double, int, int, int)) , this, SLOT(slotPrepareAudioThumb(double, int, int, int)));
for (int i = 0; i < children.count(); i++) {
if (children.at(i)->type() == AVWIDGET || children.at(i)->type() == TRANSITIONWIDGET) {
if (!static_cast <AbstractClipItem *>(children.at(i))->isItemLocked()) {
- children.at(i)->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
+ children.at(i)->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemClipsToShape);
children.at(i)->setSelected(selectItems);
}
} else if (children.at(i)->type() == GROUPWIDGET) {
- children.at(i)->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
+ children.at(i)->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemClipsToShape);
children.at(i)->setSelected(selectItems);
}
}
m_document->clipManager()->removeGroup(grp);
scene()->destroyItemGroup(grp);
}
- clip->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
+ clip->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemClipsToShape);
}
for (int i = 0; i < transitionInfos.count(); i++) {
Transition *tr = getTransitionItemAt(transitionInfos.at(i).startPos, transitionInfos.at(i).track);
m_document->clipManager()->removeGroup(grp);
scene()->destroyItemGroup(grp);
}
- tr->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
+ tr->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemClipsToShape);
}
setDocumentModified();
return;
break;
}
}
- clip->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
+ clip->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemClipsToShape);
m_document->clipManager()->removeGroup(grp);
scene()->destroyItemGroup(grp);
}
struct TrackInfo {
TRACKTYPE type;
+ QString trackName;
bool isMute;
bool isBlind;
bool isLocked;
} else if (m_tool == TITLE_TEXT) {
m_selectedItem = addText(QString());
emit newText((QGraphicsTextItem *) m_selectedItem);
- m_selectedItem->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
+ m_selectedItem->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemClipsToShape);
((QGraphicsTextItem *)m_selectedItem)->setTextInteractionFlags(Qt::TextEditorInteraction);
m_selectedItem->setPos(e->scenePos());
QGraphicsScene::mousePressEvent(e);
// create new rect item
m_selectedItem = addRect(0, 0, e->scenePos().x() - m_sceneClickPoint.x(), e->scenePos().y() - m_sceneClickPoint.y());
emit newRect((QGraphicsRectItem *) m_selectedItem);
- m_selectedItem->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
+ m_selectedItem->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemClipsToShape);
m_selectedItem->setPos(m_sceneClickPoint);
m_resizeMode = BottomRight;
QGraphicsScene::mouseMoveEvent(e);
m_fps(fps),
m_view(view)
{
- setFlags(QGraphicsItem::ItemIsMovable);
+ setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemClipsToShape);
setToolTip(label);
setLine(0, 0, 0, height);
setPos(m_position.frames(m_fps), 0);
{
setFixedHeight(height);
m_view.setupUi(this);
- m_view.track_number->setText(QString::number(m_index));
+ m_view.track_number->setText(info.trackName.isEmpty() ? QString::number(m_index) : info.trackName);
m_view.buttonVideo->setChecked(!info.isBlind);
m_view.buttonVideo->setToolTip(i18n("Hide track"));
QAction *changeAction = new QAction(i18n("Change Track Type"), this);
addAction(changeAction);
connect(changeAction, SIGNAL(triggered()), this, SLOT(slotChangeTrack()));
+
+ QAction *renameAction = new QAction(i18n("Rename Track"), this);
+ addAction(renameAction);
+ connect(renameAction, SIGNAL(triggered()), this, SLOT(slotRenameTrack()));
+
}
HeaderTrack::~HeaderTrack()
emit changeTrack(m_index);
}
+void HeaderTrack::slotRenameTrack()
+{
+ emit renameTrack(m_index);
+}
// virtual
/*void HeaderTrack::paintEvent(QPaintEvent *e) {
void slotDeleteTrack();
void slotAddTrack();
void slotChangeTrack();
+ void slotRenameTrack();
void switchLock(bool emitSignal = true);
signals:
void insertTrack(int);
void deleteTrack(int);
void changeTrack(int);
+ void renameTrack(int);
};
#endif
projectTrack.isMute = e.attribute("mute").toInt();
projectTrack.isBlind = e.attribute("blind").toInt();
projectTrack.isLocked = e.attribute("locked").toInt();
+ projectTrack.trackName = e.attribute("trackname");
m_tracksList.append(projectTrack);
}
}
trackinfo.setAttribute("mute", info.isMute);
trackinfo.setAttribute("blind", info.isBlind);
trackinfo.setAttribute("locked", info.isLocked);
+ trackinfo.setAttribute("trackname", info.trackName);
tracksinfo.appendChild(trackinfo);
}
addedXml.appendChild(tracksinfo);
m_tracksList[ix].isMute = type.isMute;
m_tracksList[ix].isBlind = type.isBlind;
m_tracksList[ix].isLocked = type.isLocked;
+ m_tracksList[ix].trackName = type.trackName;
}
const QList <TrackInfo> KdenliveDoc::tracksList() const
#include <KMessageBox>
#include <QScrollBar>
+#include <QInputDialog>
TrackView::TrackView(KdenliveDoc *doc, bool *ok, QWidget *parent) :
QWidget(parent),
connect(header, SIGNAL(deleteTrack(int)), this, SIGNAL(deleteTrack(int)));
connect(header, SIGNAL(insertTrack(int)), this, SIGNAL(insertTrack(int)));
connect(header, SIGNAL(changeTrack(int)), this, SIGNAL(changeTrack(int)));
+ connect(header, SIGNAL(renameTrack(int)), this, SLOT(slotRenameTrack(int)));
m_headersLayout->addWidget(header);
}
}
m_ruler->updateProjectFps(m_doc->timecode());
}
+void TrackView::slotRenameTrack(int ix)
+{
+ int tracknumber = m_doc->tracksCount() - ix;
+ TrackInfo info = m_doc->trackInfoAt(tracknumber - 1);
+ bool ok;
+ QString newName = QInputDialog::getText(this, i18n("New Track Name"), i18n("Enter new name"), QLineEdit::Normal, info.trackName, &ok);
+ if (ok) {
+ info.trackName = newName;
+ m_doc->setTrackType(tracknumber - 1, info);
+ QTimer::singleShot(300, this, SLOT(slotRebuildTrackHeaders()));
+ }
+}
+
+
#include "trackview.moc"
void slotChangeTrackLock(int ix, bool lock);
void slotVerticalZoomDown();
void slotVerticalZoomUp();
+ void slotRenameTrack(int ix);
signals:
void mousePosition(int);
void insertTrack(int);
void deleteTrack(int);
void changeTrack(int);
+ void renameTrack(int);
};
#endif
setZValue(3);
setRect(0, 0, (info.endPos - info.startPos).frames(fps) - 0.02, (qreal)(KdenliveSettings::trackheight() / 3 * 2 - 1));
setPos(info.startPos.frames(fps), (qreal)(info.track * KdenliveSettings::trackheight() + KdenliveSettings::trackheight() / 3 * 2));
-
+
m_cropStart = GenTime();
m_maxDuration = GenTime(600);
if (m_parameters.attribute("force_track") == "1") m_forceTransitionTrack = true;
m_name = m_parameters.elementsByTagName("name").item(0).toElement().text();
m_secondClip = 0;
- setFlags(QGraphicsItem::ItemClipsToShape | QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
//m_referenceClip->addTransition(this);
}