]> git.sesse.net Git - kdenlive/commitdiff
Use lineEdit instead of a label in the header of the selected track to rename it...
authorTill Theato <root@ttill.de>
Sun, 27 Jun 2010 21:47:32 +0000 (21:47 +0000)
committerTill Theato <root@ttill.de>
Sun, 27 Jun 2010 21:47:32 +0000 (21:47 +0000)
svn path=/trunk/kdenlive/; revision=4544

src/customtrackview.cpp
src/headertrack.cpp
src/headertrack.h
src/trackview.cpp
src/trackview.h
src/widgets/trackheader_ui.ui

index d16ea7fdb3e2ba73f38c3bb6b0f161d80ed061c6..7046d9787aff457e9e5e49a2cfa4c648cf4b2c26 100644 (file)
@@ -1176,11 +1176,10 @@ void CustomTrackView::editItemDuration()
         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;
         }
     }
@@ -1205,39 +1204,34 @@ void CustomTrackView::editItemDuration()
         //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);
@@ -4670,8 +4664,10 @@ void CustomTrackView::drawBackground(QPainter * painter, const QRectF &rect)
         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)));
     }
index a3babea7bc16f5f23a7dd10f2f0b45de8034ecb1..b66ea102ec47b25574f843aad79354b05482e141 100644 (file)
@@ -38,7 +38,12 @@ HeaderTrack::HeaderTrack(int index, TrackInfo info, int height, QWidget *parent)
 {
     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"));
@@ -55,16 +60,22 @@ HeaderTrack::HeaderTrack(int index, TrackInfo info, int height, QWidget *parent)
     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()));
@@ -111,11 +122,18 @@ void HeaderTrack::mouseDoubleClickEvent(QMouseEvent* event)
 
 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();
 }
 
@@ -123,7 +141,8 @@ void HeaderTrack::adjustSize(int height)
 {
     // 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);
@@ -131,32 +150,30 @@ void HeaderTrack::adjustSize(int 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)
@@ -182,7 +199,7 @@ void HeaderTrack::slotAddTrack()
 
 void HeaderTrack::slotRenameTrack()
 {
-    emit renameTrack(m_index);
+    emit renameTrack(m_index, inputName->text());
 }
 
 void HeaderTrack::slotConfigTrack()
index f370f1c70791a14bbb8ca0e104564c6861d61ba3..94aa47e7514f1622e3fffbc739df353ea096ecc9 100644 (file)
@@ -61,7 +61,7 @@ signals:
     void switchTrackLock(int);
     void insertTrack(int);
     void deleteTrack(int);
-    void renameTrack(int);
+    void renameTrack(int, QString);
     void selectTrack(int);
     void configTrack(int);
 };
index 2ab7b91f6dc6d2d2a0372029723fabf9df5fdc8f..9e357260c2942e0cee5da375eb9cf40a57643906 100644 (file)
@@ -535,7 +535,7 @@ void TrackView::slotRebuildTrackHeaders()
         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);
     }
@@ -930,18 +930,14 @@ void TrackView::updateProjectFps()
     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)
index d88d34f8b8a4daa7e770528ee858e3472a86b6bf..f82b661b736132673a10823dfdfcfa73e1f8c1a1 100644 (file)
@@ -63,6 +63,7 @@ public:
     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. */
@@ -104,9 +105,14 @@ private slots:
     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
index 9e8ad58d051ecd75fd7eb1a779b11694c0385bc6..0642ef407e3a62924e501e72681bba86cbbfcc37 100644 (file)
      </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">
@@ -49,7 +59,7 @@
      </property>
     </spacer>
    </item>
-   <item row="2" column="0">
+   <item row="3" column="0">
     <widget class="QToolButton" name="buttonLock">
      <property name="maximumSize">
       <size>
@@ -71,7 +81,7 @@
      </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>