[Webkit-unassigned] [Bug 34885] [Qt] QGraphicsWebView should have a mode that makes it automatically resize itself to the content size

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Feb 12 04:21:46 PST 2010


https://bugs.webkit.org/show_bug.cgi?id=34885


Kenneth Rohde Christiansen <kenneth at webkit.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #48634|review?, commit-queue?      |review+, commit-queue-
               Flag|                            |




--- Comment #2 from Kenneth Rohde Christiansen <kenneth at webkit.org>  2010-02-12 04:21:46 PST ---
(From update of attachment 48634)
Please fix the comment before committing

> +/*!
> +    \property QGraphicsWebView::resizesToContent
> +    \brief whether the QGraphicsView size changes to match the content size

whether the size of the QGraphics_Web_View and it's viewport changes to match
the contents size. 

> +
> +    If this property is set, the QGraphicsWebView will automatically change its
> +    size to match the size of the main frame content. As a result the top level frame
> +    will never have scrollbars.
> +
> +    This property should be used in conjunction with the QWebPage::preferredContentsSize
> +    property.

If not the preferredContentsSize is automatically set to a resonable size (?)

> +
> +    \sa QWebPage::setPreferredContentsSize
> +*/

Needs a \since 4.7 and you should add the bug to the 4.7 API tracker bug 31552.

It might be a good idea to tell that the preferredContentsSize is set to a
default value
if not set on before hand.

> +void QGraphicsWebView::setResizesToContent(bool enabled)

Better use contents with s! as it is called preferredContent_s_Size etc. This
should be fixed everywhere.

> +{
> +    d->resizesToContent = enabled;
> +    if (enabled && d->page)
> +        d->enableResizesToContentForPage();
> +}
> +
> +bool QGraphicsWebView::resizesToContent() const
> +{
> +    return d->resizesToContent;
> +}
> +
>  /*! \reimp
>  */
>  void QGraphicsWebView::hoverMoveEvent(QGraphicsSceneHoverEvent* ev)
> Index: WebKit/qt/Api/qgraphicswebview.h
> ===================================================================
> --- WebKit/qt/Api/qgraphicswebview.h	(revision 54651)
> +++ WebKit/qt/Api/qgraphicswebview.h	(working copy)
> @@ -45,6 +45,7 @@ class QWEBKIT_EXPORT QGraphicsWebView : 
>      Q_PROPERTY(QUrl url READ url WRITE setUrl NOTIFY urlChanged)
>  
>      Q_PROPERTY(bool modified READ isModified)
> +    Q_PROPERTY(bool resizesToContent READ resizesToContent WRITE setResizesToContent)
>  
>  public:
>      explicit QGraphicsWebView(QGraphicsItem* parent = 0);
> @@ -79,6 +80,9 @@ public:
>  
>      bool findText(const QString& subString, QWebPage::FindFlags options = 0);
>  
> +    bool resizesToContent() const;
> +    void setResizesToContent(bool enabled);
> +
>      virtual void setGeometry(const QRectF& rect);
>      virtual void updateGeometry();
>      virtual void paint(QPainter*, const QStyleOptionGraphicsItem* options, QWidget* widget = 0);
> @@ -137,6 +141,7 @@ private:
>      // we don't want to change the moc based on USE() macro, so this function is here
>      // but will be empty if ACCLERATED_COMPOSITING is disabled
>      Q_PRIVATE_SLOT(d, void syncLayers())
> +    Q_PRIVATE_SLOT(d, void _q_contentsSizeChanged(QSize))
>  
>      QGraphicsWebViewPrivate* const d;
>      friend class QGraphicsWebViewPrivate;
> Index: WebKit/qt/QGVLauncher/main.cpp
> ===================================================================
> --- WebKit/qt/QGVLauncher/main.cpp	(revision 54651)
> +++ WebKit/qt/QGVLauncher/main.cpp	(working copy)
> @@ -74,6 +74,8 @@ public:
>      {
>          if (QApplication::instance()->arguments().contains("--cacheWebView"))
>              setCacheMode(QGraphicsItem::DeviceCoordinateCache);
> +        if (QApplication::instance()->arguments().contains("--resizesToContent"))
> +            setResizesToContent(true);

Would be cool to have this support in the QtLauncher now it supports the
-graphicsbased, but can be done in another commit.


> +        if (!QApplication::instance()->arguments().contains("--resizesToContent")) {
> +            setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
> +            setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
> +        }

Maybe we should turn these off automatically when enabling the mode? Fits with
the documentation even.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the webkit-unassigned mailing list