[SCM] WebKit Debian packaging branch, webkit-1.2, updated. upstream/1.1.90-6072-g9a69373

eric at webkit.org eric at webkit.org
Thu Apr 8 00:56:31 UTC 2010


The following commit has been merged in the webkit-1.2 branch:
commit 2665745a1606e97493d8da2ee5fa70156e4f4584
Author: eric at webkit.org <eric at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Jan 7 03:37:50 2010 +0000

    2010-01-06  Jakub Wieczorek  <faw217 at gmail.com>
    
            Reviewed by Adam Treat.
    
            [Qt] RenderTheme: Missing support for native sliders
    
            https://bugs.webkit.org/show_bug.cgi?id=33122
    
            Implement painting of native slider controls in RenderTheme
            and unskip a couple of layout tests that are passing after
            this change.
    
            * platform/qt/Skipped:
    2010-01-06  Jakub Wieczorek  <faw217 at gmail.com>
    
            Reviewed by Adam Treat.
    
            [Qt] RenderTheme: Missing support for native sliders
    
            https://bugs.webkit.org/show_bug.cgi?id=33122
    
            Implement painting of native slider controls in RenderTheme
            and unskip a couple of layout tests that are passing after
            this change.
    
            * platform/qt/RenderThemeQt.cpp:
            (WebCore::RenderThemeQt::paintSliderTrack):
            (WebCore::RenderThemeQt::adjustSliderTrackStyle):
            (WebCore::RenderThemeQt::paintSliderThumb):
            (WebCore::RenderThemeQt::adjustSliderThumbStyle):
            (WebCore::RenderThemeQt::supportsFocus):
            (WebCore::RenderThemeQt::adjustSliderThumbSize):
            * platform/qt/RenderThemeQt.h:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@52896 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index ddfcb81..52f7735 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,17 @@
+2010-01-06  Jakub Wieczorek  <faw217 at gmail.com>
+
+        Reviewed by Adam Treat.
+
+        [Qt] RenderTheme: Missing support for native sliders
+
+        https://bugs.webkit.org/show_bug.cgi?id=33122
+
+        Implement painting of native slider controls in RenderTheme
+        and unskip a couple of layout tests that are passing after
+        this change.
+
+        * platform/qt/Skipped:
+
 2010-01-06  Fumitoshi Ukai  <ukai at chromium.org>
 
         Reviewed by David Levin
diff --git a/LayoutTests/platform/qt/Skipped b/LayoutTests/platform/qt/Skipped
index 2e41ffc..8db09b3 100644
--- a/LayoutTests/platform/qt/Skipped
+++ b/LayoutTests/platform/qt/Skipped
@@ -233,6 +233,7 @@ http/tests/security/clipboard/clipboard-file-access.html
 
 # Missing drag & drop functionality in DRT
 fast/images/drag-svg-as-image.html
+fast/forms/slider-delete-while-dragging-thumb.html
 
 # ------- missing eventSender.zoomPageIn
 fast/events/clientXY-in-zoom-and-scroll.html
@@ -478,7 +479,6 @@ fast/forms/password-doubleclick-selection.html
 fast/forms/search-rtl.html
 fast/forms/select-accesskey.html
 fast/forms/select-writing-direction-natural.html
-fast/forms/slider-mouse-events.html
 fast/forms/tabbing-input-iframe.html
 fast/forms/textAreaLineHeight.html
 fast/forms/textarea-scroll-height.html
@@ -1056,9 +1056,6 @@ svg/hixie/viewbox/004.xml
 svg/hixie/viewbox/preserveAspectRatio/001.xml
 svg/hixie/viewbox/preserveAspectRatio/002.xml
 
-# ------- <video> support
-fast/forms/slider-delete-while-dragging-thumb.html
-
 # ------ web archive support
 svg/custom/image-with-prefix-in-webarchive.svg
 
@@ -1166,7 +1163,6 @@ fast/forms/input-double-click-selection-gap-bug.html
 fast/forms/input-radio-checked-tab.html
 fast/forms/input-text-option-delete.html
 fast/forms/legend-access-key.html
-fast/forms/slider-onchange-event.html
 fast/forms/textarea-rows-cols.html
 fast/frames/onlyCommentInIFrame.html
 fast/inline/positionedLifetime.html
@@ -2924,9 +2920,6 @@ fast/forms/select-selected.html
 fast/forms/select-size.html
 fast/forms/select-style.html
 fast/forms/select-visual-hebrew.html
