2 * Stock Widget: Resource settings
5 #include "lib-stock-settings.h"
8 stock_free_settings(StockPluginSettings *psSettings)
10 if(psSettings->ppszTickers)
12 g_strfreev(psSettings->ppszTickers);
13 psSettings->ppszTickers = NULL;
16 psSettings->uiNumTickers = 0;
17 psSettings->uiUpdateTime = 0;
21 stock_set_default_settings(StockPluginSettings *psSettings)
23 /* Default to a single ticker ;) */
24 psSettings->uiNumTickers = 1;
25 psSettings->ppszTickers = g_malloc0(sizeof(char*)*2);
26 psSettings->ppszTickers[0] = g_strdup(STOCK_PLUGIN_DEFAULT_TICKER);
28 /* Default to no automatic update */
29 psSettings->uiUpdateTime = 0;
33 stock_read_settings(StockPluginSettings *psSettings)
40 psKeyFile = g_key_file_new();
41 pszFileName = g_strconcat(g_get_home_dir(), STOCK_PLUGIN_SETTINGS_FILE, NULL);
42 bExists = g_key_file_load_from_file(psKeyFile, pszFileName, G_KEY_FILE_KEEP_COMMENTS, NULL);
46 /*TODO: Check case if config file exists but no data, simply use defaults */
48 if(g_key_file_has_key(psKeyFile,psSettings->iD,STOCK_PLUGIN_TICKERS,NULL))
50 psSettings->ppszTickers =
51 g_key_file_get_string_list(psKeyFile,
54 &psSettings->uiNumTickers,
62 if(g_key_file_has_key(psKeyFile,psSettings->iD,STOCK_PLUGIN_UPDATE_TIME,NULL))
64 psSettings->uiUpdateTime =
65 g_key_file_get_integer(psKeyFile,
67 STOCK_PLUGIN_UPDATE_TIME,
73 if(psSettings->ppszTickers)
75 g_strfreev(psSettings->ppszTickers);
76 psSettings->ppszTickers = NULL;
83 /* If it doesn't exists or there's an error reading data, just set defaults */
85 stock_set_default_settings(psSettings);
87 g_key_file_free(psKeyFile);
93 stock_save_settings(StockPluginSettings *psSettings)
100 /* Create key file */
101 psKeyFile = g_key_file_new();
102 pszFileName = g_strconcat(g_get_home_dir(), STOCK_PLUGIN_SETTINGS_FILE, NULL);
103 g_key_file_load_from_file(psKeyFile, pszFileName, G_KEY_FILE_KEEP_COMMENTS, NULL);
106 g_key_file_set_string_list(psKeyFile,
108 STOCK_PLUGIN_TICKERS,
109 (const gchar **)psSettings->ppszTickers,
110 psSettings->uiNumTickers);
112 /* Set update time */
113 g_key_file_set_integer(psKeyFile,
115 STOCK_PLUGIN_UPDATE_TIME,
116 psSettings->uiUpdateTime);
119 pszFileData = g_key_file_to_data(psKeyFile,&nSize,NULL);
120 g_file_set_contents(pszFileName,pszFileData,nSize,NULL);
123 g_key_file_free(psKeyFile);