Changeset 52896 in webkit
- Timestamp:
- Jan 6, 2010 7:37:50 PM (14 years ago)
- Location:
- trunk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r52892 r52896 1 2010-01-06 Jakub Wieczorek <faw217@gmail.com> 2 3 Reviewed by Adam Treat. 4 5 [Qt] RenderTheme: Missing support for native sliders 6 7 https://bugs.webkit.org/show_bug.cgi?id=33122 8 9 Implement painting of native slider controls in RenderTheme 10 and unskip a couple of layout tests that are passing after 11 this change. 12 13 * platform/qt/Skipped: 14 1 15 2010-01-06 Fumitoshi Ukai <ukai@chromium.org> 2 16 -
trunk/LayoutTests/platform/qt/Skipped
r52722 r52896 234 234 # Missing drag & drop functionality in DRT 235 235 fast/images/drag-svg-as-image.html 236 fast/forms/slider-delete-while-dragging-thumb.html 236 237 237 238 # ------- missing eventSender.zoomPageIn … … 479 480 fast/forms/select-accesskey.html 480 481 fast/forms/select-writing-direction-natural.html 481 fast/forms/slider-mouse-events.html482 482 fast/forms/tabbing-input-iframe.html 483 483 fast/forms/textAreaLineHeight.html … … 1057 1057 svg/hixie/viewbox/preserveAspectRatio/002.xml 1058 1058 1059 # ------- <video> support1060 fast/forms/slider-delete-while-dragging-thumb.html1061 1062 1059 # ------ web archive support 1063 1060 svg/custom/image-with-prefix-in-webarchive.svg … … 1167 1164 fast/forms/input-text-option-delete.html 1168 1165 fast/forms/legend-access-key.html 1169 fast/forms/slider-onchange-event.html1170 1166 fast/forms/textarea-rows-cols.html 1171 1167 fast/frames/onlyCommentInIFrame.html … … 2925 2921 fast/forms/select-style.html 2926 2922 fast/forms/select-visual-hebrew.html 2927 fast/forms/slider-padding.html2928 fast/forms/slider-thumb-shared-style.html2929 fast/forms/slider-thumb-stylability.html2930 2923 fast/forms/stuff-on-my-optgroup.html 2931 2924 fast/forms/targeted-frame-submission.html … … 4800 4793 fast/events/pointer-events-2.html 4801 4794 fast/events/special-key-events-in-input-text.html 4802 fast/events/tabindex-focus-blur-all.html4803 4795 fast/forms/option-mouseevents.html 4804 4796 fast/forms/search-abs-pos-cancel-button.html 4805 fast/forms/slider-transformed.html4806 fast/forms/slider-zoomed.html4807 4797 fast/forms/text-control-intrinsic-widths.html 4808 4798 fast/forms/textarea-metrics.html … … 5101 5091 # https://bugs.webkit.org/show_bug.cgi?id=32961 5102 5092 http/tests/xmlhttprequest/failed-auth.html 5093 5094 # Slider tests that need new results 5095 fast/forms/slider-padding.html 5096 fast/forms/slider-thumb-shared-style.html 5097 fast/forms/slider-thumb-stylability.html 5098 fast/forms/slider-zoomed.html 5099 fast/forms/slider-mouse-events.html -
trunk/WebCore/ChangeLog
r52895 r52896 1 2010-01-06 Jakub Wieczorek <faw217@gmail.com> 2 3 Reviewed by Adam Treat. 4 5 [Qt] RenderTheme: Missing support for native sliders 6 7 https://bugs.webkit.org/show_bug.cgi?id=33122 8 9 Implement painting of native slider controls in RenderTheme 10 and unskip a couple of layout tests that are passing after 11 this change. 12 13 * platform/qt/RenderThemeQt.cpp: 14 (WebCore::RenderThemeQt::paintSliderTrack): 15 (WebCore::RenderThemeQt::adjustSliderTrackStyle): 16 (WebCore::RenderThemeQt::paintSliderThumb): 17 (WebCore::RenderThemeQt::adjustSliderThumbStyle): 18 (WebCore::RenderThemeQt::supportsFocus): 19 (WebCore::RenderThemeQt::adjustSliderThumbSize): 20 * platform/qt/RenderThemeQt.h: 21 1 22 2010-01-06 Jesus Sanchez-Palencia <jesus.palencia@openbossa.org> 2 23 -
trunk/WebCore/platform/qt/RenderThemeQt.cpp
r52664 r52896 46 46 #include "QWebPageClient.h" 47 47 #include "RenderBox.h" 48 #include "RenderSlider.h" 48 49 #include "RenderTheme.h" 49 50 #include "UserAgentStyleSheets.h" … … 60 61 #include <QStyleOptionButton> 61 62 #include <QStyleOptionFrameV2> 63 #include <QStyleOptionSlider> 62 64 #include <QWidget> 63 65 … … 630 632 const IntRect& r) 631 633 { 632 notImplemented(); 633 return RenderTheme::paintSliderTrack(o, pi, r); 634 StylePainter p(pi); 635 if (!p.isValid()) 636 return true; 637 638 QStyleOptionSlider option; 639 if (p.widget) 640 option.initFrom(p.widget); 641 ControlPart appearance = initializeCommonQStyleOptions(option, o); 642 643 RenderSlider* renderSlider = toRenderSlider(o); 644 IntRect thumbRect = renderSlider->thumbRect(); 645 646 option.rect = r; 647 648 int value; 649 if (appearance == SliderVerticalPart) { 650 option.maximum = r.height() - thumbRect.height(); 651 value = thumbRect.y(); 652 } else { 653 option.maximum = r.width() - thumbRect.width(); 654 value = thumbRect.x(); 655 } 656 657 value = QStyle::sliderValueFromPosition(0, option.maximum, value, option.maximum); 658 659 option.sliderValue = value; 660 option.sliderPosition = value; 661 if (appearance == SliderVerticalPart) 662 option.orientation = Qt::Vertical; 663 664 if (renderSlider->inDragMode()) { 665 option.activeSubControls = QStyle::SC_SliderHandle; 666 option.state |= QStyle::State_Sunken; 667 } 668 669 const QPoint topLeft = r.topLeft(); 670 p.painter->translate(topLeft); 671 option.rect.moveTo(QPoint(0, 0)); 672 option.rect.setSize(r.size()); 673 674 p.drawComplexControl(QStyle::CC_Slider, option); 675 p.painter->translate(-topLeft); 676 677 return false; 678 } 679 680 void RenderThemeQt::adjustSliderTrackStyle(CSSStyleSelector*, RenderStyle* style, Element*) const 681 { 682 style->setBoxShadow(0); 634 683 } 635 684 … … 637 686 const IntRect& r) 638 687 { 639 notImplemented(); 640 return RenderTheme::paintSliderThumb(o, pi, r); 688 // We've already painted it in paintSliderTrack(), no need to do anything here. 689 return false; 690 } 691 692 void RenderThemeQt::adjustSliderThumbStyle(CSSStyleSelector*, RenderStyle* style, Element*) const 693 { 694 style->setBoxShadow(0); 641 695 } 642 696 … … 707 761 case RadioPart: 708 762 case CheckboxPart: 763 case SliderHorizontalPart: 764 case SliderVerticalPart: 709 765 return true; 710 766 default: // No for all others... … … 959 1015 void RenderThemeQt::adjustSliderThumbSize(RenderObject* o) const 960 1016 { 961 if (o->style()->appearance() == MediaSliderThumbPart) { 1017 ControlPart part = o->style()->appearance(); 1018 1019 if (part == MediaSliderThumbPart) { 962 1020 RenderStyle* parentStyle = o->parent()->style(); 963 1021 Q_ASSERT(parentStyle); … … 966 1024 o->style()->setWidth(Length(parentHeight / 3, Fixed)); 967 1025 o->style()->setHeight(Length(parentHeight, Fixed)); 1026 } else if (part == SliderThumbHorizontalPart || part == SliderThumbVerticalPart) { 1027 QStyleOptionSlider option; 1028 if (part == SliderThumbVerticalPart) 1029 option.orientation = Qt::Vertical; 1030 1031 QStyle* style = qStyle(); 1032 1033 int width = style->pixelMetric(QStyle::PM_SliderLength, &option); 1034 int height = style->pixelMetric(QStyle::PM_SliderThickness, &option); 1035 o->style()->setWidth(Length(width, Fixed)); 1036 o->style()->setHeight(Length(height, Fixed)); 968 1037 } 969 1038 } -
trunk/WebCore/platform/qt/RenderThemeQt.h
r52664 r52896 100 100 101 101 virtual bool paintSliderTrack(RenderObject*, const RenderObject::PaintInfo&, const IntRect&); 102 virtual void adjustSliderTrackStyle(CSSStyleSelector*, RenderStyle*, Element*) const; 103 102 104 virtual bool paintSliderThumb(RenderObject*, const RenderObject::PaintInfo&, const IntRect&); 105 virtual void adjustSliderThumbStyle(CSSStyleSelector*, RenderStyle*, Element*) const; 103 106 104 107 virtual bool paintSearchField(RenderObject*, const RenderObject::PaintInfo&, const IntRect&);
Note: See TracChangeset
for help on using the changeset viewer.