Пример #1
0
/* 
 * Find a node by the name under root or create it.
 */
static nodePtr
theoldreader_source_find_or_create_folder (const gchar *name, nodePtr root)
{
	nodePtr		folder = NULL;
	GSList		*iter_parent;

	/* find a node by the name under root */
	iter_parent = root->children;
	while (iter_parent) {
		if (g_str_equal (name, node_get_title (iter_parent->data))) {
			folder = (nodePtr)iter_parent->data;
			break;
		}
		iter_parent = g_slist_next (iter_parent);
	}
	
	/* if not found, create new folder */
	if (!folder) {
		folder = node_new (folder_get_node_type ());
		node_set_title (folder, name);
		node_set_parent (folder, root, -1);
		feedlist_node_imported (folder);
		subscription_update (folder->subscription, FEED_REQ_RESET_TITLE | FEED_REQ_PRIORITY_HIGH);
	}
	
	return folder;
}
Пример #2
0
static nodePtr
default_source_add_folder (nodePtr node, const gchar *title)
{
	/* For the local feed list source folders are always 
	   real folders implemented by the folder node type... */
	nodePtr child = node_new (folder_get_node_type());
	node_set_title (child, title);
	feedlist_node_added (child);
	
	return child;
}
Пример #3
0
/* 
 * Find a node by the name under root or create it.
 * 
 * @param name		Folder display name
 * @param parent	Parent folder or source root node
 *
 * @returns a valid nodePtr
 */
static nodePtr
ttrss_source_find_or_create_folder (const gchar *name, nodePtr parent)
{
	nodePtr		folder = NULL;

	folder = feedlist_find_node (parent, FOLDER_BY_TITLE, name);
	if (!folder) {
		folder = node_new (folder_get_node_type ());
		node_set_title (folder, name);
		node_set_parent (folder, parent, -1);
		feedlist_node_imported (folder);
		subscription_update (folder->subscription, FEED_REQ_RESET_TITLE | FEED_REQ_PRIORITY_HIGH);
	}
	
	return folder;
}
Пример #4
0
void
on_menu_folder_new (GSimpleAction *menuitem, GVariant *parameter, gpointer user_data)
{
	node_type_request_interactive_add (folder_get_node_type ());
}