if (m_scene->selectedItems().count() == 1) {
item = static_cast <AbstractClipItem *>(m_scene->selectedItems().at(0));
} else {
- if (m_scene->selectedItems().empty()) {
+ if (m_scene->selectedItems().empty())
emit displayMessage(i18n("Cannot find clip to edit"), ErrorMessage);
- } else {
+ else
emit displayMessage(i18n("Cannot edit the duration of multiple items"), ErrorMessage);
- }
return;
}
}
//kDebug()<<"// GOT MOVE POS: "<<minimum.frames(25)<<" - "<<maximum.frames(25);
ClipDurationDialog d(item, m_document->timecode(), minimum, maximum, this);
if (d.exec() == QDialog::Accepted) {
+ ItemInfo clipInfo = item->info();
+ ItemInfo startInfo = clipInfo;
if (item->type() == TRANSITIONWIDGET) {
// move & resize transition
- ItemInfo startInfo;
- startInfo.startPos = item->startPos();
- startInfo.endPos = item->endPos();
- startInfo.track = item->track();
- ItemInfo endInfo;
- endInfo.startPos = d.startPos();
- endInfo.endPos = endInfo.startPos + d.duration();
- endInfo.track = item->track();
- MoveTransitionCommand *command = new MoveTransitionCommand(this, startInfo, endInfo, true);
+ clipInfo.startPos = d.startPos();
+ clipInfo.endPos = clipInfo.startPos + d.duration();
+ clipInfo.track = item->track();
+ MoveTransitionCommand *command = new MoveTransitionCommand(this, startInfo, clipInfo, true);
m_commandStack->push(command);
} else {
// move and resize clip
QUndoCommand *moveCommand = new QUndoCommand();
moveCommand->setText(i18n("Edit clip"));
- ItemInfo clipInfo = item->info();
if (d.duration() < item->cropDuration() || d.cropStart() != clipInfo.cropStart) {
// duration was reduced, so process it first
- ItemInfo startInfo = clipInfo;
clipInfo.endPos = clipInfo.startPos + d.duration();
clipInfo.cropStart = d.cropStart();
new ResizeClipCommand(this, startInfo, clipInfo, true, false, moveCommand);
}
if (d.startPos() != clipInfo.startPos) {
- ItemInfo startInfo = clipInfo;
+ startInfo = clipInfo;
clipInfo.startPos = d.startPos();
clipInfo.endPos = item->endPos() + (clipInfo.startPos - startInfo.startPos);
new MoveClipCommand(this, startInfo, clipInfo, true, moveCommand);
}
if (d.duration() > item->cropDuration()) {
// duration was increased, so process it after move
- ItemInfo startInfo = clipInfo;
+ startInfo = clipInfo;
clipInfo.endPos = clipInfo.startPos + d.duration();
clipInfo.cropStart = d.cropStart();
new ResizeClipCommand(this, startInfo, clipInfo, true, false, moveCommand);
TrackInfo info = m_document->trackInfoAt(maxTrack - i - 1);
if (info.isLocked || info.type == AUDIOTRACK || i == m_selectedTrack) {
const QRectF track(min, m_tracksHeight * i + 1, max - min, m_tracksHeight - 1);
- if (i == m_selectedTrack) painter->fillRect(track, scheme.background(KColorScheme::ActiveBackground).color());
- else painter->fillRect(track, info.isLocked ? lockedColor : audioColor);
+ if (i == m_selectedTrack)
+ painter->fillRect(track, scheme.background(KColorScheme::ActiveBackground).color());
+ else
+ painter->fillRect(track, info.isLocked ? lockedColor : audioColor);
}
painter->drawLine(QPointF(min, m_tracksHeight *(i + 1)), QPointF(max, m_tracksHeight *(i + 1)));
}
{
setFixedHeight(height);
setupUi(this);
- track_number->setText(info.trackName.isEmpty() ? QString::number(m_index) : info.trackName);
+
+ QString name = info.trackName.isEmpty() ? QString::number(m_index) : info.trackName;
+ track_number->setText(name);
+ inputName->setText(name);
+ inputName->setHidden(true);
+ connect(inputName, SIGNAL(editingFinished()), this, SLOT(slotRenameTrack()));
buttonVideo->setChecked(info.isBlind);
buttonVideo->setToolTip(i18n("Hide track"));
if (m_type == VIDEOTRACK) {
setBackgroundRole(QPalette::AlternateBase);
setAutoFillBackground(true);
- if (!info.isBlind) buttonVideo->setIcon(KIcon("kdenlive-show-video"));
- else buttonVideo->setIcon(KIcon("kdenlive-hide-video"));
+ if (!info.isBlind)
+ buttonVideo->setIcon(KIcon("kdenlive-show-video"));
+ else
+ buttonVideo->setIcon(KIcon("kdenlive-hide-video"));
} else {
buttonVideo->setHidden(true);
}
- if (!info.isMute) buttonAudio->setIcon(KIcon("kdenlive-show-audio"));
- else buttonAudio->setIcon(KIcon("kdenlive-hide-audio"));
+ if (!info.isMute)
+ buttonAudio->setIcon(KIcon("kdenlive-show-audio"));
+ else
+ buttonAudio->setIcon(KIcon("kdenlive-hide-audio"));
- if (!info.isLocked) buttonLock->setIcon(KIcon("kdenlive-unlock"));
- else buttonLock->setIcon(KIcon("kdenlive-lock"));
+ if (!info.isLocked)
+ buttonLock->setIcon(KIcon("kdenlive-unlock"));
+ else
+ buttonLock->setIcon(KIcon("kdenlive-lock"));
connect(buttonVideo, SIGNAL(clicked()), this, SLOT(switchVideo()));
connect(buttonAudio, SIGNAL(clicked()), this, SLOT(switchAudio()));
void HeaderTrack::setSelectedIndex(int ix)
{
+ track_number->setHidden(false);
+ inputName->setHidden(true);
if (m_index == ix) {
setBackgroundRole(QPalette::Button);
setAutoFillBackground(true);
- } else if (m_type != VIDEOTRACK) setAutoFillBackground(false);
- else setBackgroundRole(QPalette::AlternateBase);
+ track_number->setHidden(true);
+ inputName->setHidden(false);
+ } else if (m_type != VIDEOTRACK) {
+ setAutoFillBackground(false);
+ } else {
+ setBackgroundRole(QPalette::AlternateBase);
+ }
update();
}
{
// Don't show track buttons if size is too small
bool smallTracks = height < 40;
- if (m_type == VIDEOTRACK) buttonVideo->setHidden(smallTracks);
+ if (m_type == VIDEOTRACK)
+ buttonVideo->setHidden(smallTracks);
buttonAudio->setHidden(smallTracks);
buttonLock->setHidden(smallTracks);
setFixedHeight(height);
void HeaderTrack::switchVideo()
{
- if (buttonVideo->isChecked()) {
+ if (buttonVideo->isChecked())
buttonVideo->setIcon(KIcon("kdenlive-hide-video"));
- } else {
+ else
buttonVideo->setIcon(KIcon("kdenlive-show-video"));
- }
emit switchTrackVideo(m_index);
}
void HeaderTrack::switchAudio()
{
- if (buttonAudio->isChecked()) {
+ if (buttonAudio->isChecked())
buttonAudio->setIcon(KIcon("kdenlive-hide-audio"));
- } else {
+ else
buttonAudio->setIcon(KIcon("kdenlive-show-audio"));
- }
emit switchTrackAudio(m_index);
}
void HeaderTrack::switchLock(bool emitSignal)
{
- if (buttonLock->isChecked()) {
+ if (buttonLock->isChecked())
buttonLock->setIcon(KIcon("kdenlive-lock"));
- } else {
+ else
buttonLock->setIcon(KIcon("kdenlive-unlock"));
- }
- if (emitSignal) emit switchTrackLock(m_index);
+ if (emitSignal)
+ emit switchTrackLock(m_index);
}
void HeaderTrack::setLock(bool lock)
void HeaderTrack::slotRenameTrack()
{
- emit renameTrack(m_index);
+ emit renameTrack(m_index, inputName->text());
}
void HeaderTrack::slotConfigTrack()
void switchTrackLock(int);
void insertTrack(int);
void deleteTrack(int);
- void renameTrack(int);
+ void renameTrack(int, QString);
void selectTrack(int);
void configTrack(int);
};
connect(header, SIGNAL(selectTrack(int)), m_trackview, SLOT(slotSelectTrack(int)));
connect(header, SIGNAL(deleteTrack(int)), this, SIGNAL(deleteTrack(int)));
connect(header, SIGNAL(insertTrack(int)), this, SIGNAL(insertTrack(int)));
- //connect(header, SIGNAL(renameTrack(int)), this, SLOT(slotRenameTrack(int)));
+ connect(header, SIGNAL(renameTrack(int, QString)), this, SLOT(slotRenameTrack(int, QString)));
connect(header, SIGNAL(configTrack(int)), this, SIGNAL(configTrack(int)));
headers_container->layout()->addWidget(header);
}
m_trackview->updateProjectFps();
}
-void TrackView::slotRenameTrack(int ix)
+void TrackView::slotRenameTrack(int ix, QString name)
{
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(slotReloadTracks()));
- m_doc->setModified(true);
- }
+ info.trackName = name;
+ m_doc->setTrackType(tracknumber - 1, info);
+ QTimer::singleShot(300, this, SLOT(slotReloadTracks()));
+ m_doc->setModified(true);
}
void TrackView::slotUpdateVerticalScroll(int /*min*/, int max)
int outPoint() const;
int inPoint() const;
int fitZoom() const;
+
/** @brief Updates (redraws) the ruler.
*
* Used to change from displaying frames to timecode or vice versa. */
void slotChangeTrackLock(int ix, bool lock);
void slotVerticalZoomDown();
void slotVerticalZoomUp();
- void slotRenameTrack(int ix);
+
+ /** @brief Changes the name of a track.
+ * @param ix Number of the track
+ * @param name New name */
+ void slotRenameTrack(int ix, QString name);
void slotRepaintTracks();
- /** @brief Adjust margins of header area
+
+ /** @brief Adjusts the margins of the header area.
*
* Avoid a shift between header area and trackview if
* the horizontal scrollbar is visible and the position
</property>
</widget>
</item>
+ <item row="2" column="0" colspan="4">
+ <widget class="QLineEdit" name="inputName">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
<item row="1" column="0" colspan="2">
<spacer name="verticalSpacer">
<property name="orientation">
</property>
</spacer>
</item>
- <item row="2" column="0">
+ <item row="3" column="0">
<widget class="QToolButton" name="buttonLock">
<property name="maximumSize">
<size>
</property>
</widget>
</item>
- <item row="2" column="1">
+ <item row="3" column="1">
<widget class="QToolButton" name="buttonAudio">
<property name="maximumSize">
<size>
</property>
</widget>
</item>
- <item row="2" column="2">
+ <item row="3" column="2">
<widget class="QToolButton" name="buttonVideo">
<property name="maximumSize">
<size>
</property>
</widget>
</item>
- <item row="2" column="3">
+ <item row="3" column="3">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>