Limit trash to contain 10 items
This commit is contained in:
parent
e6eaab55a1
commit
24a9f1dd42
1 changed files with 28 additions and 5 deletions
|
@ -30,7 +30,8 @@
|
||||||
#include <libintl.h>
|
#include <libintl.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void stock_items_init(void)
|
static void
|
||||||
|
stock_items_init (void)
|
||||||
{
|
{
|
||||||
static GtkStockItem items[] =
|
static GtkStockItem items[] =
|
||||||
{
|
{
|
||||||
|
@ -321,6 +322,18 @@ search_engines_save_to_file (MidoriWebList* search_engines,
|
||||||
return saved;
|
return saved;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
midori_web_list_add_item_cb (MidoriWebList* trash,
|
||||||
|
GObject* item)
|
||||||
|
{
|
||||||
|
guint n = midori_web_list_get_length (trash);
|
||||||
|
if (n > 10)
|
||||||
|
{
|
||||||
|
GObject* obsolete_item = midori_web_list_get_nth_item (trash, 0);
|
||||||
|
g_object_unref (obsolete_item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main (int argc,
|
main (int argc,
|
||||||
char** argv)
|
char** argv)
|
||||||
|
@ -439,7 +452,7 @@ main (int argc,
|
||||||
if (!katze_xbel_folder_from_file (xbel_trash, config_file, &error))
|
if (!katze_xbel_folder_from_file (xbel_trash, config_file, &error))
|
||||||
{
|
{
|
||||||
if (error->code != G_FILE_ERROR_NOENT)
|
if (error->code != G_FILE_ERROR_NOENT)
|
||||||
g_string_append_printf(error_messages,
|
g_string_append_printf (error_messages,
|
||||||
_("The trash couldn't be loaded. %s\n"), error->message);
|
_("The trash couldn't be loaded. %s\n"), error->message);
|
||||||
g_error_free (error);
|
g_error_free (error);
|
||||||
}
|
}
|
||||||
|
@ -448,13 +461,22 @@ main (int argc,
|
||||||
/* In case of errors */
|
/* In case of errors */
|
||||||
if (error_messages->len)
|
if (error_messages->len)
|
||||||
{
|
{
|
||||||
|
GdkScreen* screen;
|
||||||
|
GtkIconTheme* icon_theme;
|
||||||
GtkWidget* dialog = gtk_message_dialog_new (
|
GtkWidget* dialog = gtk_message_dialog_new (
|
||||||
NULL, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_NONE,
|
NULL, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_NONE,
|
||||||
_("The following errors occured:"));
|
_("The following errors occured:"));
|
||||||
gtk_window_set_skip_taskbar_hint (GTK_WINDOW (dialog), FALSE);
|
gtk_window_set_skip_taskbar_hint (GTK_WINDOW (dialog), FALSE);
|
||||||
gtk_window_set_title (GTK_WINDOW (dialog), g_get_application_name ());
|
gtk_window_set_title (GTK_WINDOW (dialog), g_get_application_name ());
|
||||||
/* FIXME: Use custom program icon */
|
screen = gtk_widget_get_screen (dialog);
|
||||||
gtk_window_set_icon_name (GTK_WINDOW (dialog), "web-browser");
|
if (screen)
|
||||||
|
{
|
||||||
|
icon_theme = gtk_icon_theme_get_for_screen (screen);
|
||||||
|
if (gtk_icon_theme_has_icon (icon_theme, "midori"))
|
||||||
|
gtk_window_set_icon_name (GTK_WINDOW (dialog), "midori");
|
||||||
|
else
|
||||||
|
gtk_window_set_icon_name (GTK_WINDOW (dialog), "web-browser");
|
||||||
|
}
|
||||||
gtk_message_dialog_format_secondary_text (
|
gtk_message_dialog_format_secondary_text (
|
||||||
GTK_MESSAGE_DIALOG (dialog), "%s", error_messages->str);
|
GTK_MESSAGE_DIALOG (dialog), "%s", error_messages->str);
|
||||||
gtk_dialog_add_buttons (GTK_DIALOG (dialog),
|
gtk_dialog_add_buttons (GTK_DIALOG (dialog),
|
||||||
|
@ -508,7 +530,6 @@ main (int argc,
|
||||||
|
|
||||||
stock_items_init ();
|
stock_items_init ();
|
||||||
|
|
||||||
// FIXME: Implement 10 item limit for trash
|
|
||||||
MidoriWebList* trash = midori_web_list_new ();
|
MidoriWebList* trash = midori_web_list_new ();
|
||||||
guint n = katze_xbel_folder_get_n_items (xbel_trash);
|
guint n = katze_xbel_folder_get_n_items (xbel_trash);
|
||||||
guint i;
|
guint i;
|
||||||
|
@ -517,6 +538,8 @@ main (int argc,
|
||||||
KatzeXbelItem* item = katze_xbel_folder_get_nth_item (xbel_trash, i);
|
KatzeXbelItem* item = katze_xbel_folder_get_nth_item (xbel_trash, i);
|
||||||
midori_web_list_add_item (trash, item);
|
midori_web_list_add_item (trash, item);
|
||||||
}
|
}
|
||||||
|
g_signal_connect_after (trash, "add-item",
|
||||||
|
G_CALLBACK (midori_web_list_add_item_cb), NULL);
|
||||||
|
|
||||||
MidoriApp* app = g_object_new (MIDORI_TYPE_APP,
|
MidoriApp* app = g_object_new (MIDORI_TYPE_APP,
|
||||||
"settings", settings,
|
"settings", settings,
|
||||||
|
|
Loading…
Reference in a new issue