core/settings: Check for a NULL key
This fixes a problem with restoring treeview columns. Sometimes "Played" gets allocated way too much space, so I solve this by changing it's setting key to NULL so the column always gets whatever space is leftover. Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
2e38b3551e
commit
93d1550763
|
@ -1,3 +1,7 @@
|
||||||
|
6.5.0:
|
||||||
|
- Add a switch to disable GUI tests
|
||||||
|
- Don't save and restore the "Last Played" tracks column width
|
||||||
|
|
||||||
6.5.0-rc:
|
6.5.0-rc:
|
||||||
- Convert to CMake/CTest
|
- Convert to CMake/CTest
|
||||||
- Save current track in settings database
|
- Save current track in settings database
|
||||||
|
|
|
@ -54,7 +54,7 @@ void settings_deinit()
|
||||||
|
|
||||||
void settings_set(const gchar *key, unsigned int value)
|
void settings_set(const gchar *key, unsigned int value)
|
||||||
{
|
{
|
||||||
if (gui_settings) {
|
if (gui_settings && key) {
|
||||||
g_hash_table_replace(gui_settings, g_strdup(key),
|
g_hash_table_replace(gui_settings, g_strdup(key),
|
||||||
GUINT_TO_POINTER(value));
|
GUINT_TO_POINTER(value));
|
||||||
__settings_save();
|
__settings_save();
|
||||||
|
@ -63,14 +63,14 @@ void settings_set(const gchar *key, unsigned int value)
|
||||||
|
|
||||||
unsigned int settings_get(const gchar *key)
|
unsigned int settings_get(const gchar *key)
|
||||||
{
|
{
|
||||||
if (gui_settings)
|
if (gui_settings && key)
|
||||||
return GPOINTER_TO_UINT(g_hash_table_lookup(gui_settings, key));
|
return GPOINTER_TO_UINT(g_hash_table_lookup(gui_settings, key));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool settings_has(const gchar *key)
|
bool settings_has(const gchar *key)
|
||||||
{
|
{
|
||||||
if (gui_settings)
|
if (gui_settings && key)
|
||||||
return g_hash_table_contains(gui_settings, key);
|
return g_hash_table_contains(gui_settings, key);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,9 +20,9 @@ static const gchar *QUEUE_SETTINGS[Q_MODEL_N_COLUMNS] = {
|
||||||
[Q_MODEL_YEAR] = "gui.queue.year",
|
[Q_MODEL_YEAR] = "gui.queue.year",
|
||||||
[Q_MODEL_GENRE] = "gui.queue.genre",
|
[Q_MODEL_GENRE] = "gui.queue.genre",
|
||||||
[Q_MODEL_COUNT] = "gui.queue.count",
|
[Q_MODEL_COUNT] = "gui.queue.count",
|
||||||
[Q_MODEL_LAST_PLAY] = "gui.queue.played",
|
[Q_MODEL_LAST_PLAY] = NULL,
|
||||||
[Q_MODEL_FILE_PATH] = "gui.queue.filepath",
|
[Q_MODEL_FILE_PATH] = NULL,
|
||||||
[Q_MODEL_FONT] = "gui.queue.font",
|
[Q_MODEL_FONT] = NULL,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const enum compare_t QUEUE_SORT[Q_MODEL_N_COLUMNS] = {
|
static const enum compare_t QUEUE_SORT[Q_MODEL_N_COLUMNS] = {
|
||||||
|
|
|
@ -9,6 +9,10 @@ static void test_settings()
|
||||||
{
|
{
|
||||||
struct file f = FILE_INIT("settings", 0);
|
struct file f = FILE_INIT("settings", 0);
|
||||||
|
|
||||||
|
settings_set(NULL, 0);
|
||||||
|
g_assert_cmpuint(settings_get(NULL), ==, 0);
|
||||||
|
g_assert_false(settings_has(NULL));
|
||||||
|
|
||||||
g_assert_null(test_get_settings());
|
g_assert_null(test_get_settings());
|
||||||
settings_set("test.value1", 42);
|
settings_set("test.value1", 42);
|
||||||
settings_set("test.value2", 84);
|
settings_set("test.value2", 84);
|
||||||
|
|
|
@ -86,10 +86,10 @@ static void test_treeview()
|
||||||
|
|
||||||
g_main_loop_run(main_loop);
|
g_main_loop_run(main_loop);
|
||||||
for (i = 0; i < Q_MODEL_N_COLUMNS; i++) {
|
for (i = 0; i < Q_MODEL_N_COLUMNS; i++) {
|
||||||
bool has = (i != Q_MODEL_FILE_PATH) && (i != Q_MODEL_FONT);
|
bool has = (i < Q_MODEL_LAST_PLAY);
|
||||||
g_assert(settings_has(QUEUE_SETTINGS[i]) == has);
|
g_assert(settings_has(QUEUE_SETTINGS[i]) == has);
|
||||||
/* The "Played" column gets any remaining space. */
|
/* The "Played" column gets any remaining space. */
|
||||||
if (has && i != Q_MODEL_LAST_PLAY)
|
if (has)
|
||||||
g_assert_cmpuint(settings_get(QUEUE_SETTINGS[i]),
|
g_assert_cmpuint(settings_get(QUEUE_SETTINGS[i]),
|
||||||
==, (i + 2) * 10);
|
==, (i + 2) * 10);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue