1 #pragma once 2 3 enum LC_PROFILE_KEY 4 { 5 // Settings. 6 LC_PROFILE_FIXED_AXES, 7 LC_PROFILE_LINE_WIDTH, 8 LC_PROFILE_ALLOW_LOD, 9 LC_PROFILE_LOD_DISTANCE, 10 LC_PROFILE_FADE_STEPS, 11 LC_PROFILE_FADE_STEPS_COLOR, 12 LC_PROFILE_HIGHLIGHT_NEW_PARTS, 13 LC_PROFILE_HIGHLIGHT_NEW_PARTS_COLOR, 14 LC_PROFILE_SHADING_MODE, 15 LC_PROFILE_BACKGROUND_GRADIENT, 16 LC_PROFILE_BACKGROUND_COLOR, 17 LC_PROFILE_GRADIENT_COLOR_TOP, 18 LC_PROFILE_GRADIENT_COLOR_BOTTOM, 19 LC_PROFILE_DRAW_AXES, 20 LC_PROFILE_DRAW_AXES_LOCATION, 21 LC_PROFILE_AXES_COLOR, 22 LC_PROFILE_TEXT_COLOR, 23 LC_PROFILE_MARQUEE_BORDER_COLOR, 24 LC_PROFILE_MARQUEE_FILL_COLOR, 25 LC_PROFILE_OVERLAY_COLOR, 26 LC_PROFILE_ACTIVE_VIEW_COLOR, 27 LC_PROFILE_INACTIVE_VIEW_COLOR, 28 LC_PROFILE_DRAW_EDGE_LINES, 29 LC_PROFILE_DRAW_CONDITIONAL_LINES, 30 LC_PROFILE_GRID_STUDS, 31 LC_PROFILE_GRID_STUD_COLOR, 32 LC_PROFILE_GRID_LINES, 33 LC_PROFILE_GRID_LINE_SPACING, 34 LC_PROFILE_GRID_LINE_COLOR, 35 LC_PROFILE_GRID_ORIGIN, 36 LC_PROFILE_ANTIALIASING_SAMPLES, 37 LC_PROFILE_VIEW_SPHERE_ENABLED, 38 LC_PROFILE_VIEW_SPHERE_LOCATION, 39 LC_PROFILE_VIEW_SPHERE_SIZE, 40 LC_PROFILE_VIEW_SPHERE_COLOR, 41 LC_PROFILE_VIEW_SPHERE_TEXT_COLOR, 42 LC_PROFILE_VIEW_SPHERE_HIGHLIGHT_COLOR, 43 44 LC_PROFILE_LANGUAGE, 45 LC_PROFILE_COLOR_THEME, 46 LC_PROFILE_CHECK_UPDATES, 47 LC_PROFILE_PROJECTS_PATH, 48 LC_PROFILE_PARTS_LIBRARY, 49 LC_PROFILE_PART_PALETTES, 50 LC_PROFILE_MINIFIG_SETTINGS, 51 LC_PROFILE_COLOR_CONFIG, 52 LC_PROFILE_KEYBOARD_SHORTCUTS, 53 LC_PROFILE_MOUSE_SHORTCUTS, 54 LC_PROFILE_CATEGORIES, 55 LC_PROFILE_RECENT_FILE1, 56 LC_PROFILE_RECENT_FILE2, 57 LC_PROFILE_RECENT_FILE3, 58 LC_PROFILE_RECENT_FILE4, 59 LC_PROFILE_AUTOLOAD_MOSTRECENT, 60 LC_PROFILE_RESTORE_TAB_LAYOUT, 61 LC_PROFILE_AUTOSAVE_INTERVAL, 62 LC_PROFILE_MOUSE_SENSITIVITY, 63 LC_PROFILE_IMAGE_WIDTH, 64 LC_PROFILE_IMAGE_HEIGHT, 65 LC_PROFILE_IMAGE_EXTENSION, 66 LC_PROFILE_PARTS_LIST_ICONS, 67 LC_PROFILE_PARTS_LIST_NAMES, 68 LC_PROFILE_PARTS_LIST_COLOR, 69 LC_PROFILE_PARTS_LIST_DECORATED, 70 LC_PROFILE_PARTS_LIST_ALIASES, 71 LC_PROFILE_PARTS_LIST_LISTMODE, 72 LC_PROFILE_STUD_STYLE, 73 74 // Defaults for new projects. 75 LC_PROFILE_DEFAULT_AUTHOR_NAME, 76 LC_PROFILE_DEFAULT_AMBIENT_COLOR, 77 78 // Exporters. 79 LC_PROFILE_HTML_OPTIONS, 80 LC_PROFILE_HTML_IMAGE_OPTIONS, 81 LC_PROFILE_HTML_IMAGE_WIDTH, 82 LC_PROFILE_HTML_IMAGE_HEIGHT, 83 LC_PROFILE_POVRAY_PATH, 84 LC_PROFILE_POVRAY_LGEO_PATH, 85 LC_PROFILE_POVRAY_WIDTH, 86 LC_PROFILE_POVRAY_HEIGHT, 87 88 LC_PROFILE_PREVIEW_VIEW_SPHERE_ENABLED, 89 LC_PROFILE_PREVIEW_VIEW_SPHERE_SIZE, 90 LC_PROFILE_PREVIEW_VIEW_SPHERE_LOCATION, 91 LC_PROFILE_PREVIEW_DRAW_AXES, 92 93 LC_PROFILE_STUD_CYLINDER_COLOR, 94 LC_PROFILE_PART_EDGE_COLOR, 95 LC_PROFILE_BLACK_EDGE_COLOR, 96 LC_PROFILE_DARK_EDGE_COLOR, 97 LC_PROFILE_PART_EDGE_CONTRAST, 98 LC_PROFILE_PART_COLOR_VALUE_LD_INDEX, 99 LC_PROFILE_AUTOMATE_EDGE_COLOR, 100 101 LC_NUM_PROFILE_KEYS 102 }; 103 104 enum LC_PROFILE_ENTRY_TYPE 105 { 106 LC_PROFILE_ENTRY_INT, 107 LC_PROFILE_ENTRY_FLOAT, 108 LC_PROFILE_ENTRY_STRING, 109 LC_PROFILE_ENTRY_STRINGLIST, 110 LC_PROFILE_ENTRY_BUFFER 111 }; 112 113 class lcProfileEntry 114 { 115 public: 116 lcProfileEntry(const char* Section, const char* Key, int DefaultValue); 117 lcProfileEntry(const char* Section, const char* Key, unsigned int DefaultValue); 118 lcProfileEntry(const char* Section, const char* Key, float DefaultValue); 119 lcProfileEntry(const char* Section, const char* Key, const char* DefaultValue); 120 lcProfileEntry(const char* Section, const char* Key, const QStringList& StringList); 121 lcProfileEntry(const char* Section, const char* Key); 122 123 LC_PROFILE_ENTRY_TYPE mType; 124 125 const char* mSection; 126 const char* mKey; 127 128 union 129 { 130 int IntValue; 131 float FloatValue; 132 const char* StringValue; 133 } mDefault; 134 }; 135 136 void lcRemoveProfileKey(LC_PROFILE_KEY Key); 137 138 int lcGetDefaultProfileInt(LC_PROFILE_KEY Key); 139 float lcGetDefaultProfileFloat(LC_PROFILE_KEY Key); 140 QString lcGetDefaultProfileString(LC_PROFILE_KEY Key); 141 142 int lcGetProfileInt(LC_PROFILE_KEY Key); 143 float lcGetProfileFloat(LC_PROFILE_KEY Key); 144 QString lcGetProfileString(LC_PROFILE_KEY Key); 145 QStringList lcGetProfileStringList(LC_PROFILE_KEY Key); 146 QByteArray lcGetProfileBuffer(LC_PROFILE_KEY Key); 147 148 void lcSetProfileInt(LC_PROFILE_KEY Key, int Value); 149 void lcSetProfileFloat(LC_PROFILE_KEY Key, float Value); 150 void lcSetProfileString(LC_PROFILE_KEY Key, const QString& Value); 151 void lcSetProfileStringList(LC_PROFILE_KEY Key, const QStringList& Value); 152 void lcSetProfileBuffer(LC_PROFILE_KEY Key, const QByteArray& Buffer); 153