#include "dolphinitemlistview.h"
+#include "dolphin_compactmodesettings.h"
+#include "dolphin_detailsmodesettings.h"
#include "dolphin_generalsettings.h"
#include "dolphin_iconsmodesettings.h"
-#include "dolphin_detailsmodesettings.h"
-#include "dolphin_compactmodesettings.h"
#include "dolphinfileitemlistwidget.h"
-
-#include <kitemviews/kfileitemlistview.h>
-#include <kitemviews/kfileitemmodel.h>
-#include <kitemviews/kitemlistcontroller.h>
-#include <kitemviews/kitemliststyleoption.h>
-
-#include <KGlobalSettings>
-
-#include <views/viewmodecontroller.h>
-
+#include "kitemviews/kfileitemmodel.h"
+#include "kitemviews/kitemlistcontroller.h"
+#include "views/viewmodecontroller.h"
#include "zoomlevelinfo.h"
+#include <KIO/PreviewJob>
+
DolphinItemListView::DolphinItemListView(QGraphicsWidget* parent) :
KFileItemListView(parent),
updateFont();
updateGridSize();
- const KConfigGroup globalConfig(KGlobal::config(), "PreviewSettings");
- const QStringList plugins = globalConfig.readEntry("Plugins", QStringList()
- << "directorythumbnail"
- << "imagethumbnail"
- << "jpegthumbnail");
- setEnabledPlugins(plugins);
+ const KConfigGroup globalConfig(KSharedConfig::openConfig(), "PreviewSettings");
+ setEnabledPlugins(globalConfig.readEntry("Plugins", KIO::PreviewJob::defaultPlugins()));
endTransaction();
}
void DolphinItemListView::writeSettings()
{
- IconsModeSettings::self()->writeConfig();
- CompactModeSettings::self()->writeConfig();
- DetailsModeSettings::self()->writeConfig();
+ IconsModeSettings::self()->save();
+ CompactModeSettings::self()->save();
+ DetailsModeSettings::self()->save();
}
KItemListWidgetCreatorBase* DolphinItemListView::defaultWidgetCreator() const
updateGridSize();
}
+void DolphinItemListView::updateFont()
+{
+ const ViewModeSettings settings(viewMode());
+
+ if (settings.useSystemFont()) {
+ KItemListView::updateFont();
+ } else {
+ QFont font(settings.fontFamily(), qRound(settings.fontSize()));
+ font.setItalic(settings.italicFont());
+ font.setWeight(settings.fontWeight());
+ font.setPointSizeF(settings.fontSize());
+
+ KItemListStyleOption option = styleOption();
+ option.font = font;
+ option.fontMetrics = QFontMetrics(font);
+
+ setStyleOption(option);
+ }
+}
+
void DolphinItemListView::updateGridSize()
{
const ViewModeSettings settings(viewMode());
// Calculate the item-width and item-height
int itemWidth;
int itemHeight;
- QSize maxTextSize;
+ int maxTextLines = 0;
+ int maxTextWidth = 0;
switch (itemLayout()) {
case KFileItemListView::IconsLayout: {
const int minItemWidth = 48;
itemWidth = minItemWidth + IconsModeSettings::textWidthIndex() * 64;
- if (previewsShown()) {
- // Optimize the width for previews with a 3:2 aspect ratio instead
- // of a 1:1 ratio to avoid wasting too much vertical space when
- // showing photos.
- const int minWidth = iconSize * 3 / 2;
- itemWidth = qMax(itemWidth, minWidth);
- }
-
if (itemWidth < iconSize + padding * 2) {
itemWidth = iconSize + padding * 2;
}
itemHeight = padding * 3 + iconSize + option.fontMetrics.lineSpacing();
- if (IconsModeSettings::maximumTextLines() > 0) {
- // A restriction is given for the maximum number of textlines (0 means
- // having no restriction)
- const int additionalInfoCount = visibleRoles().count() - 1;
- const int maxAdditionalLines = additionalInfoCount + IconsModeSettings::maximumTextLines();
- maxTextSize.rheight() = option.fontMetrics.lineSpacing() * maxAdditionalLines;
- }
horizontalMargin = 4;
verticalMargin = 8;
+ maxTextLines = IconsModeSettings::maximumTextLines();
break;
}
case KFileItemListView::CompactLayout: {
if (CompactModeSettings::maximumTextWidthIndex() > 0) {
// A restriction is given for the maximum width of the text (0 means
// having no restriction)
- maxTextSize.rwidth() = option.fontMetrics.height() * 10 *
- CompactModeSettings::maximumTextWidthIndex();
+ maxTextWidth = option.fontMetrics.height() * 10 * CompactModeSettings::maximumTextWidthIndex();
}
horizontalMargin = 8;
option.horizontalMargin = horizontalMargin;
option.verticalMargin = verticalMargin;
option.iconSize = iconSize;
- option.maxTextSize = maxTextSize;
+ option.maxTextLines = maxTextLines;
+ option.maxTextWidth = maxTextWidth;
beginTransaction();
setStyleOption(option);
setItemSize(QSizeF(itemWidth, itemHeight));
endTransaction();
}
-void DolphinItemListView::updateFont()
-{
- KItemListStyleOption option = styleOption();
-
- const ViewModeSettings settings(viewMode());
-
- QFont font(settings.fontFamily(), qRound(settings.fontSize()));
- font.setItalic(settings.italicFont());
- font.setWeight(settings.fontWeight());
- font.setPointSizeF(settings.fontSize());
-
- option.font = font;
- option.fontMetrics = QFontMetrics(font);
-
- setStyleOption(option);
-}
-
ViewModeSettings::ViewMode DolphinItemListView::viewMode() const
{
ViewModeSettings::ViewMode mode;
return mode;
}
-#include "dolphinitemlistview.moc"