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

List:       kde-commits
Subject:    branches/KDE/4.4/kdelibs/plasma/widgets
From:       Aaron J. Seigo <aseigo () kde ! org>
Date:       2010-02-23 23:04:26
Message-ID: 1266966266.411500.30027.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1095291 by aseigo:

make links clicking and text selection actually work


 M  +11 -6     label.cpp  
 M  +1 -0      label.h  


--- branches/KDE/4.4/kdelibs/plasma/widgets/label.cpp #1095290:1095291
@@ -116,6 +116,7 @@
     QLabel *native = new QLabel;
     //disabled for now: triggers Qt bug 7254
     //native->setWindowFlags(native->windowFlags()|Qt::BypassGraphicsProxyWidget);
+    native->setTextInteractionFlags(Qt::TextBrowserInteraction)
     d->textSelectable = false;
     connect(native, SIGNAL(linkActivated(QString)), this, SIGNAL(linkActivated(QString)));
     connect(native, SIGNAL(linkHovered(QString)), this, SIGNAL(linkHovered(QString)));
@@ -190,9 +191,9 @@
 
 void Label::setTextSelectable(bool enable)
 {
-  d->textSelectable = enable;
+    d->textSelectable = enable;
 }
-    
+
 bool Label::textSelectable() const
 {
   return d->textSelectable;
@@ -255,10 +256,14 @@
 
 void Label::mousePressEvent(QGraphicsSceneMouseEvent *event)
 {
-    if (!d->textSelectable) {
-        event->ignore();
-    } else {
-        QGraphicsProxyWidget::mousePressEvent(event);
+    QGraphicsProxyWidget::mousePressEvent(event);
+    event->accept();
+}
+
+void Label::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
+{
+    if (d->textSelectable) {
+        QGraphicsProxyWidget::mouseMoveEvent(event);
     }
 }
 
--- branches/KDE/4.4/kdelibs/plasma/widgets/label.h #1095290:1095291
@@ -148,6 +148,7 @@
 protected:
     void resizeEvent(QGraphicsSceneResizeEvent *event);
     void mousePressEvent(QGraphicsSceneMouseEvent *event);
+    void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
     void paint(QPainter *painter,
                const QStyleOptionGraphicsItem *option,
                QWidget *widget);
[prev in list] [next in list] [prev in thread] [next in thread] 

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