void Load() { std::string filepath = Utilities::getExecPath(DEF_INITNAME); GError *error = NULL; GKeyFile *key_file = g_key_file_new(); gboolean found = g_key_file_load_from_file(key_file, filepath.c_str(), GKeyFileFlags::G_KEY_FILE_NONE, &error); if (found) { if (error) { g_critical("Load configuration fails! %s\n", error->message); g_error_free(error); error = NULL; g_key_file_free(key_file); return; } } m_autohide = g_key_file_get_boolean(key_file, "DockLight", "Autohide", &error); if (error) { g_critical("configuration Key (Autohide) could not be found!! %s\n", error->message); g_error_free(error); error = NULL; g_key_file_free(key_file); return; } char* themename = g_key_file_get_string(key_file, "DockLight", "Theme", &error); if (themename == NULL) { if (error) { //g_print("configuration Key (Theme) could not be found. use default\n"); g_error_free(error); error = NULL; } g_key_file_free(key_file); return; } bool panelScaleOnHover = g_key_file_get_boolean(key_file, themename, "PanelScaleOnHover", &error); if (error) { //g_print("configuration Key (Theme PanelScaleOnHover) could not be found. use default\n"); g_error_free(error); error = NULL; panelScaleOnHover = false; } int panelLinesBinaryValue = g_key_file_get_integer(key_file, themename, "PanelLinesBinaryValue", &error); if (error) { //g_print("configuration Key (Theme %s PanelLinesBinaryValue ) could not be found. use default\n", themename); g_error_free(error); error = NULL; } int panelSelectorLinesBinaryValue = g_key_file_get_integer(key_file, themename, "PanelSelectorLinesBinaryValue", &error); if (error) { //g_print("configuration Key (Theme %s PanelSelectorLinesBinaryValue ) could not be found. use default\n", themename); g_error_free(error); error = NULL; } int previewlLinesBinaryValue = g_key_file_get_integer(key_file, themename, "PreviewLinesBinaryValue", &error); if (error) { //g_print("configuration Key (Theme %s PreviewLinesBinaryValue ) could not be found. use default\n", themename); g_error_free(error); error = NULL; } int previewSelectorLinesBinaryValue = g_key_file_get_integer(key_file, themename, "PreviewSelectorLinesBinaryValue", &error); if (error) { //g_print("configuration Key (Theme %s PreviewSelectorLinesBinaryValue ) could not be found. use default\n", themename); g_error_free(error); error = NULL; } char* windowString = g_key_file_get_string(key_file, themename, "Window", &error); if (windowString == NULL) { if (error) { // g_print("configuration Key (Theme %s Window ) could not be found. use default\n", themename); g_error_free(error); error = NULL; } } char* panelString = g_key_file_get_string(key_file, themename, "Panel", &error); if (panelString == NULL) { if (error) { //g_print("configuration Key (Theme %s Panel ) could not be found. use default\n", themename); g_error_free(error); error = NULL; } } char* PanelTitleString = g_key_file_get_string(key_file, themename, "PanelTitle", &error); if (PanelTitleString == NULL) { if (error) { //g_print("configuration Key (Theme %s PanelTitle ) could not be found. use default\n", themename); g_error_free(error); error = NULL; } } char* PanelTitleTextString = g_key_file_get_string(key_file, themename, "PanelTitleText", &error); if (PanelTitleTextString == NULL) { if (error) { //g_print("configuration Key (Theme %s PanelTitleText ) could not be found. use default\n", themename); g_error_free(error); error = NULL; } } char* previewString = g_key_file_get_string(key_file, themename, "Preview", &error); if (previewString == NULL) { if (error) { //g_print("configuration Key (Theme %s Preview ) could not be found. use default\n", themename); g_error_free(error); error = NULL; } } char* PanelSelectorString = g_key_file_get_string(key_file, themename, "PanelSelector", &error); if (PanelSelectorString == NULL) { if (error) { //g_print("configuration Key (Theme %s PanelSelector ) could not be found. use default\n", themename); g_error_free(error); error = NULL; } } char* PreviewTitleTextString = g_key_file_get_string(key_file, themename, "PreviewTitleText", &error); if (PreviewTitleTextString == NULL) { if (error) { //g_print("configuration Key (Theme %s PreviewTitleText ) could not be found. use default\n", themename); g_error_free(error); error = NULL; } } char* PreviewSelectorString = g_key_file_get_string(key_file, themename, "PreviewSelector", &error); if (PreviewSelectorString == NULL) { if (error) { //g_print("configuration Key (Theme %s PreviewSelector ) could not be found. use default\n", themename); g_error_free(error); error = NULL; } } bool enable; double lineWidth; double roundedRadius; Color background; Color foreground; m_theme.setPanelScaleOnhover(panelScaleOnHover); if (windowString != NULL) { getColorFromString(windowString, enable, lineWidth, roundedRadius, background, foreground); m_theme.forWindow().set(enable, background, foreground, lineWidth, roundedRadius); } if (panelString != NULL) { getColorFromString(panelString, enable, lineWidth, roundedRadius, background, foreground); m_theme.forPanel().set(enable, background, foreground, lineWidth, roundedRadius); } if (PanelTitleString != NULL) { getColorFromString(PanelTitleString, enable, lineWidth, roundedRadius, background, foreground); m_theme.forPanelTitle().set(enable, background, foreground, lineWidth, roundedRadius); } if (PanelTitleTextString != NULL) { getColorFromString(PanelTitleTextString, enable, lineWidth, roundedRadius, background, foreground); m_theme.forPanelTitleText().set(enable, background, foreground, lineWidth, roundedRadius); } if (previewString != NULL) { getColorFromString(previewString, enable, lineWidth, roundedRadius, background, foreground); m_theme.forPreview().set(enable, background, foreground, lineWidth, roundedRadius); } if (PanelSelectorString != NULL) { getColorFromString(PanelSelectorString, enable, lineWidth, roundedRadius, background, foreground); m_theme.forPanelSelector().set(enable, background, foreground, lineWidth, roundedRadius); } if (PreviewTitleTextString != NULL) { getColorFromString(PreviewTitleTextString, enable, lineWidth, roundedRadius, background, foreground); m_theme.forPreviewTitleText().set(enable, background, foreground, lineWidth, roundedRadius); } if (PreviewSelectorString != NULL) { getColorFromString(PreviewSelectorString, enable, lineWidth, roundedRadius, background, foreground); m_theme.forPreviewSelector().set(enable, background, foreground, lineWidth, roundedRadius); } m_theme.setPanelBinaryValue(panelLinesBinaryValue); m_theme.setPanelSelectorBinaryValue(panelSelectorLinesBinaryValue); m_theme.setPreviewBinaryValue(previewlLinesBinaryValue); m_theme.setPreviewSelectorBinaryValue(previewSelectorLinesBinaryValue); g_key_file_free(key_file); return; }