]> cloud.milkyroute.net Git - dolphin.git/blob - src/views/dolphinitemlistcontainer.h
Fix "general settings" issues
[dolphin.git] / src / views / dolphinitemlistcontainer.h
1 /***************************************************************************
2 * Copyright (C) 2011 by Peter Penz <peter.penz19@gmail.com> *
3 * *
4 * This program is free software; you can redistribute it and/or modify *
5 * it under the terms of the GNU General Public License as published by *
6 * the Free Software Foundation; either version 2 of the License, or *
7 * (at your option) any later version. *
8 * *
9 * This program is distributed in the hope that it will be useful, *
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
12 * GNU General Public License for more details. *
13 * *
14 * You should have received a copy of the GNU General Public License *
15 * along with this program; if not, write to the *
16 * Free Software Foundation, Inc., *
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
18 ***************************************************************************/
19
20 #ifndef DOLPHINITEMLISTCONTAINER_H
21 #define DOLPHINITEMLISTCONTAINER_H
22
23 #include <kitemviews/kfileitemlistview.h>
24 #include <kitemviews/kitemlistcontainer.h>
25 #include <settings/viewmodes/viewmodesettings.h>
26
27 #include <libdolphin_export.h>
28
29 class KDirLister;
30 class KFileItemListView;
31
32 /**
33 * @brief Extends KItemListContainer by Dolphin specific properties.
34 *
35 * The view and model for KFileItems are created automatically when
36 * instantating KItemListContainer.
37 *
38 * The Dolphin settings of the icons-, compact- and details-view are
39 * converted internally to properties that can be used to configure e.g.
40 * the item-size and visible roles of the KItemListView.
41 */
42 class LIBDOLPHINPRIVATE_EXPORT DolphinItemListContainer : public KItemListContainer
43 {
44 Q_OBJECT
45
46 public:
47 explicit DolphinItemListContainer(KDirLister* dirLister,
48 QWidget* parent = 0);
49
50 virtual ~DolphinItemListContainer();
51
52 void setPreviewsShown(bool show);
53 bool previewsShown() const;
54
55 void setVisibleRoles(const QList<QByteArray>& roles);
56 QList<QByteArray> visibleRoles() const;
57
58 void setZoomLevel(int level);
59 int zoomLevel() const;
60
61 void setItemLayout(KFileItemListView::Layout layout);
62 KFileItemListView::Layout itemLayout() const;
63
64 void beginTransaction();
65 void endTransaction();
66
67 /**
68 * Refreshs the view by reapplying the (changed) viewmode settings.
69 */
70 void refresh();
71
72 private:
73 void updateGridSize();
74 void updateFont();
75
76 /**
77 * Updates the auto activation delay of the itemlist controller
78 * dependent on the 'autoExpand' setting from the general settings.
79 */
80 void updateAutoActivationDelay();
81
82 ViewModeSettings::ViewMode viewMode() const;
83
84 private:
85 int m_zoomLevel;
86 KFileItemListView* m_fileItemListView;
87 };
88
89 #endif