Commit 4b02345e86fe536234bb065b1f65f0d6d709bab8

Authored by Perry Werneck
1 parent 8f6ff458

Fixing gsettings on windows.

Showing 1 changed file with 61 additions and 19 deletions   Show diff stats
src/objects/window/window.c
@@ -841,32 +841,74 @@ void pw3270_application_window_set_active_terminal(GtkWidget *widget, GtkWidget @@ -841,32 +841,74 @@ void pw3270_application_window_set_active_terminal(GtkWidget *widget, GtkWidget
841 841
842 GSettings *pw3270_application_window_settings_new() { 842 GSettings *pw3270_application_window_settings_new() {
843 843
844 -#ifdef DEBUG 844 + GSettings * settings = NULL;
845 845
846 - GError * error = NULL;  
847 - GSettingsSchemaSource * source =  
848 - g_settings_schema_source_new_from_directory(  
849 - ".",  
850 - NULL,  
851 - TRUE,  
852 - &error  
853 - ); 846 +#if defined(DEBUG)
  847 + {
  848 + GError * error = NULL;
  849 + GSettingsSchemaSource * source =
  850 + g_settings_schema_source_new_from_directory(
  851 + ".",
  852 + NULL,
  853 + TRUE,
  854 + &error
  855 + );
854 856
855 - g_assert_no_error(error); 857 + g_assert_no_error(error);
856 858
857 - GSettingsSchema * schema =  
858 - g_settings_schema_source_lookup(  
859 - source,  
860 - "br.com.bb." G_STRINGIFY(PRODUCT_NAME) ".window",  
861 - TRUE); 859 + GSettingsSchema * schema =
  860 + g_settings_schema_source_lookup(
  861 + source,
  862 + "br.com.bb." G_STRINGIFY(PRODUCT_NAME) ".window",
  863 + TRUE);
862 864
863 - GSettings * settings = g_settings_new_full(schema, NULL, NULL); 865 + settings = g_settings_new_full(schema, NULL, NULL);
864 866
865 - g_settings_schema_source_unref(source); 867 + g_settings_schema_source_unref(source);
866 868
867 -#else 869 + }
  870 +#elif defined(_WIN32)
  871 + {
  872 + lib3270_autoptr(char) filename = lib3270_build_filename("gschemas.compiled",NULL);
  873 +
  874 + if(g_file_test(filename,G_FILE_TEST_IS_REGULAR)) {
  875 +
  876 + GError * error = NULL;
  877 + g_autofree gchar *dirname = g_path_get_dirname(filename);
  878 +
  879 + GSettingsSchemaSource * source =
  880 + g_settings_schema_source_new_from_directory(
  881 + dirname,
  882 + NULL,
  883 + TRUE,
  884 + &error
  885 + );
  886 +
  887 + g_assert_no_error(error);
  888 +
  889 + GSettingsSchema * schema =
  890 + g_settings_schema_source_lookup(
  891 + source,
  892 + "br.com.bb." G_STRINGIFY(PRODUCT_NAME),
  893 + TRUE);
868 894
869 - GSettings * settings = g_settings_new("br.com.bb." G_STRINGIFY(PRODUCT_NAME) ".window"); 895 + debug("schema %s=%p","br.com.bb." PACKAGE_NAME,schema);
  896 +
  897 + settings = g_settings_new_full(schema, NULL, NULL);
  898 +
  899 + g_settings_schema_source_unref(source);
  900 +
  901 + } else {
  902 +
  903 + settings = g_settings_new("br.com.bb." G_STRINGIFY(PRODUCT_NAME));
  904 +
  905 + }
  906 +
  907 + }
  908 +#else
  909 + {
  910 + settings = g_settings_new("br.com.bb." G_STRINGIFY(PRODUCT_NAME) ".window");
  911 + }
870 912
871 #endif // DEBUG 913 #endif // DEBUG
872 914