]> git.sesse.net Git - kdenlive/blobdiff - src/trackview.cpp
Fix parts of Kdenlive not responding to color theme change
[kdenlive] / src / trackview.cpp
index c3cc0d11fc9fce0540f83e48ccb0269407a0d04c..5e5892314844569d1f6a06549d86d43c34d76e53 100644 (file)
@@ -537,14 +537,7 @@ void TrackView::slotRebuildTrackHeaders()
     HeaderTrack *header = NULL;
     QFrame *frame = NULL;
 
-    QPalette p = palette();
-    KColorScheme scheme(p.currentColorGroup(), KColorScheme::View, KSharedConfig::openConfig(KdenliveSettings::colortheme()));
-    QColor norm = scheme.shade(scheme.background(KColorScheme::ActiveBackground).color(), KColorScheme::MidShade);
-    p.setColor(QPalette::Button, norm);
-
-    QColor col = scheme.background().color();
-    QColor col2 = scheme.foreground().color();
-    headers_container->setStyleSheet(QString("QLineEdit { background-color: transparent;color: rgb(%4, %5, %6);} QLineEdit:hover{ background-color: rgb(%1, %2, %3);} QLineEdit:focus { background-color: rgb(%1, %2, %3);}").arg(col.red()).arg(col.green()).arg(col.blue()).arg(col2.red()).arg(col2.green()).arg(col2.blue()));
+    updatePalette();
     
     for (int i = 0; i < max; i++) {
         frame = new QFrame(headers_container);
@@ -553,7 +546,6 @@ void TrackView::slotRebuildTrackHeaders()
         headers_container->layout()->addWidget(frame);
         TrackInfo info = list.at(max - i - 1);
         header = new HeaderTrack(i, info, height, m_trackActions, headers_container);
-        header->setPalette(p);
         header->setSelectedIndex(m_trackview->selectedTrack());
         connect(header, SIGNAL(switchTrackVideo(int)), m_trackview, SLOT(slotSwitchTrackVideo(int)));
         connect(header, SIGNAL(switchTrackAudio(int)), m_trackview, SLOT(slotSwitchTrackAudio(int)));
@@ -572,6 +564,20 @@ void TrackView::slotRebuildTrackHeaders()
 }
 
 
+void TrackView::updatePalette()
+{
+    QPalette p = palette();
+    KColorScheme scheme(p.currentColorGroup(), KColorScheme::View, KSharedConfig::openConfig(KdenliveSettings::colortheme()));
+    QColor norm = scheme.shade(scheme.background(KColorScheme::ActiveBackground).color(), KColorScheme::MidShade);
+    p.setColor(QPalette::Button, norm);
+    QColor col = scheme.background().color();
+    QColor col2 = scheme.foreground().color();
+    headers_container->setStyleSheet(QString("QLineEdit { background-color: transparent;color: %1;} QLineEdit:hover{ background-color: %2;} QLineEdit:focus { background-color: %2;}").arg(col2.name()).arg(col.name()));
+    m_trackview->updatePalette();
+    m_ruler->updatePalette();
+    
+}
+
 void TrackView::adjustTrackHeaders()
 {
     int height = KdenliveSettings::trackheight() * m_scene->scale().y() - 1;