VirtualBox

Ignore:
Timestamp:
Feb 11, 2021 3:21:12 PM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
142770
Message:

FE/Qt: Dont mark QILineEdit thru color change. Use instead an icon

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/extensions/QILineEdit.cpp

    r87460 r87724  
    2020#include <QClipboard>
    2121#include <QContextMenuEvent>
     22#include <QLabel>
    2223#include <QMenu>
    2324#include <QPalette>
     
    2627/* GUI includes: */
    2728#include "QILineEdit.h"
    28 
     29#include "UIIconPool.h"
    2930
    3031QILineEdit::QILineEdit(QWidget *pParent /* = 0 */)
     
    3233    , m_fAllowToCopyContentsWhenDisabled(false)
    3334    , m_pCopyAction(0)
     35    , m_pIconLabel(0)
     36    , m_fMarkForError(false)
    3437{
    3538    prepare();
     
    4043    , m_fAllowToCopyContentsWhenDisabled(false)
    4144    , m_pCopyAction(0)
     45    , m_pIconLabel(0)
     46    , m_fMarkForError(false)
    4247{
    4348    prepare();
     
    6166void QILineEdit::mark(bool fError)
    6267{
    63     QPalette newPalette = palette();
    64     if (fError)
    65         newPalette.setColor(QPalette::Base, QColor(255, 180, 180));
    66     else
    67         newPalette.setColor(QPalette::Base, m_originalBaseColor);
    68     setPalette(newPalette);
     68    if (fError == m_fMarkForError)
     69        return;
     70    m_fMarkForError = fError;
     71    update();
    6972}
    7073
     
    9497}
    9598
     99void QILineEdit::paintEvent(QPaintEvent *pPaintEvent)
     100{
     101    QLineEdit::paintEvent(pPaintEvent);
     102
     103    if (m_fMarkForError)
     104    {
     105        const int iIconMargin = 0.5 * QApplication::style()->pixelMetric(QStyle::PM_LayoutTopMargin);
     106        int iIconSize = height() - 2 * iIconMargin;
     107        if (!m_pIconLabel)
     108            m_pIconLabel = new QLabel(this);
     109        m_pIconLabel->setPixmap(m_markIcon.pixmap(windowHandle(), QSize(iIconSize, iIconSize)));
     110        m_pIconLabel->move(width() - iIconSize - iIconMargin, iIconMargin);
     111        m_pIconLabel->show();
     112    }
     113    else
     114    {
     115        if (m_pIconLabel)
     116            m_pIconLabel->hide();
     117    }
     118}
     119
    96120void QILineEdit::copy()
    97121{
     
    103127void QILineEdit::prepare()
    104128{
     129    m_markIcon = UIIconPool::iconSet(":/status_error_16px.png");
    105130    /* Prepare original base color: */
    106131    m_originalBaseColor = palette().color(QPalette::Base);
  • trunk/src/VBox/Frontends/VirtualBox/src/extensions/QILineEdit.h

    r87460 r87724  
    2323
    2424/* Qt includes */
     25#include <QIcon>
    2526#include <QLineEdit>
    2627
    2728/* GUI includes: */
    2829#include "UILibraryDefs.h"
     30
     31class QLabel;
    2932
    3033/** QLineEdit extension with advanced functionality. */
     
    5659    /** Handles any Qt @a pEvent. */
    5760    virtual bool event(QEvent *pEvent) /* override */;
     61    virtual void paintEvent(QPaintEvent *pPaintEvent) /* override */;
    5862
    5963private slots:
     
    7781    /** Holds the copy to clipboard action. */
    7882    QAction *m_pCopyAction;
     83
     84    QLabel *m_pIconLabel;
     85    QIcon m_markIcon;
     86    bool m_fMarkForError;
    7987};
    8088
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageExpert.cpp

    r87722 r87724  
    438438                m_pToolBox->setPageTitleIcon(ExpertToolboxItems_Unattended,
    439439                                             UIIconPool::iconSet(":/status_error_16px.png"),
    440                                              UIWizardNewVM::tr("Invalid username and password"));
     440                                             UIWizardNewVM::tr("Invalid username and/or password"));
    441441                fIsComplete = false;
    442442            }
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