mirror of
https://github.com/irssi/irssi.git
synced 2025-04-25 20:41:23 -05:00
Merge 149ed1188b3c51dffe5a139c3913cfdeec87da6c into ee4471a1184b7a17e11146a87c2b18caaf11e49c
This commit is contained in:
commit
db24769f9f
@ -183,18 +183,26 @@ static void sig_layout_save_item(WINDOW_REC *window, WI_ITEM_REC *item,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void window_save_items(WINDOW_REC *window, CONFIG_NODE *node)
|
static int window_save_items(WINDOW_REC *window, CONFIG_NODE *node)
|
||||||
{
|
{
|
||||||
GSList *tmp;
|
GSList *tmp;
|
||||||
|
int save_only_channels = settings_get_bool("layout_save_only_channels");
|
||||||
|
int items_saved = FALSE;
|
||||||
|
|
||||||
node = iconfig_node_section(node, "items", NODE_TYPE_LIST);
|
node = iconfig_node_section(node, "items", NODE_TYPE_LIST);
|
||||||
for (tmp = window->items; tmp != NULL; tmp = tmp->next)
|
for (tmp = window->items; tmp != NULL; tmp = tmp->next)
|
||||||
signal_emit("layout save item", 3, window, tmp->data, node);
|
if ((save_only_channels && IS_CHANNEL(tmp->data)) || !save_only_channels) {
|
||||||
|
items_saved = TRUE;
|
||||||
|
signal_emit("layout save item", 3, window, tmp->data, node);
|
||||||
|
}
|
||||||
|
|
||||||
|
return items_saved;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void window_save(WINDOW_REC *window, CONFIG_NODE *node)
|
static void window_save(WINDOW_REC *window, CONFIG_NODE *node)
|
||||||
{
|
{
|
||||||
char refnum[MAX_INT_STRLEN];
|
char refnum[MAX_INT_STRLEN];
|
||||||
|
int save_node = FALSE;
|
||||||
|
|
||||||
ltoa(refnum, window->refnum);
|
ltoa(refnum, window->refnum);
|
||||||
node = iconfig_node_section(node, refnum, NODE_TYPE_BLOCK);
|
node = iconfig_node_section(node, refnum, NODE_TYPE_BLOCK);
|
||||||
@ -224,9 +232,10 @@ static void window_save(WINDOW_REC *window, CONFIG_NODE *node)
|
|||||||
while (window->bound_items != NULL)
|
while (window->bound_items != NULL)
|
||||||
window_bind_destroy(window, window->bound_items->data);
|
window_bind_destroy(window, window->bound_items->data);
|
||||||
if (window->items != NULL)
|
if (window->items != NULL)
|
||||||
window_save_items(window, node);
|
save_node = window_save_items(window, node);
|
||||||
|
|
||||||
signal_emit("layout save window", 2, window, node);
|
if (save_node)
|
||||||
|
signal_emit("layout save window", 2, window, node);
|
||||||
}
|
}
|
||||||
|
|
||||||
void windows_layout_save(void)
|
void windows_layout_save(void)
|
||||||
@ -268,6 +277,8 @@ void windows_layout_init(void)
|
|||||||
signal_add("layout restore item", (SIGNAL_FUNC) sig_layout_restore_item);
|
signal_add("layout restore item", (SIGNAL_FUNC) sig_layout_restore_item);
|
||||||
signal_add("layout restore", (SIGNAL_FUNC) sig_layout_restore);
|
signal_add("layout restore", (SIGNAL_FUNC) sig_layout_restore);
|
||||||
signal_add("layout save item", (SIGNAL_FUNC) sig_layout_save_item);
|
signal_add("layout save item", (SIGNAL_FUNC) sig_layout_save_item);
|
||||||
|
|
||||||
|
settings_add_bool("misc", "layout_save_only_channels", FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void windows_layout_deinit(void)
|
void windows_layout_deinit(void)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user