[Qgis-developer] Default typeface to package with app

Larry Shaffer larrys at dakotacarto.com
Sat Sep 15 16:25:30 PDT 2012


Hi,

On Sat, Sep 15, 2012 at 3:46 PM, Etienne Tourigny
<etourigny.dev at gmail.com> wrote:
> Hi Larry,
>
> I agree with using a unique font - but it would be best to choose one
> which would minimize the need to add size to qgis.
>
> For example, deja vu font has packages in ubuntu (to name one linux
> distro), so adding it as an external dependency would not add size to
> the qgis package.
> Don't know about windows, osx and other linux distros though. Any case
> we could provide an extra package, to be installed when needed.

This would be a consideration for the packagers, given their knowledge
of the platforms they support. Linux distros can probably forgo the
install, but even then, there is no guarantee the installed DejaVu
font (as an example) has the same font metrics as the one QGIS is
expecting (not an uncommon problem). Font comparisons would be in
order, first, before a decision to nix including it with a binary
install.

I don't think the added size of even the complete DejaVu font is too
large (@5MB), considering the advantages. IMHO there should not be any
separate in-app download (more coding to support). I don't think the
user should be bothered to install anything other than the current
packages (e.g. fontconfig, etc). Including a copy of the font along
with the binary is the easiest solution, if there is any chance the
default font may not exist on the target platform.

> On another note - do you plan to allow user to choose his font of
> choice, or hard-code a specific font - based on all your arguments
> above?

By 'default' I am suggesting that such a font always be available and
set as the default for the QApplication (QGIS) when the user first
installs, but by no means hard-coded. I see the other user choices for
fonts to be the Qt default or any other font on the user's system,
with the always available option to fallback to QGIS's 'preferred
default' font (i.e. the one in question). While Qt's default fonts
across platforms do reasonably well, it is not the same as using a
standardized, compatible font of known metrics across all
QGIS-supported platforms.

As it stands now, there is no simple means for a user to switch the
app font, or font sizes for specific parts of the app. Once those
capabilities exist for users to switch fonts (possibly causing
numerous layout problem 'bug' reports from users), it would be
advantageous to always have a default font that the project
definitively knows works and has been tested across platforms, and one
that is not at the mercy of what Qt may select.

Regards,

Larry

> Etienne
>
> On Sat, Sep 15, 2012 at 5:33 PM, Larry Shaffer <larrys at dakotacarto.com> wrote:
>> Hi,
>>
>> Not sure if this has been discussed before, but how about including a
>> default typeface to package with releases/source? Here are several
>> reasons for doing so:
>>
>> * Standard QFontMetrics allow for developing a GUI overhaul around a
>> known font across all platforms (at least in a pointsize at dpi default
>> sense).
>> * Known font metrics allow for standardizing relative font sizes in
>> app-wide stylesheets, and per platform where needed.
>> * Adding tests for the labeling engine would need a standard font of
>> consistent metrics and available/functional on all platforms.
>> * Currently the only Qt default font on all platforms (Courier, I
>> believe) is not necessarily of similar metrics, since it is from
>> various sources, nor is it IMHO very nice looking (apologies to any
>> Courier fans).
>> * Have a better/consistent monospaced font for the Python Console and
>> anywhere editor instances (e.g. QScintilla2) or code snippets are
>> displayed.
>> * Have a known set of available Unicode glyphs for translators to rely upon.
>> * Have a default font that provides a known set of Unicode glyphs for
>> font markers in symbology. (Could be spread across multiple default
>> symbol fonts.)
>> * Provide workarounds for QtDesigner bug where platform-specific fonts
>> end up embedded in .ui files [0].
>>
>> There are probably other good reasons. I've looked at several typeface
>> candidates and think the DejaVu project's family of fonts [1] would
>> work well. While DejaVu (based off of Bitstream's Vera Sans) is
>> already available for Ubuntu and other Linux distros, it is relatively
>> unused, though fully compatible, on all supported QGIS platforms [2].
>> Downside: about 5 MBs extra (compressed) for package.
>>
>> As a TTF DejaVu can readily be loaded into QFontDatabase [3] on
>> platforms that do not have a compatible DejaVu typeface already
>> installed. This would probably entail only loading 4 heavily-used
>> faces, like Sans Book/Bold and Mono Book/Bold, though I think the
>> entire typeface should be included.
>>
>> Any other ideas for embedded fonts? Note: fonts to consider should be
>> in TTF format, offer enough font faces, provide enough language and
>> Unicode character support, and be available under the SIL Open Font
>> [4] or similarly compatible license.
>>
>>
>> [0] Search for 'font-family:' in .ui files
>> [1] http://dejavu-fonts.org/wiki/Main_Page
>> [2] http://en.wikipedia.org/wiki/DejaVu_fonts
>> [3] http://qt-project.org/doc/qt-4.7/qfontdatabase.html#id-5441ac2b-3b52-411e-b2be-7ee83eef8041
>> [4] http://en.wikipedia.org/wiki/SIL_Open_Font_License
>>
>> Regards,
>>
>> Larry
>> _______________________________________________
>> Qgis-developer mailing list
>> Qgis-developer at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/qgis-developer


More information about the Qgis-developer mailing list