Sayonara Player
Loading...
Searching...
No Matches
SettingKey.h
1/* SettingKey.h */
2
3/* Copyright (C) 2011-2024 Michael Lugmair (Lucio Carreras)
4 *
5 * This file is part of sayonara player
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 */
20
21// clazy:excludeall=non-pod-global-static
22
23#ifndef SAYONARA_PLAYER_SETTINGKEY_H
24#define SAYONARA_PLAYER_SETTINGKEY_H
25
26#include "Utils/typedefs.h"
27
28enum class SettingKey :
29 unsigned short
30{
31 AlternativeCovers_Size = 0,
32 AudioConvert_NumberThreads,
33 AudioConvert_PreferredConverter,
34 AudioConvert_QualityLameCBR,
35 AudioConvert_QualityLameVBR,
36 AudioConvert_QualityOgg,
37 Broadcast_Active,
38 Broadcast_Port,
39 Broadcast_Prompt,
40 Cover_FetchFromWWW,
41 Cover_SaveToDB,
42 Cover_SaveToLibrary,
43 Cover_SaveToSayonaraDir,
44 Cover_Server,
45 Cover_StartSearch,
46 Cover_TemplatePath,
47 Dir_ShowTracks,
48 Dir_SplitterDirFile,
49 Dir_SplitterTracks,
50 Dir_TagToFilenameExpression,
51 Engine_AlsaDevice,
52 Engine_BufferSizeMS,
53 Engine_CovertTargetPath,
54 Engine_CrossFaderActive,
55 Engine_CrossFaderTime,
56 Engine_CurTrackPos_s,
57 Engine_Mute,
58 Engine_Name,
59 Engine_Pitch,
60 Engine_PreservePitch,
61 Engine_SR_Active,
62 Engine_SR_AutoRecord,
63 Engine_SR_Path,
64 Engine_SR_SessionPath,
65 Engine_SR_SessionPathTemplate,
66 Engine_SR_Warning,
67 Engine_ShowLevel,
68 Engine_ShowSpectrum,
69 Engine_Sink,
70 Engine_SoundFileExtensions,
71 Engine_SpectrumBins,
72 Engine_Speed,
73 Engine_SpeedActive,
74 Engine_Vol,
75 Eq_Gauss,
76 Eq_Last,
77 Icon_ForceInDarkTheme,
78 Icon_Theme,
79 InfoDialog_Size,
80 InhibitIdle,
81 LFM_Active,
82 LFM_Corrections,
83 LFM_Login,
84 LFM_Password,
85 LFM_ScrobbleTimeSec,
86 LFM_SessionKey,
87 LFM_ShowErrors,
88 LFM_Username,
89 Level_Style,
90 Lib_AllLibraries,
91 Lib_AutoUpdate,
92 Lib_ColStateAlbums,
93 Lib_ColStateArtists,
94 Lib_ColStateTracks,
95 Lib_CoverOrigPMCache,
96 Lib_CoverScaledPMCache,
97 Lib_CoverScrollspeed,
98 Lib_CoverShowArtist,
99 Lib_CoverShowUtils,
100 Lib_CoverShowYear,
101 Lib_CoverShowDuration,
102 Lib_CoverZoom,
103 Lib_CurPlugin,
104 Lib_DC_DoNothing,
105 Lib_DC_PlayIfStopped,
106 Lib_DC_PlayImmediately,
107 Lib_DD_DoNothing,
108 Lib_DD_PlayIfStoppedAndEmpty,
109 Lib_FontBold,
110 Lib_GenreTree,
111 Lib_HeaderAutoResizeAlbums,
112 Lib_HeaderAutoResizeArtists,
113 Lib_HeaderAutoResizeTracks,
114 Lib_LastIndex,
115 Lib_LiveSearch,
116 Lib_OldWidth,
117 Lib_Path,
118 Lib_SearchMode,
119 Lib_SearchStringLength,
120 Lib_Show,
121 Lib_ShowAlbumArtists,
122 Lib_ShowAlbumCovers,
123 Lib_ShowFilterExtBar,
124 Lib_SortIgnoreArtistArticle,
125 Lib_SortModeMask,
126 Lib_Sorting,
127 Lib_SplitterStateArtist,
128 Lib_SplitterStateDate,
129 Lib_SplitterStateGenre,
130 Lib_SplitterStateTrack,
131 Lib_UseViewClearButton,
132 Lib_ViewType,
133 Logger_Level,
134 Lyrics_ServerEntries,
135 Lyrics_Server,
136 Lyrics_Zoom,
137 MP3enc_found,
138 Notification_Name,
139 Notification_Show,
140 Notification_Timeout,
141 PL_CreateFilesystemPlaylist,
142 PL_CurrentTrackColorStringDark,
143 PL_CurrentTrackColorStringStandard,
144 PL_CurrentTrackCustomColorDark,
145 PL_CurrentTrackCustomColorStandard,
146 PL_EntryLook,
147 PL_FilesystemPlaylistName,
148 PL_JumpToCurrentTrack,
149 PL_LastPlaylist,
150 PL_LastTrack,
151 PL_LastTrackBeforeStop,
152 PL_LoadLastTrack,
153 PL_LoadRecentPlaylists,
154 PL_LoadSavedPlaylists,
155 PL_LoadTemporaryPlaylists,
156 PL_Mode,
157 PL_ModificatorAllowDynamicPlayback,
158 PL_ModificatorAllowRearrangeMethods,
159 PL_PlayTrackAfterSearch,
160 PL_RecentPlaylists,
161 PL_RememberTime,
162 PL_RememberTrackAfterStop,
163 PL_ShowBottomBar,
164 PL_ShowClearButton,
165 PL_ShowCovers,
166 PL_ShowNumbers,
167 PL_ShowRating,
168 PL_SpecifyFileystemPlaylistName,
169 PL_StartPlaying,
170 PL_StartPlayingWorkaround_Issue263,
171 PL_StartAtRandomTrackOnShuffle,
172 PL_ShowConfirmationOnClose,
173 Pitch_found,
174 Player_514Fix,
175 Player_ControlStyle,
176 Player_FadingCover,
177 Player_ForceNativeDirDialog,
178 Player_Fullscreen,
179 Player_Geometry,
180 Player_Language,
181 Player_Maximized,
182 Player_Min2Tray,
183 Player_NotifyNewVersion,
184 Player_OneInstance,
185 Player_PrivId,
186 Player_PublicId,
187 Player_ShowTrayIcon,
188 Player_ShownPlugin,
189 Player_SplitterControls,
190 Player_SplitterState,
191 Player_StartInTray,
192 Player_Style,
193 Player_Version,
194 Proxy_Active,
195 Proxy_Hostname,
196 Proxy_Password,
197 Proxy_Port,
198 Proxy_SavePw,
199 Proxy_Username,
200 Settings_Revision,
201 Soundcloud_AuthToken,
202 Spectrum_Style,
203 Speed_LastTab,
204 Speed_MaxValue,
205 Speed_MinValue,
206 Speed_ShowSteps,
207 Speed_Step,
208 Stream_LockedPlaylistByDefault,
209 Stream_NewTab,
210 Stream_SearchWindowSize,
211 Stream_ShowHistory,
212 Stream_UpdateMetadata,
213 Stream_RadioSearcher,
214 Stream_RadioSearcherType,
215 Tagging_UseSelectiveTagging,
216 Num_Setting_Keys
217};
218
219class QString;
220class QStringList;
221class QPoint;
222class QSize;
223class QByteArray;
224
225class EqualizerSetting;
226struct RawShortcutMap;
227
228namespace Playlist
229{
230 class Mode;
231}
232
233namespace Library
234{
235 struct Sortings;
236 class Info;
237 enum class ViewType :
238 quint8;
239}
240
241namespace Lyrics
242{
243 struct ServerEntry;
244}
245
246template<typename DataType, SettingKey keyIndex>
248{
249 using Data [[maybe_unused]] = DataType;
250 const static SettingKey key = keyIndex;
251
252 SettingIdentifier() = delete;
253 ~SettingIdentifier() = delete;
254};
255
256// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
257#define CreateSetting(settingkey, type); \
258 using settingkey = SettingIdentifier<type, SettingKey:: settingkey> // NOLINT(bugprone-macro-parentheses)
259
260namespace Set
261{ // persistent settings
262 //@formatter:off
263 CreateSetting(AlternativeCovers_Size, QSize); // Size of Alternative Cover Dialog
264 CreateSetting(AudioConvert_NumberThreads, int); // Number of threads
265 CreateSetting(AudioConvert_PreferredConverter, QString); // Preferred Converter: ogg, lame cbr, lame vbr
266 CreateSetting(AudioConvert_QualityLameCBR, int); // 64 - 320
267 CreateSetting(AudioConvert_QualityLameVBR, int); // Lame Quality for variable bitrate 1-10
268 CreateSetting(AudioConvert_QualityOgg, int); // 1 - 10
269 CreateSetting(Broadcast_Active, bool); // is broadcast active?
270 CreateSetting(Broadcast_Port, int); // broadcast port
271 CreateSetting(Broadcast_Prompt, bool); // prompt when new connection arrives?
272 CreateSetting(Cover_FetchFromWWW, bool); // Fetch covers from www
273 CreateSetting(Cover_SaveToDB, bool); // Save covers to DB
274 CreateSetting(Cover_SaveToLibrary, bool); // Save covers in library
275 CreateSetting(Cover_SaveToSayonaraDir, bool); // Save covers in library
276 CreateSetting(Cover_Server, QStringList); // Cover server
277 CreateSetting(Cover_StartSearch, bool); // start alternative cover search automatically
278 CreateSetting(Cover_TemplatePath, QString); // Name of cover file in library
279 CreateSetting(Dir_ShowTracks, bool); // show tracks panel in directory view
280 CreateSetting(Dir_SplitterDirFile, QByteArray); // Splitter state between dirs and files
281 CreateSetting(Dir_SplitterTracks, QByteArray); // Splitter between upper and track view
282 CreateSetting(Dir_TagToFilenameExpression, QString); // Last used expression when converting tags to filename
283 CreateSetting(Engine_AlsaDevice, QString); // Specific alsa device
284 CreateSetting(Engine_BufferSizeMS, int); // Buffer size for streaming
285 CreateSetting(Engine_CovertTargetPath, QString); // last convert path
286 CreateSetting(Engine_CrossFaderActive, bool); // crossfader, but not gapless active
287 CreateSetting(Engine_CrossFaderTime, int); // crossfader overlap time
288 CreateSetting(Engine_CurTrackPos_s, int); // position of track (used to load old position)
289 CreateSetting(Engine_Mute, bool); // Muted/unmuted
290 CreateSetting(Engine_Name, QString); // Deprecated: Engine name
291 CreateSetting(Engine_Pitch, int); // hertz of a
292 CreateSetting(Engine_PreservePitch, bool); // if yes, should pitch be preserved?
293 CreateSetting(Engine_SR_Active, bool); // Streamripper active
294 CreateSetting(Engine_SR_AutoRecord, bool); // streamripper automatic recording
295 CreateSetting(Engine_SR_Path, QString); // streamripper paths
296 CreateSetting(Engine_SR_SessionPath, bool); // create streamripper session path?
297 CreateSetting(Engine_SR_SessionPathTemplate, QString); // streamripper session path templat
298 CreateSetting(Engine_SR_Warning, bool); // streamripper warnings
299 CreateSetting(Engine_ShowLevel, bool); // show level
300 CreateSetting(Engine_ShowSpectrum, bool); // show spectrum
301 CreateSetting(Engine_Sink, QString); // Alsa, pulseaudio
302 CreateSetting(Engine_SoundFileExtensions, QStringList); // additional file extensions
303 CreateSetting(Engine_SpectrumBins, int); // number of spectrum bins
304 CreateSetting(Engine_Speed, float); // if yes, set speed
305 CreateSetting(Engine_SpeedActive, bool); // is speed control active?
306 CreateSetting(Engine_Vol, int); // Volume
307 CreateSetting(Eq_Gauss, bool); // do curve, when changing eq setting
308 CreateSetting(Eq_Last, int); // last equalizer index
309 CreateSetting(Icon_ForceInDarkTheme, bool); // Current icon theme
310 CreateSetting(Icon_Theme, QString); // Current icon theme
311 CreateSetting(InfoDialog_Size, QSize); // Size of Info Dialog
312 CreateSetting(InhibitIdle, bool); // Avoid suspend/hibernate while playing music
313 CreateSetting(LFM_Active, bool); // is lastFM active?
314 CreateSetting(LFM_Corrections, bool); // propose lfm corrections
315 CreateSetting(LFM_Login, StringPair); // deprecated: 2-Tupel, username, password
316 CreateSetting(LFM_Password, QString); // encrypted password
317 CreateSetting(LFM_ScrobbleTimeSec, int); // time in sec when to scrobble
318 CreateSetting(LFM_SessionKey, QString); // lfm session key
319 CreateSetting(LFM_ShowErrors, bool); // get error message, if there are lfm problems
320 CreateSetting(LFM_Username, QString); // usernam
321 CreateSetting(Level_Style, int); // index of level style
322 CreateSetting(Lib_AllLibraries, QList<Library::Info>); // deprecated
323 CreateSetting(Lib_AutoUpdate, bool); // Automatic update of library
324 CreateSetting(Lib_ColStateAlbums, QByteArray); // Header state of albums
325 CreateSetting(Lib_ColStateArtists, QByteArray); // Header state of artists
326 CreateSetting(Lib_ColStateTracks, QByteArray); // Header state of tracks
327 CreateSetting(Lib_CoverOrigPMCache, int); // Original sized pixmap cache
328 CreateSetting(Lib_CoverScaledPMCache, int); // Scaled sized pixmap cache
329 CreateSetting(Lib_CoverScrollspeed, int); // Scrollspeed of cover view
330 CreateSetting(Lib_CoverShowArtist, bool); // Show artist name in cover view
331 CreateSetting(Lib_CoverShowYear, bool); // Show year in cover view
332 CreateSetting(Lib_CoverShowDuration, bool); // Show duration in cover view
333 CreateSetting(Lib_CoverShowUtils, bool); // Show utils bar in cover view
334 CreateSetting(Lib_CoverZoom, int); // Zoom of album cover view
335 CreateSetting(Lib_CurPlugin, QString); // Current shown library plugin
336 CreateSetting(Lib_DC_DoNothing, bool); // when double clicked, create playlist and do nothin
337 CreateSetting(Lib_DC_PlayIfStopped, bool); // when double clicked, play if stopped
338 CreateSetting(Lib_DC_PlayImmediately, bool); // when double clicked, play immediately
339 CreateSetting(Lib_DD_DoNothing, bool); // when drag dropped, insert tracks and do nothing
340 CreateSetting(Lib_DD_PlayIfStoppedAndEmpty, bool); // when drag dropped, play if playlist is empty and stopped
341 CreateSetting(Lib_FontBold, bool); // bold fonts in library
342 CreateSetting(Lib_GenreTree, bool); // Show tree view of genres
343 CreateSetting(Lib_HeaderAutoResizeAlbums, bool); // resize columns automatically in albums
344 CreateSetting(Lib_HeaderAutoResizeArtists, bool); // resize columns automatically in artists
345 CreateSetting(Lib_HeaderAutoResizeTracks, bool); // resize columns automatically in tracks
346 CreateSetting(Lib_LastIndex, int); // Last selected library
347 CreateSetting(Lib_LiveSearch, bool); // library live search
348 CreateSetting(Lib_OldWidth, int); // Old library width when hiding library
349 CreateSetting(Lib_Path, QString); // deprecated
350 CreateSetting(Lib_SearchMode, int); // Search mode in library. See
351 CreateSetting(Lib_SearchStringLength, int); // minimum length of search string
352 CreateSetting(Lib_Show, bool); // show library
353 CreateSetting(Lib_ShowAlbumArtists, bool); // Show album artists instead of artists
354 CreateSetting(Lib_ShowAlbumCovers, bool); // Show album cover view
355 CreateSetting(Lib_ShowFilterExtBar, bool); // Show the file extension filter bar in track view
356 CreateSetting(Lib_SortIgnoreArtistArticle, bool); // ignore article for artist
357 CreateSetting(Lib_SortModeMask, int); // additional attributes applied to sorting
358 CreateSetting(Lib_Sorting, Library::Sortings); // how to sort in lib
359 CreateSetting(Lib_SplitterStateArtist, QByteArray); // Splitter state between artists and albums
360 CreateSetting(Lib_SplitterStateDate, QByteArray); // Splitter state between tracks and genres
361 CreateSetting(Lib_SplitterStateGenre, QByteArray); // Splitter state between tracks and genres
362 CreateSetting(Lib_SplitterStateTrack, QByteArray); // Splitter state between artists and tracks
363 CreateSetting(Lib_UseViewClearButton, bool); // Show clear button in single view
364 CreateSetting(Lib_ViewType, Library::ViewType); // Standard view, CoverView, LibraryView
365 CreateSetting(Logger_Level, int); // Also log development:
366 CreateSetting(Lyrics_ServerEntries, QList<Lyrics::ServerEntry>); // disabled lyrics servers
367 CreateSetting(Lyrics_Server, QString); // Last used lyrics server
368 CreateSetting(Lyrics_Zoom, int); // Zoom factor in lyrics window
369 CreateSetting(Notification_Name, QString); // type of notifications: libnotify or empty for native baloons
370 CreateSetting(Notification_Show, bool); // show notifications
371 CreateSetting(Notification_Timeout, int); // notification timeout
372 CreateSetting(PL_CurrentTrackColorStringDark, QString); // custom color in dark theme
373 CreateSetting(PL_CurrentTrackColorStringStandard, QString); // custom color string in standard theme
374 CreateSetting(PL_CurrentTrackCustomColorDark, bool); // use custom color in dark theme
375 CreateSetting(PL_CurrentTrackCustomColorStandard, bool); // use custom color in standard theme
376 CreateSetting(PL_EntryLook, QString); // formatting of playlist entry
377 CreateSetting(PL_JumpToCurrentTrack, bool); // jump to current track when track changes
378 CreateSetting(PL_LastPlaylist, int); // last Playlist id, where LastTrack has been played
379 CreateSetting(PL_LastTrack, int); // last track idx in playlist
380 CreateSetting(PL_LastTrackBeforeStop, int); // last track before stop
381 CreateSetting(PL_LoadLastTrack, bool); // load last track on startup
382 CreateSetting(PL_LoadSavedPlaylists, bool); // load saved playlists on startup
383 CreateSetting(PL_LoadTemporaryPlaylists, bool); // load temporary playlists on startus
384 CreateSetting(PL_CreateFilesystemPlaylist, bool); // create an extra playlist when loading files from file system
385 CreateSetting(PL_SpecifyFileystemPlaylistName, bool); // when creating playlist from files, choose special name
386 CreateSetting(PL_FilesystemPlaylistName, QString); // name of the file system playlist
387 CreateSetting(PL_LoadRecentPlaylists, bool); // load recent playlists
388 CreateSetting(PL_Mode, Playlist::Mode); // playlist mode: rep1, repAll, shuffle...
389 CreateSetting(PL_ModificatorAllowDynamicPlayback, bool);
390 CreateSetting(PL_ModificatorAllowRearrangeMethods, bool);
391 CreateSetting(PL_PlayTrackAfterSearch, bool); // play track after search is done
392 CreateSetting(PL_RecentPlaylists, QList<int>);
393 CreateSetting(PL_RememberTime, bool); // remember time of last track
394 CreateSetting(PL_RememberTrackAfterStop, bool); // when stop button is pressed, remember last track index
395 CreateSetting(PL_ShowBottomBar, bool); // Show bottom bar in playlist
396 CreateSetting(PL_ShowClearButton, bool); // show clear button in playlist
397 CreateSetting(PL_ShowCovers, bool); // Show covers in Playlist
398 CreateSetting(PL_ShowNumbers, bool); // show numbers in playlist
399 CreateSetting(PL_ShowRating, bool); // Show rating in playlist
400 CreateSetting(PL_StartAtRandomTrackOnShuffle, bool); // start randomly when playlist in shuffle mode
401 CreateSetting(PL_StartPlaying, bool); // start playing immediately when opening Sayonara
402 CreateSetting(PL_StartPlayingWorkaround_Issue263, bool); // issue #263
403 CreateSetting(PL_ShowConfirmationOnClose, bool);
404 CreateSetting(Player_514Fix, bool); // https://bugs.archlinux.org/task/59451
405 CreateSetting(Player_ControlStyle, int); // Big cover or not
406 CreateSetting(Player_FadingCover, bool); // If cover buttons should fade
407 CreateSetting(Player_ForceNativeDirDialog, bool); // Under some environments, native dir dialog is disabled
408 CreateSetting(Player_Fullscreen, bool); // player fullscreen
409 CreateSetting(Player_Geometry, QByteArray); // player geometry
410 CreateSetting(Player_Language, QString); // language of player
411 CreateSetting(Player_Maximized, bool); // player maximized
412 CreateSetting(Player_Min2Tray, bool); // minimize Sayonara to tray
413 CreateSetting(Player_NotifyNewVersion, bool); // check for new version on startup
414 CreateSetting(Player_OneInstance, bool); // only one Sayonara instance is allowed
415 CreateSetting(Player_PrivId, QByteArray); // Unique identifier
416 CreateSetting(Player_PublicId, QByteArray); // Unique identifier
417 CreateSetting(Player_ShowTrayIcon, bool); // Show/hide the tray icon
418 CreateSetting(Player_ShownPlugin, QString); // current shown plugin in player, empty if none
419 CreateSetting(Player_SplitterControls, QByteArray); // Splitter state between controls and playlist
420 CreateSetting(Player_SplitterState, QByteArray); // spliter state between playlist and library
421 CreateSetting(Player_StartInTray, bool); // start in tray
422 CreateSetting(Player_Style, int); // dark or native: native = 0, dark = 1
423 CreateSetting(Player_Version, QString); // Version string of player
424 CreateSetting(Proxy_Active, bool); // Is proxy server active
425 CreateSetting(Proxy_Hostname, QString); // Proxy Hostname/IP Address
426 CreateSetting(Proxy_Password, QString); // Proxy Password
427 CreateSetting(Proxy_Port, int); // Proxy Port 3128
428 CreateSetting(Proxy_SavePw, bool); // Should password be saved
429 CreateSetting(Proxy_Username, QString); // Proxy Username
430 CreateSetting(Settings_Revision, int); // Version number of settings
431 CreateSetting(Spectrum_Style, int); // index of spectrum style
432 CreateSetting(Speed_LastTab, int); // Last tab selected int he speed/pitch plugin
433 CreateSetting(Speed_MaxValue, int) // Maximum value for speed range slider [101-10000]
434 CreateSetting(Speed_MinValue, int) // Minimum value for speed range slider [1-99]
435 CreateSetting(Speed_ShowSteps, bool); // Show speed step buttons in speed plugin
436 CreateSetting(Speed_Step, int); // [0-100]
437 CreateSetting(Stream_LockedPlaylistByDefault, bool); // should a stream playlist be locked by default?
438 CreateSetting(Stream_NewTab, bool); // Open Streams in new tab
439 CreateSetting(Stream_RadioSearcher, QString); // Last radio searcher service
440 CreateSetting(Stream_RadioSearcherType, int); // 0 = by name, 1 = by genre
441 CreateSetting(Stream_SearchWindowSize, QSize); // Size of the stream search dialog
442 CreateSetting(Stream_ShowHistory, bool); // Show history when playing streams
443 CreateSetting(Stream_UpdateMetadata, bool); // Update metadata (can be changed for each stream individually)
444 CreateSetting(Tagging_UseSelectiveTagging, bool); // Only updated changed fields
445 //@formatter:off
446}
447
448namespace SetNoDB
449{ // non-persistent settings
450 CreateSetting(MP3enc_found, bool); // is mp3 encoder available?
451 CreateSetting(Pitch_found, bool); // is pitch element available?
452 CreateSetting(Soundcloud_AuthToken, QString); // soundcloud authentication token
453}
454#endif // SAYONARA_PLAYER_SETTINGKEY_H
The EQ_Setting class. Container for Equalizer configurations.
Definition EqualizerSetting.h:35
The Mode class.
Definition PlaylistMode.h:42
Definition EngineUtils.h:33
Definition Sorting.h:32
Definition typedefs.h:33
The RawShortcutMap struct consisting of a specifier writable into database and a shortcut....
Definition RawShortcutMap.h:38
Definition SettingKey.h:248