[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.18-1-697-g2f78b87
eric at webkit.org
eric at webkit.org
Wed Jan 20 22:14:58 UTC 2010
The following commit has been merged in the debian/unstable branch:
commit dd1cd43ff55fca325133589b7a413818a7fc0b47
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