ginebra2/ToolbarChromeItem.cpp
changeset 6 1c3b8676e58c
parent 5 0f2326c2a325
equal deleted inserted replaced
5:0f2326c2a325 6:1c3b8676e58c
    21 
    21 
    22 #include "ToolbarChromeItem.h"
    22 #include "ToolbarChromeItem.h"
    23 #include "NativeChromeItem.h"
    23 #include "NativeChromeItem.h"
    24 #include "GWebContentView.h"
    24 #include "GWebContentView.h"
    25 #include "WebChromeContainerSnippet.h"
    25 #include "WebChromeContainerSnippet.h"
       
    26 #include "ChromeEffect.h"
    26 
    27 
    27 #include <QDebug>
    28 #include <QDebug>
    28 
    29 
    29 #define TOOLBAR_BG_OPACITY 0.75
    30 #define TOOLBAR_BG_OPACITY 0.75
    30 #define TOOLBAR_GRADIENT_START "#2E3B57"
    31 #define TOOLBAR_GRADIENT_START "#2E3B57"
    31 #define TOOLBAR_GRADIENT_END "#44587D"
    32 #define TOOLBAR_GRADIENT_END "#44587D"
    32 #define TOOLBAR_LEFTCORNER_ITEM 0
    33 #define TOOLBAR_LEFTCORNER_ITEM 0
    33 
    34 
    34 namespace GVA {
    35 namespace GVA {
    35 
    36 
    36   ToolbarChromeItem::ToolbarChromeItem(QGraphicsItem* parent)
    37   ToolbarChromeItem::ToolbarChromeItem(ChromeSnippet* snippet, QGraphicsItem* parent)
    37     : ChromeItem(NULL, parent),
    38     : ChromeItem(NULL, parent),
    38       m_partialbg(NULL),
    39       m_partialbg(NULL),
    39       m_opacity(TOOLBAR_BG_OPACITY)
    40       m_opacity(TOOLBAR_BG_OPACITY)
    40   {
    41   {
    41 
    42       setSnippet(snippet);
    42   }
    43   }
    43 
    44 
    44   ToolbarChromeItem::~ToolbarChromeItem()
    45   ToolbarChromeItem::~ToolbarChromeItem()
    45   {
    46   {
    46     if (m_partialbg) {
    47     if (m_partialbg) {
    74     painter->drawPath(*m_partialbg);
    75     painter->drawPath(*m_partialbg);
    75 
    76 
    76     // restore painter
    77     // restore painter
    77     painter->restore();
    78     painter->restore();
    78 
    79 
       
    80     if(!isEnabled()) {
       
    81         // Disabled, apply whitewash.
       
    82         ChromeEffect::paintDisabledRect(painter, opt->exposedRect);
       
    83     }
    79   }
    84   }
    80 
    85 
    81   void ToolbarChromeItem::setProperties() {
    86   void ToolbarChromeItem::setProperties() {
    82 
    87 
    83     m_pen.setWidth(m_borderWidth);
    88     m_pen.setWidth(m_borderWidth);
    89   }
    94   }
    90 
    95 
    91   void ToolbarChromeItem::addPartialbg() {
    96   void ToolbarChromeItem::addPartialbg() {
    92 
    97 
    93     WebChromeContainerSnippet * s = static_cast<WebChromeContainerSnippet*>(m_snippet);
    98     WebChromeContainerSnippet * s = static_cast<WebChromeContainerSnippet*>(m_snippet);
       
    99     if(!s->layout()->itemAt(TOOLBAR_LEFTCORNER_ITEM))
       
   100         return;
    94     QRectF rc = s->layout()->itemAt(TOOLBAR_LEFTCORNER_ITEM)->geometry();
   101     QRectF rc = s->layout()->itemAt(TOOLBAR_LEFTCORNER_ITEM)->geometry();
    95     if (m_partialbg) {
   102     if (m_partialbg) {
    96       delete m_partialbg;
   103       delete m_partialbg;
    97     }
   104     }
    98 
   105 
   110   }
   117   }
   111 
   118 
   112   void ToolbarChromeItem::setSnippet(ChromeSnippet* snippet) {
   119   void ToolbarChromeItem::setSnippet(ChromeSnippet* snippet) {
   113 
   120 
   114     ChromeItem::setSnippet(snippet);
   121     ChromeItem::setSnippet(snippet);
   115 
   122     QString cssVal = m_snippet->element().styleProperty("border-top-color",
   116     QString cssVal = m_snippet->element().styleProperty("border-top-color", QWebElement::ComputedStyle);
   123         QWebElement::ComputedStyle);
   117     NativeChromeItem::CSSToQColor(cssVal, m_borderColor);
   124     NativeChromeItem::CSSToQColor(cssVal, m_borderColor);
   118 
   125 
   119     cssVal = m_snippet->element().styleProperty("padding-top", QWebElement::ComputedStyle);
   126     cssVal = m_snippet->element().styleProperty("padding-top", QWebElement::ComputedStyle);
   120     m_padding =  cssVal.remove("px").toInt();
   127     m_padding = cssVal.remove("px").toInt();
   121 
       
   122 
   128 
   123     cssVal = m_snippet->element().styleProperty("border-top-width", QWebElement::ComputedStyle);
   129     cssVal = m_snippet->element().styleProperty("border-top-width", QWebElement::ComputedStyle);
   124     m_borderWidth = cssVal.remove("px").toInt();
   130     m_borderWidth = cssVal.remove("px").toInt();
   125 
       
   126     setProperties();
   131     setProperties();
   127   }
   132   }
   128 
   133 
   129 } // end of namespace GVA
   134 } // end of namespace GVA
   130 
   135