VirtualBox

Changeset 88266 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Mar 24, 2021 7:22:33 AM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
143471
Message:

FE/Qt: bugref:9515. 2nd attempt to make UIToolBox titles keyboard responsive.

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIToolBox.cpp

    r88263 r88266  
    1919#include <QCheckBox>
    2020#include <QLabel>
     21#include <QPainter>
    2122#include <QStyle>
    2223#include <QVBoxLayout>
     
    2930#include "UIToolBox.h"
    3031#include "UIWizardNewVM.h"
     32
     33class UIToolPageButton : public QAbstractButton
     34{
     35    Q_OBJECT;
     36public:
     37    UIToolPageButton(QWidget *pParent = 0);
     38    void setPixmap(const QPixmap &pixmap);
     39protected:
     40    virtual void paintEvent(QPaintEvent *pEvent) /* override */;
     41    virtual QSize sizeHint() const /* override */;
     42private:
     43    QPixmap m_pixmap;
     44};
     45
     46UIToolPageButton::UIToolPageButton(QWidget *pParent /* = 0 */)
     47    :QAbstractButton(pParent)
     48{
     49}
     50
     51void UIToolPageButton::paintEvent(QPaintEvent *pEvent)
     52{
     53    Q_UNUSED(pEvent);
     54    if (!m_pixmap.isNull())
     55    {
     56        QPainter painter(this);
     57        painter.drawPixmap(0, 0, m_pixmap.width(), m_pixmap.height(), m_pixmap);
     58    }
     59}
     60
     61void UIToolPageButton::setPixmap(const QPixmap &pixmap)
     62{
     63    m_pixmap = pixmap;
     64    update();
     65}
     66
     67QSize UIToolPageButton::sizeHint() const
     68{
     69    if (m_pixmap.isNull())
     70        return QSize (0,0);
     71    return m_pixmap.size();
     72}
    3173
    3274/*********************************************************************************************************************************
     
    76118    QLabel      *m_pTitleLabel;
    77119    QLabel      *m_pIconLabel;
    78     QLabel      *m_pExpandCollapseIconLabel;
    79120    QCheckBox   *m_pEnableCheckBox;
    80121
     
    83124    bool         m_fExpandCollapseIconVisible;
    84125    QIcon        m_expandCollapseIcon;
     126    UIToolPageButton *m_pTitleButton;
    85127};
    86128
     
    96138    , m_pTitleLabel(0)
    97139    , m_pIconLabel(0)
    98     , m_pExpandCollapseIconLabel(0)
    99140    , m_pEnableCheckBox(0)
    100141    , m_pWidget(0)
    101142    , m_iIndex(0)
    102143    , m_fExpandCollapseIconVisible(true)
     144    , m_pTitleButton(0)
    103145{
    104146    prepare(fEnableCheckBoxEnabled);
     
    127169                                     .4f * qApp->style()->pixelMetric(QStyle::PM_LayoutBottomMargin));
    128170
    129     m_pExpandCollapseIconLabel = new QLabel;
    130     if (m_pExpandCollapseIconLabel)
    131         pTitleLayout->addWidget(m_pExpandCollapseIconLabel);
     171    m_pTitleButton = new UIToolPageButton;
     172    pTitleLayout->addWidget(m_pTitleButton);
     173    connect(m_pTitleButton, &QAbstractButton::clicked, this, &UIToolBoxPage::sigShowPageWidget);
     174
    132175
    133176    if (fEnableCheckBoxEnabled)
     
    140183    m_pTitleLabel = new QLabel;
    141184    m_pTitleLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
     185    m_pTitleLabel->setBuddy(m_pTitleButton);
    142186
    143187    pTitleLayout->addWidget(m_pTitleLabel);
     
    244288void UIToolBoxPage::setExpandCollapseIcon()
    245289{
    246     if (!m_pExpandCollapseIconLabel)
    247         return;
    248290    if (!m_fExpandCollapseIconVisible)
    249291    {
    250         m_pExpandCollapseIconLabel->setVisible(false);
     292        m_pTitleButton->setVisible(false);
    251293        return;
    252294    }
     
    254296    QPixmap basePixmap = m_expandCollapseIcon.pixmap(windowHandle(), QSize(iMetric, iMetric));
    255297    if (!m_fExpanded)
    256         m_pExpandCollapseIconLabel->setPixmap(basePixmap);
     298        m_pTitleButton->setPixmap(basePixmap);
    257299    else
    258300    {
     
    261303        QPixmap transformedPixmap = basePixmap.transformed(transform);
    262304        transformedPixmap.setDevicePixelRatio(basePixmap.devicePixelRatio());
    263         m_pExpandCollapseIconLabel->setPixmap(transformedPixmap);
     305        m_pTitleButton->setPixmap(transformedPixmap);
    264306    }
    265307}
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageBasic2.cpp

    r88250 r88266  
    194194{
    195195    if (m_pHostnameLabel)
    196         m_pHostnameLabel->setText(UIWizardNewVM::tr("&Hostname:"));
     196        m_pHostnameLabel->setText(UIWizardNewVM::tr("Hostna&me:"));
    197197
    198198    if (m_pGAISOPathLabel)
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageExpert.cpp

    r88263 r88266  
    164164    if (m_pToolBox)
    165165    {
    166         m_pToolBox->setPageTitle(ExpertToolboxItems_NameAndOSType, QString(UIWizardNewVM::tr("Name and Operating System")));
    167         m_pToolBox->setPageTitle(ExpertToolboxItems_Unattended, UIWizardNewVM::tr("Unattended Install"));
    168         m_pToolBox->setPageTitle(ExpertToolboxItems_Disk, UIWizardNewVM::tr("Hard Disk"));
    169         m_pToolBox->setPageTitle(ExpertToolboxItems_Hardware, UIWizardNewVM::tr("Hardware"));
     166        m_pToolBox->setPageTitle(ExpertToolboxItems_NameAndOSType, QString(UIWizardNewVM::tr("Name and &Operating System")));
     167        m_pToolBox->setPageTitle(ExpertToolboxItems_Unattended, UIWizardNewVM::tr("&Unattended Install"));
     168        m_pToolBox->setPageTitle(ExpertToolboxItems_Disk, UIWizardNewVM::tr("&Hard Disk"));
     169        m_pToolBox->setPageTitle(ExpertToolboxItems_Hardware, UIWizardNewVM::tr("H&ardware"));
    170170    }
    171171
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