[SCM] ktp-kded-integration-module packaging branch, master, updated. debian/15.12.1-2-382-gbd961c2

Maximiliano Curia maxy at moszumanska.debian.org
Sat May 28 00:14:45 UTC 2016


Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-kded-module.git;a=commitdiff;h=dc02d76

The following commit has been merged in the master branch:
commit dc02d76c6b3e47eb78f7a99e0ed4eb9eff1ea49e
Author: Dan Vrátil <dvratil at redhat.com>
Date:   Wed Jan 9 17:07:42 2013 +0100

    Use better way of setting NowPLayingListWidget size
    
    The combination of setFlow() and the old way the size of the
    widget was calculated caused Qt layout system to end up in
    endless recursion (and subsequent crash).
    
    BUG: 312957
    Reviewed-By: David Edmundson
---
 config/nowplaying-listwidget.cpp | 20 ++++++++++++++------
 config/nowplaying-listwidget.h   |  1 +
 2 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/config/nowplaying-listwidget.cpp b/config/nowplaying-listwidget.cpp
index 0262f48..13aab1a 100644
--- a/config/nowplaying-listwidget.cpp
+++ b/config/nowplaying-listwidget.cpp
@@ -20,12 +20,16 @@
 
 #include <KIcon>
 #include <KIconLoader>
+#include <QScrollBar>
 
 NowPlayingListWidget::NowPlayingListWidget(QWidget *parent)
 : QListWidget(parent)
 {
     setFlow(QListWidget::LeftToRight);
     setDragEnabled(true);
+
+    setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+    setHorizontalScrollMode(ScrollPerPixel);
 }
 
 NowPlayingListWidget::~NowPlayingListWidget()
@@ -46,8 +50,6 @@ void NowPlayingListWidget::setItemsIcons(QStringList itemsIcons)
 void NowPlayingListWidget::setupItems()
 {
     QString tagName;
-    QFontMetrics *fontMetrics = new QFontMetrics(font()); //needed to calculate total width
-    int totalWidth = 0;
 
     //items adding order is based on that in config/telepathy-kded-config.cpp
     for (int i = 0; i < m_localizedTagNames.size(); i++) {
@@ -57,13 +59,19 @@ void NowPlayingListWidget::setupItems()
 
         QListWidgetItem *newItem = new QListWidgetItem(KIcon(m_itemsIcons.at(i)), tagName);
         addItem(newItem);
+    }
+}
+
+void NowPlayingListWidget::resizeEvent(QResizeEvent* event)
+{
+    QListWidget::resizeEvent(event);
 
-        //+8 because we are considering also spaces between icons and items
-        totalWidth += fontMetrics->boundingRect(tagName).width() + KIconLoader::SizeSmallMedium + 8;
+    int height = sizeHintForRow(0) + 2 * frameWidth();
+    if (horizontalScrollBar() && horizontalScrollBar()->isVisible()) {
+        height += horizontalScrollBar()->size().height();
     }
 
-    setMaximumWidth(totalWidth);
-    setMaximumHeight(size().height());
+    setMaximumHeight(height);
 }
 
 void NowPlayingListWidget::dragEnterEvent(QDragEnterEvent *event)
diff --git a/config/nowplaying-listwidget.h b/config/nowplaying-listwidget.h
index c1ee70e..f80eb1e 100644
--- a/config/nowplaying-listwidget.h
+++ b/config/nowplaying-listwidget.h
@@ -36,6 +36,7 @@ public:
     void setupItems();
 
 protected:
+    void resizeEvent(QResizeEvent *event);
     void dragEnterEvent(QDragEnterEvent *event);
     void dragMoveEvent(QDragMoveEvent *event);
     void mousePressEvent(QMouseEvent *event);

-- 
ktp-kded-integration-module packaging



More information about the pkg-kde-commits mailing list