-fast/forms/slider-padding.html
-fast/forms/slider-thumb-shared-style.html
-fast/forms/slider-thumb-stylability.html
 fast/forms/stuff-on-my-optgroup.html
 fast/forms/targeted-frame-submission.html
 fast/forms/textarea-align.html
@@ -4799,11 +4792,8 @@ fast/encoding/hebrew/logical.html
 fast/events/crash-on-mutate-during-drop.html
 fast/events/pointer-events-2.html
 fast/events/special-key-events-in-input-text.html
-fast/events/tabindex-focus-blur-all.html
 fast/forms/option-mouseevents.html
 fast/forms/search-abs-pos-cancel-button.html
-fast/forms/slider-transformed.html
-fast/forms/slider-zoomed.html
 fast/forms/text-control-intrinsic-widths.html
 fast/forms/textarea-metrics.html
 fast/history/window-open.html
@@ -5100,3 +5090,10 @@ svg/custom/global-constructors.html
 # DRT sideeffect - this test make http/tests/xmlhttprequest/null-auth.php fail:
 # https://bugs.webkit.org/show_bug.cgi?id=32961
 http/tests/xmlhttprequest/failed-auth.html
+
+# Slider tests that need new results
+fast/forms/slider-padding.html
+fast/forms/slider-thumb-shared-style.html
+fast/forms/slider-thumb-stylability.html
+fast/forms/slider-zoomed.html
+fast/forms/slider-mouse-events.html
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 3567c09..fc3d3b6 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,24 @@
+2010-01-06  Jakub Wieczorek  <faw217 at gmail.com>
+
+        Reviewed by Adam Treat.
+
+        [Qt] RenderTheme: Missing support for native sliders
+
+        https://bugs.webkit.org/show_bug.cgi?id=33122
+
+        Implement painting of native slider controls in RenderTheme
+        and unskip a couple of layout tests that are passing after
+        this change.
+
+        * platform/qt/RenderThemeQt.cpp:
+        (WebCore::RenderThemeQt::paintSliderTrack):
+        (WebCore::RenderThemeQt::adjustSliderTrackStyle):
+        (WebCore::RenderThemeQt::paintSliderThumb):
+        (WebCore::RenderThemeQt::adjustSliderThumbStyle):
+        (WebCore::RenderThemeQt::supportsFocus):
+        (WebCore::RenderThemeQt::adjustSliderThumbSize):
+        * platform/qt/RenderThemeQt.h:
+
 2010-01-06  Jesus Sanchez-Palencia  <jesus.palencia at openbossa.org>
 
         Reviewed by Darin Adler.
diff --git a/WebCore/platform/qt/RenderThemeQt.cpp b/WebCore/platform/qt/RenderThemeQt.cpp
index e537afa..428dbbc 100644
--- a/WebCore/platform/qt/RenderThemeQt.cpp
+++ b/WebCore/platform/qt/RenderThemeQt.cpp
@@ -45,6 +45,7 @@
 #include "Page.h"
 #include "QWebPageClient.h"
 #include "RenderBox.h"
+#include "RenderSlider.h"
 #include "RenderTheme.h"
 #include "UserAgentStyleSheets.h"
 #include "qwebpage.h"
@@ -59,6 +60,7 @@
 #include <QStyleFactory>
 #include <QStyleOptionButton>
 #include <QStyleOptionFrameV2>
+#include <QStyleOptionSlider>
 #include <QWidget>
 
 
