#include "dolphinitemlistview.h"
#include "dolphin_compactmodesettings.h"
+#include "dolphin_contentdisplaysettings.h"
#include "dolphin_detailsmodesettings.h"
#include "dolphin_generalsettings.h"
#include "dolphin_iconsmodesettings.h"
#include "dolphinfileitemlistwidget.h"
-#include "kitemviews/kfileitemmodel.h"
-#include "kitemviews/kitemlistcontroller.h"
#include "settings/viewmodes/viewmodesettings.h"
-#include "views/viewmodecontroller.h"
#include "zoomlevelinfo.h"
#include <KIO/PreviewJob>
#include <QtMath>
-
-DolphinItemListView::DolphinItemListView(QGraphicsWidget* parent) :
- KFileItemListView(parent),
- m_zoomLevel(0)
+DolphinItemListView::DolphinItemListView(QGraphicsWidget *parent)
+ : KFileItemListView(parent)
+ , m_zoomLevel(0)
{
- updateFont();
+ DolphinItemListView::updateFont();
updateGridSize();
}
return m_zoomLevel;
}
+void DolphinItemListView::setEnabledSelectionToggles(DolphinItemListView::SelectionTogglesEnabled selectionTogglesEnabled)
+{
+ m_selectionTogglesEnabled = selectionTogglesEnabled;
+ switch (m_selectionTogglesEnabled) {
+ case True:
+ return setEnabledSelectionToggles(true);
+ case False:
+ return setEnabledSelectionToggles(false);
+ case FollowSetting:
+ return setEnabledSelectionToggles(GeneralSettings::showSelectionToggle());
+ }
+}
+
void DolphinItemListView::readSettings()
{
- ViewModeSettings settings(itemLayout());
- settings.readConfig();
+ // We load the settings for all view modes now because we don't load them when the view mode changes.
+ IconsModeSettings::self()->load();
+ CompactModeSettings::self()->load();
+ DetailsModeSettings::self()->load();
+
+ ContentDisplaySettings::self()->load();
beginTransaction();
- setEnabledSelectionToggles(GeneralSettings::showSelectionToggle());
- setHighlightEntireRow(DetailsModeSettings::leadingPadding());
+ setEnabledSelectionToggles(m_selectionTogglesEnabled);
+ setHighlightEntireRow(itemLayoutHighlightEntireRow(itemLayout()));
setSupportsItemExpanding(itemLayoutSupportsItemExpanding(itemLayout()));
updateFont();
DetailsModeSettings::self()->save();
}
-KItemListWidgetCreatorBase* DolphinItemListView::defaultWidgetCreator() const
+KItemListWidgetCreatorBase *DolphinItemListView::defaultWidgetCreator() const
{
return new KItemListWidgetCreator<DolphinFileItemListWidget>();
}
+bool DolphinItemListView::itemLayoutHighlightEntireRow(ItemLayout layout) const
+{
+ return layout == DetailsLayout && DetailsModeSettings::highlightEntireRow();
+}
+
bool DolphinItemListView::itemLayoutSupportsItemExpanding(ItemLayout layout) const
{
return layout == DetailsLayout && DetailsModeSettings::expandableFolders();
updateGridSize();
}
-void DolphinItemListView::onVisibleRolesChanged(const QList<QByteArray>& current,
- const QList<QByteArray>& previous)
+void DolphinItemListView::onVisibleRolesChanged(const QList<QByteArray> ¤t, const QList<QByteArray> &previous)
{
KFileItemListView::onVisibleRolesChanged(current, previous);
updateGridSize();
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());
+ QFont font(settings.viewFont());
KItemListStyleOption option = styleOption();
option.font = font;
switch (itemLayout()) {
case KFileItemListView::IconsLayout: {
-
// an exponential factor based on zoom, 0 -> 1, 4 -> 1.36 8 -> ~1.85, 16 -> 3.4
auto zoomFactor = qExp(m_zoomLevel / 13.0);
// 9 is the average char width for 10pt Noto Sans, making fontFactor =1
setItemSize(QSizeF(itemWidth, itemHeight));
endTransaction();
}
+
+#include "moc_dolphinitemlistview.cpp"