KonaSearch: Added code to clear the search again
parent
41574f12b6
commit
555edeb10c
|
@ -2,7 +2,7 @@
|
||||||
#include "konaimage.h"
|
#include "konaimage.h"
|
||||||
#include "konasearch.h"
|
#include "konasearch.h"
|
||||||
|
|
||||||
#define PRINT_TEST_HEADER() printf("\n========= %s =========\n", __func__)
|
#define PRINT_TEST_HEADER() printf("\n========= %s =========\n", __func__); fflush(stdout);
|
||||||
|
|
||||||
void cb_meta_changed(KonaImage* ki) {
|
void cb_meta_changed(KonaImage* ki) {
|
||||||
kona_image_meta *meta;
|
kona_image_meta *meta;
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
#include "konasearch.h"
|
#include "konasearch.h"
|
||||||
|
#include "konaimage.h"
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <libsoup/soup.h>
|
#include <libsoup/soup.h>
|
||||||
#include <libxml2/libxml/parser.h>
|
#include <libxml2/libxml/parser.h>
|
||||||
#include "konaimage.h"
|
|
||||||
|
|
||||||
// Function prototypes for local functions
|
// Function prototypes for local functions
|
||||||
static void kona_search_posts_soup_cb (SoupSession *session, SoupMessage *msg, gpointer user_data);
|
static void kona_search_posts_soup_cb (SoupSession *session, SoupMessage *msg, gpointer user_data);
|
||||||
|
@ -49,8 +50,8 @@ static void kona_search_dispose(GObject *self)
|
||||||
static void kona_search_finalize(GObject *self)
|
static void kona_search_finalize(GObject *self)
|
||||||
{
|
{
|
||||||
KonaSearch *ks = (KonaSearch*) self;
|
KonaSearch *ks = (KonaSearch*) self;
|
||||||
//g_free(ks->postsSession);
|
|
||||||
g_free(ks->searchString);
|
g_free(ks->searchString);
|
||||||
|
// TODO: Free SoupSession ks->postsSession
|
||||||
G_OBJECT_CLASS (kona_search_parent_class)->finalize ((GObject*) self);
|
G_OBJECT_CLASS (kona_search_parent_class)->finalize ((GObject*) self);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -116,21 +117,24 @@ static void kona_search_posts_soup_cb (SoupSession *session, SoupMessage *msg, g
|
||||||
meta.tags = NULL;
|
meta.tags = NULL;
|
||||||
tagsplit = g_strsplit(xmlGetProp(xNodePtr, "tags"), " ", 100);
|
tagsplit = g_strsplit(xmlGetProp(xNodePtr, "tags"), " ", 100);
|
||||||
for (tagsplitc = tagsplit; *tagsplitc; tagsplitc++) {
|
for (tagsplitc = tagsplit; *tagsplitc; tagsplitc++) {
|
||||||
meta.tags = g_list_append(meta.tags, g_strdup(*tagsplitc));
|
meta.tags = g_list_append(meta.tags, *tagsplitc);
|
||||||
}
|
}
|
||||||
g_strfreev(tagsplit);
|
|
||||||
|
|
||||||
// Create new KonaImage
|
// Create new KonaImage
|
||||||
ki = kona_image_new();
|
ki = kona_image_new();
|
||||||
g_value_set_pointer(&val, (gpointer) &meta);
|
g_value_set_pointer(&val, (gpointer) &meta);
|
||||||
g_object_set_property((GObject*) ki, "meta", &val);
|
g_object_set_property((GObject*) ki, "meta", &val);
|
||||||
|
|
||||||
|
// Free temp string (copied by g_object_set_property)
|
||||||
|
g_strfreev(tagsplit);
|
||||||
|
|
||||||
// Add to list
|
// Add to list
|
||||||
ks->searchResult.images = g_list_append(ks->searchResult.images, ki);
|
ks->searchResult.images = g_list_append(ks->searchResult.images, ki);
|
||||||
}
|
}
|
||||||
} while (xNodePtr = xNodePtr->next);
|
} while (xNodePtr = xNodePtr->next);
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
|
{
|
||||||
fprintf(stderr, "Error: Invalid XML root node!\n");
|
fprintf(stderr, "Error: Invalid XML root node!\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -138,5 +142,22 @@ static void kona_search_posts_soup_cb (SoupSession *session, SoupMessage *msg, g
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Error parsing XML result!\n");
|
fprintf(stderr, "Error parsing XML result!\n");
|
||||||
}
|
}
|
||||||
fflush(stdout);
|
|
||||||
|
xmlFreeDoc(xDocPtr);
|
||||||
|
}
|
||||||
|
|
||||||
|
void kona_search_clear_full(KonaSearch *ks)
|
||||||
|
{
|
||||||
|
ks->searchResult.count = -1;
|
||||||
|
|
||||||
|
g_list_free_full(ks->searchResult.images, g_object_unref);
|
||||||
|
ks->searchResult.images = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
void kona_search_clear(KonaSearch *ks)
|
||||||
|
{
|
||||||
|
ks->searchResult.count = -1;
|
||||||
|
|
||||||
|
g_list_free(ks->searchResult.images);
|
||||||
|
ks->searchResult.images = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,12 @@ static void kona_search_init (KonaSearch *self);
|
||||||
static void kona_search_dispose(GObject *self);
|
static void kona_search_dispose(GObject *self);
|
||||||
static void kona_search_finalize(GObject *self);
|
static void kona_search_finalize(GObject *self);
|
||||||
|
|
||||||
|
// Starts a search.
|
||||||
void kona_search_start(KonaSearch *self);
|
void kona_search_start(KonaSearch *self);
|
||||||
|
// Clears the search results and deallocates ALL buffer - including all created KonaImages
|
||||||
|
void kona_search_clear_full(KonaSearch *ks);
|
||||||
|
// Clears the search, but leaves the KonaImages intact
|
||||||
|
void kona_search_clear(KonaSearch *ks);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue