]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/iconsizedialog.cpp
fixed issue that when using "Use common view properties for all folders" the view...
[dolphin.git] / src / iconsizedialog.cpp
index 55256e87cd9831bb7a418d5d7503539c757706b7..f4a717114b3a50115ad85526d02e490e9ac7992c 100644 (file)
 
 #include "dolphin_iconsmodesettings.h"
 
-#include <kglobalsettings.h>
+#include <kcolorscheme.h>
+#include <kiconloader.h>
 #include <klocale.h>
 #include <kvbox.h>
 
 #include <QGroupBox>
 #include <QLabel>
 #include <QSlider>
-#include <QVBoxLayout>
+#include <QBoxLayout>
 
 IconSizeDialog::IconSizeDialog(QWidget* parent) :
-        KDialog(parent),
-        m_iconSize(0),
-        m_previewSize(0),
-        m_iconSizeSlider(0),
-        m_iconSizeViewer(0),
-        m_previewSizeSlider(0),
-        m_previewSizeViewer(0)
-
+    KDialog(parent),
+    m_iconSize(0),
+    m_previewSize(0),
+    m_iconSizeSlider(0),
+    m_iconSizeViewer(0),
+    m_previewSizeSlider(0),
+    m_previewSizeViewer(0)
 {
     IconsModeSettings* settings = DolphinSettings::instance().iconsModeSettings();
     Q_ASSERT(settings != 0);
@@ -50,7 +50,7 @@ IconSizeDialog::IconSizeDialog(QWidget* parent) :
 
     const int spacing = KDialog::spacingHint();
 
-    setCaption(i18n("Change Icon & Preview Size"));
+    setCaption(i18nc("@title:window", "Change Icon & Preview Size"));
     setButtons(Ok | Cancel);
     setDefaultButton(Ok);
 
@@ -58,24 +58,29 @@ IconSizeDialog::IconSizeDialog(QWidget* parent) :
     QHBoxLayout* topLayout = new QHBoxLayout();
 
     // create 'Icon Size' group including slider and preview
-    QGroupBox* iconSizeBox = new QGroupBox(i18n("Icon Size"), main);
+    QGroupBox* iconSizeBox = new QGroupBox(i18nc("@title:group", "Icon Size"), main);
 
-    const QColor iconBackgroundColor(KGlobalSettings::baseColor());
+    const QColor iconBackgroundColor = KColorScheme(QPalette::Active, KColorScheme::View).background().color();
 
     KHBox* iconSizeHBox = new KHBox(iconSizeBox);
     iconSizeHBox->setSpacing(spacing);
-    new QLabel(i18n("Small"), iconSizeHBox);
-    m_iconSizeSlider = new QSlider(0, 5, 1, 0,  Qt::Horizontal, iconSizeHBox);
+    new QLabel(i18nc("@item:inrange Icon Size", "Small"), iconSizeHBox);
+    m_iconSizeSlider = new QSlider(Qt::Horizontal, iconSizeHBox);
+    m_iconSizeSlider->setMinimum(0);
+    m_iconSizeSlider->setMaximum(5);
+    m_iconSizeSlider->setPageStep(1);
     m_iconSizeSlider->setValue(sliderValue(settings->iconSize()));
-    m_iconSizeSlider->setTickmarks(QSlider::TicksBelow);
+    m_iconSizeSlider->setTickPosition(QSlider::TicksBelow);
     connect(m_iconSizeSlider, SIGNAL(valueChanged(int)),
             this, SLOT(updateIconSize(int)));
-    new QLabel(i18n("Large"), iconSizeHBox);
-
-    m_iconSizeViewer = new PixmapViewer(iconSizeBox);
-    m_iconSizeViewer->setMinimumWidth(K3Icon::SizeEnormous);
-    m_iconSizeViewer->setFixedHeight(K3Icon::SizeEnormous);
-    m_iconSizeViewer->setEraseColor(iconBackgroundColor);
+    new QLabel(i18nc("@item:inrange Icon Size", "Large"), iconSizeHBox);
+
+    m_iconSizeViewer = new PixmapViewer(iconSizeBox, PixmapViewer::SizeTransition);
+    m_iconSizeViewer->setMinimumWidth(KIconLoader::SizeEnormous);
+    m_iconSizeViewer->setFixedHeight(KIconLoader::SizeEnormous);
+    QPalette p = m_iconSizeViewer->palette();
+    p.setColor(m_iconSizeViewer->backgroundRole(), iconBackgroundColor);
+    m_iconSizeViewer->setPalette(p);
     updateIconSize(m_iconSizeSlider->value());
 
     QVBoxLayout* iconSizeLayout = new QVBoxLayout(iconSizeBox);
@@ -83,22 +88,27 @@ IconSizeDialog::IconSizeDialog(QWidget* parent) :
     iconSizeLayout->addWidget(m_iconSizeViewer);
 
     // create 'Preview Size' group including slider and preview
-    QGroupBox* previewSizeBox = new QGroupBox(i18n("Preview Size"), main);
+    QGroupBox* previewSizeBox = new QGroupBox(i18nc("@title:group", "Preview Size"), main);
 
     KHBox* previewSizeHBox = new KHBox(previewSizeBox);
     previewSizeHBox->setSpacing(spacing);
-    new QLabel(i18n("Small"), previewSizeHBox);
-    m_previewSizeSlider = new QSlider(0, 5, 1, 0,  Qt::Horizontal, previewSizeHBox);
+    new QLabel(i18nc("@item:inrange Preview Size", "Small"), previewSizeHBox);
+    m_previewSizeSlider = new QSlider(Qt::Horizontal, previewSizeHBox);
+    m_previewSizeSlider->setMinimum(0);
+    m_previewSizeSlider->setMaximum(5);
+    m_previewSizeSlider->setPageStep(1);
     m_previewSizeSlider->setValue(sliderValue(settings->previewSize()));
-    m_previewSizeSlider->setTickmarks(QSlider::TicksBelow);
+    m_previewSizeSlider->setTickPosition(QSlider::TicksBelow);
     connect(m_previewSizeSlider, SIGNAL(valueChanged(int)),
             this, SLOT(updatePreviewSize(int)));
-    new QLabel(i18n("Large"), previewSizeHBox);
-
-    m_previewSizeViewer = new PixmapViewer(previewSizeBox);
-    m_previewSizeViewer->setMinimumWidth(K3Icon::SizeEnormous);
-    m_previewSizeViewer->setFixedHeight(K3Icon::SizeEnormous);
-    m_previewSizeViewer->setEraseColor(iconBackgroundColor);
+    new QLabel(i18nc("@item:inrange Preview Size", "Large"), previewSizeHBox);
+
+    m_previewSizeViewer = new PixmapViewer(previewSizeBox, PixmapViewer::SizeTransition);
+    m_previewSizeViewer->setMinimumWidth(KIconLoader::SizeEnormous);
+    m_previewSizeViewer->setFixedHeight(KIconLoader::SizeEnormous);
+    p = m_previewSizeViewer->palette();
+    p.setColor(m_previewSizeViewer->backgroundRole(), iconBackgroundColor);
+    m_previewSizeViewer->setPalette(p);
     updatePreviewSize(m_previewSizeSlider->value());
 
     QVBoxLayout* previewSizeLayout = new QVBoxLayout(previewSizeBox);
@@ -109,10 +119,18 @@ IconSizeDialog::IconSizeDialog(QWidget* parent) :
     topLayout->addWidget(previewSizeBox);
     main->setLayout(topLayout);
     setMainWidget(main);
+
+    const KConfigGroup dialogConfig(KSharedConfig::openConfig("dolphinrc"),
+                                    "IconSizeDialog");
+    restoreDialogSize(dialogConfig);
 }
 
 IconSizeDialog::~IconSizeDialog()
