X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/9e42591422599edffa09fca418f441a98ea9efe5..148282e2d856b47ceb191eeef4c834118c8cdffd:/src/dolphinstatusbar.cpp diff --git a/src/dolphinstatusbar.cpp b/src/dolphinstatusbar.cpp index 069cc7450..22b8a9ed7 100644 --- a/src/dolphinstatusbar.cpp +++ b/src/dolphinstatusbar.cpp @@ -26,6 +26,7 @@ #include "statusbarspaceinfo.h" #include "zoomlevelinfo.h" +#include #include #include #include @@ -34,6 +35,7 @@ #include #include +#include #include DolphinStatusBar::DolphinStatusBar(QWidget* parent, DolphinView* view) : @@ -89,6 +91,7 @@ DolphinStatusBar::DolphinStatusBar(QWidget* parent, DolphinView* view) : zoomWidgetLayout->addWidget(m_zoomIn); connect(m_zoomSlider, SIGNAL(valueChanged(int)), this, SLOT(setZoomLevel(int))); + connect(m_zoomSlider, SIGNAL(sliderMoved(int)), this, SLOT(showZoomSliderToolTip(int))); connect(m_view, SIGNAL(zoomLevelChanged(int)), m_zoomSlider, SLOT(setValue(int))); connect(m_zoomOut, SIGNAL(clicked()), this, SLOT(zoomOut())); connect(m_zoomIn, SIGNAL(clicked()), this, SLOT(zoomIn())); @@ -101,11 +104,11 @@ DolphinStatusBar::DolphinStatusBar(QWidget* parent, DolphinView* view) : m_progressBar->hide(); // initialize sizes - const int contentHeight = QFontMetrics(m_messageLabel->font()).height() + 4; - const int barHeight = contentHeight + 4; + const int fontHeight = QFontMetrics(m_messageLabel->font()).height(); + const int zoomWidgetHeight = m_zoomWidget->minimumSizeHint().height(); + const int contentHeight = (fontHeight < zoomWidgetHeight) ? zoomWidgetHeight : fontHeight; - setMinimumHeight(barHeight); - m_messageLabel->setMinimumTextHeight(barHeight); + m_messageLabel->setMinimumTextHeight(contentHeight); m_spaceInfo->setFixedHeight(contentHeight); m_progressBar->setFixedSize(200, contentHeight); m_zoomWidget->setFixedSize(150, contentHeight); @@ -274,6 +277,16 @@ void DolphinStatusBar::zoomIn() m_zoomSlider->setValue(value + 1); } +void DolphinStatusBar::showZoomSliderToolTip(int zoomLevel) +{ + const int size = ZoomLevelInfo::iconSizeForZoomLevel(zoomLevel); + m_zoomSlider->setToolTip(i18ncp("@info:tooltip", "Size: 1 pixel", "Size: %1 pixels", size)); + QPoint global = m_zoomSlider->rect().topLeft(); + global.ry() += m_zoomSlider->height() / 2; + QHelpEvent toolTipEvent(QEvent::ToolTip, QPoint(0, 0), m_zoomSlider->mapToGlobal(global)); + QApplication::sendEvent(m_zoomSlider, &toolTipEvent); +} + void DolphinStatusBar::setExtensionsVisible(bool visible) { bool spaceInfoVisible = visible;