• Chris Sherlock's avatar
    vcl: Create accessor and mutator for font scaling in FontMetric · 8bfccd3a
    Chris Sherlock yazdı
    This is fragile code! There are actually *two* classes that do almost
    precisely the same thing, they are:
    
    - ImplFontMetric, and
    - ImplFontMetricData
    
    They both have much in common, including their class name, and even
    most of their functionality. In fact, they both have common accessor
    functions. When I look at the code, it looks like OutputDevice is
    actually given an ImplFontMetricData object, which it then uses to
    populate an ImplFontMetric object...
    
    Basically, I'm going to merge these classes. To do so, I'm going to
    do the following:
    
    Step 1: Implement accessor functions for ImplFontMetric and FontMetric
            (then remove the friendship of this class to OutputDevice!)
    Step 2: Write a unit test for each accessor function in ImplFontMetric
    Step 3: Ensure that ImplFontMetric and ImplFontMetricData use some
            sort of smart pointer (probably an intrusive_ptr like I did
            ages ago with FontCharMap)
    Step 4: Merge the two classes together once their class interfaces
            are the same and I am satisfied they do the same thing
    Step 5: Find all instances of inefficient usage - for instance, I can
            do away with the code that copies the ImplFontMetricData
            attributes into an ImplFontMetric object.
    
    Change-Id: I07c1cb848774b130fa2ca60b51da53e07754dd00
    Reviewed-on: https://gerrit.libreoffice.org/21399Reviewed-by: 's avatarChris Sherlock <chris.sherlock79@gmail.com>
    Tested-by: 's avatarChris Sherlock <chris.sherlock79@gmail.com>
    8bfccd3a
fontmetric.cxx 1.59 KB