[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