]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/iconsizegroupbox.cpp
Instead of increasing the grid spacing, increase the item size, so that there is...
[dolphin.git] / src / iconsizegroupbox.cpp
index 8f6c240865abb72eb0d01f4a44e2e79303c64b1e..82698e7b74064b83f06613eb64722e0295ad8ce5 100644 (file)
 
 #include <klocale.h>
 
+#include <QApplication>
 #include <QGridLayout>
+#include <QHelpEvent>
 #include <QLabel>
+#include <QPoint>
+#include <QRect>
 #include <QSlider>
 
+#include "zoomlevelinfo.h"
+
 IconSizeGroupBox::IconSizeGroupBox(QWidget* parent) :
     QGroupBox(i18nc("@title:group", "Icon Size"), parent),
     m_defaultSizeSlider(0),
@@ -35,19 +41,19 @@ IconSizeGroupBox::IconSizeGroupBox(QWidget* parent) :
     m_defaultSizeSlider->setPageStep(1);
     m_defaultSizeSlider->setTickPosition(QSlider::TicksBelow);
     connect(m_defaultSizeSlider, SIGNAL(sliderMoved(int)),
-            this, SIGNAL(defaultSizeChanged(int)));
-    
+            this, SLOT(slotDefaultSliderMoved(int)));
+
     QLabel* previewLabel = new QLabel(i18nc("@label:listbox", "Preview:"), this);
     m_previewSizeSlider = new QSlider(Qt::Horizontal, this);
     m_previewSizeSlider->setPageStep(1);
     m_previewSizeSlider->setTickPosition(QSlider::TicksBelow);
     connect(m_previewSizeSlider, SIGNAL(sliderMoved(int)),
-            this, SIGNAL(defaultSizeChanged(int)));
-    
+            this, SLOT(slotPreviewSliderMoved(int)));
+
     QGridLayout* layout = new QGridLayout(this);
-    layout->addWidget(defaultLabel, 0, 0);
+    layout->addWidget(defaultLabel, 0, 0, Qt::AlignRight);
     layout->addWidget(m_defaultSizeSlider, 0, 1);
-    layout->addWidget(previewLabel, 1, 0);
+    layout->addWidget(previewLabel, 1, 0, Qt::AlignRight);
     layout->addWidget(m_previewSizeSlider, 1, 1);
 }
 
@@ -85,4 +91,26 @@ int IconSizeGroupBox::previewSizeValue() const
     return m_previewSizeSlider->value();
 }
 
+void IconSizeGroupBox::slotDefaultSliderMoved(int value)
+{
+    showToolTip(m_defaultSizeSlider, value);
+    emit defaultSizeChanged(value);
+}
+
+void IconSizeGroupBox::slotPreviewSliderMoved(int value)
+{
+    showToolTip(m_previewSizeSlider, value);
+    emit previewSizeChanged(value);
+}
+
+void IconSizeGroupBox::showToolTip(QSlider* slider, int value)
+{
+    const int size = ZoomLevelInfo::iconSizeForZoomLevel(value);
+    slider->setToolTip(i18ncp("@info:tooltip", "Size: 1 pixel", "Size: %1 pixels", size));
+    QPoint global = slider->rect().topLeft();
+    global.ry() += slider->height() / 2;
+    QHelpEvent toolTipEvent(QEvent::ToolTip, QPoint(0, 0), slider->mapToGlobal(global));
+    QApplication::sendEvent(slider, &toolTipEvent);
+}
+
 #include "iconsizegroupbox.moc"