mirror of
https://invent.kde.org/system/dolphin
synced 2024-10-28 03:21:56 +00:00
Fix font settings issue
The font settings have been ignored currently because of the transition to the new view-engine. The patch is based on the work of Janardhan Reddy and has been extended by the helper class ViewModeSettings. BUG: 288395 FIXED-IN: 4.8.0
This commit is contained in:
parent
2827b96d98
commit
a237e085fc
|
@ -43,6 +43,7 @@ set(dolphinprivate_LIB_SRCS
|
|||
kitemviews/kpixmapmodifier.cpp
|
||||
settings/additionalinfodialog.cpp
|
||||
settings/applyviewpropsjob.cpp
|
||||
settings/viewmodes/viewmodesettings.cpp
|
||||
settings/viewpropertiesdialog.cpp
|
||||
settings/viewpropsprogressinfo.cpp
|
||||
views/additionalinfoaccessor.cpp
|
||||
|
@ -144,6 +145,7 @@ set(dolphin_SRCS
|
|||
settings/trash/trashsettingspage.cpp
|
||||
settings/viewmodes/dolphinfontrequester.cpp
|
||||
settings/viewmodes/viewsettingspage.cpp
|
||||
settings/viewmodes/viewmodesettings.cpp
|
||||
settings/viewmodes/viewsettingstab.cpp
|
||||
statusbar/dolphinstatusbar.cpp
|
||||
statusbar/statusbarspaceinfo.cpp
|
||||
|
@ -204,6 +206,7 @@ install(TARGETS dolphin ${INSTALL_TARGETS_DEFAULT_ARGS})
|
|||
set(kcm_dolphinviewmodes_PART_SRCS
|
||||
settings/kcm/kcmdolphinviewmodes.cpp
|
||||
settings/viewmodes/dolphinfontrequester.cpp
|
||||
settings/viewmodes/viewmodesettings.cpp
|
||||
settings/viewmodes/viewsettingstab.cpp
|
||||
views/zoomlevelinfo.cpp)
|
||||
|
||||
|
|
|
@ -90,10 +90,10 @@ KFileItemListWidget::Layout KFileItemListWidget::layout() const
|
|||
|
||||
void KFileItemListWidget::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
|
||||
{
|
||||
KItemListWidget::paint(painter, option, widget);
|
||||
|
||||
const_cast<KFileItemListWidget*>(this)->triggerCacheRefreshing();
|
||||
|
||||
KItemListWidget::paint(painter, option, widget);
|
||||
|
||||
// Draw expansion toggle '>' or 'V'
|
||||
if (m_isDir && !m_expansionArea.isEmpty()) {
|
||||
QStyleOption arrowOption;
|
||||
|
@ -638,9 +638,9 @@ void KFileItemListWidget::updateIconsLayoutTextCache()
|
|||
m_text[Name].setTextWidth(maxWidth);
|
||||
m_textPos[Name] = QPointF(option.margin, widgetHeight - textLinesCount * fontHeight - option.margin);
|
||||
m_textRect = QRectF(option.margin + (maxWidth - requiredWidthForName) / 2,
|
||||
m_textPos[Name].y(),
|
||||
requiredWidthForName,
|
||||
m_text[Name].size().height());
|
||||
m_textPos[Name].y(),
|
||||
requiredWidthForName,
|
||||
textLinesCountForName * fontHeight);
|
||||
|
||||
// Calculate the position for each additional information
|
||||
qreal y = m_textPos[Name].y() + textLinesCountForName * fontHeight;
|
||||
|
|
141
src/settings/viewmodes/viewmodesettings.cpp
Normal file
141
src/settings/viewmodes/viewmodesettings.cpp
Normal file
|
@ -0,0 +1,141 @@
|
|||
/***************************************************************************
|
||||
* Copyright (C) 2011 by Peter Penz <peter.penz19@gmail.com> *
|
||||
* *
|
||||
* 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 "viewmodesettings.h"
|
||||
|
||||
#include "dolphin_iconsmodesettings.h"
|
||||
#include "dolphin_detailsmodesettings.h"
|
||||
#include "dolphin_compactmodesettings.h"
|
||||
|
||||
#define VIEWMODESETTINGS_SET_VALUE(mode, setValue, value) \
|
||||
switch (mode) { \
|
||||
case ViewModeSettings::IconsMode: IconsModeSettings::setValue(value); break; \
|
||||
case ViewModeSettings::CompactMode: CompactModeSettings::setValue(value); break; \
|
||||
case ViewModeSettings::DetailsMode: DetailsModeSettings::setValue(value); break; \
|
||||
default: Q_ASSERT(false); break; \
|
||||
}
|
||||
|
||||
#define VIEWMODESETTINGS_RETURN_VALUE(mode, getValue, type) \
|
||||
type value; \
|
||||
switch (m_mode) { \
|
||||
case IconsMode: value = IconsModeSettings::getValue(); break; \
|
||||
case CompactMode: value = CompactModeSettings::getValue(); break; \
|
||||
case DetailsMode: value = DetailsModeSettings::getValue(); break; \
|
||||
default: Q_ASSERT(false); break; \
|
||||
} \
|
||||
return value
|
||||
|
||||
ViewModeSettings::ViewModeSettings(ViewMode mode) :
|
||||
m_mode(mode)
|
||||
{
|
||||
}
|
||||
|
||||
ViewModeSettings::~ViewModeSettings()
|
||||
{
|
||||
}
|
||||
|
||||
void ViewModeSettings::setIconSize(int size) const
|
||||
{
|
||||
VIEWMODESETTINGS_SET_VALUE(m_mode, setIconSize, size);
|
||||
}
|
||||
|
||||
int ViewModeSettings::iconSize() const
|
||||
{
|
||||
VIEWMODESETTINGS_RETURN_VALUE(m_mode, iconSize, int);
|
||||
}
|
||||
|
||||
void ViewModeSettings::setPreviewSize(int size) const
|
||||
{
|
||||
VIEWMODESETTINGS_SET_VALUE(m_mode, setPreviewSize, size);
|
||||
}
|
||||
|
||||
int ViewModeSettings::previewSize() const
|
||||
{
|
||||
VIEWMODESETTINGS_RETURN_VALUE(m_mode, previewSize, int);
|
||||
}
|
||||
|
||||
void ViewModeSettings::setUseSystemFont(bool flag)
|
||||
{
|
||||
VIEWMODESETTINGS_SET_VALUE(m_mode, setUseSystemFont, flag);
|
||||
}
|
||||
|
||||
bool ViewModeSettings::useSystemFont() const
|
||||
{
|
||||
VIEWMODESETTINGS_RETURN_VALUE(m_mode, useSystemFont, bool);
|
||||
}
|
||||
|
||||
void ViewModeSettings::setFontFamily(const QString& fontFamily)
|
||||
{
|
||||
VIEWMODESETTINGS_SET_VALUE(m_mode, setFontFamily, fontFamily);
|
||||
}
|
||||
|
||||
QString ViewModeSettings::fontFamily() const
|
||||
{
|
||||
VIEWMODESETTINGS_RETURN_VALUE(m_mode, fontFamily, QString);
|
||||
}
|
||||
|
||||
void ViewModeSettings::setFontSize(qreal fontSize)
|
||||
{
|
||||
VIEWMODESETTINGS_SET_VALUE(m_mode, setFontSize, fontSize);
|
||||
}
|
||||
|
||||
qreal ViewModeSettings::fontSize() const
|
||||
{
|
||||
VIEWMODESETTINGS_RETURN_VALUE(m_mode, fontSize, qreal);
|
||||
}
|
||||
|
||||
void ViewModeSettings::setItalicFont(bool italic)
|
||||
{
|
||||
VIEWMODESETTINGS_SET_VALUE(m_mode, setItalicFont, italic);
|
||||
}
|
||||
|
||||
bool ViewModeSettings::italicFont() const
|
||||
{
|
||||
VIEWMODESETTINGS_RETURN_VALUE(m_mode, italicFont, bool);
|
||||
}
|
||||
|
||||
void ViewModeSettings::setFontWeight(int fontWeight)
|
||||
{
|
||||
VIEWMODESETTINGS_SET_VALUE(m_mode, setFontWeight, fontWeight);
|
||||
}
|
||||
|
||||
int ViewModeSettings::fontWeight() const
|
||||
{
|
||||
VIEWMODESETTINGS_RETURN_VALUE(m_mode, fontWeight, int);
|
||||
}
|
||||
|
||||
void ViewModeSettings::readConfig()
|
||||
{
|
||||
switch (m_mode) {
|
||||
case ViewModeSettings::IconsMode: IconsModeSettings::self()->readConfig(); break;
|
||||
case ViewModeSettings::CompactMode: CompactModeSettings::self()->readConfig(); break;
|
||||
case ViewModeSettings::DetailsMode: DetailsModeSettings::self()->readConfig(); break;
|
||||
default: Q_ASSERT(false); break;
|
||||
}
|
||||
}
|
||||
|
||||
void ViewModeSettings::writeConfig()
|
||||
{
|
||||
switch (m_mode) {
|
||||
case ViewModeSettings::IconsMode: IconsModeSettings::self()->writeConfig(); break;
|
||||
case ViewModeSettings::CompactMode: CompactModeSettings::self()->writeConfig(); break;
|
||||
case ViewModeSettings::DetailsMode: DetailsModeSettings::self()->writeConfig(); break;
|
||||
default: Q_ASSERT(false); break;
|
||||
}
|
||||
}
|
70
src/settings/viewmodes/viewmodesettings.h
Normal file
70
src/settings/viewmodes/viewmodesettings.h
Normal file
|
@ -0,0 +1,70 @@
|
|||
/***************************************************************************
|
||||
* Copyright (C) 2011 by Peter Penz <peter.penz19@gmail.com> *
|
||||
* *
|
||||
* 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 VIEWMODESETTINGS_H
|
||||
#define VIEWMODESETTINGS_H
|
||||
|
||||
#include <QString>
|
||||
|
||||
/**
|
||||
* @short Helper class for accessing similar properties of IconsModeSettings,
|
||||
* CompactModeSettings and DetailsModeSettings.
|
||||
*/
|
||||
class ViewModeSettings
|
||||
{
|
||||
public:
|
||||
enum ViewMode
|
||||
{
|
||||
IconsMode,
|
||||
CompactMode,
|
||||
DetailsMode
|
||||
};
|
||||
|
||||
ViewModeSettings(ViewMode mode);
|
||||
virtual ~ViewModeSettings();
|
||||
|
||||
void setIconSize(int size) const;
|
||||
int iconSize() const;
|
||||
|
||||
void setPreviewSize(int size) const;
|
||||
int previewSize() const;
|
||||
|
||||
void setUseSystemFont(bool flag);
|
||||
bool useSystemFont() const;
|
||||
|
||||
void setFontFamily(const QString& fontFamily);
|
||||
QString fontFamily() const;
|
||||
|
||||
void setFontSize(qreal fontSize);
|
||||
qreal fontSize() const;
|
||||
|
||||
void setItalicFont(bool italic);
|
||||
bool italicFont() const;
|
||||
|
||||
void setFontWeight(int fontWeight);
|
||||
int fontWeight() const;
|
||||
|
||||
void readConfig();
|
||||
void writeConfig();
|
||||
|
||||
private:
|
||||
ViewMode m_mode;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -34,41 +34,6 @@
|
|||
|
||||
#include <views/zoomlevelinfo.h>
|
||||
|
||||
template<class T>
|
||||
void apply(int iconSizeValue, int previewSizeValue, const QFont& font, bool useSystemFont)
|
||||
{
|
||||
const int iconSize = ZoomLevelInfo::iconSizeForZoomLevel(iconSizeValue);
|
||||
const int previewSize = ZoomLevelInfo::iconSizeForZoomLevel(previewSizeValue);
|
||||
T::setIconSize(iconSize);
|
||||
T::setPreviewSize(previewSize);
|
||||
|
||||
T::setUseSystemFont(useSystemFont);
|
||||
T::setFontFamily(font.family());
|
||||
T::setFontSize(font.pointSizeF());
|
||||
T::setItalicFont(font.italic());
|
||||
T::setFontWeight(font.weight());
|
||||
|
||||
T::self()->writeConfig();
|
||||
}
|
||||
|
||||
template<class T>
|
||||
void load(int* iconSizeValue, int* previewSizeValue, QFont* font, bool* useSystemFont)
|
||||
{
|
||||
const QSize iconSize(T::iconSize(), T::iconSize());
|
||||
*iconSizeValue = ZoomLevelInfo::zoomLevelForIconSize(iconSize);
|
||||
|
||||
const QSize previewSize(T::previewSize(), T::previewSize());
|
||||
*previewSizeValue = ZoomLevelInfo::zoomLevelForIconSize(previewSize);
|
||||
|
||||
*useSystemFont = T::useSystemFont();
|
||||
|
||||
*font = QFont(T::fontFamily(), qRound(T::fontSize()));
|
||||
font->setItalic(T::italicFont());
|
||||
font->setWeight(T::fontWeight());
|
||||
font->setPointSizeF(T::fontSize());
|
||||
}
|
||||
|
||||
|
||||
ViewSettingsTab::ViewSettingsTab(Mode mode, QWidget* parent) :
|
||||
QWidget(parent),
|
||||
m_mode(mode),
|
||||
|
@ -146,26 +111,27 @@ ViewSettingsTab::~ViewSettingsTab()
|
|||
|
||||
void ViewSettingsTab::applySettings()
|
||||
{
|
||||
const int defaultSize = m_defaultSizeSlider->value();
|
||||
const int previewSize = m_previewSizeSlider->value();
|
||||
const QFont font = m_fontRequester->currentFont();
|
||||
const bool useSystemFont = (m_fontRequester->mode() == DolphinFontRequester::SystemFont);
|
||||
|
||||
switch (m_mode) {
|
||||
case IconsMode:
|
||||
if (m_mode == IconsMode) {
|
||||
IconsModeSettings::setTextWidthIndex(m_textWidthBox->currentIndex());
|
||||
apply<IconsModeSettings>(defaultSize, previewSize, font, useSystemFont);
|
||||
break;
|
||||
case CompactMode:
|
||||
apply<CompactModeSettings>(defaultSize, previewSize, font, useSystemFont);
|
||||
break;
|
||||
case DetailsMode:
|
||||
apply<DetailsModeSettings>(defaultSize, previewSize, font, useSystemFont);
|
||||
break;
|
||||
default:
|
||||
Q_ASSERT(false);
|
||||
break;
|
||||
}
|
||||
|
||||
ViewModeSettings settings(viewMode());
|
||||
|
||||
const int iconSize = ZoomLevelInfo::iconSizeForZoomLevel(m_defaultSizeSlider->value());
|
||||
const int previewSize = ZoomLevelInfo::iconSizeForZoomLevel(m_previewSizeSlider->value());
|
||||
settings.setIconSize(iconSize);
|
||||
settings.setPreviewSize(previewSize);
|
||||
|
||||
settings.setUseSystemFont(useSystemFont);
|
||||
settings.setFontFamily(font.family());
|
||||
settings.setFontSize(font.pointSizeF());
|
||||
settings.setItalicFont(font.italic());
|
||||
settings.setFontWeight(font.weight());
|
||||
|
||||
settings.writeConfig();
|
||||
}
|
||||
|
||||
void ViewSettingsTab::restoreDefaultSettings()
|
||||
|
@ -185,31 +151,41 @@ void ViewSettingsTab::restoreDefaultSettings()
|
|||
|
||||
void ViewSettingsTab::loadSettings()
|
||||
{
|
||||
int iconSizeValue = 0;
|
||||
int previewSizeValue = 0;
|
||||
QFont font;
|
||||
bool useSystemFont = false;
|
||||
|
||||
switch (m_mode) {
|
||||
case IconsMode:
|
||||
if (m_mode == IconsMode) {
|
||||
m_textWidthBox->setCurrentIndex(IconsModeSettings::textWidthIndex());
|
||||
load<IconsModeSettings>(&iconSizeValue, &previewSizeValue, &font, &useSystemFont);
|
||||
break;
|
||||
case CompactMode:
|
||||
load<CompactModeSettings>(&iconSizeValue, &previewSizeValue, &font, &useSystemFont);
|
||||
break;
|
||||
case DetailsMode:
|
||||
load<DetailsModeSettings>(&iconSizeValue, &previewSizeValue, &font, &useSystemFont);
|
||||
break;
|
||||
default:
|
||||
Q_ASSERT(false);
|
||||
break;
|
||||
}
|
||||
|
||||
m_defaultSizeSlider->setValue(iconSizeValue);
|
||||
m_previewSizeSlider->setValue(previewSizeValue);
|
||||
m_fontRequester->setMode(useSystemFont ? DolphinFontRequester::SystemFont : DolphinFontRequester::CustomFont);
|
||||
const ViewModeSettings settings(viewMode());
|
||||
const QSize iconSize(settings.iconSize(), settings.iconSize());
|
||||
m_defaultSizeSlider->setValue(ZoomLevelInfo::zoomLevelForIconSize(iconSize));
|
||||
|
||||
const QSize previewSize(settings.previewSize(), settings.previewSize());
|
||||
m_previewSizeSlider->setValue(ZoomLevelInfo::zoomLevelForIconSize(previewSize));
|
||||
|
||||
m_fontRequester->setMode(settings.useSystemFont()
|
||||
? DolphinFontRequester::SystemFont
|
||||
: DolphinFontRequester::CustomFont);
|
||||
|
||||
QFont font(settings.fontFamily(), qRound(settings.fontSize()));
|
||||
font.setItalic(settings.italicFont());
|
||||
font.setWeight(settings.fontWeight());
|
||||
font.setPointSizeF(settings.fontSize());
|
||||
m_fontRequester->setCustomFont(font);
|
||||
}
|
||||
|
||||
ViewModeSettings::ViewMode ViewSettingsTab::viewMode() const
|
||||
{
|
||||
ViewModeSettings::ViewMode mode;
|
||||
|
||||
switch (m_mode) {
|
||||
case ViewSettingsTab::IconsMode: mode = ViewModeSettings::IconsMode; break;
|
||||
case ViewSettingsTab::CompactMode: mode = ViewModeSettings::CompactMode; break;
|
||||
case ViewSettingsTab::DetailsMode: mode = ViewModeSettings::DetailsMode; break;
|
||||
default: Q_ASSERT(false); break;
|
||||
}
|
||||
|
||||
return mode;
|
||||
}
|
||||
|
||||
|
||||
#include "viewsettingstab.moc"
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#define VIEWSETTINGSTAB_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <settings/viewmodes/viewmodesettings.h>
|
||||
|
||||
class DolphinFontRequester;
|
||||
class KComboBox;
|
||||
|
@ -53,6 +54,8 @@ signals:
|
|||
private:
|
||||
void loadSettings();
|
||||
|
||||
ViewModeSettings::ViewMode viewMode() const;
|
||||
|
||||
private:
|
||||
Mode m_mode;
|
||||
QSlider* m_defaultSizeSlider;
|
||||
|
|
|
@ -52,6 +52,7 @@ DolphinItemListContainer::DolphinItemListContainer(KDirLister* dirLister,
|
|||
m_fileItemListView->setEnabledSelectionToggles(GeneralSettings::showSelectionToggle());
|
||||
controller()->setView(m_fileItemListView);
|
||||
|
||||
updateFont();
|
||||
updateGridSize();
|
||||
}
|
||||
|
||||
|
@ -104,23 +105,13 @@ void DolphinItemListContainer::setZoomLevel(int level)
|
|||
|
||||
m_zoomLevel = level;
|
||||
|
||||
ViewModeSettings settings(viewMode());
|
||||
if (previewsShown()) {
|
||||
const int previewSize = ZoomLevelInfo::iconSizeForZoomLevel(level);
|
||||
|
||||
switch (itemLayout()) {
|
||||
case KFileItemListView::IconsLayout: IconsModeSettings::setPreviewSize(previewSize); break;
|
||||
case KFileItemListView::CompactLayout: CompactModeSettings::setPreviewSize(previewSize); break;
|
||||
case KFileItemListView::DetailsLayout: DetailsModeSettings::setPreviewSize(previewSize); break;
|
||||
default: Q_ASSERT(false); break;
|
||||
}
|
||||
settings.setPreviewSize(previewSize);
|
||||
} else {
|
||||
const int iconSize = ZoomLevelInfo::iconSizeForZoomLevel(level);
|
||||
switch (itemLayout()) {
|
||||
case KFileItemListView::IconsLayout: IconsModeSettings::setIconSize(iconSize); break;
|
||||
case KFileItemListView::CompactLayout: CompactModeSettings::setIconSize(iconSize); break;
|
||||
case KFileItemListView::DetailsLayout: DetailsModeSettings::setIconSize(iconSize); break;
|
||||
default: Q_ASSERT(false); break;
|
||||
}
|
||||
settings.setIconSize(iconSize);
|
||||
}
|
||||
|
||||
updateGridSize();
|
||||
|
@ -158,6 +149,7 @@ void DolphinItemListContainer::setItemLayout(KFileItemListView::Layout layout)
|
|||
break;
|
||||
}
|
||||
|
||||
updateFont();
|
||||
updateGridSize();
|
||||
endTransaction();
|
||||
}
|
||||
|
@ -177,26 +169,21 @@ void DolphinItemListContainer::endTransaction()
|
|||
m_fileItemListView->endTransaction();
|
||||
}
|
||||
|
||||
void DolphinItemListContainer::refresh()
|
||||
{
|
||||
ViewModeSettings settings(viewMode());
|
||||
settings.readConfig();
|
||||
|
||||
updateFont();
|
||||
updateGridSize();
|
||||
}
|
||||
|
||||
void DolphinItemListContainer::updateGridSize()
|
||||
{
|
||||
// Calculate the size of the icon
|
||||
int iconSize;
|
||||
if (previewsShown()) {
|
||||
switch (itemLayout()) {
|
||||
case KFileItemListView::IconsLayout: iconSize = IconsModeSettings::previewSize(); break;
|
||||
case KFileItemListView::CompactLayout: iconSize = CompactModeSettings::previewSize(); break;
|
||||
case KFileItemListView::DetailsLayout: iconSize = DetailsModeSettings::previewSize(); break;
|
||||
default: Q_ASSERT(false); break;
|
||||
}
|
||||
} else {
|
||||
switch (itemLayout()) {
|
||||
case KFileItemListView::IconsLayout: iconSize = IconsModeSettings::iconSize(); break;
|
||||
case KFileItemListView::CompactLayout: iconSize = CompactModeSettings::iconSize(); break;
|
||||
case KFileItemListView::DetailsLayout: iconSize = DetailsModeSettings::iconSize(); break;
|
||||
default: Q_ASSERT(false); break;
|
||||
}
|
||||
}
|
||||
const ViewModeSettings settings(viewMode());
|
||||
|
||||
// Calculate the size of the icon
|
||||
const int iconSize = previewsShown() ? settings.previewSize() : settings.iconSize();
|
||||
m_zoomLevel = ZoomLevelInfo::zoomLevelForIconSize(QSize(iconSize, iconSize));
|
||||
KItemListStyleOption styleOption = m_fileItemListView->styleOption();
|
||||
|
||||
|
@ -236,4 +223,35 @@ void DolphinItemListContainer::updateGridSize()
|
|||
m_fileItemListView->setItemSize(QSizeF(itemWidth, itemHeight));
|
||||
}
|
||||
|
||||
void DolphinItemListContainer::updateFont()
|
||||
{
|
||||
KItemListStyleOption styleOption = m_fileItemListView->styleOption();
|
||||
|
||||
const ViewModeSettings settings(viewMode());
|
||||
|
||||
QFont font(settings.fontFamily(), qRound(settings.fontSize()));
|
||||
font.setItalic(settings.italicFont());
|
||||
font.setWeight(settings.fontWeight());
|
||||
font.setPointSizeF(settings.fontSize());
|
||||
|
||||
styleOption.font = font;
|
||||
styleOption.fontMetrics = QFontMetrics(font);
|
||||
|
||||
m_fileItemListView->setStyleOption(styleOption);
|
||||
}
|
||||
|
||||
ViewModeSettings::ViewMode DolphinItemListContainer::viewMode() const
|
||||
{
|
||||
ViewModeSettings::ViewMode mode;
|
||||
|
||||
switch (itemLayout()) {
|
||||
case KFileItemListView::IconsLayout: mode = ViewModeSettings::IconsMode; break;
|
||||
case KFileItemListView::CompactLayout: mode = ViewModeSettings::CompactMode; break;
|
||||
case KFileItemListView::DetailsLayout: mode = ViewModeSettings::DetailsMode; break;
|
||||
default: Q_ASSERT(false); break;
|
||||
}
|
||||
|
||||
return mode;
|
||||
}
|
||||
|
||||
#include "dolphinitemlistcontainer.moc"
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
|
||||
#include <kitemviews/kfileitemlistview.h>
|
||||
#include <kitemviews/kitemlistcontainer.h>
|
||||
#include <settings/viewmodes/viewmodesettings.h>
|
||||
|
||||
#include <libdolphin_export.h>
|
||||
|
||||
|
@ -63,8 +64,16 @@ public:
|
|||
void beginTransaction();
|
||||
void endTransaction();
|
||||
|
||||
/**
|
||||
* Refreshs the view by reapplying the (changed) viewmode settings.
|
||||
*/
|
||||
void refresh();
|
||||
|
||||
private:
|
||||
void updateGridSize();
|
||||
void updateFont();
|
||||
|
||||
ViewModeSettings::ViewMode viewMode() const;
|
||||
|
||||
private:
|
||||
int m_zoomLevel;
|
||||
|
|
|
@ -445,15 +445,9 @@ void DolphinView::stopLoading()
|
|||
|
||||
void DolphinView::refresh()
|
||||
{
|
||||
const bool oldActivationState = m_active;
|
||||
const int oldZoomLevel = zoomLevel();
|
||||
m_active = true;
|
||||
|
||||
m_container->refresh();
|
||||
applyViewProperties();
|
||||
reload();
|
||||
|
||||
setActive(oldActivationState);
|
||||
updateZoomLevel(oldZoomLevel);
|
||||
}
|
||||
|
||||
void DolphinView::setNameFilter(const QString& nameFilter)
|
||||
|
@ -1244,16 +1238,6 @@ void DolphinView::pasteToUrl(const KUrl& url)
|
|||
KonqOperations::doPaste(this, url);
|
||||
}
|
||||
|
||||
void DolphinView::updateZoomLevel(int oldZoomLevel)
|
||||
{
|
||||
Q_UNUSED(oldZoomLevel);
|
||||
/* const int newZoomLevel = ZoomLevelInfo::zoomLevelForIconSize(m_viewAccessor.itemView()->iconSize());
|
||||
if (oldZoomLevel != newZoomLevel) {
|
||||
m_viewModeController->setZoomLevel(newZoomLevel);
|
||||
emit zoomLevelChanged(newZoomLevel);
|
||||
}*/
|
||||
}
|
||||
|
||||
KUrl::List DolphinView::simplifiedSelectedUrls() const
|
||||
{
|
||||
KUrl::List urls;
|
||||
|
|
|
@ -694,14 +694,6 @@ private:
|
|||
*/
|
||||
void pasteToUrl(const KUrl& url);
|
||||
|
||||
/**
|
||||
* Checks whether the current item view has the same zoom level
|
||||
* as \a oldZoomLevel. If this is not the case, the zoom level
|
||||
* of the controller is updated and a zoomLevelChanged() signal
|
||||
* is emitted.
|
||||
*/
|
||||
void updateZoomLevel(int oldZoomLevel);
|
||||
|
||||
/**
|
||||
* Returns a list of URLs for all selected items. The list is
|
||||
* simplified, so that when the URLs are part of different tree
|
||||
|
|
Loading…
Reference in a new issue