]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphincolumnview.cpp
Forwardport 773570:
[dolphin.git] / src / dolphincolumnview.cpp
index f119f9d92a2c087a0ef42bfea4948e004a103598..7e74b7e3452e86b8efbe6da71f17eb2360ad5733 100644 (file)
@@ -370,11 +370,13 @@ void DolphinColumnView::updateDecorationSize()
 {
     ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings();
     const int iconSize = settings->iconSize();
+    const QSize size(iconSize, iconSize);
+    setIconSize(size);
 
     foreach (QObject* object, viewport()->children()) {
         if (object->inherits("QListView")) {
             DolphinColumnWidget* widget = static_cast<DolphinColumnWidget*>(object);
-            widget->setDecorationSize(QSize(iconSize, iconSize));
+            widget->setDecorationSize(size);
         }
     }
 
@@ -393,8 +395,12 @@ void DolphinColumnView::updateColumnsBackground(bool active)
     m_active = active;
 
     // dim the background of the viewport
-    QPalette palette;
-    palette.setColor(viewport()->backgroundRole(), QColor(0, 0, 0, 0));
+    const QPalette::ColorRole role = viewport()->backgroundRole();
+    QColor background = viewport()->palette().color(role);
+    background.setAlpha(0);  // make background transparent
+
+    QPalette palette = viewport()->palette();
+    palette.setColor(role, background);
     viewport()->setPalette(palette);
 
     foreach (DolphinColumnWidget* column, m_columns) {
@@ -503,7 +509,9 @@ void DolphinColumnView::assureVisibleActiveColumn()
         } else {
             m_animation->setFrameRange(-m_contentX, -newContentX);
         }
-        m_animation->start();
+        if (m_animation->state() != QTimeLine::Running) {
+           m_animation->start();
+        }
     } else if (x < 0) {
         const int newContentX = m_contentX - x;
         if (isRightToLeft()) {
@@ -511,7 +519,9 @@ void DolphinColumnView::assureVisibleActiveColumn()
         } else {
             m_animation->setFrameRange(-m_contentX, -newContentX);
         }
-        m_animation->start();
+        if (m_animation->state() != QTimeLine::Running) {
+           m_animation->start();
+        }
     }
 }