VirtualBox

Changeset 79356 in vbox


Ignore:
Timestamp:
Jun 26, 2019 11:37:16 AM (6 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
131588
Message:

FE/Qt: bugref:6143. Making numpad, os, and menu keys optional

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/softkeyboard/UISoftKeyboard.cpp

    r79325 r79356  
    1818/* Qt includes: */
    1919#include <QApplication>
     20#include <QCheckBox>
    2021#include <QComboBox>
    2122#include <QFile>
     
    330331    UIKeyType type() const;
    331332
     333    void setIsNumPadKey(bool fIsNumPadKey);
     334    bool isNumPadKey() const;
     335
     336    void setIsOSMenuKey(bool fIsOSMenuKey);
     337    bool isOSMenuKey() const;
     338
    332339    void setCutout(int iCorner, int iWidth, int iHeight);
    333340
     
    348355    int cutoutHeight() const;
    349356    QPicture m_textPixmap;
     357
    350358private:
    351359
     
    354362
    355363    QRect      m_keyGeometry;
    356 
    357364    QString    m_strBaseCaption;
    358365    QString    m_strShiftCaption;
    359366    QString    m_strAltGrCaption;
    360367    QString    m_strShiftAltGrCaption;
    361 
    362368    /** m_strText is concatenation of base, shift, and altgr captions. */
    363369    QString    m_strText;
    364 
    365370    /** Stores the key polygon in local coordinates. */
    366371    QPolygon   m_polygon;
     
    374379    LONG       m_scanCode;
    375380    LONG       m_scanCodePrefix;
    376     int        m_iCutoutWidth;
    377     int        m_iCutoutHeight;
    378     /** -1 is for no cutout. 0 is the topleft, 2 is the top right and so on. */
    379     int        m_iCutoutCorner;
     381
     382    /** @name Cutouts are used to create non-rectangle keys polygons.
     383      * @{ */
     384        int  m_iCutoutWidth;
     385        int  m_iCutoutHeight;
     386        /** -1 is for no cutout. 0 is the topleft, 2 is the top right and so on. */
     387        int  m_iCutoutCorner;
     388    /** @} */
     389
    380390    /** Key's position in the layout. */
    381391    int        m_iPosition;
    382392    UISoftKeyboardWidget  *m_pParentWidget;
     393    bool m_fIsNumPadKey;
     394    bool m_fIsOSMenuKey;
    383395};
    384396
     
    476488    void saveCurentLayoutToFile();
    477489    void copyCurentLayout();
    478     float layoutAspectRation();
     490    float layoutAspectRatio();
     491
     492    bool showOSMenuKeys();
     493    void setShowOSMenuKeys(bool fShow);
     494
     495    bool showNumPad();
     496    void setShowNumPad(bool fShow);
    479497
    480498protected:
     
    533551    int   m_iInitialHeight;
    534552    int   m_iInitialWidth;
     553    int   m_iInitialWidthNoNumPad;
    535554    int   m_iXSpacing;
    536555    int   m_iYSpacing;
     
    542561    QMenu   *m_pContextMenu;
    543562    Mode     m_enmMode;
     563
     564    bool m_fShowOSMenuKeys;
     565    bool m_fShowNumPad;
    544566};
    545567
     
    604626
    605627    void sigShowHideSidePanel();
     628    void sigShowSettingWidget();
    606629
    607630public:
     
    621644    void prepareObjects();
    622645    QToolButton  *m_pLayoutListButton;
     646    QToolButton  *m_pSettingsButton;
    623647    QLabel       *m_pMessageLabel;
     648};
     649
     650
     651/*********************************************************************************************************************************
     652*   UISoftKeyboardSettingsWidget  definition.                                                                                    *
     653*********************************************************************************************************************************/
     654
     655class UISoftKeyboardSettingsWidget : public QIWithRetranslateUI<QWidget>
     656{
     657    Q_OBJECT;
     658
     659signals:
     660
     661    void sigShowNumPad(bool fShow);
     662    void sigShowOSMenuKeys(bool fShow);
     663
     664public:
     665
     666    UISoftKeyboardSettingsWidget(QWidget *pParent = 0);
     667    void setShowOSMenuKeys(bool fShow);
     668    void setShowNumPad(bool fShow);
     669
     670protected:
     671
     672    virtual void retranslateUi() /* override */;
     673
     674private slots:
     675
     676
     677private:
     678
     679    void prepareObjects();
     680
     681    QCheckBox  *m_pShowNumPadCheckBox;
     682    QCheckBox  *m_pShowOsMenuButtonsCheckBox;
     683
    624684};
    625685
     
    732792        m_pTitleLabel->setText(UISoftKeyboard::tr("Layout Editor"));
    733793    if (m_pGoBackButton)
     794    {
    734795        m_pGoBackButton->setToolTip(UISoftKeyboard::tr("Return Back to Layout List"));
     796        m_pGoBackButton->setText(UISoftKeyboard::tr("Back to Layout List"));
     797    }
    735798    if (m_pPhysicalLayoutLabel)
    736799        m_pPhysicalLayoutLabel->setText(UISoftKeyboard::tr("Physical Layout"));
     
    814877    QHBoxLayout *pTitleLayout = new QHBoxLayout;
    815878    m_pGoBackButton = new QToolButton;
     879    m_pGoBackButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
    816880    m_pGoBackButton->setIcon(UIIconPool::defaultIcon(UIIconPool::UIDefaultIconType_ArrowBack));
    817     m_pGoBackButton->setStyleSheet("QToolButton { border: 0px none black; margin: 0px 0px 0px 0px; } QToolButton::menu-indicator {image: none;}");
     881    //m_pGoBackButton->setStyleSheet("QToolButton { border: 0px none black; margin: 0px 0px 0px 0px; } QToolButton::menu-indicator {image: none;}");
     882    m_pGoBackButton->setAutoRaise(true);
    818883    m_pEditorLayout->addWidget(m_pGoBackButton, 0, 0, 1, 1);
    819884    connect(m_pGoBackButton, &QToolButton::clicked, this, &UILayoutEditor::sigGoBackButton);
     
    10151080        m_pTitleLabel->setText(UISoftKeyboard::tr("Layout List"));
    10161081    if (m_pCloseButton)
     1082    {
    10171083        m_pCloseButton->setToolTip(UISoftKeyboard::tr("Close the layout list"));
     1084        m_pCloseButton->setText("Close");
     1085    }
    10181086}
    10191087
     
    10281096    QHBoxLayout *pTitleLayout = new QHBoxLayout;
    10291097    m_pCloseButton = new QToolButton;
     1098    m_pCloseButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
    10301099    m_pCloseButton->setIcon(UIIconPool::defaultIcon(UIIconPool::UIDefaultIconType_DialogCancel));
    1031     m_pCloseButton->setStyleSheet("QToolButton { border: 0px none black; margin: 0px 0px 0px 0px; } QToolButton::menu-indicator {image: none;}");
     1100    //m_pCloseButton->setStyleSheet("QToolButton { border: 0px none black; margin: 0px 0px 0px 0px; } QToolButton::menu-indicator {image: none;}");
     1101    m_pCloseButton->setAutoRaise(true);
    10321102    connect(m_pCloseButton, &QToolButton::clicked, this, &UILayoutSelector::sigCloseLayoutList);
    10331103    pTitleLayout->addWidget(m_pCloseButton);
     
    11371207    , m_iPosition(0)
    11381208    , m_pParentWidget(0)
     1209    , m_fIsNumPadKey(false)
     1210    , m_fIsOSMenuKey(false)
     1211
    11391212{
    11401213}
     
    12761349{
    12771350    return m_enmType;
     1351}
     1352
     1353void UISoftKeyboardKey::setIsNumPadKey(bool fIsNumPadKey)
     1354{
     1355    m_fIsNumPadKey = fIsNumPadKey;
     1356}
     1357
     1358bool UISoftKeyboardKey::isNumPadKey() const
     1359{
     1360    return m_fIsNumPadKey;
     1361}
     1362
     1363void UISoftKeyboardKey::setIsOSMenuKey(bool fIsOSMenuKey)
     1364{
     1365    m_fIsOSMenuKey = fIsOSMenuKey;
     1366}
     1367
     1368bool UISoftKeyboardKey::isOSMenuKey() const
     1369{
     1370    return m_fIsOSMenuKey;
    12781371}
    12791372
     
    15391632    , m_iInitialHeight(0)
    15401633    , m_iInitialWidth(0)
     1634    , m_iInitialWidthNoNumPad(0)
    15411635    , m_iXSpacing(5)
    15421636    , m_iYSpacing(5)
     
    15471641    , m_pContextMenu(0)
    15481642    , m_enmMode(Mode_Keyboard)
     1643    , m_fShowOSMenuKeys(true)
     1644    , m_fShowNumPad(true)
    15491645{
    15501646    prepareObjects();
     
    15661662{
    15671663    Q_UNUSED(pEvent);
    1568     m_fScaleFactorX = width() / (float) m_iInitialWidth;
     1664    if (!m_pCurrentKeyboardLayout || m_iInitialWidth == 0 || m_iInitialWidthNoNumPad == 0 || m_iInitialHeight == 0)
     1665        return;
     1666
     1667    if (m_fShowNumPad)
     1668        m_fScaleFactorX = width() / (float) m_iInitialWidth;
     1669    else
     1670        m_fScaleFactorX = width() / (float) m_iInitialWidthNoNumPad;
    15691671    m_fScaleFactorY = height() / (float) m_iInitialHeight;
    15701672
     
    15801682    float fLedMargin =  0.6 * unitSize;
    15811683
    1582     if (!m_pCurrentKeyboardLayout || m_iInitialWidth == 0 || m_iInitialHeight == 0)
    1583         return;
    15841684
    15851685    UISoftKeyboardPhysicalLayout *pPhysicalLayout = findPhysicalLayout(m_pCurrentKeyboardLayout->physicalLayoutUuid());
     
    15941694        {
    15951695            UISoftKeyboardKey &key = keys[j];
     1696            if (!m_fShowOSMenuKeys && key.isOSMenuKey())
     1697                continue;
     1698
     1699            if (!m_fShowNumPad &&key.isNumPadKey())
     1700                continue;
     1701
    15961702            painter.translate(key.keyGeometry().x(), key.keyGeometry().y());
    15971703
     
    17721878}
    17731879
    1774 float UISoftKeyboardWidget::layoutAspectRation()
     1880float UISoftKeyboardWidget::layoutAspectRatio()
    17751881{
    17761882    if (m_iInitialWidth == 0)
    17771883        return 1.f;
    17781884    return  m_iInitialHeight / (float) m_iInitialWidth;
     1885}
     1886
     1887bool UISoftKeyboardWidget::showOSMenuKeys()
     1888{
     1889    return m_fShowOSMenuKeys;
     1890}
     1891
     1892void UISoftKeyboardWidget::setShowOSMenuKeys(bool fShow)
     1893{
     1894    if (m_fShowOSMenuKeys == fShow)
     1895        return;
     1896    m_fShowOSMenuKeys = fShow;
     1897    update();
     1898}
     1899
     1900bool UISoftKeyboardWidget::showNumPad()
     1901{
     1902    return m_fShowNumPad;
     1903}
     1904
     1905void UISoftKeyboardWidget::setShowNumPad(bool fShow)
     1906{
     1907    if (m_fShowNumPad == fShow)
     1908        return;
     1909    m_fShowNumPad = fShow;
     1910    update();
    17791911}
    17801912
     
    20202152
    20212153    if (isNumPad)
     2154    {
     2155        /* Mark all the key as numpad keys: */
     2156        for (int i = 0; i < m_numPadLayout.rows().size(); ++i)
     2157        {
     2158            UISoftKeyboardRow &row = m_numPadLayout.rows()[i];
     2159            for (int j = 0; j < row.keys().size(); ++j)
     2160            {
     2161                row.keys()[j].setIsNumPadKey(true);
     2162            }
     2163        }
    20222164        return true;
     2165    }
    20232166
    20242167    int iY = m_iTopMargin;
    20252168    int iMaxWidth = 0;
     2169    int iMaxWidthNoNumPad = 0;
    20262170    const QVector<UISoftKeyboardRow> &numPadRows = m_numPadLayout.rows();
    20272171    QVector<UISoftKeyboardRow> &rows = newPhysicalLayout->rows();
     
    20422186
    20432187        int iX = m_iLeftMargin;
     2188        int iXNoNumPad = m_iLeftMargin;
    20442189        int iRowHeight = row.defaultHeight();
    20452190        for (int j = 0; j < row.keys().size(); ++j)
     
    20552200            if (key.spaceWidthAfter() != 0)
    20562201                iX += (m_iXSpacing + key.spaceWidthAfter());
     2202
     2203            if (!key.isNumPadKey())
     2204            {
     2205                iXNoNumPad += key.width();
     2206                if (j < row.keys().size() - 1)
     2207                    iXNoNumPad += m_iXSpacing;
     2208                if (key.spaceWidthAfter() != 0)
     2209                    iXNoNumPad += (m_iXSpacing + key.spaceWidthAfter());
     2210            }
    20572211        }
    20582212        if (row.spaceHeightAfter() != 0)
    20592213            iY += row.spaceHeightAfter() + m_iYSpacing;
    20602214        iMaxWidth = qMax(iMaxWidth, iX);
     2215        iMaxWidthNoNumPad = qMax(iMaxWidthNoNumPad, iXNoNumPad);
    20612216        iY += iRowHeight;
    20622217        if (i < rows.size() - 1)
     
    20642219    }
    20652220    int iInitialWidth = iMaxWidth + m_iRightMargin;
     2221    int iInitialWidthNoNumPad = iMaxWidthNoNumPad + m_iRightMargin;
    20662222    int iInitialHeight = iY + m_iBottomMargin;
    20672223    m_iInitialWidth = qMax(m_iInitialWidth, iInitialWidth);
     2224    m_iInitialWidthNoNumPad = qMax(m_iInitialWidthNoNumPad, iInitialWidthNoNumPad);
    20682225    m_iInitialHeight = qMax(m_iInitialHeight, iInitialHeight);
    20692226    //printf("%s total key count: %d\n", qPrintable(strLayoutFileName), iKeyCount - 3 /* substract OS an menu keys */);
     
    23672524                key.setType(UIKeyType_Toggleable);
    23682525        }
     2526        else if (m_xmlReader.name() == "osmenukey")
     2527        {
     2528            if (m_xmlReader.readElementText() == "true")
     2529                key.setIsOSMenuKey(true);
     2530        }
    23692531        else
    23702532            m_xmlReader.skipCurrentElement();
     
    25442706    : QIWithRetranslateUI<QWidget>(pParent)
    25452707    , m_pLayoutListButton(0)
     2708    , m_pSettingsButton(0)
    25462709    , m_pMessageLabel(0)
    25472710{
     
    25522715{
    25532716    if (m_pLayoutListButton)
    2554         m_pLayoutListButton->setToolTip(tr("Show the Layout List"));
     2717        m_pLayoutListButton->setToolTip(tr("Layout List"));
     2718    if (m_pSettingsButton)
     2719        m_pSettingsButton->setToolTip(tr("Settings"));
    25552720}
    25562721
     
    25752740    }
    25762741
     2742    m_pSettingsButton = new QToolButton;
     2743    if (m_pSettingsButton)
     2744    {
     2745        m_pSettingsButton->setIcon(UIIconPool::iconSet(":/vm_settings_16px.png"));
     2746        m_pSettingsButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
     2747        const int iIconMetric = QApplication::style()->pixelMetric(QStyle::PM_SmallIconSize);
     2748        m_pSettingsButton->resize(QSize(iIconMetric, iIconMetric));
     2749        m_pSettingsButton->setStyleSheet("QToolButton { border: 0px none black; margin: 0px 0px 0px 0px; } QToolButton::menu-indicator {image: none;}");
     2750        connect(m_pSettingsButton, &QToolButton::clicked, this, &UISoftKeyboardStatusBarWidget::sigShowSettingWidget);
     2751        pLayout->addWidget(m_pSettingsButton);
     2752    }
     2753
    25772754    m_pMessageLabel = new QLabel;
    25782755    pLayout->addWidget(m_pMessageLabel);
     
    25862763    m_pMessageLabel->setText(strMessage);
    25872764}
     2765
     2766
     2767/*********************************************************************************************************************************
     2768*   UISoftKeyboardSettingsWidget implementation.                                                                                 *
     2769*********************************************************************************************************************************/
     2770
     2771UISoftKeyboardSettingsWidget::UISoftKeyboardSettingsWidget(QWidget *pParent /* = 0 */)
     2772    : QIWithRetranslateUI<QWidget>(pParent)
     2773    , m_pShowNumPadCheckBox(0)
     2774    , m_pShowOsMenuButtonsCheckBox(0)
     2775{
     2776    prepareObjects();
     2777}
     2778
     2779void UISoftKeyboardSettingsWidget::setShowOSMenuKeys(bool fShow)
     2780{
     2781    if (m_pShowOsMenuButtonsCheckBox)
     2782        m_pShowOsMenuButtonsCheckBox->setChecked(fShow);
     2783}
     2784
     2785void UISoftKeyboardSettingsWidget::setShowNumPad(bool fShow)
     2786{
     2787    if (m_pShowNumPadCheckBox)
     2788        m_pShowNumPadCheckBox->setChecked(fShow);
     2789}
     2790
     2791void UISoftKeyboardSettingsWidget::retranslateUi()
     2792{
     2793    if (m_pShowNumPadCheckBox)
     2794        m_pShowNumPadCheckBox->setText(UISoftKeyboard::tr("Show NumPad"));
     2795    if (m_pShowOsMenuButtonsCheckBox)
     2796        m_pShowOsMenuButtonsCheckBox->setText(UISoftKeyboard::tr("Show OS/Menu Keys"));
     2797
     2798}
     2799
     2800void UISoftKeyboardSettingsWidget::prepareObjects()
     2801{
     2802    QGridLayout *pSettingsLayout = new QGridLayout;
     2803    if (!pSettingsLayout)
     2804        return;
     2805    m_pShowNumPadCheckBox = new QCheckBox;
     2806    m_pShowOsMenuButtonsCheckBox = new QCheckBox;
     2807
     2808    pSettingsLayout->addWidget(m_pShowNumPadCheckBox, 0, 0);
     2809    pSettingsLayout->addWidget(m_pShowOsMenuButtonsCheckBox, 1, 0);
     2810
     2811    connect(m_pShowNumPadCheckBox, &QCheckBox::toggled, this, &UISoftKeyboardSettingsWidget::sigShowNumPad);
     2812    connect(m_pShowOsMenuButtonsCheckBox, &QCheckBox::toggled, this, &UISoftKeyboardSettingsWidget::sigShowOSMenuKeys);
     2813
     2814    QSpacerItem *pSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Expanding);
     2815    if (pSpacer)
     2816        pSettingsLayout->addItem(pSpacer, 2, 0);
     2817
     2818    setLayout(pSettingsLayout);
     2819    retranslateUi();
     2820}
     2821
    25882822
    25892823/*********************************************************************************************************************************
     
    26022836    , m_pLayoutEditor(0)
    26032837    , m_pLayoutSelector(0)
     2838    , m_pSettingsWidget(0)
    26042839    , m_pStatusBarWidget(0)
    26052840{
     
    27232958        return;
    27242959    m_pSidePanelWidget->setVisible(!m_pSidePanelWidget->isVisible());
    2725 }
     2960
     2961    if (m_pSidePanelWidget->isVisible() && m_pSettingsWidget->isVisible())
     2962        m_pSettingsWidget->setVisible(false);
     2963}
     2964
     2965void UISoftKeyboard::sltShowHideSettingsWidget()
     2966{
     2967    if (!m_pSettingsWidget)
     2968        return;
     2969    m_pSettingsWidget->setVisible(!m_pSettingsWidget->isVisible());
     2970    if (m_pSidePanelWidget->isVisible() && m_pSettingsWidget->isVisible())
     2971        m_pSidePanelWidget->setVisible(false);
     2972}
     2973
    27262974
    27272975void UISoftKeyboard::sltCopyLayout()
     
    27482996{
    27492997    statusBar()->showMessage(strMessage, iMessageTimeout);
     2998}
     2999
     3000void UISoftKeyboard::sltShowHideOSMenuKeys(bool fShow)
     3001{
     3002    if (m_pKeyboardWidget)
     3003        m_pKeyboardWidget->setShowOSMenuKeys(fShow);
     3004}
     3005
     3006void UISoftKeyboard::sltShowHideNumPad(bool fShow)
     3007{
     3008    if (m_pKeyboardWidget)
     3009        m_pKeyboardWidget->setShowNumPad(fShow);
    27503010}
    27513011
     
    27603020        return;
    27613021
    2762     m_pSidePanelWidget->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Maximum);
     3022    m_pSidePanelWidget->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
    27633023    m_pSidePanelWidget->hide();
    27643024
     
    27713031        m_pSidePanelWidget->addWidget(m_pLayoutEditor);
    27723032
     3033    m_pSettingsWidget = new UISoftKeyboardSettingsWidget;
     3034    if (m_pSettingsWidget)
     3035    {
     3036        m_pSettingsWidget->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
     3037        m_pSettingsWidget->hide();
     3038    }
    27733039    m_pKeyboardWidget = new UISoftKeyboardWidget;
    27743040    if (!m_pKeyboardWidget)
     
    27783044    m_pSplitter->addWidget(m_pKeyboardWidget);
    27793045    m_pSplitter->addWidget(m_pSidePanelWidget);
     3046    m_pSplitter->addWidget(m_pSettingsWidget);
     3047
    27803048    m_pSplitter->setCollapsible(0, false);
    27813049    m_pSplitter->setCollapsible(1, false);
     3050    m_pSplitter->setCollapsible(2, false);
    27823051
    27833052    statusBar()->setStyleSheet( "QStatusBar::item { border: 0px}" );
     
    28073076
    28083077    connect(m_pStatusBarWidget, &UISoftKeyboardStatusBarWidget::sigShowHideSidePanel, this, &UISoftKeyboard::sltShowHideSidePanel);
     3078    connect(m_pStatusBarWidget, &UISoftKeyboardStatusBarWidget::sigShowSettingWidget, this, &UISoftKeyboard::sltShowHideSettingsWidget);
     3079
     3080    connect(m_pSettingsWidget, &UISoftKeyboardSettingsWidget::sigShowOSMenuKeys, this, &UISoftKeyboard::sltShowHideOSMenuKeys);
     3081    connect(m_pSettingsWidget, &UISoftKeyboardSettingsWidget::sigShowNumPad, this, &UISoftKeyboard::sltShowHideNumPad);
    28093082}
    28103083
     
    28283101    float fKeyboardAspectRatio = 1.0f;
    28293102    if (m_pKeyboardWidget)
    2830         fKeyboardAspectRatio = m_pKeyboardWidget->layoutAspectRation();
     3103        fKeyboardAspectRatio = m_pKeyboardWidget->layoutAspectRatio();
    28313104
    28323105    const QRect desktopRect = gpDesktop->availableGeometry(this);
     
    28463119             geometry.x(), geometry.y(), geometry.width(), geometry.height()));
    28473120    setDialogGeometry(geometry);
     3121
     3122    if (m_pKeyboardWidget && m_pSettingsWidget)
     3123    {
     3124        m_pSettingsWidget->setShowOSMenuKeys(m_pKeyboardWidget->showOSMenuKeys());
     3125        m_pSettingsWidget->setShowNumPad(m_pKeyboardWidget->showNumPad());
     3126    }
    28483127}
    28493128
  • trunk/src/VBox/Frontends/VirtualBox/src/softkeyboard/UISoftKeyboard.h

    r79295 r79356  
    4343class UISoftKeyboardKey;
    4444class UISoftKeyboardLayout;
     45class UISoftKeyboardSettingsWidget;
    4546class UISoftKeyboardStatusBarWidget;
    4647class UISoftKeyboardWidget;
     
    7980    void sltKeyCaptionsEdited(UISoftKeyboardKey* pKey);
    8081    void sltShowHideSidePanel();
     82    void sltShowHideSettingsWidget();
    8183    void sltCopyLayout();
    8284    void sltSaveLayout();
    8385    void sltDeleteLayout();
    8486    void sltStatusBarMessage(const QString &strMessage);
     87    void sltShowHideOSMenuKeys(bool fShow);
     88    void sltShowHideNumPad(bool fShow);
    8589
    8690private:
     
    98102    QHBoxLayout   *m_pMainLayout;
    99103    UISoftKeyboardWidget       *m_pKeyboardWidget;
    100     QString       m_strMachineName;
    101     QSplitter      *m_pSplitter;
    102     QStackedWidget *m_pSidePanelWidget;
    103     UILayoutEditor *m_pLayoutEditor;
     104    QString           m_strMachineName;
     105    QSplitter        *m_pSplitter;
     106    QStackedWidget   *m_pSidePanelWidget;
     107    UILayoutEditor   *m_pLayoutEditor;
    104108    UILayoutSelector *m_pLayoutSelector;
     109
     110    UISoftKeyboardSettingsWidget  *m_pSettingsWidget;
    105111    UISoftKeyboardStatusBarWidget *m_pStatusBarWidget;
     112
    106113};
    107114
  • trunk/src/VBox/Frontends/VirtualBox/xml/101_ansi.xml

    r79314 r79356  
    391391        </key>
    392392        <key>
    393 
    394             <width>75</width>
    395             <type>modifier</type>
    396393            <position>227</position>
     394            <width>75</width>
     395            <type>modifier</type>
    397396            <scancodeprefix>0xe0</scancodeprefix>
    398397            <scancode>0x5b</scancode>
     398            <osmenukey>true</osmenukey>
    399399        </key>
    400400        <key>
    401401            <position>60</position>
    402 
    403402            <width>75</width>
    404403            <type>modifier</type>
     
    425424            <scancodeprefix>0xe0</scancodeprefix>
    426425            <scancode>0x5c</scancode>
    427         </key>
    428         <key>
    429 
     426            <osmenukey>true</osmenukey>
     427        </key>
     428        <key>
     429            <position>129</position>
    430430            <width>75</width>
    431431            <scancodeprefix>0xe0</scancodeprefix>
    432432            <scancode>0x5d</scancode>
     433            <osmenukey>true</osmenukey>
    433434        </key>
    434435        <key>
  • trunk/src/VBox/Frontends/VirtualBox/xml/102_iso.xml

    r79314 r79356  
    319319        <key>
    320320            <width>75</width>
    321 
    322321            <type>modifier</type>
    323322            <position>44</position>
     
    391390        <key>
    392391            <width>90</width>
    393 
    394392            <type>modifier</type>
    395393            <position>58</position>
     
    403401            <scancodeprefix>0xe0</scancodeprefix>
    404402            <scancode>0x5b</scancode>
     403            <osmenukey>true</osmenukey>
    405404        </key>
    406405        <key>
    407406            <position>60</position>
    408 
    409407            <width>75</width>
    410408            <type>modifier</type>
     
    425423        </key>
    426424        <key>
    427 
    428425            <width>75</width>
    429426            <type>modifier</type>
     
    431428            <scancodeprefix>0xe0</scancodeprefix>
    432429            <scancode>0x5c</scancode>
    433         </key>
    434         <key>
    435 
     430            <osmenukey>true</osmenukey>
     431        </key>
     432        <key>
     433            <position>129</position>
    436434            <width>75</width>
    437435            <scancodeprefix>0xe0</scancodeprefix>
    438436            <scancode>0x5d</scancode>
     437            <osmenukey>true</osmenukey>
    439438        </key>
    440439        <key>
  • trunk/src/VBox/Frontends/VirtualBox/xml/106_japanese.xml

    r79325 r79356  
    402402            <scancodeprefix>0xe0</scancodeprefix>
    403403            <scancode>0x5b</scancode>
     404            <osmenukey>true</osmenukey>
    404405        </key>
    405406        <key><!-- Alt -->
     
    439440            <scancodeprefix>0xe0</scancodeprefix>
    440441            <scancode>0x5c</scancode>
    441         </key>
    442         <key>
     442            <osmenukey>true</osmenukey>
     443        </key>
     444        <key><!-- Menu / Application -->
     445            <position>129</position>
    443446            <width>75</width>
    444447            <scancodeprefix>0xe0</scancodeprefix>
    445448            <scancode>0x5d</scancode>
     449            <osmenukey>true</osmenukey>
    446450        </key>
    447451        <key>
Note: See TracChangeset for help on using the changeset viewer.

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