static void midori_trash_remove_item_cb (KatzeArray* trash, GObject* item) { gchar* config_file = midori_paths_get_config_filename_for_writing ("tabtrash.xbel"); GError* error = NULL; midori_trash_add_item_no_save_cb (trash, item); if (!midori_array_to_file (trash, config_file, "xbel-tiny", &error)) { /* i18n: Trash, or wastebin, containing closed tabs */ g_warning (_("The trash couldn't be saved. %s"), error->message); g_error_free (error); } g_free (config_file); }
void midori_normal_app_on_quit (MidoriApp* app) { MidoriWebSettings* settings = katze_object_get_object (app, "settings"); MidoriBookmarksDb* bookmarks = katze_object_get_object (app, "bookmarks"); KatzeArray* history = katze_object_get_object (app, "history"); g_object_notify (G_OBJECT (settings), "load-on-startup"); midori_bookmarks_db_on_quit (bookmarks); midori_history_on_quit (history, settings); midori_private_data_on_quit (settings); MidoriStartup load_on_startup = katze_object_get_int (settings, "load-on-startup"); if (load_on_startup < MIDORI_STARTUP_LAST_OPEN_PAGES) { gchar* config_file = midori_paths_get_config_filename_for_writing ("session.xbel"); g_unlink (config_file); } }
/* Extension property has changed */ static void _interface_tweaks_on_extension_changed(InterfaceTweaks *self, MidoriExtension *inExtension) { g_return_if_fail(IS_INTERFACE_TWEAKS(self)); g_return_if_fail(inExtension==NULL || MIDORI_IS_EXTENSION(inExtension)); InterfaceTweaksPrivate *priv=INTERFACE_TWEAKS(self)->priv; gchar *dbFilename; gint dbSuccess; sqlite3 *dbHandle; sqlite3_stmt *dbStatement; gchar *dbURI; /* Release resources on current extension object */ if(priv->extension) { g_object_unref(priv->extension); priv->extension=NULL; } /* Set new extension object */ if(!inExtension) return; priv->extension=g_object_ref(inExtension); /* Clear completion model and fill model from history database */ if(priv->completionModel) { gtk_list_store_clear(priv->completionModel); dbFilename=midori_paths_get_config_filename_for_writing(HISTORY_DATABASE_FILENAME); if(dbFilename) { dbSuccess=sqlite3_open_v2(dbFilename, &dbHandle, SQLITE_OPEN_READONLY, NULL); if(dbSuccess==SQLITE_OK) { dbStatement=NULL; dbSuccess=sqlite3_prepare_v2(dbHandle, "SELECT uri FROM history GROUP BY uri ORDER BY date,uri;", /* Found row should also contain highest date so no ORDER BY */ -1, &dbStatement, NULL); if(dbStatement && dbSuccess==SQLITE_OK) { /* Iterate through URIs found in database by the query above */ while(sqlite3_step(dbStatement)==SQLITE_ROW) { /* Get URI from database */ dbURI=(gchar*)sqlite3_column_text(dbStatement, 0); /* Add to completion model */ _interface_tweaks_add_uri_to_completion_model(self, dbURI); } } else g_warning(_("Could not fetch history from database: %s"), sqlite3_errmsg(dbHandle)); sqlite3_finalize(dbStatement); } sqlite3_close(dbHandle); g_free(dbFilename); } } /* Notify about property change */ g_object_notify_by_pspec(G_OBJECT(self), InterfaceTweaksProperties[PROP_EXTENSION]); }