Code cleanup

This commit is contained in:
Pierre Pronchery 2011-11-06 03:38:45 +00:00
parent 2f426cf93c
commit b1f3f70f21

View File

@ -14,6 +14,10 @@ static char const _license[] =
"\n" "\n"
"You should have received a copy of the GNU General Public License\n" "You should have received a copy of the GNU General Public License\n"
"along with this program. If not, see <http://www.gnu.org/licenses/>."; "along with this program. If not, see <http://www.gnu.org/licenses/>.";
/* TODO:
* - re-implement MIME preferences
* - use the friendly-name for MIME types in the browser view
* - allow plug-ins to be re-ordered */
@ -52,23 +56,24 @@ static char const _license[] =
/* Browser */ /* Browser */
/* private */ /* private */
/* types */ /* types */
enum typedef enum _BrowserMimeColumn
{ {
MI_COL_ICON, BMC_ICON,
MI_COL_NAME BMC_NAME
}; } BrowserMimeColumn;
#define MI_COL_LAST MI_COL_NAME #define BMC_LAST BMC_NAME
#define MI_COL_COUNT (MI_COL_LAST + 1) #define BMC_COUNT (BMC_LAST + 1)
enum _BrowserPluginColumn typedef enum _BrowserPluginColumn
{ {
BPC_NAME = 0, BPC_NAME = 0,
BPC_ENABLED,
BPC_ICON, BPC_ICON,
BPC_NAME_DISPLAY, BPC_NAME_DISPLAY,
BPC_PLUGIN, BPC_PLUGIN,
BPC_BROWSERPLUGIN, BPC_BROWSERPLUGIN,
BPC_WIDGET BPC_WIDGET
}; } BrowserPluginColumn;
#define BPC_LAST BPC_WIDGET #define BPC_LAST BPC_WIDGET
#define BPC_COUNT (BPC_LAST + 1) #define BPC_COUNT (BPC_LAST + 1)
@ -428,8 +433,8 @@ Browser * browser_new(char const * directory)
browser->pl_view = gtk_vbox_new(FALSE, 4); browser->pl_view = gtk_vbox_new(FALSE, 4);
gtk_container_set_border_width(GTK_CONTAINER(browser->pl_view), 4); gtk_container_set_border_width(GTK_CONTAINER(browser->pl_view), 4);
browser->pl_store = gtk_list_store_new(BPC_COUNT, G_TYPE_STRING, browser->pl_store = gtk_list_store_new(BPC_COUNT, G_TYPE_STRING,
GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF, G_TYPE_STRING,
G_TYPE_POINTER, G_TYPE_POINTER); G_TYPE_POINTER, G_TYPE_POINTER, G_TYPE_POINTER);
browser->pl_combo = gtk_combo_box_new_with_model(GTK_TREE_MODEL( browser->pl_combo = gtk_combo_box_new_with_model(GTK_TREE_MODEL(
browser->pl_store)); browser->pl_store));
g_signal_connect_swapped(G_OBJECT(browser->pl_combo), "changed", g_signal_connect_swapped(G_OBJECT(browser->pl_combo), "changed",
@ -892,7 +897,7 @@ int browser_load(Browser * browser, char const * plugin)
GtkWidget * widget; GtkWidget * widget;
GtkTreeIter iter; GtkTreeIter iter;
GtkIconTheme * theme; GtkIconTheme * theme;
GdkPixbuf * pixbuf = NULL; GdkPixbuf * icon = NULL;
#ifdef DEBUG #ifdef DEBUG
fprintf(stderr, "DEBUG: %s(\"%s\")\n", __func__, plugin); fprintf(stderr, "DEBUG: %s(\"%s\")\n", __func__, plugin);
@ -915,13 +920,13 @@ int browser_load(Browser * browser, char const * plugin)
gtk_widget_hide(widget); gtk_widget_hide(widget);
theme = gtk_icon_theme_get_default(); theme = gtk_icon_theme_get_default();
if(bp->icon != NULL) if(bp->icon != NULL)
pixbuf = gtk_icon_theme_load_icon(theme, bp->icon, 24, 0, NULL); icon = gtk_icon_theme_load_icon(theme, bp->icon, 24, 0, NULL);
if(pixbuf == NULL) if(icon == NULL)
pixbuf = gtk_icon_theme_load_icon(theme, "gnome-settings", 24, icon = gtk_icon_theme_load_icon(theme, "gnome-settings", 24, 0,
0, NULL); NULL);
gtk_list_store_append(browser->pl_store, &iter); gtk_list_store_append(browser->pl_store, &iter);
gtk_list_store_set(browser->pl_store, &iter, BPC_NAME, plugin, gtk_list_store_set(browser->pl_store, &iter, BPC_NAME, plugin,
BPC_ICON, pixbuf, BPC_NAME_DISPLAY, _(bp->name), BPC_ICON, icon, BPC_NAME_DISPLAY, _(bp->name),
BPC_PLUGIN, p, BPC_BROWSERPLUGIN, bp, BPC_PLUGIN, p, BPC_BROWSERPLUGIN, bp,
BPC_WIDGET, widget, -1); BPC_WIDGET, widget, -1);
gtk_box_pack_start(GTK_BOX(browser->pl_box), widget, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(browser->pl_box), widget, TRUE, TRUE, 0);
@ -2074,24 +2079,23 @@ void browser_show_preferences(Browser * browser)
gtk_label_new_with_mnemonic(_("_Appearance"))); gtk_label_new_with_mnemonic(_("_Appearance")));
/* file associations tab */ /* file associations tab */
hbox = gtk_hbox_new(FALSE, 4); hbox = gtk_hbox_new(FALSE, 4);
browser->pr_mime_store = gtk_list_store_new(MI_COL_COUNT, browser->pr_mime_store = gtk_list_store_new(BMC_COUNT, GDK_TYPE_PIXBUF,
GDK_TYPE_PIXBUF, G_TYPE_STRING); G_TYPE_STRING);
browser->pr_mime_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL( browser->pr_mime_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(
browser->pr_mime_store)); browser->pr_mime_store));
gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(browser->pr_mime_view), gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(browser->pr_mime_view),
FALSE); FALSE);
column = gtk_tree_view_column_new_with_attributes(NULL, column = gtk_tree_view_column_new_with_attributes(NULL,
gtk_cell_renderer_pixbuf_new(), "pixbuf", MI_COL_ICON, gtk_cell_renderer_pixbuf_new(), "pixbuf", BMC_ICON,
NULL); NULL);
gtk_tree_view_append_column(GTK_TREE_VIEW(browser->pr_mime_view), gtk_tree_view_append_column(GTK_TREE_VIEW(browser->pr_mime_view),
column); column);
column = gtk_tree_view_column_new_with_attributes(_("Type"), column = gtk_tree_view_column_new_with_attributes(_("Type"),
gtk_cell_renderer_text_new(), "text", MI_COL_NAME, gtk_cell_renderer_text_new(), "text", BMC_NAME, NULL);
NULL);
gtk_tree_view_append_column(GTK_TREE_VIEW(browser->pr_mime_view), gtk_tree_view_append_column(GTK_TREE_VIEW(browser->pr_mime_view),
column); column);
gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE( gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(
browser->pr_mime_store), MI_COL_NAME, browser->pr_mime_store), BMC_NAME,
GTK_SORT_ASCENDING); GTK_SORT_ASCENDING);
mime_foreach(browser->mime, _preferences_on_mime_foreach, browser); mime_foreach(browser->mime, _preferences_on_mime_foreach, browser);
widget = gtk_scrolled_window_new(NULL, NULL); widget = gtk_scrolled_window_new(NULL, NULL);
@ -2108,8 +2112,9 @@ void browser_show_preferences(Browser * browser)
gtk_notebook_append_page(GTK_NOTEBOOK(notebook), hbox, gtk_notebook_append_page(GTK_NOTEBOOK(notebook), hbox,
gtk_label_new_with_mnemonic(_("_File associations"))); gtk_label_new_with_mnemonic(_("_File associations")));
/* plug-ins tab */ /* plug-ins tab */
browser->pr_plugin_store = gtk_list_store_new(4, G_TYPE_STRING, browser->pr_plugin_store = gtk_list_store_new(BPC_COUNT, G_TYPE_STRING,
G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF, G_TYPE_STRING); G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF, G_TYPE_STRING,
G_TYPE_POINTER, G_TYPE_POINTER, G_TYPE_POINTER);
browser->pr_plugin_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL( browser->pr_plugin_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(
browser->pr_plugin_store)); browser->pr_plugin_store));
gtk_tree_view_set_headers_visible(GTK_TREE_VIEW( gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(
@ -2131,7 +2136,7 @@ void browser_show_preferences(Browser * browser)
gtk_tree_view_append_column(GTK_TREE_VIEW(browser->pr_plugin_view), gtk_tree_view_append_column(GTK_TREE_VIEW(browser->pr_plugin_view),
column); column);
gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE( gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(
browser->pr_plugin_store), 3, browser->pr_plugin_store), BPC_NAME_DISPLAY,
GTK_SORT_ASCENDING); GTK_SORT_ASCENDING);
widget = gtk_scrolled_window_new(NULL, NULL); widget = gtk_scrolled_window_new(NULL, NULL);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(widget), gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(widget),
@ -2177,7 +2182,7 @@ static void _preferences_set_plugins(Browser * browser)
BrowserPlugin * bp; BrowserPlugin * bp;
GtkTreeIter iter; GtkTreeIter iter;
gboolean enabled; gboolean enabled;
GdkPixbuf * pixbuf; GdkPixbuf * icon;
gtk_list_store_clear(browser->pr_plugin_store); gtk_list_store_clear(browser->pr_plugin_store);
if((dir = opendir(LIBDIR "/" PACKAGE "/plugins")) == NULL) if((dir = opendir(LIBDIR "/" PACKAGE "/plugins")) == NULL)
@ -2202,16 +2207,18 @@ static void _preferences_set_plugins(Browser * browser)
continue; continue;
} }
enabled = _browser_plugin_is_enabled(browser, de->d_name); enabled = _browser_plugin_is_enabled(browser, de->d_name);
if(bp->icon == NULL) icon = NULL;
pixbuf = gtk_icon_theme_load_icon(theme, if(bp->icon != NULL)
"gnome-settings", 24, 0, NULL); icon = gtk_icon_theme_load_icon(theme, bp->icon, 24,
else
pixbuf = gtk_icon_theme_load_icon(theme, bp->icon, 24,
0, NULL); 0, NULL);
if(icon == NULL)
icon = gtk_icon_theme_load_icon(theme, "gnome-settings",
24, 0, NULL);
gtk_list_store_append(browser->pr_plugin_store, &iter); gtk_list_store_append(browser->pr_plugin_store, &iter);
gtk_list_store_set(browser->pr_plugin_store, &iter, gtk_list_store_set(browser->pr_plugin_store, &iter,
0, de->d_name, 1, enabled, 2, pixbuf, BPC_NAME, de->d_name, BPC_ENABLED, enabled,
3, _(bp->name), -1); BPC_ICON, icon, BPC_NAME_DISPLAY, _(bp->name),
-1);
plugin_delete(p); plugin_delete(p);
} }
closedir(dir); closedir(dir);
@ -2239,7 +2246,7 @@ static void _preferences_on_mime_edit(gpointer data)
browser->pr_mime_view)); browser->pr_mime_view));
if(gtk_tree_selection_get_selected(selection, &model, &iter) != TRUE) if(gtk_tree_selection_get_selected(selection, &model, &iter) != TRUE)
return; return;
gtk_tree_model_get(model, &iter, MI_COL_NAME, &type, -1); gtk_tree_model_get(model, &iter, BMC_NAME, &type, -1);
dialog = gtk_dialog_new_with_buttons(_("Edit file association"), dialog = gtk_dialog_new_with_buttons(_("Edit file association"),
GTK_WINDOW(browser->pr_window), flags, GTK_STOCK_CANCEL, GTK_WINDOW(browser->pr_window), flags, GTK_STOCK_CANCEL,
GTK_RESPONSE_CANCEL, GTK_STOCK_APPLY, GTK_RESPONSE_CANCEL, GTK_STOCK_APPLY,
@ -2316,8 +2323,8 @@ static void _preferences_on_mime_foreach(void * data, char const * name,
GtkTreeIter iter; GtkTreeIter iter;
gtk_list_store_append(browser->pr_mime_store, &iter); gtk_list_store_append(browser->pr_mime_store, &iter);
gtk_list_store_set(browser->pr_mime_store, &iter, MI_COL_NAME, name, gtk_list_store_set(browser->pr_mime_store, &iter, BMC_NAME, name,
MI_COL_ICON, icon_24, -1); BMC_ICON, icon_24, -1);
} }
static void _preferences_on_plugin_toggled(GtkCellRendererToggle * renderer, static void _preferences_on_plugin_toggled(GtkCellRendererToggle * renderer,
@ -2328,7 +2335,7 @@ static void _preferences_on_plugin_toggled(GtkCellRendererToggle * renderer,
gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL( gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(
browser->pr_plugin_store), &iter, path); browser->pr_plugin_store), &iter, path);
gtk_list_store_set(browser->pr_plugin_store, &iter, 1, gtk_list_store_set(browser->pr_plugin_store, &iter, BPC_ENABLED,
!gtk_cell_renderer_toggle_get_active(renderer), -1); !gtk_cell_renderer_toggle_get_active(renderer), -1);
} }