┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kitemlistheaderwidget.cpp
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2012-04-01 16:42:46 +0200
committerPeter Penz <[email protected]>2012-04-01 16:46:54 +0200
commita4ede4e0ebaf0bba57da8fc2924577f1a8ff7b54 (patch)
tree954d5394838230f20646f17727460aaae1fbcb34 /src/kitemviews/kitemlistheaderwidget.cpp
parentaced85db1f7c72268860f0368402cf97f34e55c2 (diff)
Allow showing Nepomuk metadata inside views
Metadata like image-size, rating, comments, tags, ... can be shown now in the view (e.g. as column in the Details mode). Still open: The rating-information needs to be shown as stars. In the context of this feature also the following bugs have been fixed: - Fix visual glitches in the header of the Details mode - Improve the minimum column width calculation to respect also the headling and not only the content BUG: 296782 FIXED-IN: 4.9.0
Diffstat (limited to 'src/kitemviews/kitemlistheaderwidget.cpp')
-rw-r--r--src/kitemviews/kitemlistheaderwidget.cpp30
1 files changed, 20 insertions, 10 deletions
diff --git a/src/kitemviews/kitemlistheaderwidget.cpp b/src/kitemviews/kitemlistheaderwidget.cpp
index d3a8f001b..2105b674c 100644
--- a/src/kitemviews/kitemlistheaderwidget.cpp
+++ b/src/kitemviews/kitemlistheaderwidget.cpp
@@ -34,6 +34,7 @@ KItemListHeaderWidget::KItemListHeaderWidget(QGraphicsWidget* parent) :
QGraphicsWidget(parent),
m_automaticColumnResizing(true),
m_model(0),
+ m_offset(0),
m_columns(),
m_columnWidths(),
m_preferredColumnWidths(),
@@ -48,10 +49,6 @@ KItemListHeaderWidget::KItemListHeaderWidget(QGraphicsWidget* parent) :
m_movingRole.index = -1;
setAcceptHoverEvents(true);
-
- QStyleOptionHeader option;
- const QSize headerSize = style()->sizeFromContents(QStyle::CT_HeaderSection, &option, QSize());
- resize(0, headerSize.height());
}
KItemListHeaderWidget::~KItemListHeaderWidget()
@@ -142,6 +139,19 @@ qreal KItemListHeaderWidget::preferredColumnWidth(const QByteArray& role) const
return m_preferredColumnWidths.value(role);
}
+void KItemListHeaderWidget::setOffset(qreal offset)
+{
+ if (m_offset != offset) {
+ m_offset = offset;
+ update();
+ }
+}
+
+qreal KItemListHeaderWidget::offset() const
+{
+ return m_offset;
+}
+
qreal KItemListHeaderWidget::minimumColumnWidth() const
{
QFontMetricsF fontMetrics(font());
@@ -161,7 +171,7 @@ void KItemListHeaderWidget::paint(QPainter* painter, const QStyleOptionGraphicsI
painter->setFont(font());
painter->setPen(palette().text().color());
- qreal x = 0;
+ qreal x = -m_offset;
int orderIndex = 0;
foreach (const QByteArray& role, m_columns) {
const qreal roleWidth = m_columnWidths.value(role);
@@ -265,7 +275,7 @@ void KItemListHeaderWidget::mouseMoveEvent(QGraphicsSceneMouseEvent* event)
} else {
m_movingRole.pixmap = createRolePixmap(roleIndex);
- qreal roleX = 0;
+ qreal roleX = -m_offset;
for (int i = 0; i < roleIndex; ++i) {
const QByteArray role = m_columns[i];
roleX += m_columnWidths.value(role);
@@ -429,7 +439,7 @@ int KItemListHeaderWidget::roleIndexAt(const QPointF& pos) const
{
int index = -1;
- qreal x = 0;
+ qreal x = -m_offset;
foreach (const QByteArray& role, m_columns) {
++index;
x += m_columnWidths.value(role);
@@ -443,7 +453,7 @@ int KItemListHeaderWidget::roleIndexAt(const QPointF& pos) const
bool KItemListHeaderWidget::isAboveRoleGrip(const QPointF& pos, int roleIndex) const
{
- qreal x = 0;
+ qreal x = -m_offset;
for (int i = 0; i <= roleIndex; ++i) {
const QByteArray role = m_columns[i];
x += m_columnWidths.value(role);
@@ -484,7 +494,7 @@ int KItemListHeaderWidget::targetOfMovingRole() const
const int movingRight = movingLeft + movingWidth - 1;
int targetIndex = 0;
- qreal targetLeft = 0;
+ qreal targetLeft = -m_offset;
while (targetIndex < m_columns.count()) {
const QByteArray role = m_columns[targetIndex];
const qreal targetWidth = m_columnWidths.value(role);
@@ -510,7 +520,7 @@ int KItemListHeaderWidget::targetOfMovingRole() const
qreal KItemListHeaderWidget::roleXPosition(const QByteArray& role) const
{
- qreal x = 0;
+ qreal x = -m_offset;
foreach (const QByteArray& visibleRole, m_columns) {
if (visibleRole == role) {
return x;