18#include "preferencemanager.h"
23PreferenceManager::PreferenceManager(
Editor* editor) :
BaseManager(editor, __FUNCTION__)
27PreferenceManager::~PreferenceManager()
31bool PreferenceManager::init()
47void PreferenceManager::loadPrefs()
52 set(SETTING::GRID, settings.value(SETTING_SHOW_GRID,
false).toBool());
53 set(SETTING::INVISIBLE_LINES, settings.value(SETTING_INVISIBLE_LINES,
false).toBool());
54 set(SETTING::OUTLINES, settings.value(SETTING_OUTLINES,
false).toBool());
55 set(SETTING::OVERLAY_CENTER, settings.value(SETTING_OVERLAY_CENTER,
false).toBool());
56 set(SETTING::OVERLAY_THIRDS, settings.value(SETTING_OVERLAY_THIRDS,
false).toBool());
57 set(SETTING::OVERLAY_GOLDEN, settings.value(SETTING_OVERLAY_GOLDEN,
false).toBool());
58 set(SETTING::OVERLAY_SAFE, settings.value(SETTING_OVERLAY_SAFE,
false).toBool());
59 set(SETTING::OVERLAY_PERSPECTIVE1, settings.value(SETTING_OVERLAY_PERSPECTIVE1,
false).toBool());
60 set(SETTING::OVERLAY_PERSPECTIVE2, settings.value(SETTING_OVERLAY_PERSPECTIVE2,
false).toBool());
61 set(SETTING::OVERLAY_PERSPECTIVE3, settings.value(SETTING_OVERLAY_PERSPECTIVE3,
false).toBool());
62 set(SETTING::OVERLAY_ANGLE, settings.value(SETTING_OVERLAY_ANGLE, 15).toInt());
63 set(SETTING::ACTION_SAFE, settings.value(SETTING_ACTION_SAFE, 5).toInt());
64 set(SETTING::ACTION_SAFE_ON, settings.value(SETTING_ACTION_SAFE_ON,
true).toBool());
65 set(SETTING::OVERLAY_SAFE_HELPER_TEXT_ON, settings.value(SETTING_OVERLAY_SAFE_HELPER_TEXT_ON,
true).toBool());
66 set(SETTING::TITLE_SAFE, settings.value(SETTING_TITLE_SAFE, 10).toInt());
67 set(SETTING::TITLE_SAFE_ON, settings.value(SETTING_TITLE_SAFE_ON,
true).toBool());
70 set(SETTING::GRID_SIZE_W, settings.value(SETTING_GRID_SIZE_W, 100).toInt());
71 set(SETTING::GRID_SIZE_H, settings.value(SETTING_GRID_SIZE_H, 100).toInt());
74 set(SETTING::ANTIALIAS, settings.value(SETTING_ANTIALIAS,
true).toBool());
75 set(SETTING::TOOL_CURSOR, settings.value(SETTING_TOOL_CURSOR,
true).toBool());
76 set(SETTING::CANVAS_CURSOR, settings.value(SETTING_CANVAS_CURSOR,
true).toBool());
77 set(SETTING::HIGH_RESOLUTION, settings.value(SETTING_HIGH_RESOLUTION,
true).toBool());
78 set(SETTING::SHADOW, settings.value(SETTING_SHADOW,
false).toBool());
79 set(SETTING::QUICK_SIZING, settings.value(SETTING_QUICK_SIZING,
true).toBool());
80 set(SETTING::SHOW_SELECTION_INFO, settings.value(SETTING_SHOW_SELECTION_INFO,
false).toBool());
82 set(SETTING::INVERT_DRAG_ZOOM_DIRECTION, settings.value(SETTING_INVERT_DRAG_ZOOM_DIRECTION,
false).toBool());
83 set(SETTING::INVERT_SCROLL_ZOOM_DIRECTION, settings.value(SETTING_INVERT_SCROLL_ZOOM_DIRECTION,
false).toBool());
85 set(SETTING::ROTATION_INCREMENT, settings.value(SETTING_ROTATION_INCREMENT, 15).toInt());
87 set(SETTING::WINDOW_OPACITY, settings.value(SETTING_WINDOW_OPACITY, 0).toInt());
88 set(SETTING::SHOW_STATUS_BAR, settings.value(SETTING_SHOW_STATUS_BAR,
true).toBool());
89 set(SETTING::CURVE_SMOOTHING, settings.value(SETTING_CURVE_SMOOTHING, 20).toInt());
91 set(SETTING::BACKGROUND_STYLE, settings.value(SETTING_BACKGROUND_STYLE,
"white").toString());
93 set(SETTING::LAYOUT_LOCK, settings.value(SETTING_LAYOUT_LOCK,
false).toBool());
94 set(SETTING::FRAME_POOL_SIZE, settings.value(SETTING_FRAME_POOL_SIZE, 1024).toInt());
96 set(SETTING::FPS, settings.value(SETTING_FPS, 12).toInt());
97 set(SETTING::FIELD_W, settings.value(SETTING_FIELD_W, 800).toInt());
98 set(SETTING::FIELD_H, settings.value(SETTING_FIELD_H, 600).toInt());
99 set(SETTING::TIMECODE_TEXT, settings.value(SETTING_TIMECODE_TEXT, 1).toInt());
102 set(SETTING::AUTO_SAVE, settings.value(SETTING_AUTO_SAVE,
false).toBool());
103 set(SETTING::AUTO_SAVE_NUMBER, settings.value(SETTING_AUTO_SAVE_NUMBER, 256).toInt());
104 set(SETTING::ASK_FOR_PRESET, settings.value(SETTING_ASK_FOR_PRESET,
false).toBool());
105 set(SETTING::LOAD_MOST_RECENT, settings.value(SETTING_LOAD_MOST_RECENT,
false).toBool());
106 set(SETTING::LOAD_DEFAULT_PRESET, settings.value(SETTING_LOAD_DEFAULT_PRESET,
true).toBool());
107 set(SETTING::DEFAULT_PRESET, settings.value(SETTING_DEFAULT_PRESET, 0).toInt());
110 set(SETTING::SHORT_SCRUB, settings.value(SETTING_SHORT_SCRUB,
false ).toBool());
111 set(SETTING::FRAME_SIZE, settings.value(SETTING_FRAME_SIZE, 12).toInt());
112 set(SETTING::TIMELINE_SIZE, settings.value(SETTING_TIMELINE_SIZE, 240).toInt());
113 set(SETTING::DRAW_LABEL, settings.value(SETTING_DRAW_LABEL,
false ).toBool());
114 set(SETTING::LABEL_FONT_SIZE, settings.value(SETTING_LABEL_FONT_SIZE, 12).toInt());
116 set( SETTING::DRAW_ON_EMPTY_FRAME_ACTION, settings.value( SETTING_DRAW_ON_EMPTY_FRAME_ACTION,
117 KEEP_DRAWING_ON_PREVIOUS_KEY).toInt() );
120 set(SETTING::PREV_ONION, settings.value(SETTING_PREV_ONION,
false).toBool());
121 set(SETTING::NEXT_ONION, settings.value(SETTING_NEXT_ONION,
false).toBool());
122 set(SETTING::MULTILAYER_ONION, settings.value(SETTING_MULTILAYER_ONION,
false).toBool());
123 set(SETTING::ONION_BLUE, settings.value(SETTING_ONION_BLUE,
false).toBool());
124 set(SETTING::ONION_RED, settings.value(SETTING_ONION_RED,
false).toBool());
126 set(SETTING::ONION_MAX_OPACITY, settings.value(SETTING_ONION_MAX_OPACITY, 50).toInt());
127 set(SETTING::ONION_MIN_OPACITY, settings.value(SETTING_ONION_MIN_OPACITY, 20).toInt());
128 set(SETTING::ONION_PREV_FRAMES_NUM, settings.value(SETTING_ONION_PREV_FRAMES_NUM, 5).toInt());
129 set(SETTING::ONION_NEXT_FRAMES_NUM, settings.value(SETTING_ONION_NEXT_FRAMES_NUM, 5).toInt());
130 set(SETTING::ONION_WHILE_PLAYBACK, settings.value(SETTING_ONION_WHILE_PLAYBACK, 0).toInt());
131 set(SETTING::ONION_TYPE, settings.value(SETTING_ONION_TYPE,
"relative").toString());
132 set(SETTING::LAYER_VISIBILITY, settings.value(SETTING_LAYER_VISIBILITY, 2).toInt());
133 set(SETTING::LAYER_VISIBILITY_THRESHOLD, settings.value(SETTING_LAYER_VISIBILITY_THRESHOLD, 0.5f).toFloat());
135 set(SETTING::FLIP_ROLL_MSEC, settings.value(SETTING_FLIP_ROLL_MSEC, 100).toInt());
136 set(SETTING::FLIP_ROLL_DRAWINGS, settings.value(SETTING_FLIP_ROLL_DRAWINGS, 5).toInt());
137 set(SETTING::FLIP_INBETWEEN_MSEC, settings.value(SETTING_FLIP_INBETWEEN_MSEC, 100).toInt());
138 set(SETTING::SOUND_SCRUB_ACTIVE, settings.value(SETTING_SOUND_SCRUB_ACTIVE,
false).toBool());
139 set(SETTING::SOUND_SCRUB_MSEC, settings.value(SETTING_SOUND_SCRUB_MSEC, 100).toInt());
141 set(SETTING::LANGUAGE, settings.value(SETTING_LANGUAGE).toString());
144void PreferenceManager::turnOn(SETTING option)
149void PreferenceManager::turnOff(SETTING option)
154bool PreferenceManager::isOn(SETTING option)
156 int optionId =
static_cast<int>(option);
157 return mBooleanSet.
value(optionId,
false);
160int PreferenceManager::getInt(SETTING option)
162 int optionId =
static_cast<int>(option);
163 return mIntegerSet.
value(optionId, -1);
166float PreferenceManager::getFloat(SETTING option)
168 int optionId =
static_cast<int>(option);
169 return mFloatingPointSet.
value(optionId, -1);
172QString PreferenceManager::getString(SETTING option)
174 int optionId =
static_cast<int>(option);
179 else if (mBooleanSet.
contains(optionId))
181 if (mBooleanSet.
value(optionId,
false))
190 return mStringSet.
value(optionId);
193void PreferenceManager::set(SETTING option,
QString value)
198 case SETTING::BACKGROUND_STYLE:
199 settings.setValue(SETTING_BACKGROUND_STYLE, value);
201 case SETTING::ONION_TYPE:
202 settings.setValue(SETTING_ONION_TYPE, value);
204 case SETTING::LANGUAGE:
205 settings.setValue(SETTING_LANGUAGE, value);
211 int optionId =
static_cast<int>(option);
212 if (mStringSet[optionId] != value)
214 mStringSet[optionId] = value;
215 emit optionChanged(option);
219void PreferenceManager::set(SETTING option,
float value)
224 case SETTING::LAYER_VISIBILITY_THRESHOLD:
225 settings.setValue(SETTING_LAYER_VISIBILITY_THRESHOLD, value);
233 int optionId =
static_cast<int>(option);
235 if (qFuzzyCompare(mFloatingPointSet[optionId], value) ==
false)
237 mFloatingPointSet[optionId] = value;
238 emit optionChanged(option);
242void PreferenceManager::set(SETTING option,
int value)
247 case SETTING::WINDOW_OPACITY:
248 settings.setValue(SETTING_WINDOW_OPACITY, value);
250 case SETTING::CURVE_SMOOTHING:
251 settings.setValue(SETTING_CURVE_SMOOTHING, value);
253 case SETTING::AUTO_SAVE_NUMBER:
254 settings.setValue(SETTING_AUTO_SAVE_NUMBER, value);
256 case SETTING::FRAME_SIZE:
257 if (value < 4) { value = 4; }
258 else if (value > 40) { value = 40; }
259 settings.setValue(SETTING_FRAME_SIZE, value);
261 case SETTING::TIMELINE_SIZE:
262 if (value < 2) { value = 2; }
263 settings.setValue(SETTING_TIMELINE_SIZE, value);
265 case SETTING::LABEL_FONT_SIZE:
266 if (value < 12) { value = 12; }
267 settings.setValue(SETTING_LABEL_FONT_SIZE, value);
269 case SETTING::ONION_MAX_OPACITY:
270 settings.setValue(SETTING_ONION_MAX_OPACITY, value);
272 case SETTING::ONION_MIN_OPACITY:
273 settings.setValue(SETTING_ONION_MIN_OPACITY, value);
275 case SETTING::ONION_PREV_FRAMES_NUM:
276 settings.setValue(SETTING_ONION_PREV_FRAMES_NUM, value);
278 case SETTING::ONION_NEXT_FRAMES_NUM:
279 settings.setValue(SETTING_ONION_NEXT_FRAMES_NUM, value);
281 case SETTING::OVERLAY_ANGLE:
282 settings.setValue(SETTING_OVERLAY_ANGLE, value);
284 case SETTING::FLIP_ROLL_MSEC :
285 settings.setValue(SETTING_FLIP_ROLL_MSEC, value);
287 case SETTING::FLIP_ROLL_DRAWINGS :
288 settings.setValue(SETTING_FLIP_ROLL_DRAWINGS, value);
290 case SETTING::FLIP_INBETWEEN_MSEC :
291 settings.setValue(SETTING_FLIP_INBETWEEN_MSEC, value);
293 case SETTING::SOUND_SCRUB_MSEC :
294 settings.setValue(SETTING_SOUND_SCRUB_MSEC, value);
296 case SETTING::GRID_SIZE_W:
297 settings.setValue(SETTING_GRID_SIZE_W, value);
299 case SETTING::TIMECODE_TEXT:
300 settings.setValue(SETTING_TIMECODE_TEXT, value);
302 case SETTING::GRID_SIZE_H:
303 settings.setValue(SETTING_GRID_SIZE_H, value);
305 case SETTING::ACTION_SAFE:
306 settings.setValue(SETTING_ACTION_SAFE, value);
308 case SETTING::TITLE_SAFE:
309 settings.setValue(SETTING_TITLE_SAFE, value);
311 case SETTING::FRAME_POOL_SIZE:
312 settings.setValue(SETTING_FRAME_POOL_SIZE, value);
314 case SETTING::DRAW_ON_EMPTY_FRAME_ACTION:
315 settings.setValue( SETTING_DRAW_ON_EMPTY_FRAME_ACTION, value);
317 case SETTING::ONION_WHILE_PLAYBACK:
318 settings.setValue(SETTING_ONION_WHILE_PLAYBACK, value);
320 case SETTING::ROTATION_INCREMENT:
321 settings.setValue(SETTING_ROTATION_INCREMENT, value);
324 settings.setValue(SETTING_FPS, value);
326 case SETTING::FIELD_W:
327 settings.setValue(SETTING_FIELD_W, value);
329 case SETTING::FIELD_H:
330 settings.setValue(SETTING_FIELD_H, value);
332 case SETTING::LAYER_VISIBILITY:
333 settings.setValue(SETTING_LAYER_VISIBILITY, value);
335 case SETTING::DEFAULT_PRESET:
336 settings.setValue(SETTING_DEFAULT_PRESET, value);
343 int optionId =
static_cast<int>(option);
344 if (mIntegerSet[optionId] != value)
346 mIntegerSet[optionId] = value;
347 emit optionChanged(option);
353void PreferenceManager::set(SETTING option,
bool value)
358 case SETTING::SHOW_STATUS_BAR:
359 settings.setValue(SETTING_SHOW_STATUS_BAR, value);
361 case SETTING::ANTIALIAS:
362 settings.setValue(SETTING_ANTIALIAS, value);
365 settings.setValue(SETTING_SHOW_GRID, value);
367 case SETTING::OVERLAY_CENTER:
368 settings.setValue(SETTING_OVERLAY_CENTER, value);
370 case SETTING::OVERLAY_THIRDS:
371 settings.setValue(SETTING_OVERLAY_THIRDS, value);
373 case SETTING::OVERLAY_GOLDEN:
374 settings.setValue(SETTING_OVERLAY_GOLDEN, value);
376 case SETTING::OVERLAY_SAFE:
377 settings.setValue(SETTING_OVERLAY_SAFE, value);
379 case SETTING::OVERLAY_PERSPECTIVE1:
380 settings.setValue(SETTING_OVERLAY_PERSPECTIVE1, value);
382 case SETTING::OVERLAY_PERSPECTIVE2:
383 settings.setValue(SETTING_OVERLAY_PERSPECTIVE2, value);
385 case SETTING::OVERLAY_PERSPECTIVE3:
386 settings.setValue(SETTING_OVERLAY_PERSPECTIVE3, value);
388 case SETTING::ACTION_SAFE_ON:
389 settings.setValue(SETTING_ACTION_SAFE_ON, value);
391 case SETTING::TITLE_SAFE_ON:
392 settings.setValue(SETTING_TITLE_SAFE_ON, value);
394 case SETTING::OVERLAY_SAFE_HELPER_TEXT_ON:
395 settings.setValue(SETTING_OVERLAY_SAFE_HELPER_TEXT_ON, value);
397 case SETTING::SHADOW:
398 settings.setValue(SETTING_SHADOW, value);
400 case SETTING::PREV_ONION:
401 settings.setValue(SETTING_PREV_ONION, value);
403 case SETTING::NEXT_ONION:
404 settings.setValue(SETTING_NEXT_ONION, value);
406 case SETTING::MULTILAYER_ONION:
407 settings.setValue(SETTING_MULTILAYER_ONION, value);
409 case SETTING::INVISIBLE_LINES:
410 settings.setValue(SETTING_INVISIBLE_LINES, value);
412 case SETTING::OUTLINES:
413 settings.setValue(SETTING_OUTLINES, value);
415 case SETTING::ONION_BLUE:
416 settings.setValue(SETTING_ONION_BLUE, value);
418 case SETTING::ONION_RED:
419 settings.setValue(SETTING_ONION_RED, value);
421 case SETTING::TOOL_CURSOR:
422 settings.setValue(SETTING_TOOL_CURSOR, value);
424 case SETTING::CANVAS_CURSOR:
425 settings.setValue(SETTING_CANVAS_CURSOR, value);
427 case SETTING::HIGH_RESOLUTION:
428 settings.setValue(SETTING_HIGH_RESOLUTION, value);
430 case SETTING::AUTO_SAVE:
431 settings.setValue(SETTING_AUTO_SAVE, value);
433 case SETTING::SHORT_SCRUB:
434 settings.setValue(SETTING_SHORT_SCRUB, value);
436 case SETTING::DRAW_LABEL:
437 settings.setValue(SETTING_DRAW_LABEL, value);
439 case SETTING::QUICK_SIZING:
440 settings.setValue(SETTING_QUICK_SIZING, value);
442 case SETTING::INVERT_DRAG_ZOOM_DIRECTION:
443 settings.setValue(SETTING_INVERT_DRAG_ZOOM_DIRECTION, value);
445 case SETTING::INVERT_SCROLL_ZOOM_DIRECTION:
446 settings.setValue(SETTING_INVERT_SCROLL_ZOOM_DIRECTION, value);
448 case SETTING::LAYOUT_LOCK:
449 settings.setValue(SETTING_LAYOUT_LOCK, value);
451 case SETTING::SHOW_SELECTION_INFO:
452 settings.setValue(SETTING_SHOW_SELECTION_INFO, value);
454 case SETTING::SOUND_SCRUB_ACTIVE:
455 settings.setValue(SETTING_SOUND_SCRUB_ACTIVE, value);
457 case SETTING::ASK_FOR_PRESET:
458 settings.setValue(SETTING_ASK_FOR_PRESET, value);
460 case SETTING::LOAD_MOST_RECENT:
461 settings.setValue(SETTING_LOAD_MOST_RECENT, value);
463 case SETTING::LOAD_DEFAULT_PRESET:
464 settings.setValue(SETTING_LOAD_DEFAULT_PRESET, value);
471 int optionId =
static_cast<int>(option);
472 if (mBooleanSet[optionId] != value)
474 mBooleanSet[optionId] = value;
475 emit optionChanged(option);
bool contains(const Key &key) const const
const T value(const Key &key) const const
QString number(int n, int base)