diff options
author | Alexey Yakovenko <waker@users.sourceforge.net> | 2014-04-28 20:01:46 +0200 |
---|---|---|
committer | Alexey Yakovenko <waker@users.sourceforge.net> | 2014-04-28 20:04:09 +0200 |
commit | 6b598c15d1eb4804d5e369d8cb268d46c5dba59a (patch) | |
tree | 3ee0064a862599f7b6dceb0670f6631dee1886e1 /plugins/gtkui/gtkui.c | |
parent | 54d4b18b27b19007497368f385204dc78a331572 (diff) |
gtkui: added downgradable layout config support, that is, allowing downgrading deadbeef from higher to lower versions without loosing the layout setup, implemented by seraparating layout config for each version
Diffstat (limited to 'plugins/gtkui/gtkui.c')
-rw-r--r-- | plugins/gtkui/gtkui.c | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/plugins/gtkui/gtkui.c b/plugins/gtkui/gtkui.c index 2fa2173c..6f3760a9 100644 --- a/plugins/gtkui/gtkui.c +++ b/plugins/gtkui/gtkui.c @@ -822,20 +822,26 @@ init_widget_layout (void) { gtk_box_pack_start (GTK_BOX(lookup_widget(mainwin, "plugins_bottom_vbox")), rootwidget->widget, TRUE, TRUE, 0); // load layout + // config var name is defined in DDB_GTKUI_CONF_LAYOUT + // gtkui.layout: 0.6.0 and 0.6.1 + // gtkui.layout.major.minor.point: later versions + char layout[20000]; - deadbeef->conf_get_str ("gtkui.layout", gtkui_def_layout, layout, sizeof (layout)); - - int upgraded_062 = deadbeef->conf_get_int ("gtkui.layout_062_upgraded", 0); - if (strcmp (layout, gtkui_def_layout) && !upgraded_062) { - // add top bar - char layout_upgrade[20000]; - snprintf (layout_upgrade, sizeof (layout_upgrade), "vbox expand=\"0 1\" fill=\"1 1\" homogeneous=0 {hbox expand=\"0 1 0\" fill=\"1 1 1\" homogeneous=0 {playtb {} seekbar {} volumebar {} } %s }", layout); - strcpy (layout, layout_upgrade); - deadbeef->conf_set_str ("gtkui.layout", layout); - } - if (!upgraded_062) { - deadbeef->conf_set_int ("gtkui.layout_062_upgraded", 1); - deadbeef->conf_save (); + deadbeef->conf_get_str (DDB_GTKUI_CONF_LAYOUT, "-", layout, sizeof (layout)); + if (!strcmp (layout, "-")) { + // upgrade from 0.6.0 to 0.6.2 + char layout_060[20000]; + deadbeef->conf_get_str ("gtkui.layout", "-", layout_060, sizeof (layout_060)); + if (!strcmp (layout_060, "-")) { + // new setup + strcpy (layout, gtkui_def_layout); + } + else { + // upgrade with top bar + snprintf (layout, sizeof (layout), "vbox expand=\"0 1\" fill=\"1 1\" homogeneous=0 {hbox expand=\"0 1 0\" fill=\"1 1 1\" homogeneous=0 {playtb {} seekbar {} volumebar {} } %s }", layout_060); + deadbeef->conf_set_str (DDB_GTKUI_CONF_LAYOUT, layout); + deadbeef->conf_save (); + } } ddb_gtkui_widget_t *w = NULL; |