@@ -629,15 +631,67 @@ bool RenderThemeQt::paintMenuListButton(RenderObject* o, const RenderObject::Pai
 bool RenderThemeQt::paintSliderTrack(RenderObject* o, const RenderObject::PaintInfo& pi,
                                      const IntRect& r)
 {
-    notImplemented();
-    return RenderTheme::paintSliderTrack(o, pi, r);
+    StylePainter p(pi);
+    if (!p.isValid())
+       return true;
+
+    QStyleOptionSlider option;
+    if (p.widget)
+       option.initFrom(p.widget);
+    ControlPart appearance = initializeCommonQStyleOptions(option, o);
+
+    RenderSlider* renderSlider = toRenderSlider(o);
+    IntRect thumbRect = renderSlider->thumbRect();
+
+    option.rect = r;
+
+    int value;
+    if (appearance == SliderVerticalPart) {
+        option.maximum = r.height() - thumbRect.height();
+        value = thumbRect.y();
+    } else {
+        option.maximum = r.width() - thumbRect.width();
+        value = thumbRect.x();
+    }
+
+    value = QStyle::sliderValueFromPosition(0, option.maximum, value, option.maximum);
+
+    option.sliderValue = value;
+    option.sliderPosition = value;
+    if (appearance == SliderVerticalPart)
+        option.orientation = Qt::Vertical;
+
+    if (renderSlider->inDragMode()) {
+        option.activeSubControls = QStyle::SC_SliderHandle;
+        option.state |= QStyle::State_Sunken;
+    }
+
+    const QPoint topLeft = r.topLeft();
+    p.painter->translate(topLeft);
+    option.rect.moveTo(QPoint(0, 0));
+    option.rect.setSize(r.size());
+
+    p.drawComplexControl(QStyle::CC_Slider, option);
+    p.painter->translate(-topLeft);
+
+    return false;
+}
+
+void RenderThemeQt::adjustSliderTrackStyle(CSSStyleSelector*, RenderStyle* style, Element*) const
+{
+    style->setBoxShadow(0);
 }
 
 bool RenderThemeQt::paintSliderThumb(RenderObject* o, const RenderObject::PaintInfo& pi,
                                      const IntRect& r)
 {
-    notImplemented();
-    return RenderTheme::paintSliderThumb(o, pi, r);
+    // We've already painted it in paintSliderTrack(), no need to do anything here.
+    return false;
+}
+
+void RenderThemeQt::adjustSliderThumbStyle(CSSStyleSelector*, RenderStyle* style, Element*) const
+{
+    style->setBoxShadow(0);
 }
 
 bool RenderThemeQt::paintSearchField(RenderObject* o, const RenderObject::PaintInfo& pi,
@@ -706,6 +760,8 @@ bool RenderThemeQt::supportsFocus(ControlPart appearance) const
     case MenulistPart:
     case RadioPart:
     case CheckboxPart:
+    case SliderHorizontalPart:
+    case SliderVerticalPart:
         return true;
     default: // No for all others...
         return false;
@@ -958,13 +1014,26 @@ bool RenderThemeQt::paintMediaSliderThumb(RenderObject* o, const RenderObject::P
 
 void RenderThemeQt::adjustSliderThumbSize(RenderObject* o) const
 {
-    if (o->style()->appearance() == MediaSliderThumbPart) {
+    ControlPart part = o->style()->appearance();
+
+    if (part == MediaSliderThumbPart) {
         RenderStyle* parentStyle = o->parent()->style();
         Q_ASSERT(parentStyle);
 
         int parentHeight = parentStyle->height().value();
         o->style()->setWidth(Length(parentHeight / 3, Fixed));
         o->style()->setHeight(Length(parentHeight, Fixed));
+    } else if (part == SliderThumbHorizontalPart || part == SliderThumbVerticalPart) {
+        QStyleOptionSlider option;
+        if (part == SliderThumbVerticalPart)
+            option.orientation = Qt::Vertical;
+
+        QStyle* style = qStyle();
+
+        int width = style->pixelMetric(QStyle::PM_SliderLength, &option);
+        int height = style->pixelMetric(QStyle::PM_SliderThickness, &option);
+        o->style()->setWidth(Length(width, Fixed));
+        o->style()->setHeight(Length(height, Fixed));
     }
 }
 
diff --git a/WebCore/platform/qt/RenderThemeQt.h b/WebCore/platform/qt/RenderThemeQt.h
index b9cb918..ee854a4 100644
--- a/WebCore/platform/qt/RenderThemeQt.h
+++ b/WebCore/platform/qt/RenderThemeQt.h
@@ -99,7 +99,10 @@ protected:
     virtual void adjustMenuListButtonStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
 
     virtual bool paintSliderTrack(RenderObject*, const RenderObject::PaintInfo&, const IntRect&);
+    virtual void adjustSliderTrackStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
+
     virtual bool paintSliderThumb(RenderObject*, const RenderObject::PaintInfo&, const IntRect&);
+    virtual void adjustSliderThumbStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
 
     virtual bool paintSearchField(RenderObject*, const RenderObject::PaintInfo&, const IntRect&);
     virtual void adjustSearchFieldStyle(CSSStyleSelector*, RenderStyle*, Element*) const;

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list