┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/settings/viewmodes/viewmodesettings.cpp
blob: 73a91a2723e7300b11e72b65d091d95c134174fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
/*
 * SPDX-FileCopyrightText: 2011 Peter Penz <[email protected]>
 * SPDX-FileCopyrightText: 2021 Felix Ernst <[email protected]>
 *
 * SPDX-License-Identifier: GPL-2.0-or-later
 */

#include "viewmodesettings.h"

#include "dolphin_compactmodesettings.h"
#include "dolphin_detailsmodesettings.h"
#include "dolphin_iconsmodesettings.h"

ViewModeSettings::ViewModeSettings(DolphinView::Mode mode)
{
    switch (mode) {
    case DolphinView::IconsView:    m_viewModeSettingsVariant = IconsModeSettings::self();   return;
    case DolphinView::CompactView:  m_viewModeSettingsVariant = CompactModeSettings::self(); return;
    case DolphinView::DetailsView:  m_viewModeSettingsVariant = DetailsModeSettings::self(); return;
    default:
        Q_UNREACHABLE();
    }
}

ViewModeSettings::ViewModeSettings(ViewSettingsTab::Mode mode)
{
    switch (mode) {
    case ViewSettingsTab::IconsMode:    m_viewModeSettingsVariant = IconsModeSettings::self();   return;
    case ViewSettingsTab::CompactMode:  m_viewModeSettingsVariant = CompactModeSettings::self(); return;
    case ViewSettingsTab::DetailsMode:  m_viewModeSettingsVariant = DetailsModeSettings::self(); return;
    default:
        Q_UNREACHABLE();
    }
}

ViewModeSettings::ViewModeSettings(KStandardItemListView::ItemLayout itemLayout)
{
    switch (itemLayout) {
    case KStandardItemListView::IconsLayout:    m_viewModeSettingsVariant = IconsModeSettings::self();   return;
    case KStandardItemListView::CompactLayout:  m_viewModeSettingsVariant = CompactModeSettings::self(); return;
    case KStandardItemListView::DetailsLayout:  m_viewModeSettingsVariant = DetailsModeSettings::self(); return;
    default:
        Q_UNREACHABLE();
    }
}

void ViewModeSettings::setIconSize(int iconSize)
{
    std::visit([iconSize](auto &&v) {
        v->setIconSize(iconSize);
    }, m_viewModeSettingsVariant);
}

int ViewModeSettings::iconSize() const
{
    return std::visit([](auto &&v) {
        return v->iconSize();
    }, m_viewModeSettingsVariant);
}

void ViewModeSettings::setPreviewSize(int previewSize)
{
    std::visit([previewSize](auto &&v) {
        v->setPreviewSize(previewSize);
    }, m_viewModeSettingsVariant);
}

int ViewModeSettings::previewSize() const
{
    return std::visit([](auto &&v) {
        return v->previewSize();
    }, m_viewModeSettingsVariant);
}

void ViewModeSettings::setUseSystemFont(bool useSystemFont)
{
    std::visit([useSystemFont](auto &&v) {
        v->setUseSystemFont(useSystemFont);
    }, m_viewModeSettingsVariant);
}

bool ViewModeSettings::useSystemFont() const
{
    return std::visit([](auto &&v) {
        return v->useSystemFont();
    }, m_viewModeSettingsVariant);
}

void ViewModeSettings::setViewFont(const QFont &font)
{
    std::visit([&font](auto &&v) {
        v->setViewFont(font);
    }, m_viewModeSettingsVariant);
}

QFont ViewModeSettings::viewFont() const
{
    return std::visit([](auto &&v) {
        return v->viewFont();
    }, m_viewModeSettingsVariant);
}

void ViewModeSettings::useDefaults(bool useDefaults)
{
    std::visit([useDefaults](auto &&v) {
        v->useDefaults(useDefaults);
    }, m_viewModeSettingsVariant);
}

void ViewModeSettings::readConfig()
{
    std::visit([](auto &&v) {
        v->load();
    }, m_viewModeSettingsVariant);
}

void ViewModeSettings::save()
{
    std::visit([](auto &&v) {
        return v->save();
    }, m_viewModeSettingsVariant);
}