[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/work/goya
From:       Rafael Fernández López <ereslibre () kde ! org>
Date:       2008-03-08 15:24:09
Message-ID: 1204989849.783584.30512.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 783538 by ereslibre:

Yeah ! transparent backgrounds !


 M  +20 -17    goya/goya.cpp  
 M  +5 -0      tests/main.cpp  


--- branches/work/goya/goya/goya.cpp #783537:783538
@@ -27,6 +27,7 @@
 #include <QEvent>
 #include <QHoverEvent>
 #include <QCursor>
+#include <QBitmap>
 #include <QPainter>
 #include <QKeyEvent>
 #include <QStyleOption>
@@ -174,9 +175,10 @@
     }
 
     foreach (Widget *widget, widgetList) {
-        QPixmap pixmap(120, 50);
+        QPixmap pixmap(120, 30);
+        pixmap.setMask(pixmap.createMaskFromColor(Qt::transparent, \
Qt::MaskOutColor));  QPainter p(&pixmap);
-        p.fillRect(0, 0, 120, 50, Qt::white);
+        p.fillRect(0, 0, 120, 50, Qt::transparent);
         p.end();
         QWidget *qtwidget = widget->widget();
         qtwidget->render(&pixmap, QPoint(0, 0), QRegion(0, 0, 100, 50), \
QWidget::DrawChildren); @@ -242,25 +244,26 @@
         QList<Widget*> widgetList = widgetsForIndex(d->itemModel->index(1, 0));
     
         switch (event->type()) {
-            case QEvent::HoverEnter: {
-                foreach (Widget *widget, widgetList) {
-                    QCoreApplication::postEvent(widget->widget(), new \
QHoverEvent(QEvent::HoverEnter, widget->widget()->mapFromGlobal(QCursor::pos()), \
widget->widget()->mapFromGlobal(QCursor::pos()))); +            case \
QEvent::MouseButtonPress: { +                    QMouseEvent *mouseEvent = \
dynamic_cast<QMouseEvent*>(event); +                    foreach (Widget *widget, \
widgetList) { +                        QCoreApplication::postEvent(widget->widget(),
+                                                    new \
QMouseEvent(QEvent::MouseButtonPress, QPoint(0, 0), mouseEvent->button(), +           \
mouseEvent->buttons(), mouseEvent->modifiers())); +                    }
                 }
+                d->itemView->viewport()->update();
                 break;
-            }
-            case QEvent::HoverLeave: {
-                foreach (Widget *widget, widgetList) {
-                    QCoreApplication::postEvent(widget->widget(), new \
QHoverEvent(QEvent::HoverLeave, widget->widget()->mapFromGlobal(QCursor::pos()), \
widget->widget()->mapFromGlobal(QCursor::pos()))); +            case \
QEvent::MouseButtonRelease: { +                    QMouseEvent *mouseEvent = \
dynamic_cast<QMouseEvent*>(event); +                    foreach (Widget *widget, \
widgetList) { +                        QCoreApplication::postEvent(widget->widget(),
+                                                    new \
QMouseEvent(QEvent::MouseButtonRelease, QPoint(0, 0), mouseEvent->button(), +         \
mouseEvent->buttons(), mouseEvent->modifiers())); +                    }
                 }
+                d->itemView->viewport()->update();
                 break;
-            }
-            case QEvent::MouseMove: {
-                foreach (Widget *widget, widgetList) {
-                    QCoreApplication::postEvent(widget->widget(), new \
                QEvent(QEvent::Enter));
-                    QCoreApplication::postEvent(widget->widget(), new \
QMouseEvent(QEvent::MouseMove, widget->widget()->mapFromGlobal(QCursor::pos()), \
                Qt::NoButton, Qt::NoButton, Qt::NoModifier));
-                }
-                break;
-            }
             default:
                 break;
         }
--- branches/work/goya/tests/main.cpp #783537:783538
@@ -34,6 +34,11 @@
     void paint(QPainter *painter, const QStyleOptionViewItem &option,
                const QModelIndex &index) const
     {
+        if (option.state & QStyle::State_Selected)
+        {
+            painter->fillRect(option.rect, option.palette.highlight());
+        }
+
         painter->drawText(option.rect, index.model()->data(index).toString());
 
         Goya::Canvas::paint(painter, option, index);


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic