Changeset 49769 in webkit


Ignore:
Timestamp:
Oct 19, 2009 12:17:40 AM (15 years ago)
Author:
eric@webkit.org
Message:

2009-10-19 Jakob Truelsen <antialize@gmail.com>

Reviewed by Adam Barth.

https://bugs.webkit.org/show_bug.cgi?id=29042
Allow one to customize the minimal and maximal shrink factors used when printing.

  • page/PrintContext.cpp: (WebCore::PrintContext::begin):
  • page/Settings.cpp: (WebCore::Settings::Settings): (WebCore::Settings::setPrintingMinimumShrinkFactor): (WebCore::Settings::setPrintingMaximumShrinkFactor):
  • page/Settings.h: (WebCore::Settings::printingMinimumShrinkFactor): (WebCore::Settings::printingMaximumShrinkFactor):

2009-10-19 Jakob Truelsen <antialize@gmail.com>

Reviewed by Adam Barth.

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

Allow one to costumize the minimal and maximal shrink factors,
Added methods setPrintingMinimumShrinkFactor, printingMinimumShrinkFactor,
setPrintingMaximumShrinkFactor, printingMaximumShrinkFactor to QWebSettings.

  • Api/qwebsettings.cpp: (QWebSettingsPrivate::apply): (QWebSettings::QWebSettings): (QWebSettings::setPrintingMinimumShrinkFactor): (QWebSettings::printingMinimumShrinkFactor): (QWebSettings::setPrintingMaximumShrinkFactor): (QWebSettings::printingMaximumShrinkFactor):
  • Api/qwebsettings.h:
Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r49767 r49769  
     12009-10-19  Jakob Truelsen  <antialize@gmail.com>
     2
     3        Reviewed by Adam Barth.
     4
     5        https://bugs.webkit.org/show_bug.cgi?id=29042
     6        Allow one to customize the minimal and maximal shrink factors used when printing.
     7
     8        * page/PrintContext.cpp:
     9        (WebCore::PrintContext::begin):
     10        * page/Settings.cpp:
     11        (WebCore::Settings::Settings):
     12        (WebCore::Settings::setPrintingMinimumShrinkFactor):
     13        (WebCore::Settings::setPrintingMaximumShrinkFactor):
     14        * page/Settings.h:
     15        (WebCore::Settings::printingMinimumShrinkFactor):
     16        (WebCore::Settings::printingMaximumShrinkFactor):
     17
    1182009-10-18  Erik Arvidsson  <arv@chromium.org>
    219
     
    19631980        * inspector/front-end/ScriptsPanel.js:
    19641981
     1982>>>>>>> .r49765
    196519832009-10-13  Yongjun Zhang  <yongjun.zhang@nokia.com>
    19661984
  • trunk/WebCore/page/PrintContext.cpp

    r47452 r49769  
    2626#include "FrameView.h"
    2727#include "RenderView.h"
     28#include "Settings.h"
    2829
    2930using namespace WebCore;
     
    9697void PrintContext::begin(float width)
    9798{
    98     // By imaging to a width a little wider than the available pixels,
    99     // thin pages will be scaled down a little, matching the way they
    100     // print in IE and Camino. This lets them use fewer sheets than they
    101     // would otherwise, which is presumably why other browsers do this.
    102     // Wide pages will be scaled down more than this.
    103     const float PrintingMinimumShrinkFactor = 1.25f;
     99    float PrintingMinimumShrinkFactor = m_frame->settings() ? m_frame->settings()->printingMinimumShrinkFactor() : 0.0f;
     100    float PrintingMaximumShrinkFactor = m_frame->settings() ? m_frame->settings()->printingMaximumShrinkFactor() : 0.0f;
    104101
    105     // This number determines how small we are willing to reduce the page content
    106     // in order to accommodate the widest line. If the page would have to be
    107     // reduced smaller to make the widest line fit, we just clip instead (this
    108     // behavior matches MacIE and Mozilla, at least)
    109     const float PrintingMaximumShrinkFactor = 2.0f;
     102    if (PrintingMaximumShrinkFactor < PrintingMinimumShrinkFactor || PrintingMinimumShrinkFactor <= 0.0f) {
     103        // By imaging to a width a little wider than the available pixels,
     104        // thin pages will be scaled down a little, matching the way they
     105        // print in IE and Camino. This lets them use fewer sheets than they
     106        // would otherwise, which is presumably why other browsers do this.
     107        // Wide pages will be scaled down more than this.
     108        PrintingMinimumShrinkFactor = 1.25f;
     109
     110        // This number determines how small we are willing to reduce the page content
     111        // in order to accommodate the widest line. If the page would have to be
     112        // reduced smaller to make the widest line fit, we just clip instead (this
     113        // behavior matches MacIE and Mozilla, at least)
     114        PrintingMaximumShrinkFactor = 2.0f;
     115    }
    110116
    111117    float minLayoutWidth = width * PrintingMinimumShrinkFactor;
  • trunk/WebCore/page/Settings.cpp

    r49385 r49769  
    6464    , m_localStorageQuota(5 * 1024 * 1024)  // Suggested by the HTML5 spec.
    6565    , m_pluginAllowedRunTime(numeric_limits<unsigned>::max())
     66    , m_printingMinimumShrinkFactor(0.0f)
     67    , m_printingMaximumShrinkFactor(0.0f)
    6668    , m_isJavaEnabled(false)
    6769    , m_loadsImagesAutomatically(false)
     
    540542#endif
    541543
     544void Settings::setPrintingMinimumShrinkFactor(float printingMinimumShrinkFactor)
     545{
     546    m_printingMinimumShrinkFactor = printingMinimumShrinkFactor;
     547}   
     548
     549void Settings::setPrintingMaximumShrinkFactor(float printingMaximumShrinkFactor)
     550{
     551    m_printingMaximumShrinkFactor = printingMaximumShrinkFactor;
     552}   
     553
    542554} // namespace WebCore
  • trunk/WebCore/page/Settings.h

    r49385 r49769  
    276276#endif
    277277
     278        void setPrintingMinimumShrinkFactor(float);
     279        float printingMinimumShrinkFactor() const { return m_printingMinimumShrinkFactor; }
     280
     281        void setPrintingMaximumShrinkFactor(float);
     282        float printingMaximumShrinkFactor() const { return m_printingMaximumShrinkFactor; }
     283
    278284    private:
    279285        Page* m_page;
     
    298304        unsigned m_localStorageQuota;
    299305        unsigned m_pluginAllowedRunTime;
     306        float m_printingMinimumShrinkFactor;
     307        float m_printingMaximumShrinkFactor;
    300308        bool m_isJavaEnabled : 1;
    301309        bool m_loadsImagesAutomatically : 1;
  • trunk/WebKit/qt/Api/qwebsettings.cpp

    r49492 r49769  
    6363    QString offlineWebApplicationCachePath;
    6464    qint64 offlineStorageDefaultQuota;
     65    float printingMinimumShrinkFactor;
     66    float printingMaximumShrinkFactor;
    6567
    6668    void apply();
     
    174176        QString storagePath = !localStoragePath.isEmpty() ? localStoragePath : global->localStoragePath;
    175177        settings->setLocalStorageDatabasePath(storagePath);
     178
     179        float minimumShrinkFactor = printingMinimumShrinkFactor > 0.0f ? printingMinimumShrinkFactor : global->printingMinimumShrinkFactor;
     180        settings->setPrintingMinimumShrinkFactor(minimumShrinkFactor);
     181
     182        float maximumShrinkFactor = printingMaximumShrinkFactor > 0.0f ? printingMaximumShrinkFactor : global->printingMaximumShrinkFactor;
     183        settings->setPrintingMaximumShrinkFactor(maximumShrinkFactor);
    176184
    177185        value = attributes.value(QWebSettings::ZoomTextOnly,
     
    379387    d->offlineStorageDefaultQuota = 5 * 1024 * 1024;
    380388    d->defaultTextEncoding = QLatin1String("iso-8859-1");
     389    d->printingMinimumShrinkFactor = 0.0f;
     390    d->printingMaximumShrinkFactor = 0.0f;
    381391}
    382392
     
    490500{
    491501    return d->defaultTextEncoding;
     502}
     503
     504/*!
     505    \since 4.7
     506    Specifies minimum shrink fator allowed for printing. If set to 0 a
     507    default value is used.
     508
     509    When printing, content will be shrunk to reduce page usage, it
     510    will reduced by a factor between printingMinimumShrinkFactor and
     511    printingMaximumShrinkFactor.
     512
     513    \sa printingMinimumShrinkFactor()
     514    \sa setPrintingMaximumShrinkFactor()
     515    \sa printingMaximumShrinkFactor()
     516*/
     517void QWebSettings::setPrintingMinimumShrinkFactor(float printingMinimumShrinkFactor)
     518{
     519    d->printingMinimumShrinkFactor = printingMinimumShrinkFactor;
     520    d->apply();
     521}
     522
     523/*!
     524    \since 4.7
     525    returns the minimum shrink factor used for printing.
     526
     527    \sa setPrintingMinimumShrinkFactor()
     528*/
     529float QWebSettings::printingMinimumShrinkFactor() const
     530{
     531    return d->printingMinimumShrinkFactor;
     532}
     533
     534/*!
     535    \since 4.7
     536    Specifies maximum shrink fator allowed for printing. If set to 0 a
     537    default value is used.
     538
     539    \sa setPrintingMinimumShrinkFactor()
     540*/
     541void QWebSettings::setPrintingMaximumShrinkFactor(float printingMaximumShrinkFactor)
     542{
     543    d->printingMaximumShrinkFactor = printingMaximumShrinkFactor;
     544    d->apply();
     545}
     546
     547/*!
     548    \since 4.7
     549    returns the maximum shrink factor used for printing.
     550
     551    \sa setPrintingMinimumShrinkFactor()
     552*/
     553float QWebSettings::printingMaximumShrinkFactor() const
     554{
     555    return d->printingMaximumShrinkFactor;
    492556}
    493557
  • trunk/WebKit/qt/Api/qwebsettings.h

    r48151 r49769  
    104104    QString defaultTextEncoding() const;
    105105
     106    void setPrintingMinimumShrinkFactor(float printingMinimumShrinkFactor);
     107    float printingMinimumShrinkFactor() const;
     108
     109    void setPrintingMaximumShrinkFactor(float printingMaximimShrinkFactor);
     110    float printingMaximumShrinkFactor() const;
     111
    106112    static void setIconDatabasePath(const QString &location);
    107113    static QString iconDatabasePath();
  • trunk/WebKit/qt/ChangeLog

    r49768 r49769  
     12009-10-19  Jakob Truelsen  <antialize@gmail.com>
     2
     3        Reviewed by Adam Barth.
     4
     5        https://bugs.webkit.org/show_bug.cgi?id=29042
     6
     7        Allow one to costumize the minimal and maximal shrink factors,
     8        Added methods setPrintingMinimumShrinkFactor, printingMinimumShrinkFactor,
     9        setPrintingMaximumShrinkFactor, printingMaximumShrinkFactor to QWebSettings.
     10
     11
     12        * Api/qwebsettings.cpp:
     13        (QWebSettingsPrivate::apply):
     14        (QWebSettings::QWebSettings):
     15        (QWebSettings::setPrintingMinimumShrinkFactor):
     16        (QWebSettings::printingMinimumShrinkFactor):
     17        (QWebSettings::setPrintingMaximumShrinkFactor):
     18        (QWebSettings::printingMaximumShrinkFactor):
     19        * Api/qwebsettings.h:
     20
    1212009-10-18  Kenneth Rohde Christiansen  <kenneth@webkit.org>
    222
     
    104124        (QGraphicsWebView::event):
    105125
     126>>>>>>> .r49765
    1061272009-10-13  Girish Ramakrishnan  <girish@forwardbias.in>
    107128
Note: See TracChangeset for help on using the changeset viewer.