VirtualBox

Changeset 43885 in vbox


Ignore:
Timestamp:
Nov 15, 2012 6:10:23 PM (12 years ago)
Author:
vboxsync
Message:

FE/Qt: VM group UI: Using native palette (part 1).

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

Legend:

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

    r42526 r43885  
    3636    QIShadeSplitterHandle(Qt::Orientation orientation, QISplitter *pParent)
    3737        : QSplitterHandle(orientation, pParent)
    38     {}
     38    {
     39        QPalette pal = palette();
     40        QColor windowColor = pal.color(QPalette::Active, QPalette::Window);
     41        QColor darkColor = pal.color(QPalette::Active, QPalette::Dark);
     42        m_color1 = windowColor;
     43        m_color2 = windowColor;
     44        m_color = darkColor;
     45    }
     46
     47    void configureColors(const QColor &color1, const QColor &color2)
     48    {
     49        m_color1 = color1;
     50        m_color2 = color2;
     51        update();
     52    }
    3953
    4054protected:
     
    4458        QPainter painter(this);
    4559        QLinearGradient gradient;
    46         QColor color = palette().color(QPalette::Window);
    47         QGradientStop point1(0, color);
    48         QGradientStop point2(0.5, color.darker(115));
    49         QGradientStop point3(1, color);
     60        QGradientStop point1(0, m_color1);
     61        QGradientStop point2(0.5, m_color);
     62        QGradientStop point3(1, m_color2);
    5063        QGradientStops stops;
    5164        stops << point1 << point2 << point3;
     
    5366        if (orientation() == Qt::Horizontal)
    5467        {
    55             gradient.setStart(rect().left(), 0);
     68            gradient.setStart(rect().left() + 1, 0);
    5669            gradient.setFinalStop(rect().right(), 0);
    5770        }
    5871        else
    5972        {
    60             gradient.setStart(0, rect().top());
     73            gradient.setStart(0, rect().top() + 1);
    6174            gradient.setFinalStop(0, rect().bottom());
    6275        }
    6376        painter.fillRect(pEvent->rect(), gradient);
    6477    }
     78
     79private:
     80
     81    QColor m_color;
     82    QColor m_color1;
     83    QColor m_color2;
    6584};
    6685
     
    258277    }
    259278    else
    260         return new QIShadeSplitterHandle(orientation(), this);
     279    {
     280        QIShadeSplitterHandle *pHandle = new QIShadeSplitterHandle(orientation(), this);
     281        if (m_color1.isValid() && m_color2.isValid())
     282            pHandle->configureColors(m_color1, m_color2);
     283        return pHandle;
     284    }
    261285}
    262286
  • trunk/src/VBox/Frontends/VirtualBox/src/extensions/QISplitter.h

    r30868 r43885  
    66
    77/*
    8  * Copyright (C) 2009-2010 Oracle Corporation
     8 * Copyright (C) 2009-2012 Oracle Corporation
    99 *
    1010 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    3737    Type handleType() const { return m_type; }
    3838
     39    void configureColors(const QColor &color1, const QColor &color2) { m_color1 = color1; m_color2 = color2; }
     40
    3941protected:
    4042
     
    5355    bool m_fHandleGrabbed;
    5456#endif /* Q_WS_MAC */
     57
     58    QColor m_color1;
     59    QColor m_color2;
    5560};
    5661
  • trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp

    r43460 r43885  
    13461346    m_pDetails = new UIGDetails(this);
    13471347
     1348    /* Configure splitter colors: */
     1349    m_pSplitter->configureColors(m_pChooser->palette().color(QPalette::Active, QPalette::Window),
     1350                                 m_pDetails->palette().color(QPalette::Active, QPalette::Window));
     1351
    13481352    /* Prepare details and snapshots tabs: */
    13491353    m_pVMDesktop = new UIVMDesktop(mVMToolBar, m_pAction_Common_Refresh, this);
  • trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooser.cpp

    r43540 r43885  
    104104    setAutoFillBackground(true);
    105105    QPalette pal = palette();
    106     pal.setColor(QPalette::Window, QColor(240, 240, 240));
     106    pal.setColor(QPalette::Window, pal.color(QPalette::Active, QPalette::Base));
    107107    setPalette(pal);
    108108}
  • trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItem.cpp

    r43853 r43885  
    4848    , m_iHighlightDarkness(90)
    4949    , m_iAnimationDarkness(m_iDefaultDarkness)
    50     , m_iStrokeDarkness(130)
    5150    , m_iDragTokenDarkness(110)
    5251{
  • trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItem.h

    r43853 r43885  
    175175
    176176    /* Other color stuff: */
    177     int strokeDarkness() const { return m_iStrokeDarkness; }
    178177    int dragTokenDarkness() const { return m_iDragTokenDarkness; }
    179178
     
    201200    int m_iHighlightDarkness;
    202201    int m_iAnimationDarkness;
    203     int m_iStrokeDarkness;
    204202    int m_iDragTokenDarkness;
    205203};
  • trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItemGroup.cpp

    r43853 r43885  
    14351435    /* Prepare color: */
    14361436    QPalette pal = palette();
    1437     QColor windowColor = pal.color(QPalette::Active,
     1437    QColor headerColor = pal.color(QPalette::Active,
    14381438                                   model()->currentItems().contains(this) ?
    1439                                    QPalette::Highlight : QPalette::Window);
     1439                                   QPalette::Highlight : QPalette::Button);
     1440    QColor strokeColor = pal.color(QPalette::Active, QPalette::Dark);
     1441    QColor bodyColor = pal.color(QPalette::Active, QPalette::Base);
    14401442
    14411443    /* Root-item: */
     
    14461448        {
    14471449            /* Simple and clear: */
    1448             pPainter->fillRect(rect, QColor(240, 240, 240));
     1450            pPainter->fillRect(rect, bodyColor);
    14491451        }
    14501452        /* Non-main root-item: */
     
    14711473            /* Fill background: */
    14721474            QLinearGradient headerGradient(backgroundRect.bottomLeft(), backgroundRect.topLeft());
    1473             headerGradient.setColorAt(1, windowColor.darker(blackoutDarkness()));
    1474             headerGradient.setColorAt(0, windowColor.darker(animationDarkness()));
     1475            headerGradient.setColorAt(1, headerColor.darker(blackoutDarkness()));
     1476            headerGradient.setColorAt(0, headerColor.darker(animationDarkness()));
    14751477            pPainter->fillRect(backgroundRect, headerGradient);
    14761478
    14771479            /* Stroke path: */
    14781480            pPainter->setClipping(false);
    1479             pPainter->strokePath(path, windowColor.darker(strokeDarkness()));
     1481            pPainter->strokePath(path, strokeColor);
    14801482        }
    14811483    }
     
    15071509        /* Prepare top gradient: */
    15081510        QLinearGradient tGradient(tRect.bottomLeft(), tRect.topLeft());
    1509         tGradient.setColorAt(1, windowColor.darker(animationDarkness()));
    1510         tGradient.setColorAt(0, windowColor.darker(blackoutDarkness()));
     1511        tGradient.setColorAt(1, headerColor.darker(animationDarkness()));
     1512        tGradient.setColorAt(0, headerColor.darker(blackoutDarkness()));
    15111513        /* Fill top rectangle: */
    15121514        pPainter->fillRect(tRect, tGradient);
     
    15171519            QRect midRect = QRect(tRect.bottomLeft(), rect.bottomRight());
    15181520            /* Paint all the stuff: */
    1519             pPainter->fillRect(midRect, QColor(245, 245, 245));
     1521            pPainter->fillRect(midRect, bodyColor);
    15201522        }
    15211523
    15221524         /* Stroke path: */
    15231525        pPainter->setClipping(false);
    1524         pPainter->strokePath(path, windowColor.darker(strokeDarkness()));
     1526        pPainter->strokePath(path, strokeColor);
    15251527        pPainter->setClipPath(path);
    15261528
     
    15421544                dragTokenGradient.setFinalStop(dragTokenRect.bottomLeft());
    15431545            }
    1544             dragTokenGradient.setColorAt(0, windowColor.darker(dragTokenDarkness()));
    1545             dragTokenGradient.setColorAt(1, windowColor.darker(dragTokenDarkness() + 40));
     1546            dragTokenGradient.setColorAt(0, headerColor.darker(dragTokenDarkness()));
     1547            dragTokenGradient.setColorAt(1, headerColor.darker(dragTokenDarkness() + 40));
    15461548            pPainter->fillRect(dragTokenRect, dragTokenGradient);
    15471549        }
     
    15651567    int iFullHeaderHeight = m_headerSize.height();
    15661568
    1567     /* Update palette: */
    1568     if (model()->currentItems().contains(this))
    1569     {
    1570         QPalette pal = palette();
    1571         pPainter->setPen(pal.color(QPalette::HighlightedText));
    1572     }
     1569    /* Configure painter color: */
     1570    pPainter->setPen(palette().color(QPalette::Active,
     1571                                     model()->currentItems().contains(this) ?
     1572                                     QPalette::HighlightedText : QPalette::ButtonText));
    15731573
    15741574    /* Update buttons: */
  • trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItemMachine.cpp

    r43853 r43885  
    775775    {
    776776        /* Prepare color: */
    777         QColor highlight = pal.color(QPalette::Highlight);
     777        QColor highlight = pal.color(QPalette::Active, QPalette::Highlight);
    778778        /* Draw gradient: */
    779779        QLinearGradient bgGrad(rect.topLeft(), rect.bottomLeft());
     
    782782        pPainter->fillRect(rect, bgGrad);
    783783    }
    784 
    785784    /* Hovering background: */
    786785    else if (isHovered())
    787786    {
    788787        /* Prepare color: */
    789         QColor highlight = pal.color(QPalette::Highlight);
     788        QColor highlight = pal.color(QPalette::Active, QPalette::Highlight);
    790789        /* Draw gradient: */
    791790        QLinearGradient bgGrad(rect.topLeft(), rect.bottomLeft());
     
    833832    pPainter->save();
    834833    QPalette pal = palette();
    835     QColor hc = pal.color(QPalette::Active, QPalette::Highlight);
    836     if (model()->currentItems().contains(this))
    837         hc = hc.darker(strokeDarkness());
    838     pPainter->setPen(hc);
     834    QColor strokeColor = pal.color(QPalette::Active,
     835                                   model()->currentItems().contains(this) ?
     836                                   QPalette::Dark : QPalette::Highlight);
     837    pPainter->setPen(strokeColor);
    839838    pPainter->drawRect(rect);
    840839    pPainter->restore();
     
    851850    int iMachineItemTextSpacing = data(MachineItemData_TextSpacing).toInt();
    852851
    853     /* Update palette: */
     852    /* Selected item foreground: */
    854853    if (model()->currentItems().contains(this))
    855854    {
    856855        QPalette pal = palette();
    857856        pPainter->setPen(pal.color(QPalette::HighlightedText));
     857    }
     858    /* Hovered item foreground: */
     859    else if (isHovered())
     860    {
     861        /* Prepare color: */
     862        QPalette pal = palette();
     863        QColor highlight = pal.color(QPalette::Active, QPalette::Highlight);
     864        QColor hhl = highlight.lighter(m_iHoverHighlightLightness);
     865        if (hhl.value() - hhl.saturation() > 0)
     866            pPainter->setPen(pal.color(QPalette::Active, QPalette::Text));
     867        else
     868            pPainter->setPen(pal.color(QPalette::Active, QPalette::HighlightedText));
    858869    }
    859870
  • trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserView.cpp

    r43514 r43885  
    2828    : QGraphicsView(pParent)
    2929{
    30     /* Fix palette: */
    31     QPalette pal = palette();
    32     pal.setColor(QPalette::Base, QColor(240, 240, 240));
    33     setPalette(pal);
    34 
    3530    /* Setup frame: */
    3631    setFrameShape(QFrame::NoFrame);
  • trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetails.cpp

    r42882 r43885  
    3232    , m_pDetailsView(0)
    3333{
    34     /* Fix palette: */
    35     setAutoFillBackground(true);
    36     QPalette pal = palette();
    37     pal.setColor(QPalette::Window, QColor(240, 240, 240));
    38     setPalette(pal);
    39 
    4034    /* Create main-layout: */
    4135    m_pMainLayout = new QVBoxLayout(this);
  • trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsElement.cpp

    r43223 r43885  
    571571    int iMaximumHeight = qMax(iPixmapHeight, iNameHeight);
    572572
     573    /* Prepare color: */
     574    QPalette pal = palette();
     575    QColor buttonTextColor = pal.color(QPalette::Active, QPalette::ButtonText);
     576    QColor linkTextColor = pal.color(QPalette::Active, QPalette::Link);
     577    QColor baseTextColor = pal.color(QPalette::Active, QPalette::Text);
     578
    573579    /* Paint pixmap: */
    574580    int iMachinePixmapX = 2 * iMargin;
     
    597603              m_strName,
    598604              /* Name hovered? */
    599               m_fNameHovered);
     605              m_fNameHovered ? linkTextColor : buttonTextColor);
    600606
    601607    /* Paint text: */
    602608    if (!m_fClosed && !m_text.isEmpty() && !m_fAnimationRunning)
    603609    {
     610        /* Prepare painter: */
     611        pPainter->save();
     612        pPainter->setPen(baseTextColor);
     613
    604614        /* Prepare variables: */
    605615        int iMinimumTextColumnWidth = data(ElementData_MinimumTextColumnWidth).toInt();
     
    673683            iMachineTextY += qMax(iLeftColumnHeight, iRightColumnHeight);
    674684        }
     685
     686        /* Restore painter: */
     687        pPainter->restore();
    675688    }
    676689}
     
    691704
    692705    /* Prepare color: */
    693     QPalette pal = QApplication::palette();
    694     QColor windowColor = pal.color(QPalette::Active, QPalette::Window);
     706    QPalette pal = palette();
     707    QColor headerColor = pal.color(QPalette::Active, QPalette::Button);
     708    QColor strokeColor = pal.color(QPalette::Active, QPalette::Dark);
     709    QColor bodyColor = pal.color(QPalette::Active, QPalette::Base);
    695710
    696711    /* Add clipping: */
     
    716731    /* Prepare top gradient: */
    717732    QLinearGradient tGradient(tRect.bottomLeft(), tRect.topLeft());
    718     tGradient.setColorAt(0, windowColor.darker(110));
    719     tGradient.setColorAt(1, windowColor.darker(animationDarkness()));
     733    tGradient.setColorAt(0, headerColor.darker(110));
     734    tGradient.setColorAt(1, headerColor.darker(animationDarkness()));
    720735
    721736    /* Paint all the stuff: */
    722737    pPainter->fillRect(tRect, tGradient);
    723     pPainter->fillRect(bRect, QColor(245, 245, 245));
     738    pPainter->fillRect(bRect, bodyColor);
    724739
    725740    /* Stroke path: */
    726741    pPainter->setClipping(false);
    727     pPainter->strokePath(path, windowColor.darker(130));
     742    pPainter->strokePath(path, strokeColor);
    728743
    729744    /* Restore painter: */
  • trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsItem.cpp

    r42689 r43885  
    124124/* static */
    125125void UIGDetailsItem::paintText(QPainter *pPainter, const QRect &rect, const QFont &font,
    126                                const QString &strText, bool fUrl /* = false */)
     126                               const QString &strText, const QColor &color)
    127127{
    128128    pPainter->save();
    129129    pPainter->setFont(font);
    130     if (fUrl)
    131     {
    132         QPalette pal = QApplication::palette();
    133         pPainter->setPen(pal.color(QPalette::Link));
    134     }
     130    pPainter->setPen(color);
    135131    pPainter->drawText(rect, strText);
    136132    pPainter->restore();
  • trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsItem.h

    r42689 r43885  
    8080    static void paintFrameRect(QPainter *pPainter, const QRect &rect, int iRadius);
    8181    static void paintPixmap(QPainter *pPainter, const QRect &rect, const QPixmap &pixmap);
    82     static void paintText(QPainter *pPainter, const QRect &rect, const QFont &font, const QString &strText, bool fUrl = false);
     82    static void paintText(QPainter *pPainter, const QRect &rect, const QFont &font, const QString &strText, const QColor &color);
    8383
    8484private:
  • trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsView.cpp

    r42873 r43885  
    3030    /* Fix palette: */
    3131    QPalette pal = palette();
    32     pal.setColor(QPalette::Base, QColor(240, 240, 240));
     32    pal.setColor(QPalette::Base, pal.color(QPalette::Active, QPalette::Window));
    3333    setPalette(pal);
    3434
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