setProperty("_breeze_statusbar_separator", true);
QWidget *contentsContainer = prepareContentsContainer();
+ contentsContainer->setContentsMargins(0, 0, 0, 0);
// Initialize text label
m_label = new KSqueezedTextLabel(m_text, contentsContainer);
// Make sure minimum height takes clipping into account.
setMinimumHeight(m_label->height() + clippingAmount());
const int scrollbarWidth = style()->pixelMetric(QStyle::PM_ScrollBarExtent, &opt, this);
- const int maximumViewWidth = parentWidget()->width() - scrollbarWidth;
+ // Make sure maximumViewWidth does not go below 0.
+ const int maximumViewWidth = qMax(0, parentWidget()->width() - scrollbarWidth);
if (m_stopButton->isVisible() || m_progressTextLabel->isVisible() || m_progressBar->isVisible()) {
// Use maximum width when interactable elements are shown, to keep them
// from "jumping around" when user tries to interact with them.
setFixedWidth(maximumViewWidth);
} else {
- const int contentWidth = labelSize.width() + 15;
+ // 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();
{
Q_UNUSED(event)
+ // Do not show the context menu on small statusbar.
+ if (GeneralSettings::showStatusBar() == GeneralSettings::EnumShowStatusBar::Small) {
+ return;
+ }
+
QMenu menu(this);
QAction *showZoomSliderAction = menu.addAction(i18nc("@action:inmenu", "Show Zoom Slider"));
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);
}
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);
p.setClipPath(path);
opt.palette.setColor(QPalette::Base, palette().window().color());
+ p.setBrush(palette().window().color());
+ p.setPen(Qt::transparent);
+ p.drawRoundedRect(opt.rect, 5, 5); // Radius is from Breeze style.
style()->drawPrimitive(QStyle::PE_Frame, &opt, &p, this);
}
}