VirtualBox

Changeset 97307 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Oct 26, 2022 3:28:31 PM (2 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:10313 Adding feature related extra data variables and methods.

Location:
trunk/src/VBox/Frontends/VirtualBox/src
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.cpp

    r96808 r97307  
    207207const char *UIExtraDataDefs::GUI_ScaleFactor = "GUI/ScaleFactor";
    208208const char *UIExtraDataDefs::GUI_Scaling_Optimization = "GUI/Scaling/Optimization";
     209const char *UIExtraDataDefs::GUI_FontScaleFactor = "GUI/FontScaleFactor";
    209210
    210211/* Virtual Machine: Session Information Dialog: */
  • trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h

    r96816 r97307  
    384384        /** Holds the scaling optimization type. */
    385385        SHARED_LIBRARY_STUFF extern const char *GUI_Scaling_Optimization;
     386        /** Holds the font scale factor. */
     387        SHARED_LIBRARY_STUFF extern const char *GUI_FontScaleFactor;
    386388    /** @} */
    387389
  • trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp

    r96808 r97307  
    26102610}
    26112611
     2612void UIExtraDataManager::setFontScaleFactor(int iFontScaleFactor)
     2613{
     2614    int iMax = 200;
     2615    int iMin = 40;
     2616    if (iFontScaleFactor < iMin || iFontScaleFactor > iMax)
     2617        return;
     2618    setExtraDataString(GUI_FontScaleFactor, QString::number(iFontScaleFactor));
     2619}
     2620
     2621int UIExtraDataManager::fontScaleFactor()
     2622{
     2623    QString strFontScaleFactor = extraDataString(GUI_FontScaleFactor);
     2624    bool fConversion = false;
     2625    int iScaleFactor = strFontScaleFactor.toInt(&fConversion);
     2626    int iMax = 200;
     2627    int iMin = 40;
     2628    if (!fConversion || iScaleFactor < iMin || iScaleFactor > iMax)
     2629        return 100;
     2630    return iScaleFactor;
     2631}
     2632
    26122633void UIExtraDataManager::setHostKeyCombination(const QString &strHostCombo)
    26132634{
  • trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h

    r96808 r97307  
    284284        /* Sets whether host screen saver is disabled when a vm is running. */
    285285        void setDisableHostScreenSaver(bool fActivate);
     286        /* Set global font scale factor as percentage. 100% is for no scaling. */
     287        void setFontScaleFactor(int iFontScaleFactor);
     288        int  fontScaleFactor();
    286289    /** @} */
    287290
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UICommon.cpp

    r96808 r97307  
    730730    m_recentMediaExcludeList << "ad-hoc.viso";
    731731#endif
     732
     733    scaleApplicationFont(gEDataManager->fontScaleFactor());
     734}
     735
     736void UICommon::scaleApplicationFont(int iFontScaleFactor)
     737{
     738    QFont appFont = qApp->font();
     739    if (appFont.pixelSize() != -1)
     740        appFont.setPixelSize(iFontScaleFactor / 100 * appFont.pixelSize());
     741    else
     742        appFont.setPointSize(iFontScaleFactor / 100 * appFont.pointSize());
     743    qApp->setFont(appFont);
    732744}
    733745
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UICommon.h

    r96808 r97307  
    527527    /** @} */
    528528
     529    /* Scales the qApp's font. iFontScaleFactor is percentage thus 100% is for no scaling. */
     530    void scaleApplicationFont(int iFontScaleFactor);
     531
    529532public slots:
    530533
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UIFontScaleEditor.cpp

    r97302 r97307  
    101101{
    102102    setSpinBoxValue(value);
     103    setFontScaleFactor(value);
     104}
     105
     106void UIFontScaleEditor::setFontScaleFactor(int iFontScaleFactor)
     107{
     108    setSliderValue(iFontScaleFactor);
     109    setSpinBoxValue(iFontScaleFactor);
     110}
     111
     112int UIFontScaleEditor::fontScaleFactor() const
     113{
     114    return m_pScaleSlider->value();
    103115}
    104116
     
    156168    }
    157169
    158     prepareScaleFactorMinMaxValues();
     170    prepareScaleFactorMinMax();
    159171    retranslateUi();
    160172}
    161173
    162 void UIFontScaleEditor::prepareScaleFactorMinMaxValues()
    163 {
    164     const int iHostScreenCount = gpDesktop->screenCount();
    165     if (iHostScreenCount == 0)
    166         return;
    167     double dMaxDevicePixelRatio = gpDesktop->devicePixelRatio(0);
    168     for (int i = 1; i < iHostScreenCount; ++i)
    169         if (dMaxDevicePixelRatio < gpDesktop->devicePixelRatio(i))
    170             dMaxDevicePixelRatio = gpDesktop->devicePixelRatio(i);
    171 
    172     const int iMinimum = 100;
    173     const int iMaximum = ceil(iMinimum + 100 * dMaxDevicePixelRatio);
     174void UIFontScaleEditor::prepareScaleFactorMinMax()
     175{
     176    m_pScaleSlider->blockSignals(true);
     177    m_pScaleSpinBox->blockSignals(true);
     178    const int iMinimum = 40;
     179    const int iMaximum = 200;
    174180
    175181    const int iStep = 25;
     
    182188    m_pScaleSpinBox->setMinimum(iMinimum);
    183189    m_pScaleSpinBox->setMaximum(iMaximum);
     190    m_pScaleSlider->blockSignals(false);
     191    m_pScaleSpinBox->blockSignals(false);
    184192}
    185193
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UIFontScaleEditor.h

    r97302 r97307  
    6363    void setMinimumLayoutIndent(int iIndent);
    6464
     65    void setFontScaleFactor(int iFontScaleFactor);
     66    int fontScaleFactor() const;
     67
    6568protected:
    6669
     
    8285    void prepare();
    8386    /** Prepare min/max values of related widgets wrt. device pixel ratio(s). */
    84     void prepareScaleFactorMinMaxValues();
    85 
     87    void prepareScaleFactorMinMax();
    8688
    8789    /** Defines slider's @a iValue. */
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsDisplay.cpp

    r97302 r97307  
    5656               && (m_fActivateHoveredMachineWindow == other.m_fActivateHoveredMachineWindow)
    5757               && (m_fDisableHostScreenSaver == other.m_fDisableHostScreenSaver)
     58               && (m_iFontScalingFactor == other.m_iFontScalingFactor)
    5859                  ;
    5960    }
     
    7273    /** Holds whether we should disable host sceen saver on a vm is running. */
    7374    bool                           m_fDisableHostScreenSaver;
     75    /** Holds font scaling factor. */
     76    int                            m_iFontScalingFactor;
    7477};
    7578
     
    120123    oldData.m_fDisableHostScreenSaver = gEDataManager->disableHostScreenSaver();
    121124#endif
     125    oldData.m_iFontScalingFactor = gEDataManager->fontScaleFactor();
    122126    m_pCache->cacheInitialData(oldData);
    123127
     
    146150        m_pEditorGlobalDisplayFeatures->setDisableHostScreenSaver(oldData.m_fDisableHostScreenSaver);
    147151    }
     152    if (m_pFontScaleEditor)
     153        m_pFontScaleEditor->setFontScaleFactor(oldData.m_iFontScalingFactor);
    148154}
    149155
     
    167173        newData.m_fDisableHostScreenSaver = m_pEditorGlobalDisplayFeatures->disableHostScreenSaver();
    168174    }
     175    if (m_pFontScaleEditor)
     176        newData.m_iFontScalingFactor = m_pFontScaleEditor->fontScaleFactor();
    169177    m_pCache->cacheCurrentData(newData);
    170178}
     
    283291            /* fSuccess = */ gEDataManager->setDisableHostScreenSaver(newData.m_fDisableHostScreenSaver);
    284292#endif /* VBOX_WS_WIN || VBOX_WS_X11 */
     293        /* Save font scale factor: */
     294        if (   fSuccess
     295            && newData.m_iFontScalingFactor != oldData.m_iFontScalingFactor)
     296            /* fSuccess = */ gEDataManager->setFontScaleFactor(newData.m_iFontScalingFactor);
    285297    }
    286298    /* Return result: */
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette