Also list the system manual pages
This commit is contained in:
parent
9805dfe19b
commit
fa136a7971
|
@ -522,6 +522,8 @@ static void _new_manual(Helper * helper)
|
||||||
GtkCellRenderer * renderer;
|
GtkCellRenderer * renderer;
|
||||||
GtkTreeViewColumn * column;
|
GtkTreeViewColumn * column;
|
||||||
GtkWidget * view;
|
GtkWidget * view;
|
||||||
|
char const * prefix[] = { MANDIR, "/usr/share/man", NULL };
|
||||||
|
char const ** p;
|
||||||
DIR * dir;
|
DIR * dir;
|
||||||
struct dirent * de;
|
struct dirent * de;
|
||||||
unsigned int section;
|
unsigned int section;
|
||||||
|
@ -542,7 +544,7 @@ static void _new_manual(Helper * helper)
|
||||||
renderer = gtk_cell_renderer_text_new();
|
renderer = gtk_cell_renderer_text_new();
|
||||||
column = gtk_tree_view_column_new_with_attributes(_("Section"),
|
column = gtk_tree_view_column_new_with_attributes(_("Section"),
|
||||||
renderer, "text", 3, NULL);
|
renderer, "text", 3, NULL);
|
||||||
gtk_tree_view_column_set_sort_column_id(column, 1);
|
gtk_tree_view_column_set_sort_column_id(column, 2);
|
||||||
gtk_tree_view_append_column(GTK_TREE_VIEW(view), column);
|
gtk_tree_view_append_column(GTK_TREE_VIEW(view), column);
|
||||||
gtk_tree_view_column_clicked(column);
|
gtk_tree_view_column_clicked(column);
|
||||||
g_signal_connect(view, "row-activated", G_CALLBACK(
|
g_signal_connect(view, "row-activated", G_CALLBACK(
|
||||||
|
@ -551,13 +553,21 @@ static void _new_manual(Helper * helper)
|
||||||
gtk_notebook_append_page(GTK_NOTEBOOK(helper->notebook), widget,
|
gtk_notebook_append_page(GTK_NOTEBOOK(helper->notebook), widget,
|
||||||
gtk_label_new(_("Manual")));
|
gtk_label_new(_("Manual")));
|
||||||
/* FIXME perform this while idle */
|
/* FIXME perform this while idle */
|
||||||
if((dir = opendir(MANDIR)) == NULL)
|
for(p = prefix; *p != NULL; p++)
|
||||||
return;
|
{
|
||||||
while((de = readdir(dir)) != NULL)
|
/* XXX avoid duplicates */
|
||||||
if(sscanf(de->d_name, "html%u", §ion) == 1)
|
if((p != &prefix[0] && strcmp(*p, prefix[0]) == 0)
|
||||||
_new_manual_section(helper, MANDIR, de->d_name, store,
|
|| (p != &prefix[1] && strcmp(*p, prefix[1])
|
||||||
section);
|
== 0))
|
||||||
closedir(dir);
|
continue;
|
||||||
|
if((dir = opendir(*p)) == NULL)
|
||||||
|
continue;
|
||||||
|
while((de = readdir(dir)) != NULL)
|
||||||
|
if(sscanf(de->d_name, "html%u", §ion) == 1)
|
||||||
|
_new_manual_section(helper, *p, de->d_name,
|
||||||
|
store, section);
|
||||||
|
closedir(dir);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void _new_manual_section(Helper * helper, char const * manhtmldir,
|
static void _new_manual_section(Helper * helper, char const * manhtmldir,
|
||||||
|
@ -582,6 +592,7 @@ static void _new_manual_section(Helper * helper, char const * manhtmldir,
|
||||||
gtk_icon_size_lookup(GTK_ICON_SIZE_MENU, &size, &size);
|
gtk_icon_size_lookup(GTK_ICON_SIZE_MENU, &size, &size);
|
||||||
pixbuf = gtk_icon_theme_load_icon(helper->icontheme, "folder", size, 0,
|
pixbuf = gtk_icon_theme_load_icon(helper->icontheme, "folder", size, 0,
|
||||||
NULL);
|
NULL);
|
||||||
|
/* FIXME check if a folder by the same name already exists */
|
||||||
gtk_tree_store_append(store, &parent, NULL);
|
gtk_tree_store_append(store, &parent, NULL);
|
||||||
gtk_tree_store_set(store, &parent, 0, pixbuf, 1, manhtmldir, 2, section,
|
gtk_tree_store_set(store, &parent, 0, pixbuf, 1, manhtmldir, 2, section,
|
||||||
3, name, -1);
|
3, name, -1);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user