Ejemplo n.º 1
0
   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;

    }