-{}
+{
+    KConfigGroup dialogConfig(KSharedConfig::openConfig("dolphinrc"),
+                              "IconSizeDialog");
+    saveDialogSize(dialogConfig, KConfigBase::Persistent);
+}
 
 void IconSizeDialog::slotButtonClicked(int button)
 {
@@ -131,40 +149,32 @@ void IconSizeDialog::slotButtonClicked(int button)
 
 void IconSizeDialog::updateIconSize(int value)
 {
-    KIconLoader iconLoader;
-    m_iconSizeViewer->setPixmap(iconLoader.loadIcon("folder", K3Icon::Desktop, iconSize(value)));
-
+    m_iconSizeViewer->setPixmap(KIconLoader::global()->loadIcon("folder", KIconLoader::Desktop, iconSize(value)));
     if (m_previewSizeSlider != 0) {
-        int previewSizeValue = m_previewSizeSlider->value();
-        if (previewSizeValue < value) {
-            // assure that the preview size is never smaller than the icon size
-            previewSizeValue = value;
-        }
-        updatePreviewSize(previewSizeValue);
+        updatePreviewSize(m_previewSizeSlider->value());
     }
 }
 
 void IconSizeDialog::updatePreviewSize(int value)
 {
-    KIconLoader iconLoader;
     const int iconSizeValue = m_iconSizeSlider->value();
     if (value < iconSizeValue) {
         // assure that the preview size is never smaller than the icon size
         value = iconSizeValue;
     }
-    m_previewSizeViewer->setPixmap(iconLoader.loadIcon("preview", K3Icon::Desktop, iconSize(value)));
+    m_previewSizeViewer->setPixmap(KIconLoader::global()->loadIcon("preview", KIconLoader::Desktop, iconSize(value)));
 }
 
 int IconSizeDialog::iconSize(int sliderValue) const
 {
-    int size = K3Icon::SizeMedium;
+    int size = KIconLoader::SizeMedium;
     switch (sliderValue) {
-    case 0: size = K3Icon::SizeSmall; break;
-    case 1: size = K3Icon::SizeSmallMedium; break;
-    case 2: size = K3Icon::SizeMedium; break;
-    case 3: size = K3Icon::SizeLarge; break;
-    case 4: size = K3Icon::SizeHuge; break;
-    case 5: size = K3Icon::SizeEnormous; break;
+    case 0: size = KIconLoader::SizeSmall; break;
+    case 1: size = KIconLoader::SizeSmallMedium; break;
+    case 2: size = KIconLoader::SizeMedium; break;
+    case 3: size = KIconLoader::SizeLarge; break;
+    case 4: size = KIconLoader::SizeHuge; break;
+    case 5: size = KIconLoader::SizeEnormous; break;
     }
     return size;
 }
@@ -173,12 +183,12 @@ int IconSizeDialog::sliderValue(int iconSize) const
 {
     int value = 0;
     switch (iconSize) {
-    case K3Icon::SizeSmall:       value = 0; break;
-    case K3Icon::SizeSmallMedium: value = 1; break;
-    case K3Icon::SizeMedium:      value = 2; break;
-    case K3Icon::SizeLarge:       value = 3; break;
-    case K3Icon::SizeHuge:        value = 4; break;
-    case K3Icon::SizeEnormous:    value = 5; break;
+    case KIconLoader::SizeSmall:       value = 0; break;
+    case KIconLoader::SizeSmallMedium: value = 1; break;
+    case KIconLoader::SizeMedium:      value = 2; break;
+    case KIconLoader::SizeLarge:       value = 3; break;
+    case KIconLoader::SizeHuge:        value = 4; break;
+    case KIconLoader::SizeEnormous:    value = 5; break;
     default: break;
     }
     return value;