]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/statusbar/dolphinstatusbar.cpp
Adapt to frame change in Breeze
[dolphin.git] / src / statusbar / dolphinstatusbar.cpp
index 9c101b3fa8e15ca676015187dba66d0dacaefa06..9451566fd987e684a00dab81f14a3949b405ad8b 100644 (file)
 #include <QHelpEvent>
 #include <QIcon>
 #include <QMenu>
+#include <QPainter>
 #include <QProgressBar>
 #include <QSlider>
+#include <QStyleOption>
 #include <QTimer>
 #include <QToolButton>
 
@@ -44,6 +46,8 @@ DolphinStatusBar::DolphinStatusBar(QWidget *parent)
     , m_delayUpdateTimer(nullptr)
     , m_textTimestamp()
 {
+    setContentsMargins(4, 0, 4, 0);
+
     // Initialize text label
     m_label = new KSqueezedTextLabel(m_text, this);
     m_label->setWordWrap(true);
@@ -269,7 +273,7 @@ void DolphinStatusBar::contextMenuEvent(QContextMenuEvent *event)
     showSpaceInfoAction->setCheckable(true);
     showSpaceInfoAction->setChecked(GeneralSettings::showSpaceInfo());
 
-    const QAction *action = menu.exec(QCursor::pos());
+    const QAction *action = menu.exec(event->reason() == QContextMenuEvent::Reason::Mouse ? QCursor::pos() : mapToGlobal(QPoint(width() / 2, height() / 2)));
     if (action == showZoomSliderAction) {
         const bool visible = showZoomSliderAction->isChecked();
         GeneralSettings::setShowZoomSlider(visible);
@@ -336,4 +340,12 @@ void DolphinStatusBar::setExtensionsVisible(bool visible)
     m_zoomLabel->setVisible(showZoomSlider);
 }
 
+void DolphinStatusBar::paintEvent(QPaintEvent *paintEvent)
+{
+    QPainter p(this);
+    QStyleOption opt;
+    opt.initFrom(this);
+    style()->drawPrimitive(QStyle::PE_PanelStatusBar, &opt, &p, this);
+}
+
 #include "moc_dolphinstatusbar.cpp"