diff options
| author | Peter Penz <[email protected]> | 2006-11-21 06:02:05 +0000 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2006-11-21 06:02:05 +0000 |
| commit | 5252c12db4929886dbe502013e0a1fee6500f568 (patch) | |
| tree | 589d970fd03a9ce4b524f1cc020d980a3a11bdd8 /src/dolphinsettings.h | |
commited initial version of Dolphin
svn path=/trunk/playground/utils/dolphin/; revision=606622
Diffstat (limited to 'src/dolphinsettings.h')
| -rw-r--r-- | src/dolphinsettings.h | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/src/dolphinsettings.h b/src/dolphinsettings.h new file mode 100644 index 000000000..a9dcb8b62 --- /dev/null +++ b/src/dolphinsettings.h @@ -0,0 +1,103 @@ +/*************************************************************************** + * Copyright (C) 2006 by Peter Penz * + * [email protected] * + * * + * 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., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#ifndef DOLPHINSETTINGS_H +#define DOLPHINSETTINGS_H + +class KBookmark; +class KBookmarkManager; +class GeneralSettings; +class IconsModeSettings; +class PreviewsModeSettings; +class DetailsModeSettings; +class SidebarSettings; + +/** + * @brief Manages and stores all settings from Dolphin. + * + * The following properties are stored: + * - home URL + * - default view mode + * - URL navigator state (editable or not) + * - split view + * - bookmarks + * - properties for icons and details view + */ +class DolphinSettings { +public: + static DolphinSettings& instance(); + + GeneralSettings* generalSettings() const { return m_generalSettings; } + IconsModeSettings* iconsModeSettings() const { return m_iconsModeSettings; } + PreviewsModeSettings* previewsModeSettings() const { return m_previewsModeSettings; } + DetailsModeSettings* detailsModeSettings() const { return m_detailsModeSettings; } + SidebarSettings* sidebarSettings() const { return m_sidebarSettings; } + + KBookmarkManager* bookmarkManager() const; + + // TODO: should this really belong here or get moved to a derived KBookmarkManager? + // Dolphin uses some lists where an index is given and the corresponding bookmark + // should get retrieved... + KBookmark bookmark(int index) const; + + /** @see DolphinSettingsBase::save */ + virtual void save(); + + /** + * TODO: just temporary until the port to KDE4 has been done + * + * Calculates the width and the height of the grid dependant from \a hint and + * the current settings. The hint gives information about the wanted text + * width, where a lower value indicates a smaller text width. Currently + * in Dolphin the values 0, 1 and 2 are used. See also + * DolhinIconsViewSettings::textWidthHint. + * + * The calculation of the grid width and grid height is a little bit tricky, + * as the user model does not fit to the implementation model of QIconView. The user model + * allows to specify icon-, preview- and text width sizes, whereas the implementation + * model expects only a grid width and height. The nasty thing is that the specified + * width and height varies dependant from the arrangement (e. g. the height is totally + * ignored for the top-to-bottom arrangement inside QIconView). + */ + void calculateGridSize(int hint); + + /** + * TODO: just temporary until the port to KDE4 has been done + * + * Returns the text width hint dependant from the given settings. + * A lower value indicates a smaller text width. Currently + * in Dolphin the values 0, 1 and 2 are used. The text width hint can + * be used later for DolphinIconsViewSettings::calculateGridSize(). + */ + int textWidthHint() const; + +protected: + DolphinSettings(); + virtual ~DolphinSettings(); + +private: + GeneralSettings* m_generalSettings; + IconsModeSettings* m_iconsModeSettings; + PreviewsModeSettings* m_previewsModeSettings; + DetailsModeSettings* m_detailsModeSettings; + SidebarSettings* m_sidebarSettings; +}; + +#endif |
