Qt Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Unsolved

    Unsolved Font styles issues in QFontDatabase

    General and Desktop
    fonts locale
    2
    8
    209
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • SiO2
      SiO2 last edited by SiO2

      When I am generating style lists for my font picking widget, I get localised strings,

          QStringList familyBuf = dispSettings->fdb.families(QFontDatabase::Latin);
          for (int i = (familyBuf.length() - 1); i >= 0; i--)
              if (!dispSettings->fdb.isPrivateFamily(familyBuf.at(i)))
                  if (dispSettings->fdb.isSmoothlyScalable(familyBuf.at(i)))
                      if (QFontInfo(QFont(familyBuf[i])).family() == familyBuf.at(i)) {
                          QString buf = familyBuf.at(i);
                          fontFamilies.append(buf);
                          stylesPack.insert(std::make_pair(buf, dispSettings->fdb.styles(buf)));
      

      but when I am trying to get current style from font via QFontInfo+QFontDatabase, to generate initial GUI state, I suddenly recieve non-localized style string.

       currStyle = dispSettings->fdb.styleString(fontInfo);
      

      In Windows 7+ Qt5.7 QFontDatabase generated non-localized font strings, so there was no issues. How do I work around this mismatch in the Qt5.15+?

      1 Reply Last reply Reply Quote 0
      • mrjj
        mrjj Lifetime Qt Champion last edited by

        Hi
        Is this on win 7 + Qt5.15 ?

        1 Reply Last reply Reply Quote 0
        • SiO2
          SiO2 last edited by

          Hi.
          No, the first system is w7+Qt5.7, the second is w10+Qt5.15.

          mrjj 1 Reply Last reply Reply Quote 0
          • mrjj
            mrjj Lifetime Qt Champion @SiO2 last edited by

            @SiO2
            Hi
            Would it be possible to try Qt5.7 on the win 10 to verify it is indeed something that changed
            from 5.7 to 5.15 and not something that changed from win 7 -> win 10 ?

            1 Reply Last reply Reply Quote 0
            • SiO2
              SiO2 last edited by

              Checked w10+Qt5.7. It is Qt changes that cases issues.

              1 Reply Last reply Reply Quote 1
              • mrjj
                mrjj Lifetime Qt Champion last edited by

                Hi
                Ok so its either a bug (regression) or some changes in QFontInfo.
                I could not locate any change log for QFontInfo but maybe others have an idea.

                1 Reply Last reply Reply Quote 0
                • SiO2
                  SiO2 last edited by SiO2

                  QFontInfo behave the same way in both Qt5.7 and Qt5.15. It is QFontDatabase gives localized style strings in the newer version. What I need is a way to extract stylestring from current font in a way matching QFontDatabase behaviour, i.e. localized one.

                  1 Reply Last reply Reply Quote 0
                  • SiO2
                    SiO2 last edited by SiO2

                    It is worse in fact

                    QFontDatabase::styleString(const QFontInfo &fontInfo) //"Normal"
                    

                    mismatch

                    QStringList QFontDatabase::styles(const QString &family)   //"Обычный", "Полужирный" 
                    

                    so this class essentially breaks its own logic. Also default font keeps those localized stylestring even after me giving up localization via

                    QLocale::setDefault(QLocale::English);
                    

                    std::map<QString, QStringList> stylesPack

                    1 Reply Last reply Reply Quote 0
                    • First post
                      Last post