]> git.sesse.net Git - kdenlive/blobdiff - src/trackview.cpp
Various fixes to improve general stability in Qt 4.5.2
[kdenlive] / src / trackview.cpp
index 0ed52e0984eba2e69bdf3cd531399bef574d978f..1ab892e279422498c09c89b678378ef58176449c 100644 (file)
@@ -36,6 +36,7 @@
 #include <KMessageBox>
 
 #include <QScrollBar>
+#include <QInputDialog>
 
 TrackView::TrackView(KdenliveDoc *doc, bool *ok, QWidget *parent) :
         QWidget(parent),
@@ -61,7 +62,6 @@ TrackView::TrackView(KdenliveDoc *doc, bool *ok, QWidget *parent) :
     m_view.ruler_frame->setLayout(layout);
     layout->addWidget(m_ruler);
 
-
     QHBoxLayout *sizeLayout = new QHBoxLayout;
     sizeLayout->setContentsMargins(0, 0, 0, 0);
     sizeLayout->setSpacing(0);
@@ -69,6 +69,7 @@ TrackView::TrackView(KdenliveDoc *doc, bool *ok, QWidget *parent) :
 
     QString style1 = "QToolButton {border-style: none;margin: 0px 3px;padding: 0px;} QToolButton:pressed:hover { background-color: rgba(224, 224, 0, 100); border-style: inset; border:1px solid #cc6666;border-radius: 3px;} QToolButton:hover { background-color: rgba(255, 255, 255, 100); border-style: inset; border:1px solid #cc6666;border-radius: 3px;}";
 
+
     QToolButton *butSmall = new QToolButton(this);
     butSmall->setIcon(KIcon("kdenlive-zoom-small"));
     butSmall->setToolTip(i18n("Smaller tracks"));
@@ -82,7 +83,6 @@ TrackView::TrackView(KdenliveDoc *doc, bool *ok, QWidget *parent) :
     sizeLayout->addWidget(butLarge);
     m_view.size_frame->setStyleSheet(style1);
 
-
     QHBoxLayout *tracksLayout = new QHBoxLayout;
     tracksLayout->setContentsMargins(0, 0, 0, 0);
     tracksLayout->setSpacing(0);
@@ -95,11 +95,9 @@ TrackView::TrackView(KdenliveDoc *doc, bool *ok, QWidget *parent) :
     m_headersLayout->setContentsMargins(0, m_trackview->frameWidth(), 0, 0);
     m_headersLayout->setSpacing(0);
     m_view.headers_container->setLayout(m_headersLayout);
-
     connect(m_view.headers_area->verticalScrollBar(), SIGNAL(valueChanged(int)), m_trackview->verticalScrollBar(), SLOT(setValue(int)));
 
     tracksLayout->addWidget(m_trackview);
-
     connect(m_trackview->verticalScrollBar(), SIGNAL(valueChanged(int)), m_view.headers_area->verticalScrollBar(), SLOT(setValue(int)));
     connect(m_trackview, SIGNAL(trackHeightChanged()), this, SLOT(slotRebuildTrackHeaders()));
 
@@ -445,14 +443,17 @@ void TrackView::refresh()
 
 void TrackView::slotRebuildTrackHeaders()
 {
-    QList <TrackInfo> list = m_doc->tracksList();
+    kDebug() << "--------- - - - -REBUILD TLK HEAD";
+    const QList <TrackInfo> list = m_doc->tracksList();
     QLayoutItem *child;
+    m_view.headers_container->hide();
     while ((child = m_headersLayout->takeAt(0)) != 0) {
         if (child->widget()) delete child->widget();
         delete child;
     }
     int max = list.count();
     int height = KdenliveSettings::trackheight() * m_scene->scale().y();
+
     for (int i = 0; i < max; i++) {
         HeaderTrack *header = new HeaderTrack(i, list.at(max - i - 1), height, this);
         connect(header, SIGNAL(switchTrackVideo(int)), m_trackview, SLOT(slotSwitchTrackVideo(int)));
@@ -462,8 +463,10 @@ void TrackView::slotRebuildTrackHeaders()
         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_view.headers_container->show();
 }
 
 
@@ -835,4 +838,19 @@ void TrackView::updateProjectFps()
     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()));
+        m_doc->setModified(true);
+    }
+}
+
+
 #include "trackview.moc"