]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/settings/viewmodes/viewsettingstab.cpp
use save() instead of writeConfig()
[dolphin.git] / src / settings / viewmodes / viewsettingstab.cpp
index fe043a7884745db97b5f257c7a077f9ccc57508f..632ae99da7eac3ff08933a35e70f008611eb3a02 100644 (file)
 #include "dolphin_iconsmodesettings.h"
 
 #include <KComboBox>
-#include <KLocale>
+#include <KLocalizedString>
 
 #include <QCheckBox>
 #include <QGroupBox>
 #include <QLabel>
 #include <QSlider>
 #include <QVBoxLayout>
+#include <QHelpEvent>
+#include <QApplication>
 
 #include <views/zoomlevelinfo.h>
 
@@ -59,12 +61,16 @@ ViewSettingsTab::ViewSettingsTab(Mode mode, QWidget* parent) :
     m_defaultSizeSlider->setPageStep(1);
     m_defaultSizeSlider->setTickPosition(QSlider::TicksBelow);
     m_defaultSizeSlider->setRange(minRange, maxRange);
+    connect(m_defaultSizeSlider, &QSlider::valueChanged,
+            this, &ViewSettingsTab::slotDefaultSliderMoved);
 
     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);
     m_previewSizeSlider->setRange(minRange, maxRange);
+    connect(m_previewSizeSlider, &QSlider::valueChanged,
+            this, &ViewSettingsTab::slotPreviewSliderMoved);
 
     QGridLayout* layout = new QGridLayout(iconSizeGroup);
     layout->addWidget(defaultLabel, 0, 0, Qt::AlignRight);
@@ -132,20 +138,20 @@ ViewSettingsTab::ViewSettingsTab(Mode mode, QWidget* parent) :
 
     loadSettings();
 
-    connect(m_defaultSizeSlider, SIGNAL(valueChanged(int)), this, SIGNAL(changed()));
-    connect(m_previewSizeSlider, SIGNAL(valueChanged(int)), this, SIGNAL(changed()));
-    connect(m_fontRequester, SIGNAL(changed()), this, SIGNAL(changed()));
+    connect(m_defaultSizeSlider, &QSlider::valueChanged, this, &ViewSettingsTab::changed);
+    connect(m_previewSizeSlider, &QSlider::valueChanged, this, &ViewSettingsTab::changed);
+    connect(m_fontRequester, &DolphinFontRequester::changed, this, &ViewSettingsTab::changed);
 
     switch (m_mode) {
     case IconsMode:
-        connect(m_widthBox, SIGNAL(currentIndexChanged(int)), this, SIGNAL(changed()));
-        connect(m_maxLinesBox, SIGNAL(currentIndexChanged(int)), this, SIGNAL(changed()));
+        connect(m_widthBox, static_cast<void(KComboBox::*)(int)>(&KComboBox::currentIndexChanged), this, &ViewSettingsTab::changed);
+        connect(m_maxLinesBox, static_cast<void(KComboBox::*)(int)>(&KComboBox::currentIndexChanged), this, &ViewSettingsTab::changed);
         break;
     case CompactMode:
-        connect(m_widthBox, SIGNAL(currentIndexChanged(int)), this, SIGNAL(changed()));
+        connect(m_widthBox, static_cast<void(KComboBox::*)(int)>(&KComboBox::currentIndexChanged), this, &ViewSettingsTab::changed);
         break;
     case DetailsMode:
-        connect(m_expandableFolders, SIGNAL(toggled(bool)), this, SIGNAL(changed()));
+        connect(m_expandableFolders, &QCheckBox::toggled, this, &ViewSettingsTab::changed);
         break;
     default:
         break;
@@ -189,7 +195,7 @@ void ViewSettingsTab::applySettings()
     settings.setItalicFont(font.italic());
     settings.setFontWeight(font.weight());
 
-    settings.writeConfig();
+    settings.save();
 }
 
 void ViewSettingsTab::restoreDefaultSettings()
@@ -261,4 +267,26 @@ ViewModeSettings::ViewMode ViewSettingsTab::viewMode() const
 }
 
 
-#include "viewsettingstab.moc"
+void ViewSettingsTab::slotDefaultSliderMoved(int value)
+{
+    showToolTip(m_defaultSizeSlider, value);
+}
+
+void ViewSettingsTab::slotPreviewSliderMoved(int value)
+{
+    showToolTip(m_previewSizeSlider, value);
+}
+
+void ViewSettingsTab::showToolTip(QSlider* slider, int value)
+{
+    const int size = ZoomLevelInfo::iconSizeForZoomLevel(value);
+    slider->setToolTip(i18ncp("@info:tooltip", "Size: 1 pixel", "Size: %1 pixels", size));
+    if (!slider->isVisible()) {
+        return;
+    }
+    QPoint global = slider->rect().topLeft();
+    global.ry() += slider->height() / 2;
+    QHelpEvent toolTipEvent(QEvent::ToolTip, QPoint(0, 0), slider->mapToGlobal(global));
+    QApplication::sendEvent(slider, &toolTipEvent);
+}
+