ginebra2/ToolbarChromeItem.cpp
changeset 6 1c3b8676e58c
parent 5 0f2326c2a325
--- a/ginebra2/ToolbarChromeItem.cpp	Wed Jun 23 17:59:43 2010 +0300
+++ b/ginebra2/ToolbarChromeItem.cpp	Tue Jul 06 14:03:49 2010 +0300
@@ -23,6 +23,7 @@
 #include "NativeChromeItem.h"
 #include "GWebContentView.h"
 #include "WebChromeContainerSnippet.h"
+#include "ChromeEffect.h"
 
 #include <QDebug>
 
@@ -33,12 +34,12 @@
 
 namespace GVA {
 
-  ToolbarChromeItem::ToolbarChromeItem(QGraphicsItem* parent)
+  ToolbarChromeItem::ToolbarChromeItem(ChromeSnippet* snippet, QGraphicsItem* parent)
     : ChromeItem(NULL, parent),
       m_partialbg(NULL),
       m_opacity(TOOLBAR_BG_OPACITY)
   {
-
+      setSnippet(snippet);
   }
 
   ToolbarChromeItem::~ToolbarChromeItem()
@@ -76,6 +77,10 @@
     // restore painter
     painter->restore();
 
+    if(!isEnabled()) {
+        // Disabled, apply whitewash.
+        ChromeEffect::paintDisabledRect(painter, opt->exposedRect);
+    }
   }
 
   void ToolbarChromeItem::setProperties() {
@@ -91,6 +96,8 @@
   void ToolbarChromeItem::addPartialbg() {
 
     WebChromeContainerSnippet * s = static_cast<WebChromeContainerSnippet*>(m_snippet);
+    if(!s->layout()->itemAt(TOOLBAR_LEFTCORNER_ITEM))
+        return;
     QRectF rc = s->layout()->itemAt(TOOLBAR_LEFTCORNER_ITEM)->geometry();
     if (m_partialbg) {
       delete m_partialbg;
@@ -112,17 +119,15 @@
   void ToolbarChromeItem::setSnippet(ChromeSnippet* snippet) {
 
     ChromeItem::setSnippet(snippet);
-
-    QString cssVal = m_snippet->element().styleProperty("border-top-color", QWebElement::ComputedStyle);
+    QString cssVal = m_snippet->element().styleProperty("border-top-color",
+        QWebElement::ComputedStyle);
     NativeChromeItem::CSSToQColor(cssVal, m_borderColor);
 
     cssVal = m_snippet->element().styleProperty("padding-top", QWebElement::ComputedStyle);
-    m_padding =  cssVal.remove("px").toInt();
-
+    m_padding = cssVal.remove("px").toInt();
 
     cssVal = m_snippet->element().styleProperty("border-top-width", QWebElement::ComputedStyle);
     m_borderWidth = cssVal.remove("px").toInt();
-
     setProperties();
   }