summaryrefslogtreecommitdiff
path: root/plugins/gtkui/gtkui.c
diff options
context:
space:
mode:
authorGravatar Alexey Yakovenko <waker@users.sourceforge.net>2014-04-28 20:01:46 +0200
committerGravatar Alexey Yakovenko <waker@users.sourceforge.net>2014-04-28 20:04:09 +0200
commit6b598c15d1eb4804d5e369d8cb268d46c5dba59a (patch)
tree3ee0064a862599f7b6dceb0670f6631dee1886e1 /plugins/gtkui/gtkui.c
parent54d4b18b27b19007497368f385204dc78a331572 (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.c32
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;