X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FFontInfo.C;h=3cb9af091190197e1d8020ed5d2c6ab1927992f3;hb=342932ad32b6eb9afc0845717d2e3f25433bb5f1;hp=b27ed692468b3795260c5cbef25506845526dcfe;hpb=da7667356810c250a0875649d0b0291c90462c65;p=lyx.git diff --git a/src/FontInfo.C b/src/FontInfo.C index b27ed69246..3cb9af0911 100644 --- a/src/FontInfo.C +++ b/src/FontInfo.C @@ -9,24 +9,25 @@ * ====================================================== */ #include -#include // fabs() #ifdef __GNUG__ -#pragma implementation "FontInfo.h" +#pragma implementation #endif #include "FontInfo.h" #include "debug.h" #include "lyxrc.h" // lyxrc.use_scalable_fonts + #include "support/lstrings.h" #include "support/lyxlib.h" + #include "frontends/GUIRunTime.h" +#include // abs() + using std::endl; +using std::abs; -#ifndef CXX_GLOBAL_CSTD -using std::fabs; -#endif /// Load font close to this size string const FontInfo::getFontname(int size) @@ -44,13 +45,13 @@ string const FontInfo::getFontname(int size) lyxerr[Debug::FONT] << "Exact font match with\n" << strings[i] << endl; return strings[i]; - } else if (fabs(sizes[i] - size - 0.1) < error) { - error = fabs(sizes[i] - size - 0.1); + } else if (abs(sizes[i] - size - 0.1) < error) { + error = abs(sizes[i] - size - 0.1); closestind = i; } } - if (scalable && lyxrc.use_scalable_fonts) { + if (scalable && (lyxrc.use_scalable_fonts || closestind == -1)) { // We can use scalable string const font = resize(strings[scaleindex], size); lyxerr[Debug::FONT] << "Using scalable font to get\n" @@ -60,7 +61,7 @@ string const FontInfo::getFontname(int size) // Did any fonts get close? if (closestind == -1) { - // No, and we are not allowed to use scalables, so... + // No, so... return string(); } @@ -98,7 +99,6 @@ string const FontInfo::resize(string const & font, int size) const /// Set new pattern void FontInfo::setPattern(string const & pat) { - release(); init(); pattern = pat; } @@ -111,7 +111,7 @@ void FontInfo::query() return; if (pattern.empty()) { - lyxerr << "Can not use empty font name for font query." + lyxerr << "Cannot use empty font name for font query." << endl; queried = true; return; @@ -125,15 +125,16 @@ void FontInfo::query() if (list == 0) { // No fonts matched scalable = false; - sizes = 0; + sizes.reset(); } else { - release(); - sizes = new int[matches]; - strings = new string[matches]; + sizes.reset(new int[matches]); + strings.reset(new string[matches]); // We have matches. Run them through for (int i = 0; i < matches; ++i) { string name(list[i]); + lyxerr[Debug::FONT] << "match #" << i << " " + << name << endl; sizes[i] = lyx::atoi(token(name, '-', 7)); strings[i] = name; if (sizes[i] == 0) { @@ -151,24 +152,10 @@ void FontInfo::query() void FontInfo::init() { - sizes = 0; - strings = 0; + sizes.reset(); + strings.reset(); matches = 0; queried = false; scalable = false; scaleindex = -1; } - - -/// Release allocated stuff -void FontInfo::release() -{ - if (sizes) { - delete [] sizes; - sizes = 0; - } - if (strings) { - delete [] strings; - strings = 0; - } -}