┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/statusbar/dolphinstatusbar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/statusbar/dolphinstatusbar.cpp')
-rw-r--r--src/statusbar/dolphinstatusbar.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/statusbar/dolphinstatusbar.cpp b/src/statusbar/dolphinstatusbar.cpp
index 17a29e84c..f81120a44 100644
--- a/src/statusbar/dolphinstatusbar.cpp
+++ b/src/statusbar/dolphinstatusbar.cpp
@@ -50,6 +50,7 @@ DolphinStatusBar::DolphinStatusBar(QWidget *parent)
setProperty("_breeze_statusbar_separator", true);
QWidget *contentsContainer = prepareContentsContainer();
+ contentsContainer->setContentsMargins(0, 0, 0, 0);
// Initialize text label
m_label = new KSqueezedTextLabel(m_text, contentsContainer);
@@ -292,8 +293,8 @@ void DolphinStatusBar::updateWidthToContent()
// from "jumping around" when user tries to interact with them.
setFixedWidth(maximumViewWidth);
} else {
- const int contentWidth = style()->pixelMetric(QStyle::PM_LayoutLeftMargin, &opt, this) + labelSize.width()
- + style()->pixelMetric(QStyle::PM_LayoutRightMargin, &opt, this);
+ // Make sure we have room for the text
+ const int contentWidth = labelSize.width() + QFontMetrics(font()).averageCharWidth() + (clippingAmount() * 2);
setFixedWidth(qMin(contentWidth, maximumViewWidth));
}
Q_EMIT widthUpdated();
@@ -422,7 +423,7 @@ void DolphinStatusBar::updateContentsMargins()
m_topLayout->setContentsMargins(6, 0, 2, 0);
} else {
// Add extra margins to toplayout to avoid clipping too early.
- m_topLayout->setContentsMargins(clippingAmount() * 2, 0, clippingAmount(), clippingAmount());
+ m_topLayout->setContentsMargins(clippingAmount() * 2, 0, clippingAmount(), 0);
}
setContentsMargins(0, 0, 0, 0);
}
@@ -438,11 +439,13 @@ void DolphinStatusBar::paintEvent(QPaintEvent *paintEvent)
if (m_label && !m_label->fullText().isEmpty()) {
opt.state = QStyle::State_Sunken;
QPainterPath path;
- // Clip the left and bottom border off.
+ // Adjust the rectangle to be a bit larger, then clip the left and bottom border off.
QRect clipRect;
if (layoutDirection() == Qt::RightToLeft) {
+ opt.rect = rect().adjusted(0, 0, clippingAmount(), clippingAmount());
clipRect = QRect(opt.rect.topLeft(), opt.rect.bottomRight()).adjusted(0, 0, -clippingAmount(), -clippingAmount());
} else {
+ opt.rect = rect().adjusted(-clippingAmount(), 0, 0, clippingAmount());
clipRect = QRect(opt.rect.topLeft(), opt.rect.bottomRight()).adjusted(clippingAmount(), 0, 0, -clippingAmount());
}
path.addRect(clipRect);