Kstars

colorscheme.h
1 /*
2  SPDX-FileCopyrightText: 2002 Jason Harris <[email protected]>
3 
4  SPDX-License-Identifier: GPL-2.0-or-later
5 */
6 
7 #pragma once
8 
9 #include <QColor>
10 #include <QMap>
11 #include <QStringList>
12 
13 /**
14  * @class ColorScheme
15  * This class stores all of the adjustable colors in KStars, in
16  * a QMap object keyed by the names of the colors. It also stores
17  * information on how stars are to be rendered in the map
18  * (with realistic colors, or as solid red/whit/black circles).
19  * In addition to the brief "Key names" used to index the colors in
20  * the QMap, each color has a "long name" description that is a bit
21  * more verbose, and suitable for UI display.
22  *
23  * @author Jason Harris
24  * @version 1.0
25  */
27 {
28  public:
29  /**
30  * Constructor. Enter all adjustable colors and their default
31  * values into the QMap. Also assign the corresponding long names.
32  */
33  ColorScheme();
34 
35  /** @return true if the Palette contains the given key name */
36  bool hasColorNamed(const QString &name) const { return (Palette.contains(name)); }
37 
38  /**
39  * @short Retrieve a color by name.
40  * @p name the key name of the color to be retrieved.
41  * @return the requested color, or Qt::white if color name not found.
42  */
43  QColor colorNamed(const QString &name) const;
44 
45  /**
46  * @p i the index of the color to retrieve
47  * @return a color by its index in the QMap
48  */
49  QColor colorAt(int i) const;
50 
51  /**
52  * @p i the index of the long name to retrieve
53  * @return the name of the color at index i
54  */
55  QString nameAt(int i) const;
56 
57  /**
58  * @p i the index of the key name to retrieve
59  * @return the key name of the color at index i
60  */
61  QString keyAt(int i) const;
62 
63  /**
64  * @return the long name of the color whose key name is given
65  * @p key the key name identifying the color.
66  */
67  QString nameFromKey(const QString &key) const;
68 
69  /**
70  * Change the color with the given key to the given value
71  * @p key the key-name of the color to be changed
72  * @p color the new color value
73  */
74  void setColor(const QString &key, const QString &color);
75 
76  /**
77  * Load a color scheme from a *.colors file
78  * @p filename the filename of the color scheme to be loaded.
79  * @return true if the scheme was successfully loaded
80  */
81  bool load(const QString &filename);
82 
83  /**
84  * Save the current color scheme to a *.colors file.
85  * @p name the filename to create
86  * @return true if the color scheme is successfully writen to a file
87  */
88  bool save(const QString &name);
89 
90  /** @return the Filename associated with the color scheme. */
91  QString fileName() const { return FileName; }
92 
93  /** Read color-scheme data from the Config object. */
94  void loadFromConfig();
95 
96  /** Save color-scheme data to the Config object. */
97  void saveToConfig();
98 
99  /** @return the number of colors in the color scheme. */
100  unsigned int numberOfColors() const { return (int)Palette.size(); }
101 
102  /** @return the star color mode used by the color scheme */
103  int starColorMode() const { return StarColorMode; }
104 
105  /** @return True if dark palette colors are used by the color scheme */
106  bool useDarkPalette() const { return DarkPalette == 1; }
107 
108  /** @return the star color intensity value used by the color scheme */
109  int starColorIntensity() const { return StarColorIntensity; }
110 
111  /**
112  * Set the star color mode used by the color scheme
113  * @p mode the star color mode to use
114  */
115  void setStarColorMode(int mode);
116 
117  /**
118  * Set the star color intensity value used by the color scheme
119  * @p intens The star color intensity value
120  */
121  void setStarColorIntensity(int intens);
122 
123  /**
124  * Set the star color mode and intensity value used by the color scheme
125  * @p mode the star color mode to use
126  * @p intens The star color intensity value
127  */
128  void setStarColorModeIntensity(int mode, int intens);
129 
130  /**
131  * @brief setDarkPalette Set whether the color schemes uses dark palette
132  * @param enable True to use dark palette. False to use application default palette
133  */
134  void setDarkPalette(bool enable);
135 
136  private:
137  /** Append items to all string lists. */
138  void appendItem(const QString &key, const QString &name, const QString &def);
139 
140  int StarColorMode { 0 };
141  int StarColorIntensity { 0 };
142  int DarkPalette { 0 };
143  QString FileName;
144  QStringList KeyName, Name, Default;
146 };
bool save(const QString &name)
Save the current color scheme to a *.colors file.
QString keyAt(int i) const
i the index of the key name to retrieve
bool hasColorNamed(const QString &name) const
Definition: colorscheme.h:36
unsigned int numberOfColors() const
Definition: colorscheme.h:100
QString nameAt(int i) const
i the index of the long name to retrieve
ColorScheme()
Constructor.
Definition: colorscheme.cpp:20
void loadFromConfig()
Read color-scheme data from the Config object.
void setStarColorMode(int mode)
Set the star color mode used by the color scheme mode the star color mode to use.
bool useDarkPalette() const
Definition: colorscheme.h:106
void setStarColorModeIntensity(int mode, int intens)
Set the star color mode and intensity value used by the color scheme mode the star color mode to use ...
QString nameFromKey(const QString &key) const
bool load(const QString &filename)
Load a color scheme from a *.colors file filename the filename of the color scheme to be loaded.
void setDarkPalette(bool enable)
setDarkPalette Set whether the color schemes uses dark palette
QString fileName() const
Definition: colorscheme.h:91
int starColorMode() const
Definition: colorscheme.h:103
void saveToConfig()
Save color-scheme data to the Config object.
int starColorIntensity() const
Definition: colorscheme.h:109
void setColor(const QString &key, const QString &color)
Change the color with the given key to the given value key the key-name of the color to be changed co...
void setStarColorIntensity(int intens)
Set the star color intensity value used by the color scheme intens The star color intensity value.
QColor colorAt(int i) const
i the index of the color to retrieve
Definition: colorscheme.cpp:97
QColor colorNamed(const QString &name) const
Retrieve a color by name.
Definition: colorscheme.cpp:86
This file is part of the KDE documentation.
Documentation copyright © 1996-2022 The KDE developers.
Generated on Sun Aug 14 2022 04:13:55 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.