コード例 #1
0
ファイル: midori-frontend.c プロジェクト: sinoory/webv8
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);
}
コード例 #2
0
ファイル: midori-frontend.c プロジェクト: kenz-gelsoft/chiya
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);
    }
}
コード例 #3
0
/* 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]);
}