mirror of
https://invent.kde.org/system/dolphin
synced 2024-09-19 00:11:21 +00:00
Provide a common iconsize-widget for the settings dialog of the icons-, details- and column-view. The current version still requires some improvements (Labels on the left + right, preview, ...).
svn path=/trunk/KDE/kdebase/apps/; revision=852961
This commit is contained in:
parent
71819c80bb
commit
ca7aaecbdb
|
@ -18,6 +18,8 @@ endif (Nepomuk_FOUND)
|
||||||
########### next target ###############
|
########### next target ###############
|
||||||
|
|
||||||
set(dolphinprivate_LIB_SRCS
|
set(dolphinprivate_LIB_SRCS
|
||||||
|
additionalinfodialog.cpp
|
||||||
|
applyviewpropsjob.cpp
|
||||||
dolphincontroller.cpp
|
dolphincontroller.cpp
|
||||||
dolphindetailsview.cpp
|
dolphindetailsview.cpp
|
||||||
dolphiniconsview.cpp
|
dolphiniconsview.cpp
|
||||||
|
@ -44,8 +46,7 @@ set(dolphinprivate_LIB_SRCS
|
||||||
viewproperties.cpp
|
viewproperties.cpp
|
||||||
viewpropertiesdialog.cpp
|
viewpropertiesdialog.cpp
|
||||||
viewpropsprogressinfo.cpp
|
viewpropsprogressinfo.cpp
|
||||||
additionalinfodialog.cpp
|
zoomlevelinfo.cpp
|
||||||
applyviewpropsjob.cpp
|
|
||||||
)
|
)
|
||||||
|
|
||||||
kde4_add_kcfg_files(dolphinprivate_LIB_SRCS
|
kde4_add_kcfg_files(dolphinprivate_LIB_SRCS
|
||||||
|
@ -107,7 +108,7 @@ set(dolphin_SRCS
|
||||||
filterbar.cpp
|
filterbar.cpp
|
||||||
generalsettingspage.cpp
|
generalsettingspage.cpp
|
||||||
generalviewsettingspage.cpp
|
generalviewsettingspage.cpp
|
||||||
iconsizedialog.cpp
|
iconsizegroupbox.cpp
|
||||||
iconsviewsettingspage.cpp
|
iconsviewsettingspage.cpp
|
||||||
infosidebarpage.cpp
|
infosidebarpage.cpp
|
||||||
ktreeview.cpp
|
ktreeview.cpp
|
||||||
|
@ -125,6 +126,7 @@ set(dolphin_SRCS
|
||||||
sidebartreeview.cpp
|
sidebartreeview.cpp
|
||||||
viewsettingspage.cpp
|
viewsettingspage.cpp
|
||||||
viewsettingspagebase.cpp
|
viewsettingspagebase.cpp
|
||||||
|
zoomlevelinfo.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
kde4_add_kcfg_files(dolphin_SRCS
|
kde4_add_kcfg_files(dolphin_SRCS
|
||||||
|
@ -175,11 +177,12 @@ set(kcm_dolphin_PART_SRCS
|
||||||
dolphinfontrequester.cpp
|
dolphinfontrequester.cpp
|
||||||
# dolphinsettings.cpp
|
# dolphinsettings.cpp
|
||||||
generalviewsettingspage.cpp
|
generalviewsettingspage.cpp
|
||||||
iconsizedialog.cpp
|
iconsizegroupbox.cpp
|
||||||
iconsviewsettingspage.cpp
|
iconsviewsettingspage.cpp
|
||||||
pixmapviewer.cpp
|
pixmapviewer.cpp
|
||||||
viewsettingspagebase.cpp
|
viewsettingspagebase.cpp
|
||||||
# viewproperties.cpp
|
# viewproperties.cpp
|
||||||
|
zoomlevelinfo.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
kde4_add_kcfg_files(kcm_dolphin_PART_SRCS
|
kde4_add_kcfg_files(kcm_dolphin_PART_SRCS
|
||||||
|
|
|
@ -22,6 +22,8 @@
|
||||||
#include "dolphinfontrequester.h"
|
#include "dolphinfontrequester.h"
|
||||||
#include "dolphinsettings.h"
|
#include "dolphinsettings.h"
|
||||||
#include "dolphin_columnmodesettings.h"
|
#include "dolphin_columnmodesettings.h"
|
||||||
|
#include "iconsizegroupbox.h"
|
||||||
|
#include "zoomlevelinfo.h"
|
||||||
|
|
||||||
#include <kdialog.h>
|
#include <kdialog.h>
|
||||||
#include <klocale.h>
|
#include <klocale.h>
|
||||||
|
@ -37,9 +39,7 @@
|
||||||
|
|
||||||
ColumnViewSettingsPage::ColumnViewSettingsPage(QWidget* parent) :
|
ColumnViewSettingsPage::ColumnViewSettingsPage(QWidget* parent) :
|
||||||
ViewSettingsPageBase(parent),
|
ViewSettingsPageBase(parent),
|
||||||
m_smallIconSize(0),
|
m_iconSizeGroupBox(0),
|
||||||
m_mediumIconSize(0),
|
|
||||||
m_largeIconSize(0),
|
|
||||||
m_fontRequester(0),
|
m_fontRequester(0),
|
||||||
m_columnWidthSlider(0)
|
m_columnWidthSlider(0)
|
||||||
{
|
{
|
||||||
|
@ -49,6 +49,32 @@ ColumnViewSettingsPage::ColumnViewSettingsPage(QWidget* parent) :
|
||||||
|
|
||||||
setSpacing(spacing);
|
setSpacing(spacing);
|
||||||
setMargin(margin);
|
setMargin(margin);
|
||||||
|
|
||||||
|
// Create "Icon" properties
|
||||||
|
m_iconSizeGroupBox = new IconSizeGroupBox(this);
|
||||||
|
m_iconSizeGroupBox->setSizePolicy(sizePolicy);
|
||||||
|
|
||||||
|
const int min = ZoomLevelInfo::minimumLevel();
|
||||||
|
const int max = ZoomLevelInfo::maximumLevel();
|
||||||
|
m_iconSizeGroupBox->setDefaultSizeRange(min, max);
|
||||||
|
m_iconSizeGroupBox->setPreviewSizeRange(min, max);
|
||||||
|
|
||||||
|
connect(m_iconSizeGroupBox, SIGNAL(defaultSizeChanged(int)),
|
||||||
|
this, SIGNAL(changed()));
|
||||||
|
connect(m_iconSizeGroupBox, SIGNAL(previewSizeChanged(int)),
|
||||||
|
this, SIGNAL(changed()));
|
||||||
|
|
||||||
|
// create "Text" properties
|
||||||
|
QGroupBox* textBox = new QGroupBox(i18nc("@title:group", "Text"), this);
|
||||||
|
textBox->setSizePolicy(sizePolicy);
|
||||||
|
|
||||||
|
QLabel* fontLabel = new QLabel(i18nc("@label:listbox", "Font:"), textBox);
|
||||||
|
m_fontRequester = new DolphinFontRequester(textBox);
|
||||||
|
connect(m_fontRequester, SIGNAL(changed()), this, SIGNAL(changed()));
|
||||||
|
|
||||||
|
QHBoxLayout* textLayout = new QHBoxLayout(textBox);
|
||||||
|
textLayout->addWidget(fontLabel);
|
||||||
|
textLayout->addWidget(m_fontRequester);
|
||||||
|
|
||||||
// create "Column Width" properties
|
// create "Column Width" properties
|
||||||
QGroupBox* columnWidthBox = new QGroupBox(i18nc("@title:group", "Column Width"), this);
|
QGroupBox* columnWidthBox = new QGroupBox(i18nc("@title:group", "Column Width"), this);
|
||||||
|
@ -68,39 +94,6 @@ ColumnViewSettingsPage::ColumnViewSettingsPage(QWidget* parent) :
|
||||||
columnWidthLayout->addWidget(m_columnWidthSlider);
|
columnWidthLayout->addWidget(m_columnWidthSlider);
|
||||||
columnWidthLayout->addWidget(largeLabel);
|
columnWidthLayout->addWidget(largeLabel);
|
||||||
|
|
||||||
// Create 'Icon' properties
|
|
||||||
QGroupBox* iconSizeBox = new QGroupBox(i18nc("@title:group", "Icon Size"), this);
|
|
||||||
iconSizeBox->setSizePolicy(sizePolicy);
|
|
||||||
|
|
||||||
m_smallIconSize = new QRadioButton(i18nc("@option:radio Icon Size", "Small"), this);
|
|
||||||
m_mediumIconSize = new QRadioButton(i18nc("@option:radio Icon Size", "Medium"), this);
|
|
||||||
m_largeIconSize = new QRadioButton(i18nc("@option:radio Icon Size", "Large"), this);
|
|
||||||
connect(m_smallIconSize, SIGNAL(toggled(bool)), this, SIGNAL(changed()));
|
|
||||||
connect(m_mediumIconSize, SIGNAL(toggled(bool)), this, SIGNAL(changed()));
|
|
||||||
connect(m_largeIconSize, SIGNAL(toggled(bool)), this, SIGNAL(changed()));
|
|
||||||
|
|
||||||
QButtonGroup* iconSizeGroup = new QButtonGroup(this);
|
|
||||||
iconSizeGroup->addButton(m_smallIconSize);
|
|
||||||
iconSizeGroup->addButton(m_mediumIconSize);
|
|
||||||
iconSizeGroup->addButton(m_largeIconSize);
|
|
||||||
|
|
||||||
QHBoxLayout* iconSizeLayout = new QHBoxLayout(iconSizeBox);
|
|
||||||
iconSizeLayout->addWidget(m_smallIconSize);
|
|
||||||
iconSizeLayout->addWidget(m_mediumIconSize);
|
|
||||||
iconSizeLayout->addWidget(m_largeIconSize);
|
|
||||||
|
|
||||||
// create "Text" properties
|
|
||||||
QGroupBox* textBox = new QGroupBox(i18nc("@title:group", "Text"), this);
|
|
||||||
textBox->setSizePolicy(sizePolicy);
|
|
||||||
|
|
||||||
QLabel* fontLabel = new QLabel(i18nc("@label:listbox", "Font:"), textBox);
|
|
||||||
m_fontRequester = new DolphinFontRequester(textBox);
|
|
||||||
connect(m_fontRequester, SIGNAL(changed()), this, SIGNAL(changed()));
|
|
||||||
|
|
||||||
QHBoxLayout* textLayout = new QHBoxLayout(textBox);
|
|
||||||
textLayout->addWidget(fontLabel);
|
|
||||||
textLayout->addWidget(m_fontRequester);
|
|
||||||
|
|
||||||
// Add a dummy widget with no restriction regarding
|
// Add a dummy widget with no restriction regarding
|
||||||
// a vertical resizing. This assures that the dialog layout
|
// a vertical resizing. This assures that the dialog layout
|
||||||
// is not stretched vertically.
|
// is not stretched vertically.
|
||||||
|
@ -117,13 +110,10 @@ void ColumnViewSettingsPage::applySettings()
|
||||||
{
|
{
|
||||||
ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings();
|
ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings();
|
||||||
|
|
||||||
int iconSize = KIconLoader::SizeSmall;
|
const int iconSize = ZoomLevelInfo::iconSizeForZoomLevel(m_iconSizeGroupBox->defaultSizeValue());
|
||||||
if (m_mediumIconSize->isChecked()) {
|
const int previewSize = ZoomLevelInfo::iconSizeForZoomLevel(m_iconSizeGroupBox->previewSizeValue());
|
||||||
iconSize = KIconLoader::SizeMedium;
|
|
||||||
} else if (m_largeIconSize->isChecked()) {
|
|
||||||
iconSize = KIconLoader::SizeLarge;
|
|
||||||
}
|
|
||||||
settings->setIconSize(iconSize);
|
settings->setIconSize(iconSize);
|
||||||
|
settings->setPreviewSize(previewSize);
|
||||||
|
|
||||||
const QFont font = m_fontRequester->font();
|
const QFont font = m_fontRequester->font();
|
||||||
settings->setUseSystemFont(m_fontRequester->mode() == DolphinFontRequester::SystemFont);
|
settings->setUseSystemFont(m_fontRequester->mode() == DolphinFontRequester::SystemFont);
|
||||||
|
@ -147,19 +137,13 @@ void ColumnViewSettingsPage::loadSettings()
|
||||||
{
|
{
|
||||||
ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings();
|
ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings();
|
||||||
|
|
||||||
switch (settings->iconSize()) {
|
const QSize iconSize(settings->iconSize(), settings->iconSize());
|
||||||
case KIconLoader::SizeLarge:
|
const int iconSizeValue = ZoomLevelInfo::zoomLevelForIconSize(iconSize);
|
||||||
m_largeIconSize->setChecked(true);
|
m_iconSizeGroupBox->setDefaultSizeValue(iconSizeValue);
|
||||||
break;
|
|
||||||
|
const QSize previewSize(settings->previewSize(), settings->previewSize());
|
||||||
case KIconLoader::SizeMedium:
|
const int previewSizeValue = ZoomLevelInfo::zoomLevelForIconSize(previewSize);
|
||||||
m_mediumIconSize->setChecked(true);
|
m_iconSizeGroupBox->setPreviewSizeValue(previewSizeValue);
|
||||||
break;
|
|
||||||
|
|
||||||
case KIconLoader::SizeSmall:
|
|
||||||
default:
|
|
||||||
m_smallIconSize->setChecked(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (settings->useSystemFont()) {
|
if (settings->useSystemFont()) {
|
||||||
m_fontRequester->setMode(DolphinFontRequester::SystemFont);
|
m_fontRequester->setMode(DolphinFontRequester::SystemFont);
|
||||||
|
|
|
@ -24,8 +24,8 @@
|
||||||
|
|
||||||
class DolphinMainWindow;
|
class DolphinMainWindow;
|
||||||
class DolphinFontRequester;
|
class DolphinFontRequester;
|
||||||
|
class IconSizeGroupBox;
|
||||||
class QSlider;
|
class QSlider;
|
||||||
class QRadioButton;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Represents the page from the Dolphin Settings which allows
|
* @brief Represents the page from the Dolphin Settings which allows
|
||||||
|
@ -53,9 +53,7 @@ private:
|
||||||
void loadSettings();
|
void loadSettings();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QRadioButton* m_smallIconSize;
|
IconSizeGroupBox* m_iconSizeGroupBox;
|
||||||
QRadioButton* m_mediumIconSize;
|
|
||||||
QRadioButton* m_largeIconSize;
|
|
||||||
DolphinFontRequester* m_fontRequester;
|
DolphinFontRequester* m_fontRequester;
|
||||||
QSlider* m_columnWidthSlider;
|
QSlider* m_columnWidthSlider;
|
||||||
};
|
};
|
||||||
|
|
|
@ -19,8 +19,10 @@
|
||||||
|
|
||||||
#include "detailsviewsettingspage.h"
|
#include "detailsviewsettingspage.h"
|
||||||
|
|
||||||
|
#include "iconsizegroupbox.h"
|
||||||
#include "dolphinsettings.h"
|
#include "dolphinsettings.h"
|
||||||
#include "dolphin_detailsmodesettings.h"
|
#include "dolphin_detailsmodesettings.h"
|
||||||
|
#include "zoomlevelinfo.h"
|
||||||
|
|
||||||
#include <kdialog.h>
|
#include <kdialog.h>
|
||||||
#include <dolphinfontrequester.h>
|
#include <dolphinfontrequester.h>
|
||||||
|
@ -37,9 +39,7 @@
|
||||||
|
|
||||||
DetailsViewSettingsPage::DetailsViewSettingsPage(QWidget* parent) :
|
DetailsViewSettingsPage::DetailsViewSettingsPage(QWidget* parent) :
|
||||||
ViewSettingsPageBase(parent),
|
ViewSettingsPageBase(parent),
|
||||||
m_smallIconSize(0),
|
m_iconSizeGroupBox(0),
|
||||||
m_mediumIconSize(0),
|
|
||||||
m_largeIconSize(0),
|
|
||||||
m_fontRequester(0),
|
m_fontRequester(0),
|
||||||
m_expandableFolders(0)
|
m_expandableFolders(0)
|
||||||
{
|
{
|
||||||
|
@ -51,25 +51,18 @@ DetailsViewSettingsPage::DetailsViewSettingsPage(QWidget* parent) :
|
||||||
setMargin(margin);
|
setMargin(margin);
|
||||||
|
|
||||||
// Create "Icon" properties
|
// Create "Icon" properties
|
||||||
QGroupBox* iconSizeBox = new QGroupBox(i18nc("@title:group", "Icon Size"), this);
|
m_iconSizeGroupBox = new IconSizeGroupBox(this);
|
||||||
iconSizeBox->setSizePolicy(sizePolicy);
|
m_iconSizeGroupBox->setSizePolicy(sizePolicy);
|
||||||
|
|
||||||
m_smallIconSize = new QRadioButton(i18nc("@option:radio Icon Size", "Small"), this);
|
const int min = ZoomLevelInfo::minimumLevel();
|
||||||
m_mediumIconSize = new QRadioButton(i18nc("@option:radio Icon Size", "Medium"), this);
|
const int max = ZoomLevelInfo::maximumLevel();
|
||||||
m_largeIconSize = new QRadioButton(i18nc("@option:radio Icon Size", "Large"), this);
|
m_iconSizeGroupBox->setDefaultSizeRange(min, max);
|
||||||
connect(m_smallIconSize, SIGNAL(toggled(bool)), this, SIGNAL(changed()));
|
m_iconSizeGroupBox->setPreviewSizeRange(min, max);
|
||||||
connect(m_mediumIconSize, SIGNAL(toggled(bool)), this, SIGNAL(changed()));
|
|
||||||
connect(m_largeIconSize, SIGNAL(toggled(bool)), this, SIGNAL(changed()));
|
connect(m_iconSizeGroupBox, SIGNAL(defaultSizeChanged(int)),
|
||||||
|
this, SIGNAL(changed()));
|
||||||
QButtonGroup* iconSizeGroup = new QButtonGroup(this);
|
connect(m_iconSizeGroupBox, SIGNAL(previewSizeChanged(int)),
|
||||||
iconSizeGroup->addButton(m_smallIconSize);
|
this, SIGNAL(changed()));
|
||||||
iconSizeGroup->addButton(m_mediumIconSize);
|
|
||||||
iconSizeGroup->addButton(m_largeIconSize);
|
|
||||||
|
|
||||||
QHBoxLayout* iconSizeLayout = new QHBoxLayout(iconSizeBox);
|
|
||||||
iconSizeLayout->addWidget(m_smallIconSize);
|
|
||||||
iconSizeLayout->addWidget(m_mediumIconSize);
|
|
||||||
iconSizeLayout->addWidget(m_largeIconSize);
|
|
||||||
|
|
||||||
// create "Text" properties
|
// create "Text" properties
|
||||||
QGroupBox* textBox = new QGroupBox(i18nc("@title:group", "Text"), this);
|
QGroupBox* textBox = new QGroupBox(i18nc("@title:group", "Text"), this);
|
||||||
|
@ -103,13 +96,10 @@ void DetailsViewSettingsPage::applySettings()
|
||||||
{
|
{
|
||||||
DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings();
|
DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings();
|
||||||
|
|
||||||
int iconSize = KIconLoader::SizeSmall;
|
const int iconSize = ZoomLevelInfo::iconSizeForZoomLevel(m_iconSizeGroupBox->defaultSizeValue());
|
||||||
if (m_mediumIconSize->isChecked()) {
|
const int previewSize = ZoomLevelInfo::iconSizeForZoomLevel(m_iconSizeGroupBox->previewSizeValue());
|
||||||
iconSize = KIconLoader::SizeMedium;
|
|
||||||
} else if (m_largeIconSize->isChecked()) {
|
|
||||||
iconSize = KIconLoader::SizeLarge;
|
|
||||||
}
|
|
||||||
settings->setIconSize(iconSize);
|
settings->setIconSize(iconSize);
|
||||||
|
settings->setPreviewSize(previewSize);
|
||||||
|
|
||||||
const QFont font = m_fontRequester->font();
|
const QFont font = m_fontRequester->font();
|
||||||
settings->setUseSystemFont(m_fontRequester->mode() == DolphinFontRequester::SystemFont);
|
settings->setUseSystemFont(m_fontRequester->mode() == DolphinFontRequester::SystemFont);
|
||||||
|
@ -132,20 +122,14 @@ void DetailsViewSettingsPage::loadSettings()
|
||||||
{
|
{
|
||||||
DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings();
|
DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings();
|
||||||
|
|
||||||
switch (settings->iconSize()) {
|
const QSize iconSize(settings->iconSize(), settings->iconSize());
|
||||||
case KIconLoader::SizeLarge:
|
const int iconSizeValue = ZoomLevelInfo::zoomLevelForIconSize(iconSize);
|
||||||
m_largeIconSize->setChecked(true);
|
m_iconSizeGroupBox->setDefaultSizeValue(iconSizeValue);
|
||||||
break;
|
|
||||||
|
const QSize previewSize(settings->previewSize(), settings->previewSize());
|
||||||
case KIconLoader::SizeMedium:
|
const int previewSizeValue = ZoomLevelInfo::zoomLevelForIconSize(previewSize);
|
||||||
m_mediumIconSize->setChecked(true);
|
m_iconSizeGroupBox->setPreviewSizeValue(previewSizeValue);
|
||||||
break;
|
|
||||||
|
|
||||||
case KIconLoader::SizeSmall:
|
|
||||||
default:
|
|
||||||
m_smallIconSize->setChecked(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (settings->useSystemFont()) {
|
if (settings->useSystemFont()) {
|
||||||
m_fontRequester->setMode(DolphinFontRequester::SystemFont);
|
m_fontRequester->setMode(DolphinFontRequester::SystemFont);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -23,8 +23,8 @@
|
||||||
#include <viewsettingspagebase.h>
|
#include <viewsettingspagebase.h>
|
||||||
|
|
||||||
class DolphinFontRequester;
|
class DolphinFontRequester;
|
||||||
|
class IconSizeGroupBox;
|
||||||
class QCheckBox;
|
class QCheckBox;
|
||||||
class QRadioButton;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Represents the page from the Dolphin Settings which allows
|
* @brief Represents the page from the Dolphin Settings which allows
|
||||||
|
@ -52,9 +52,7 @@ private:
|
||||||
void loadSettings();
|
void loadSettings();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QRadioButton* m_smallIconSize;
|
IconSizeGroupBox* m_iconSizeGroupBox;
|
||||||
QRadioButton* m_mediumIconSize;
|
|
||||||
QRadioButton* m_largeIconSize;
|
|
||||||
DolphinFontRequester* m_fontRequester;
|
DolphinFontRequester* m_fontRequester;
|
||||||
QCheckBox* m_expandableFolders;
|
QCheckBox* m_expandableFolders;
|
||||||
};
|
};
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
#include "dolphincolumnwidget.h"
|
#include "dolphincolumnwidget.h"
|
||||||
#include "dolphincontroller.h"
|
#include "dolphincontroller.h"
|
||||||
#include "dolphinsettings.h"
|
#include "dolphinsettings.h"
|
||||||
|
#include "zoomlevelinfo.h"
|
||||||
|
|
||||||
#include "dolphin_columnmodesettings.h"
|
#include "dolphin_columnmodesettings.h"
|
||||||
|
|
||||||
|
@ -368,7 +369,7 @@ void DolphinColumnView::wheelEvent(QWheelEvent* event)
|
||||||
|
|
||||||
void DolphinColumnView::setZoomLevel(int level)
|
void DolphinColumnView::setZoomLevel(int level)
|
||||||
{
|
{
|
||||||
const int size = DolphinController::iconSizeForZoomLevel(level);
|
const int size = ZoomLevelInfo::iconSizeForZoomLevel(level);
|
||||||
ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings();
|
ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings();
|
||||||
|
|
||||||
const bool showPreview = m_controller->dolphinView()->showPreview();
|
const bool showPreview = m_controller->dolphinView()->showPreview();
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
#include "dolphincontroller.h"
|
#include "dolphincontroller.h"
|
||||||
|
#include "zoomlevelinfo.h"
|
||||||
|
|
||||||
#include <kdirmodel.h>
|
#include <kdirmodel.h>
|
||||||
#include <QAbstractProxyModel>
|
#include <QAbstractProxyModel>
|
||||||
|
@ -57,7 +58,7 @@ void DolphinController::setItemView(QAbstractItemView* view)
|
||||||
m_itemView = view;
|
m_itemView = view;
|
||||||
|
|
||||||
if (m_itemView != 0) {
|
if (m_itemView != 0) {
|
||||||
m_zoomLevel = zoomLevelForIconSize(m_itemView->iconSize());
|
m_zoomLevel = ZoomLevelInfo::zoomLevelForIconSize(m_itemView->iconSize());
|
||||||
|
|
||||||
// TODO: this is a workaround until Qt-issue 176832 has been fixed
|
// TODO: this is a workaround until Qt-issue 176832 has been fixed
|
||||||
connect(m_itemView, SIGNAL(pressed(const QModelIndex&)),
|
connect(m_itemView, SIGNAL(pressed(const QModelIndex&)),
|
||||||
|
@ -113,48 +114,14 @@ void DolphinController::indicateActivationChange(bool active)
|
||||||
|
|
||||||
void DolphinController::setZoomLevel(int level)
|
void DolphinController::setZoomLevel(int level)
|
||||||
{
|
{
|
||||||
Q_ASSERT(level >= zoomLevelMinimum());
|
Q_ASSERT(level >= ZoomLevelInfo::minimumLevel());
|
||||||
Q_ASSERT(level <= zoomLevelMaximum());
|
Q_ASSERT(level <= ZoomLevelInfo::maximumLevel());
|
||||||
if (level != m_zoomLevel) {
|
if (level != m_zoomLevel) {
|
||||||
m_zoomLevel = level;
|
m_zoomLevel = level;
|
||||||
emit zoomLevelChanged(m_zoomLevel);
|
emit zoomLevelChanged(m_zoomLevel);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int DolphinController::iconSizeForZoomLevel(int level)
|
|
||||||
{
|
|
||||||
int size = KIconLoader::SizeMedium;
|
|
||||||
switch (level) {
|
|
||||||
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;
|
|
||||||
case 6: size = KIconLoader::SizeEnormous * 3 / 2; break;
|
|
||||||
case 7: size = KIconLoader::SizeEnormous * 2; break;
|
|
||||||
default: Q_ASSERT(false); break;
|
|
||||||
}
|
|
||||||
return size;
|
|
||||||
}
|
|
||||||
|
|
||||||
int DolphinController::zoomLevelForIconSize(const QSize& size)
|
|
||||||
{
|
|
||||||
int level = 0;
|
|
||||||
switch (size.height()) {
|
|
||||||
case KIconLoader::SizeSmall: level = 0; break;
|
|
||||||
case KIconLoader::SizeSmallMedium: level = 1; break;
|
|
||||||
case KIconLoader::SizeMedium: level = 2; break;
|
|
||||||
case KIconLoader::SizeLarge: level = 3; break;
|
|
||||||
case KIconLoader::SizeHuge: level = 4; break;
|
|
||||||
case KIconLoader::SizeEnormous: level = 5; break;
|
|
||||||
case KIconLoader::SizeEnormous * 3 / 2: level = 6; break;
|
|
||||||
case KIconLoader::SizeEnormous * 2: level = 7; break;
|
|
||||||
default: Q_ASSERT(false); level = 3; break;
|
|
||||||
}
|
|
||||||
return level;
|
|
||||||
}
|
|
||||||
|
|
||||||
void DolphinController::handleKeyPressEvent(QKeyEvent* event)
|
void DolphinController::handleKeyPressEvent(QKeyEvent* event)
|
||||||
{
|
{
|
||||||
Q_ASSERT(m_itemView != 0);
|
Q_ASSERT(m_itemView != 0);
|
||||||
|
|
|
@ -185,23 +185,6 @@ public:
|
||||||
void setZoomLevel(int level);
|
void setZoomLevel(int level);
|
||||||
int zoomLevel() const;
|
int zoomLevel() const;
|
||||||
|
|
||||||
int zoomLevelMinimum() const;
|
|
||||||
int zoomLevelMaximum() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Helper method for the view implementation to get
|
|
||||||
* the icon size for the zoom level \a level
|
|
||||||
* (see DolphinController::zoomLevel()).
|
|
||||||
*/
|
|
||||||
static int iconSizeForZoomLevel(int level);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Helper method for the view implementation to get
|
|
||||||
* the zoom level for the icon size \a size
|
|
||||||
* (see DolphinController::zoomLevel()).
|
|
||||||
*/
|
|
||||||
static int zoomLevelForIconSize(const QSize& size);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tells the view implementation to zoom out by emitting the signal zoomOut()
|
* Tells the view implementation to zoom out by emitting the signal zoomOut()
|
||||||
* and is invoked by the abstract Dolphin view.
|
* and is invoked by the abstract Dolphin view.
|
||||||
|
@ -383,14 +366,4 @@ inline int DolphinController::zoomLevel() const
|
||||||
return m_zoomLevel;
|
return m_zoomLevel;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline int DolphinController::zoomLevelMinimum() const
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
inline int DolphinController::zoomLevelMaximum() const
|
|
||||||
{
|
|
||||||
return 7;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
#include "draganddrophelper.h"
|
#include "draganddrophelper.h"
|
||||||
#include "selectionmanager.h"
|
#include "selectionmanager.h"
|
||||||
#include "viewproperties.h"
|
#include "viewproperties.h"
|
||||||
|
#include "zoomlevelinfo.h"
|
||||||
|
|
||||||
#include "dolphin_detailsmodesettings.h"
|
#include "dolphin_detailsmodesettings.h"
|
||||||
#include "dolphin_generalsettings.h"
|
#include "dolphin_generalsettings.h"
|
||||||
|
@ -496,7 +497,7 @@ QRect DolphinDetailsView::elasticBandRect() const
|
||||||
|
|
||||||
void DolphinDetailsView::setZoomLevel(int level)
|
void DolphinDetailsView::setZoomLevel(int level)
|
||||||
{
|
{
|
||||||
const int size = DolphinController::iconSizeForZoomLevel(level);
|
const int size = ZoomLevelInfo::iconSizeForZoomLevel(level);
|
||||||
DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings();
|
DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings();
|
||||||
|
|
||||||
const bool showPreview = m_controller->dolphinView()->showPreview();
|
const bool showPreview = m_controller->dolphinView()->showPreview();
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
#include "dolphin_generalsettings.h"
|
#include "dolphin_generalsettings.h"
|
||||||
#include "draganddrophelper.h"
|
#include "draganddrophelper.h"
|
||||||
#include "selectionmanager.h"
|
#include "selectionmanager.h"
|
||||||
|
#include "zoomlevelinfo.h"
|
||||||
|
|
||||||
#include <kcategorizedsortfilterproxymodel.h>
|
#include <kcategorizedsortfilterproxymodel.h>
|
||||||
#include <kdialog.h>
|
#include <kdialog.h>
|
||||||
|
@ -339,10 +340,10 @@ void DolphinIconsView::setZoomLevel(int level)
|
||||||
|
|
||||||
const bool showPreview = m_controller->dolphinView()->showPreview();
|
const bool showPreview = m_controller->dolphinView()->showPreview();
|
||||||
if (showPreview) {
|
if (showPreview) {
|
||||||
const int previewSize = DolphinController::iconSizeForZoomLevel(level);
|
const int previewSize = ZoomLevelInfo::iconSizeForZoomLevel(level);
|
||||||
settings->setPreviewSize(previewSize);
|
settings->setPreviewSize(previewSize);
|
||||||
} else {
|
} else {
|
||||||
newIconSize = DolphinController::iconSizeForZoomLevel(level);
|
newIconSize = ZoomLevelInfo::iconSizeForZoomLevel(level);
|
||||||
settings->setIconSize(newIconSize);
|
settings->setIconSize(newIconSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -62,6 +62,7 @@
|
||||||
#include "renamedialog.h"
|
#include "renamedialog.h"
|
||||||
#include "tooltipmanager.h"
|
#include "tooltipmanager.h"
|
||||||
#include "viewproperties.h"
|
#include "viewproperties.h"
|
||||||
|
#include "zoomlevelinfo.h"
|
||||||
|
|
||||||
DolphinView::DolphinView(QWidget* parent,
|
DolphinView::DolphinView(QWidget* parent,
|
||||||
const KUrl& url,
|
const KUrl& url,
|
||||||
|
@ -364,10 +365,10 @@ QPoint DolphinView::contentsPosition() const
|
||||||
|
|
||||||
void DolphinView::setZoomLevel(int level)
|
void DolphinView::setZoomLevel(int level)
|
||||||
{
|
{
|
||||||
if (level < zoomLevelMinimum()) {
|
if (level < ZoomLevelInfo::minimumLevel()) {
|
||||||
level = zoomLevelMinimum();
|
level = ZoomLevelInfo::minimumLevel();
|
||||||
} else if (level > zoomLevelMaximum()) {
|
} else if (level > ZoomLevelInfo::maximumLevel()) {
|
||||||
level = zoomLevelMaximum();
|
level = ZoomLevelInfo::maximumLevel();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (level != zoomLevel()) {
|
if (level != zoomLevel()) {
|
||||||
|
@ -382,16 +383,6 @@ int DolphinView::zoomLevel() const
|
||||||
return m_controller->zoomLevel();
|
return m_controller->zoomLevel();
|
||||||
}
|
}
|
||||||
|
|
||||||
int DolphinView::zoomLevelMinimum() const
|
|
||||||
{
|
|
||||||
return m_controller->zoomLevelMinimum();
|
|
||||||
}
|
|
||||||
|
|
||||||
int DolphinView::zoomLevelMaximum() const
|
|
||||||
{
|
|
||||||
return m_controller->zoomLevelMaximum();
|
|
||||||
}
|
|
||||||
|
|
||||||
void DolphinView::setSorting(Sorting sorting)
|
void DolphinView::setSorting(Sorting sorting)
|
||||||
{
|
{
|
||||||
if (sorting != this->sorting()) {
|
if (sorting != this->sorting()) {
|
||||||
|
@ -1276,7 +1267,7 @@ void DolphinView::pasteToUrl(const KUrl& url)
|
||||||
|
|
||||||
void DolphinView::updateZoomLevel(int oldZoomLevel)
|
void DolphinView::updateZoomLevel(int oldZoomLevel)
|
||||||
{
|
{
|
||||||
const int newZoomLevel = DolphinController::zoomLevelForIconSize(itemView()->iconSize());
|
const int newZoomLevel = ZoomLevelInfo::zoomLevelForIconSize(itemView()->iconSize());
|
||||||
if (oldZoomLevel != newZoomLevel) {
|
if (oldZoomLevel != newZoomLevel) {
|
||||||
m_controller->setZoomLevel(newZoomLevel);
|
m_controller->setZoomLevel(newZoomLevel);
|
||||||
emit zoomLevelChanged(newZoomLevel);
|
emit zoomLevelChanged(newZoomLevel);
|
||||||
|
|
|
@ -236,24 +236,21 @@ public:
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the zoom level to \a level. It is assured that the used
|
* Sets the zoom level to \a level. It is assured that the used
|
||||||
* level is adjusted to be inside the range DolphinView::zoomLevelMinimum() and
|
* level is adjusted to be inside the range ZoomLevelInfo::minimumLevel() and
|
||||||
* DolphinView::zoomLevelMaximum().
|
* ZoomLevelInfo::maximumLevel().
|
||||||
*/
|
*/
|
||||||
void setZoomLevel(int level);
|
void setZoomLevel(int level);
|
||||||
int zoomLevel() const;
|
int zoomLevel() const;
|
||||||
|
|
||||||
int zoomLevelMinimum() const;
|
|
||||||
int zoomLevelMaximum() const;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns true, if zooming in is possible. If false is returned,
|
* Returns true, if zooming in is possible. If false is returned,
|
||||||
* the minimal zoom size is possible.
|
* the maximimum zooming level has been reached.
|
||||||
*/
|
*/
|
||||||
bool isZoomInPossible() const;
|
bool isZoomInPossible() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns true, if zooming out is possible. If false is returned,
|
* Returns true, if zooming out is possible. If false is returned,
|
||||||
* the maximum zoom size is possible.
|
* the minimum zooming level has been reached.
|
||||||
*/
|
*/
|
||||||
bool isZoomOutPossible() const;
|
bool isZoomOutPossible() const;
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
|
|
||||||
#include "viewpropertiesdialog.h"
|
#include "viewpropertiesdialog.h"
|
||||||
#include "dolphinview.h"
|
#include "dolphinview.h"
|
||||||
|
#include "zoomlevelinfo.h"
|
||||||
|
|
||||||
#include <konq_operations.h>
|
#include <konq_operations.h>
|
||||||
|
|
||||||
|
@ -495,12 +496,12 @@ void DolphinViewActionHandler::slotZoomLevelChanged(int level)
|
||||||
{
|
{
|
||||||
QAction* zoomInAction = m_actionCollection->action(KStandardAction::name(KStandardAction::ZoomIn));
|
QAction* zoomInAction = m_actionCollection->action(KStandardAction::name(KStandardAction::ZoomIn));
|
||||||
if (zoomInAction != 0) {
|
if (zoomInAction != 0) {
|
||||||
zoomInAction->setEnabled(level < m_currentView->zoomLevelMaximum());
|
zoomInAction->setEnabled(level < ZoomLevelInfo::maximumLevel());
|
||||||
}
|
}
|
||||||
|
|
||||||
QAction* zoomOutAction = m_actionCollection->action(KStandardAction::name(KStandardAction::ZoomOut));
|
QAction* zoomOutAction = m_actionCollection->action(KStandardAction::name(KStandardAction::ZoomOut));
|
||||||
if (zoomOutAction != 0) {
|
if (zoomOutAction != 0) {
|
||||||
zoomOutAction->setEnabled(level > m_currentView->zoomLevelMinimum());
|
zoomOutAction->setEnabled(level > ZoomLevelInfo::minimumLevel());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,184 +0,0 @@
|
||||||
/***************************************************************************
|
|
||||||
* Copyright (C) 2006 by Peter Penz <peter.penz@gmx.at> *
|
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or modify *
|
|
||||||
* it under the terms of the GNU General Public License as published by *
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or *
|
|
||||||
* (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program; if not, write to the *
|
|
||||||
* Free Software Foundation, Inc., *
|
|
||||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
|
|
||||||
***************************************************************************/
|
|
||||||
|
|
||||||
#include "iconsizedialog.h"
|
|
||||||
|
|
||||||
#include "dolphinsettings.h"
|
|
||||||
#include "pixmapviewer.h"
|
|
||||||
|
|
||||||
#include "dolphin_iconsmodesettings.h"
|
|
||||||
|
|
||||||
#include <kcolorscheme.h>
|
|
||||||
#include <kiconloader.h>
|
|
||||||
#include <klocale.h>
|
|
||||||
#include <kvbox.h>
|
|
||||||
|
|
||||||
#include <QGroupBox>
|
|
||||||
#include <QLabel>
|
|
||||||
#include <QSlider>
|
|
||||||
#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)
|
|
||||||
{
|
|
||||||
IconsModeSettings* settings = DolphinSettings::instance().iconsModeSettings();
|
|
||||||
Q_ASSERT(settings != 0);
|
|
||||||
m_iconSize = settings->iconSize();
|
|
||||||
m_previewSize = settings->previewSize();
|
|
||||||
|
|
||||||
const int spacing = KDialog::spacingHint();
|
|
||||||
|
|
||||||
setCaption(i18nc("@title:window", "Change Icon & Preview Size"));
|
|
||||||
setButtons(Ok | Cancel);
|
|
||||||
setDefaultButton(Ok);
|
|
||||||
|
|
||||||
QWidget* main = new QWidget();
|
|
||||||
QHBoxLayout* topLayout = new QHBoxLayout();
|
|
||||||
|
|
||||||
// create 'Icon Size' group including slider and preview
|
|
||||||
QGroupBox* iconSizeBox = new QGroupBox(i18nc("@title:group", "Icon Size"), main);
|
|
||||||
|
|
||||||
const QColor iconBackgroundColor = KColorScheme(QPalette::Active, KColorScheme::View).background().color();
|
|
||||||
|
|
||||||
KHBox* iconSizeHBox = new KHBox(iconSizeBox);
|
|
||||||
iconSizeHBox->setSpacing(spacing);
|
|
||||||
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->setTickPosition(QSlider::TicksBelow);
|
|
||||||
connect(m_iconSizeSlider, SIGNAL(valueChanged(int)),
|
|
||||||
this, SLOT(updateIconSize(int)));
|
|
||||||
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);
|
|
||||||
iconSizeLayout->addWidget(iconSizeHBox);
|
|
||||||
iconSizeLayout->addWidget(m_iconSizeViewer);
|
|
||||||
|
|
||||||
// create 'Preview Size' group including slider and preview
|
|
||||||
QGroupBox* previewSizeBox = new QGroupBox(i18nc("@title:group", "Preview Size"), main);
|
|
||||||
|
|
||||||
KHBox* previewSizeHBox = new KHBox(previewSizeBox);
|
|
||||||
previewSizeHBox->setSpacing(spacing);
|
|
||||||
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->setTickPosition(QSlider::TicksBelow);
|
|
||||||
connect(m_previewSizeSlider, SIGNAL(valueChanged(int)),
|
|
||||||
this, SLOT(updatePreviewSize(int)));
|
|
||||||
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);
|
|
||||||
previewSizeLayout->addWidget(previewSizeHBox);
|
|
||||||
previewSizeLayout->addWidget(m_previewSizeViewer);
|
|
||||||
|
|
||||||
topLayout->addWidget(iconSizeBox);
|
|
||||||
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)
|
|
||||||
{
|
|
||||||
if (button == Ok) {
|
|
||||||
m_iconSize = iconSize(m_iconSizeSlider->value());
|
|
||||||
m_previewSize = iconSize(m_previewSizeSlider->value());
|
|
||||||
}
|
|
||||||
|
|
||||||
KDialog::slotButtonClicked(button);
|
|
||||||
}
|
|
||||||
|
|
||||||
void IconSizeDialog::updateIconSize(int value)
|
|
||||||
{
|
|
||||||
m_iconSizeViewer->setPixmap(KIconLoader::global()->loadIcon("folder", KIconLoader::Desktop, iconSize(value)));
|
|
||||||
}
|
|
||||||
|
|
||||||
void IconSizeDialog::updatePreviewSize(int value)
|
|
||||||
{
|
|
||||||
m_previewSizeViewer->setPixmap(KIconLoader::global()->loadIcon("preview", KIconLoader::Desktop, iconSize(value)));
|
|
||||||
}
|
|
||||||
|
|
||||||
int IconSizeDialog::iconSize(int sliderValue) const
|
|
||||||
{
|
|
||||||
int size = KIconLoader::SizeMedium;
|
|
||||||
switch (sliderValue) {
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
int IconSizeDialog::sliderValue(int iconSize) const
|
|
||||||
{
|
|
||||||
int value = 0;
|
|
||||||
switch (iconSize) {
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
#include "iconsizedialog.moc"
|
|
88
src/iconsizegroupbox.cpp
Normal file
88
src/iconsizegroupbox.cpp
Normal file
|
@ -0,0 +1,88 @@
|
||||||
|
/***************************************************************************
|
||||||
|
* Copyright (C) 2008 by Peter Penz <peter.penz@gmx.at> *
|
||||||
|
* *
|
||||||
|
* This program is free software; you can redistribute it and/or modify *
|
||||||
|
* it under the terms of the GNU General Public License as published by *
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or *
|
||||||
|
* (at your option) any later version. *
|
||||||
|
* *
|
||||||
|
* This program is distributed in the hope that it will be useful, *
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||||
|
* GNU General Public License for more details. *
|
||||||
|
* *
|
||||||
|
* You should have received a copy of the GNU General Public License *
|
||||||
|
* along with this program; if not, write to the *
|
||||||
|
* Free Software Foundation, Inc., *
|
||||||
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
#include "iconsizegroupbox.h"
|
||||||
|
|
||||||
|
#include <klocale.h>
|
||||||
|
|
||||||
|
#include <QGridLayout>
|
||||||
|
#include <QLabel>
|
||||||
|
#include <QSlider>
|
||||||
|
|
||||||
|
IconSizeGroupBox::IconSizeGroupBox(QWidget* parent) :
|
||||||
|
QGroupBox(i18nc("@title:group", "Icon Size"), parent),
|
||||||
|
m_defaultSizeSlider(0),
|
||||||
|
m_previewSizeSlider(0)
|
||||||
|
{
|
||||||
|
QLabel* defaultLabel = new QLabel(i18nc("@label:listbox", "Default:"), this);
|
||||||
|
m_defaultSizeSlider = new QSlider(Qt::Horizontal, this);
|
||||||
|
m_defaultSizeSlider->setPageStep(1);
|
||||||
|
m_defaultSizeSlider->setTickPosition(QSlider::TicksBelow);
|
||||||
|
connect(m_defaultSizeSlider, SIGNAL(sliderMoved(int)),
|
||||||
|
this, SIGNAL(defaultSizeChanged(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)));
|
||||||
|
|
||||||
|
QGridLayout* layout = new QGridLayout(this);
|
||||||
|
layout->addWidget(defaultLabel, 0, 0);
|
||||||
|
layout->addWidget(m_defaultSizeSlider, 0, 1);
|
||||||
|
layout->addWidget(previewLabel, 1, 0);
|
||||||
|
layout->addWidget(m_previewSizeSlider, 1, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
IconSizeGroupBox::~IconSizeGroupBox()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void IconSizeGroupBox::setDefaultSizeRange(int min, int max)
|
||||||
|
{
|
||||||
|
m_defaultSizeSlider->setRange(min, max);
|
||||||
|
}
|
||||||
|
|
||||||
|
void IconSizeGroupBox::setPreviewSizeRange(int min, int max)
|
||||||
|
{
|
||||||
|
m_previewSizeSlider->setRange(min, max);
|
||||||
|
}
|
||||||
|
|
||||||
|
void IconSizeGroupBox::setDefaultSizeValue(int value)
|
||||||
|
{
|
||||||
|
m_defaultSizeSlider->setValue(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
int IconSizeGroupBox::defaultSizeValue() const
|
||||||
|
{
|
||||||
|
return m_defaultSizeSlider->value();
|
||||||
|
}
|
||||||
|
|
||||||
|
void IconSizeGroupBox::setPreviewSizeValue(int value)
|
||||||
|
{
|
||||||
|
m_previewSizeSlider->setValue(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
int IconSizeGroupBox::previewSizeValue() const
|
||||||
|
{
|
||||||
|
return m_previewSizeSlider->value();
|
||||||
|
}
|
||||||
|
|
||||||
|
#include "iconsizegroupbox.moc"
|
|
@ -1,5 +1,5 @@
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
* Copyright (C) 2006 by Peter Penz <peter.penz@gmx.at> *
|
* Copyright (C) 2008 by Peter Penz <peter.penz@gmx.at> *
|
||||||
* *
|
* *
|
||||||
* This program is free software; you can redistribute it and/or modify *
|
* This program is free software; you can redistribute it and/or modify *
|
||||||
* it under the terms of the GNU General Public License as published by *
|
* it under the terms of the GNU General Public License as published by *
|
||||||
|
@ -14,69 +14,46 @@
|
||||||
* You should have received a copy of the GNU General Public License *
|
* You should have received a copy of the GNU General Public License *
|
||||||
* along with this program; if not, write to the *
|
* along with this program; if not, write to the *
|
||||||
* Free Software Foundation, Inc., *
|
* Free Software Foundation, Inc., *
|
||||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
#ifndef ICONSIZEDIALOG_H
|
#ifndef ICONSIZEGROUPBOX_H
|
||||||
#define ICONSIZEDIALOG_H
|
#define ICONSIZEGROUPBOX_H
|
||||||
|
|
||||||
#include <kdialog.h>
|
#include <QGroupBox>
|
||||||
|
|
||||||
class QSlider;
|
class QSlider;
|
||||||
class PixmapViewer;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Allows to adjust the size for icons and previews.
|
* @short Provides a group box for adjusting the icon sizes.
|
||||||
*
|
*
|
||||||
* Default usage:
|
* It is possible to adjust the default icon size and the icon
|
||||||
* \code
|
* size when previews are used.
|
||||||
* IconSizeDialog dialog(this);
|
|
||||||
* if (dialog.exec() == QDialog::Accepted) {
|
|
||||||
* const int iconSize = dialog.iconSize();
|
|
||||||
* const int previewSize = dialog.previewSize();
|
|
||||||
* // ...
|
|
||||||
* }
|
|
||||||
* \endcode
|
|
||||||
*/
|
*/
|
||||||
class IconSizeDialog : public KDialog
|
class IconSizeGroupBox : public QGroupBox
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit IconSizeDialog(QWidget* parent);
|
explicit IconSizeGroupBox(QWidget* parent);
|
||||||
virtual ~IconSizeDialog();
|
virtual ~IconSizeGroupBox();
|
||||||
|
|
||||||
int iconSize() const
|
void setDefaultSizeRange(int min, int max);
|
||||||
{
|
void setPreviewSizeRange(int min, int max);
|
||||||
return m_iconSize;
|
|
||||||
}
|
void setDefaultSizeValue(int value);
|
||||||
int previewSize() const
|
int defaultSizeValue() const;
|
||||||
{
|
|
||||||
return m_previewSize;
|
void setPreviewSizeValue(int value);
|
||||||
}
|
int previewSizeValue() const;
|
||||||
|
|
||||||
protected slots:
|
signals:
|
||||||
virtual void slotButtonClicked(int button);
|
void defaultSizeChanged(int value);
|
||||||
|
void previewSizeChanged(int value);
|
||||||
private slots:
|
|
||||||
void updateIconSize(int value);
|
|
||||||
void updatePreviewSize(int value);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/** Returns the icon size for the given slider value. */
|
QSlider* m_defaultSizeSlider;
|
||||||
int iconSize(int sliderValue) const;
|
|
||||||
|
|
||||||
/** Returns the slider value for the given icon size. */
|
|
||||||
int sliderValue(int iconSize) const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
int m_iconSize;
|
|
||||||
int m_previewSize;
|
|
||||||
|
|
||||||
QSlider* m_iconSizeSlider;
|
|
||||||
PixmapViewer* m_iconSizeViewer;
|
|
||||||
QSlider* m_previewSizeSlider;
|
QSlider* m_previewSizeSlider;
|
||||||
PixmapViewer* m_previewSizeViewer;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
|
@ -21,7 +21,8 @@
|
||||||
|
|
||||||
#include "dolphinfontrequester.h"
|
#include "dolphinfontrequester.h"
|
||||||
#include "dolphinsettings.h"
|
#include "dolphinsettings.h"
|
||||||
#include "iconsizedialog.h"
|
#include "iconsizegroupbox.h"
|
||||||
|
#include "zoomlevelinfo.h"
|
||||||
|
|
||||||
#include "dolphin_iconsmodesettings.h"
|
#include "dolphin_iconsmodesettings.h"
|
||||||
|
|
||||||
|
@ -42,9 +43,7 @@
|
||||||
|
|
||||||
IconsViewSettingsPage::IconsViewSettingsPage(QWidget* parent) :
|
IconsViewSettingsPage::IconsViewSettingsPage(QWidget* parent) :
|
||||||
ViewSettingsPageBase(parent),
|
ViewSettingsPageBase(parent),
|
||||||
m_iconSize(0),
|
m_iconSizeGroupBox(0),
|
||||||
m_previewSize(0),
|
|
||||||
m_iconSizeButton(0),
|
|
||||||
m_textWidthBox(0),
|
m_textWidthBox(0),
|
||||||
m_fontRequester(0),
|
m_fontRequester(0),
|
||||||
m_textlinesCountBox(0),
|
m_textlinesCountBox(0),
|
||||||
|
@ -58,10 +57,20 @@ IconsViewSettingsPage::IconsViewSettingsPage(QWidget* parent) :
|
||||||
setSpacing(spacing);
|
setSpacing(spacing);
|
||||||
setMargin(margin);
|
setMargin(margin);
|
||||||
|
|
||||||
m_iconSizeButton = new QPushButton(i18nc("@action:button", "Change Icon && Preview Size..."), this);
|
// Create "Icon" properties
|
||||||
connect(m_iconSizeButton, SIGNAL(clicked()),
|
m_iconSizeGroupBox = new IconSizeGroupBox(this);
|
||||||
this, SLOT(openIconSizeDialog()));
|
m_iconSizeGroupBox->setSizePolicy(sizePolicy);
|
||||||
|
|
||||||
|
const int min = ZoomLevelInfo::minimumLevel();
|
||||||
|
const int max = ZoomLevelInfo::maximumLevel();
|
||||||
|
m_iconSizeGroupBox->setDefaultSizeRange(min, max);
|
||||||
|
m_iconSizeGroupBox->setPreviewSizeRange(min, max);
|
||||||
|
|
||||||
|
connect(m_iconSizeGroupBox, SIGNAL(defaultSizeChanged(int)),
|
||||||
|
this, SIGNAL(changed()));
|
||||||
|
connect(m_iconSizeGroupBox, SIGNAL(previewSizeChanged(int)),
|
||||||
|
this, SIGNAL(changed()));
|
||||||
|
|
||||||
// create 'Text' group for selecting the font, the number of lines
|
// create 'Text' group for selecting the font, the number of lines
|
||||||
// and the text width
|
// and the text width
|
||||||
QGroupBox* textGroup = new QGroupBox(i18nc("@title:group", "Text"), this);
|
QGroupBox* textGroup = new QGroupBox(i18nc("@title:group", "Text"), this);
|
||||||
|
@ -131,8 +140,10 @@ void IconsViewSettingsPage::applySettings()
|
||||||
{
|
{
|
||||||
IconsModeSettings* settings = DolphinSettings::instance().iconsModeSettings();
|
IconsModeSettings* settings = DolphinSettings::instance().iconsModeSettings();
|
||||||
|
|
||||||
settings->setIconSize(m_iconSize);
|
const int iconSize = ZoomLevelInfo::iconSizeForZoomLevel(m_iconSizeGroupBox->defaultSizeValue());
|
||||||
settings->setPreviewSize(m_previewSize);
|
const int previewSize = ZoomLevelInfo::iconSizeForZoomLevel(m_iconSizeGroupBox->previewSizeValue());
|
||||||
|
settings->setIconSize(iconSize);
|
||||||
|
settings->setPreviewSize(previewSize);
|
||||||
|
|
||||||
const QFont font = m_fontRequester->font();
|
const QFont font = m_fontRequester->font();
|
||||||
const int fontHeight = QFontMetrics(font).height();
|
const int fontHeight = QFontMetrics(font).height();
|
||||||
|
@ -177,22 +188,17 @@ void IconsViewSettingsPage::restoreDefaults()
|
||||||
loadSettings();
|
loadSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
void IconsViewSettingsPage::openIconSizeDialog()
|
|
||||||
{
|
|
||||||
IconSizeDialog dialog(this);
|
|
||||||
if (dialog.exec() == QDialog::Accepted) {
|
|
||||||
m_iconSize = dialog.iconSize();
|
|
||||||
m_previewSize = dialog.previewSize();
|
|
||||||
emit changed();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void IconsViewSettingsPage::loadSettings()
|
void IconsViewSettingsPage::loadSettings()
|
||||||
{
|
{
|
||||||
IconsModeSettings* settings = DolphinSettings::instance().iconsModeSettings();
|
IconsModeSettings* settings = DolphinSettings::instance().iconsModeSettings();
|
||||||
|
|
||||||
m_iconSize = settings->iconSize();
|
const QSize iconSize(settings->iconSize(), settings->iconSize());
|
||||||
m_previewSize = settings->previewSize();
|
const int iconSizeValue = ZoomLevelInfo::zoomLevelForIconSize(iconSize);
|
||||||
|
m_iconSizeGroupBox->setDefaultSizeValue(iconSizeValue);
|
||||||
|
|
||||||
|
const QSize previewSize(settings->previewSize(), settings->previewSize());
|
||||||
|
const int previewSizeValue = ZoomLevelInfo::zoomLevelForIconSize(previewSize);
|
||||||
|
m_iconSizeGroupBox->setPreviewSizeValue(previewSizeValue);
|
||||||
|
|
||||||
if (settings->useSystemFont()) {
|
if (settings->useSystemFont()) {
|
||||||
m_fontRequester->setMode(DolphinFontRequester::SystemFont);
|
m_fontRequester->setMode(DolphinFontRequester::SystemFont);
|
||||||
|
|
|
@ -24,9 +24,9 @@
|
||||||
#include <viewsettingspagebase.h>
|
#include <viewsettingspagebase.h>
|
||||||
|
|
||||||
class DolphinFontRequester;
|
class DolphinFontRequester;
|
||||||
|
class IconSizeGroupBox;
|
||||||
class QCheckBox;
|
class QCheckBox;
|
||||||
class QComboBox;
|
class QComboBox;
|
||||||
class QPushButton;
|
|
||||||
class QSpinBox;
|
class QSpinBox;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -62,9 +62,6 @@ public:
|
||||||
/** Restores the settings to default values. */
|
/** Restores the settings to default values. */
|
||||||
virtual void restoreDefaults();
|
virtual void restoreDefaults();
|
||||||
|
|
||||||
private slots:
|
|
||||||
void openIconSizeDialog();
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void loadSettings();
|
void loadSettings();
|
||||||
|
|
||||||
|
@ -79,10 +76,7 @@ private:
|
||||||
TopToBottomInc = 32
|
TopToBottomInc = 32
|
||||||
};
|
};
|
||||||
|
|
||||||
int m_iconSize;
|
IconSizeGroupBox* m_iconSizeGroupBox;
|
||||||
int m_previewSize;
|
|
||||||
|
|
||||||
QPushButton* m_iconSizeButton;
|
|
||||||
QComboBox* m_textWidthBox;
|
QComboBox* m_textWidthBox;
|
||||||
DolphinFontRequester* m_fontRequester;
|
DolphinFontRequester* m_fontRequester;
|
||||||
QSpinBox* m_textlinesCountBox;
|
QSpinBox* m_textlinesCountBox;
|
||||||
|
|
66
src/zoomlevelinfo.cpp
Normal file
66
src/zoomlevelinfo.cpp
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
/***************************************************************************
|
||||||
|
* Copyright (C) 2008 by Peter Penz <peter.penz@gmx.at> *
|
||||||
|
* *
|
||||||
|
* This program is free software; you can redistribute it and/or modify *
|
||||||
|
* it under the terms of the GNU General Public License as published by *
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or *
|
||||||
|
* (at your option) any later version. *
|
||||||
|
* *
|
||||||
|
* This program is distributed in the hope that it will be useful, *
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||||
|
* GNU General Public License for more details. *
|
||||||
|
* *
|
||||||
|
* You should have received a copy of the GNU General Public License *
|
||||||
|
* along with this program; if not, write to the *
|
||||||
|
* Free Software Foundation, Inc., *
|
||||||
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
#include "zoomlevelinfo.h"
|
||||||
|
#include <kiconloader.h>
|
||||||
|
#include <QSize>
|
||||||
|
|
||||||
|
int ZoomLevelInfo::minimumLevel()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ZoomLevelInfo::maximumLevel()
|
||||||
|
{
|
||||||
|
return 7;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ZoomLevelInfo::iconSizeForZoomLevel(int level)
|
||||||
|
{
|
||||||
|
int size = KIconLoader::SizeMedium;
|
||||||
|
switch (level) {
|
||||||
|
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;
|
||||||
|
case 6: size = KIconLoader::SizeEnormous * 3 / 2; break;
|
||||||
|
case 7: size = KIconLoader::SizeEnormous * 2; break;
|
||||||
|
default: Q_ASSERT(false); break;
|
||||||
|
}
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ZoomLevelInfo::zoomLevelForIconSize(const QSize& size)
|
||||||
|
{
|
||||||
|
int level = 0;
|
||||||
|
switch (size.height()) {
|
||||||
|
case KIconLoader::SizeSmall: level = 0; break;
|
||||||
|
case KIconLoader::SizeSmallMedium: level = 1; break;
|
||||||
|
case KIconLoader::SizeMedium: level = 2; break;
|
||||||
|
case KIconLoader::SizeLarge: level = 3; break;
|
||||||
|
case KIconLoader::SizeHuge: level = 4; break;
|
||||||
|
case KIconLoader::SizeEnormous: level = 5; break;
|
||||||
|
case KIconLoader::SizeEnormous * 3 / 2: level = 6; break;
|
||||||
|
case KIconLoader::SizeEnormous * 2: level = 7; break;
|
||||||
|
default: Q_ASSERT(false); level = 3; break;
|
||||||
|
}
|
||||||
|
return level;
|
||||||
|
}
|
51
src/zoomlevelinfo.h
Normal file
51
src/zoomlevelinfo.h
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
/***************************************************************************
|
||||||
|
* Copyright (C) 2008 by Peter Penz <peter.penz@gmx.at> *
|
||||||
|
* *
|
||||||
|
* This program is free software; you can redistribute it and/or modify *
|
||||||
|
* it under the terms of the GNU General Public License as published by *
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or *
|
||||||
|
* (at your option) any later version. *
|
||||||
|
* *
|
||||||
|
* This program is distributed in the hope that it will be useful, *
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||||
|
* GNU General Public License for more details. *
|
||||||
|
* *
|
||||||
|
* You should have received a copy of the GNU General Public License *
|
||||||
|
* along with this program; if not, write to the *
|
||||||
|
* Free Software Foundation, Inc., *
|
||||||
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
#ifndef ZOOMLEVELINFO_H
|
||||||
|
#define ZOOMLEVELINFO_H
|
||||||
|
|
||||||
|
class QSize;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @short Helper class for getting information about the zooming
|
||||||
|
* capabilities.
|
||||||
|
*/
|
||||||
|
class ZoomLevelInfo {
|
||||||
|
public:
|
||||||
|
static int minimumLevel();
|
||||||
|
static int maximumLevel();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helper method for the view implementation to get
|
||||||
|
* the icon size for the zoom level \a level that
|
||||||
|
* is between the range ZoomLevelInfo::minimumLevel() and
|
||||||
|
* ZoomLevelInfo::maximumLevel().
|
||||||
|
*/
|
||||||
|
static int iconSizeForZoomLevel(int level);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helper method for the view implementation to get
|
||||||
|
* the zoom level for the icon size \a size that
|
||||||
|
* is between the range ZoomLevelInfo::minimumLevel() and
|
||||||
|
* ZoomLevelInfo::maximumLevel().
|
||||||
|
*/
|
||||||
|
static int zoomLevelForIconSize(const QSize& size);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in a new issue