[gnome-notes] Derive NoteObj and Notebook from GObject
- From: Isaque Galdino de Araujo <igaldino src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-notes] Derive NoteObj and Notebook from GObject
- Date: Tue, 1 Feb 2022 13:15:13 +0000 (UTC)
commit 6efaed2522af63e6b0b4326f6722489babb62d8b
Author: Mohammed Sadiq <sadiq sadiqpk org>
Date: Mon Jan 17 19:36:14 2022 +0530
Derive NoteObj and Notebook from GObject
And adapt to changes
Also remove biji-item as it's no longer used, the APIs in biji-item
has been split and added appropriately to BijiNoteObj and BijiNotebook
src/bjb-application.c | 17 +-
src/bjb-controller.c | 44 +--
src/bjb-list-view-row.c | 5 +-
src/bjb-notebook-row.c | 8 +-
src/bjb-notebook-row.h | 4 +-
src/bjb-notebooks-dialog.c | 31 +-
src/bjb-share.c | 2 +-
src/bjb-window.c | 40 +--
src/libbiji/biji-item.c | 259 -----------------
src/libbiji/biji-item.h | 104 -------
src/libbiji/biji-manager.c | 125 +++-----
src/libbiji/biji-manager.h | 9 +-
src/libbiji/biji-note-obj.c | 339 +++++++++++++---------
src/libbiji/biji-note-obj.h | 21 +-
src/libbiji/biji-notebook.c | 167 ++++-------
src/libbiji/biji-notebook.h | 9 +-
src/libbiji/biji-tracker.c | 16 +-
src/libbiji/biji-tracker.h | 4 +-
src/libbiji/deserializer/biji-lazy-deserializer.c | 6 +-
src/libbiji/libbiji.h | 1 -
src/libbiji/meson.build | 1 -
src/libbiji/provider/biji-import-provider.c | 2 +-
src/libbiji/provider/biji-local-note.c | 27 +-
src/libbiji/provider/biji-memo-note.c | 17 +-
src/libbiji/provider/biji-nextcloud-note.c | 15 +-
src/libbiji/serializer/biji-lazy-serializer.c | 7 +-
26 files changed, 442 insertions(+), 838 deletions(-)
---
diff --git a/src/bjb-application.c b/src/bjb-application.c
index 595acadc..9823ae85 100644
--- a/src/bjb-application.c
+++ b/src/bjb-application.c
@@ -117,14 +117,13 @@ on_window_activated_cb (BjbWindow *window,
* but not the default one - more work is needed here */
if (self->new_note && g_queue_is_empty (&self->files_to_open))
{
- BijiItem *item;
+ BijiNoteObj *note;
self->new_note = FALSE;
- item = BIJI_ITEM (biji_manager_note_new (
- self->manager,
- NULL,
- bjb_settings_get_default_location (self->settings)));
- bijiben_new_window_internal (self, BIJI_NOTE_OBJ (item));
+ note = biji_manager_note_new (self->manager,
+ NULL,
+ bjb_settings_get_default_location (self->settings));
+ bijiben_new_window_internal (self, note);
}
}
@@ -166,7 +165,7 @@ bijiben_open_path (BjbApplication *self,
gchar *path,
BjbWindow *window)
{
- BijiItem *item;
+ gpointer item;
if (!self->is_loaded)
return FALSE;
@@ -174,9 +173,9 @@ bijiben_open_path (BjbApplication *self,
item = biji_manager_get_item_at_path (self->manager, path);
if (!window)
- bijiben_new_window_internal (self, BIJI_NOTE_OBJ (item));
+ bijiben_new_window_internal (self, item);
else
- bjb_window_set_note (window, BIJI_NOTE_OBJ (item));
+ bjb_window_set_note (window, item);
return TRUE;
}
diff --git a/src/bjb-controller.c b/src/bjb-controller.c
index 8ae073f7..8a4b6508 100644
--- a/src/bjb-controller.c
+++ b/src/bjb-controller.c
@@ -179,16 +179,18 @@ bjb_controller_set_property (GObject *object,
/* get iter at this item
* or get iter at first note if item == NULL*/
static gboolean
-bjb_controller_get_iter (BjbController *self,
- BijiItem *item,
- GtkTreeIter **iter)
+bjb_controller_get_iter (BjbController *self,
+ gpointer item,
+ GtkTreeIter **iter)
{
gboolean retval = FALSE;
gboolean try;
const gchar *needle = NULL;
- if (item && BIJI_IS_ITEM (item))
- needle = biji_item_get_uuid (item);
+ if (BIJI_IS_NOTEBOOK (item))
+ needle = biji_notebook_get_uuid (BIJI_NOTEBOOK (item));
+ else if (BIJI_IS_NOTE_OBJ (item))
+ needle = biji_note_obj_get_uuid (BIJI_NOTE_OBJ (item));
try = gtk_tree_model_get_iter_first (self->model, *iter);
@@ -225,7 +227,7 @@ bjb_controller_get_iter (BjbController *self,
* prepend just before this iter */
static void
bjb_controller_add_item (BjbController *self,
- BijiItem *item,
+ gpointer item,
gboolean prepend,
GtkTreeIter *sibling)
{
@@ -235,7 +237,7 @@ bjb_controller_add_item (BjbController *self,
const char *text = _("Notebook");
g_autofree char *color = NULL;
- g_return_if_fail (BIJI_IS_ITEM (item));
+ g_return_if_fail (BIJI_IS_NOTE_OBJ (item) || BIJI_IS_NOTEBOOK (item));
store = GTK_LIST_STORE (self->model);
/* Only append notes which are not templates. Currently useless */
@@ -268,10 +270,10 @@ bjb_controller_add_item (BjbController *self,
gtk_list_store_set (store,
&iter,
- BJB_MODEL_COLUMN_UUID, biji_item_get_uuid (item),
- BJB_MODEL_COLUMN_TITLE, biji_item_get_title (item),
+ BJB_MODEL_COLUMN_UUID, biji_note_obj_get_uuid (BIJI_NOTE_OBJ (item)),
+ BJB_MODEL_COLUMN_TITLE, biji_note_obj_get_title (BIJI_NOTE_OBJ (item)),
BJB_MODEL_COLUMN_TEXT, text,
- BJB_MODEL_COLUMN_MTIME, biji_item_get_mtime (item),
+ BJB_MODEL_COLUMN_MTIME, biji_note_obj_get_mtime (BIJI_NOTE_OBJ (item)),
BJB_MODEL_COLUMN_COLOR, color,
-1);
}
@@ -279,7 +281,7 @@ bjb_controller_add_item (BjbController *self,
/* If the user searches for notes, is the note searched? */
static void
bjb_controller_add_item_if_needed (BjbController *self,
- BijiItem *item,
+ gpointer item,
gboolean prepend,
GtkTreeIter *sibling)
{
@@ -288,7 +290,7 @@ bjb_controller_add_item_if_needed (BjbController *self,
const gchar *title;
/* No note... */
- if (!item || !BIJI_IS_ITEM (item))
+ if (!BIJI_IS_NOTEBOOK (item) && !BIJI_IS_NOTE_OBJ (item))
return;
/* No search - we add the note */
@@ -304,7 +306,10 @@ bjb_controller_add_item_if_needed (BjbController *self,
/* a search.. we test...*/
else
{
- title = biji_item_get_title (item);
+ if (BIJI_IS_NOTEBOOK (item))
+ title = biji_notebook_get_title (item);
+ else
+ title = biji_note_obj_get_title (item);
/* matching title... */
if (g_strrstr (title, self->needle) != NULL)
@@ -327,8 +332,8 @@ bjb_controller_add_item_if_needed (BjbController *self,
static gint
most_recent_item_first (gconstpointer a, gconstpointer b)
{
- const BijiItem *one = a;
- const BijiItem *other = b;
+ const BijiNoteObj *one = a;
+ const BijiNoteObj *other = b;
glong result = 0;
/* Always sort notebooks before notes */
@@ -347,8 +352,8 @@ most_recent_item_first (gconstpointer a, gconstpointer b)
* two notebooks, use the most recent cookbook */
else
{
- result = biji_item_get_mtime ((gpointer) other)
- - biji_item_get_mtime ((gpointer) one);
+ result = biji_note_obj_get_mtime ((gpointer) other)
+ - biji_note_obj_get_mtime ((gpointer) one);
}
return result;
@@ -588,10 +593,9 @@ static void
on_manager_changed (BijiManager *manager,
BijiItemsGroup group,
BijiManagerChangeFlag flag,
- gpointer *biji_item,
+ gpointer *item,
BjbController *self)
{
- BijiItem *item = BIJI_ITEM (biji_item);
GtkTreeIter iter;
GtkTreeIter *p_iter = &iter;
@@ -872,7 +876,7 @@ bjb_controller_set_notebook (BjbController *self,
self->notebook = coll;
biji_tracker_get_notes_with_notebook_async (biji_manager_get_tracker (self->manager),
- biji_item_get_title (BIJI_ITEM (coll)),
+ biji_notebook_get_title (coll),
on_controller_get_notes_cb,
g_object_ref (self));
}
diff --git a/src/bjb-list-view-row.c b/src/bjb-list-view-row.c
index e862bb13..91aa74b5 100644
--- a/src/bjb-list-view-row.c
+++ b/src/bjb-list-view-row.c
@@ -49,13 +49,12 @@ on_manager_changed (BijiManager *manager,
gpointer *biji_item,
BjbListViewRow *self)
{
- BijiItem *item = BIJI_ITEM (biji_item);
- BijiNoteObj *note_obj = BIJI_NOTE_OBJ (item);
+ BijiNoteObj *note_obj = BIJI_NOTE_OBJ (biji_item);
/* Note title/content amended. */
if (flag == BIJI_MANAGER_NOTE_AMENDED)
{
- if (g_strcmp0 (self->uuid, biji_item_get_uuid (item)) == 0)
+ if (g_strcmp0 (self->uuid, biji_note_obj_get_uuid (note_obj)) == 0)
{
if (biji_note_obj_get_title (note_obj) != NULL &&
g_strcmp0 (gtk_label_get_text (self->title),
diff --git a/src/bjb-notebook-row.c b/src/bjb-notebook-row.c
index 31a630da..3cbfaf49 100644
--- a/src/bjb-notebook-row.c
+++ b/src/bjb-notebook-row.c
@@ -38,7 +38,7 @@ struct _BjbNotebookRow
{
GtkListBoxRow parent_instance;
- BijiItem *item;
+ BijiNotebook *item;
GtkWidget *select_image;
GtkWidget *tag_label;
@@ -82,7 +82,7 @@ bjb_notebook_row_init (BjbNotebookRow *self)
}
GtkWidget *
-bjb_notebook_row_new (BijiItem *notebook)
+bjb_notebook_row_new (BijiNotebook *notebook)
{
BjbNotebookRow *self;
@@ -92,12 +92,12 @@ bjb_notebook_row_new (BijiItem *notebook)
self->item = g_object_ref (notebook);
gtk_label_set_text (GTK_LABEL (self->tag_label),
- biji_item_get_title (notebook));
+ biji_notebook_get_title (notebook));
return GTK_WIDGET (self);
}
-BijiItem *
+BijiNotebook *
bjb_notebook_row_get_item (BjbNotebookRow *self)
{
g_return_val_if_fail (BJB_IS_NOTEBOOK_ROW (self), NULL);
diff --git a/src/bjb-notebook-row.h b/src/bjb-notebook-row.h
index 553493f6..29022c6d 100644
--- a/src/bjb-notebook-row.h
+++ b/src/bjb-notebook-row.h
@@ -35,8 +35,8 @@ G_BEGIN_DECLS
G_DECLARE_FINAL_TYPE (BjbNotebookRow, bjb_notebook_row, BJB, NOTEBOOK_ROW, GtkListBoxRow)
-GtkWidget *bjb_notebook_row_new (BijiItem *notebook);
-BijiItem *bjb_notebook_row_get_item (BjbNotebookRow *self);
+GtkWidget *bjb_notebook_row_new (BijiNotebook *notebook);
+BijiNotebook *bjb_notebook_row_get_item (BjbNotebookRow *self);
gboolean bjb_notebook_row_get_active (BjbNotebookRow *self);
void bjb_notebook_row_set_active (BjbNotebookRow *self,
gboolean is_active);
diff --git a/src/bjb-notebooks-dialog.c b/src/bjb-notebooks-dialog.c
index 51599bbc..6bd91031 100644
--- a/src/bjb-notebooks-dialog.c
+++ b/src/bjb-notebooks-dialog.c
@@ -60,16 +60,16 @@ on_notebook_entry_changed_cb (BjbNotebooksDialog *self)
return;
}
- notebooks = biji_manager_get_notebooks (biji_item_get_manager (BIJI_ITEM (self->item)));
+ notebooks = biji_manager_get_notebooks (biji_note_obj_get_manager (self->item));
n_items = g_list_model_get_n_items (notebooks);
for (guint i = 0; i < n_items; i++)
{
- g_autoptr(BijiItem) item = NULL;
+ g_autoptr(BijiNotebook) item = NULL;
item = g_list_model_get_item (notebooks, i);
- if (g_strcmp0 (biji_item_get_title (item), notebook) == 0)
+ if (g_strcmp0 (biji_notebook_get_title (item), notebook) == 0)
{
gtk_widget_set_sensitive (self->add_notebook_button, FALSE);
return;
@@ -85,17 +85,17 @@ on_new_notebook_created_cb (GObject *object,
gpointer user_data)
{
BjbNotebooksDialog *self = user_data;
- g_autoptr(BijiItem) notebook = NULL;
+ g_autoptr(BijiNotebook) notebook = NULL;
g_autoptr(GList) rows = NULL;
notebook = biji_tracker_add_notebook_finish (BIJI_TRACKER (object), result, NULL);
- biji_item_add_notebook (BIJI_ITEM (self->item), notebook, NULL);
+ biji_note_obj_add_notebook (self->item, notebook, NULL);
gtk_entry_set_text (GTK_ENTRY (self->notebook_entry), "");
rows = gtk_container_get_children (GTK_CONTAINER (self->notebooks_list));
for (GList *row = rows; row; row = row->next)
- if (notebook == bjb_notebook_row_get_item (row->data))
+ if ((gpointer)notebook == bjb_notebook_row_get_item (row->data))
{
bjb_notebook_row_set_active (row->data, TRUE);
break;
@@ -110,7 +110,7 @@ on_add_notebook_button_clicked_cb (BjbNotebooksDialog *self)
notebook = gtk_entry_get_text (GTK_ENTRY (self->notebook_entry));
- manager = biji_item_get_manager (BIJI_ITEM (self->item));
+ manager = biji_note_obj_get_manager (self->item);
biji_tracker_add_notebook_async (biji_manager_get_tracker (manager),
notebook, on_new_notebook_created_cb, self);
}
@@ -120,7 +120,7 @@ on_notebooks_row_activated_cb (BjbNotebooksDialog *self,
BjbNotebookRow *row,
GtkListBox *box)
{
- BijiItem *notebook;
+ BijiNotebook *notebook;
g_assert (BJB_IS_NOTEBOOKS_DIALOG (self));
g_assert (GTK_IS_LIST_BOX (box));
@@ -131,13 +131,13 @@ on_notebooks_row_activated_cb (BjbNotebooksDialog *self,
notebook = bjb_notebook_row_get_item (row);
BJB_TRACE_MSG ("Notebook '%s' %s",
- biji_item_get_title (notebook),
+ biji_notebook_get_title (notebook),
bjb_notebook_row_get_active (row) ? "selected" : "deselected");
if (bjb_notebook_row_get_active (row))
- biji_item_add_notebook (BIJI_ITEM (self->item), notebook, NULL);
+ biji_note_obj_add_notebook (self->item, notebook, NULL);
else
- biji_item_remove_notebook (BIJI_ITEM (self->item), notebook);
+ biji_note_obj_remove_notebook (self->item, notebook);
}
static GtkWidget *
@@ -149,7 +149,7 @@ notebooks_row_new (BijiNotebook *notebook,
g_assert (BJB_IS_NOTEBOOKS_DIALOG (self));
g_assert (BIJI_IS_NOTEBOOK (notebook));
- row = bjb_notebook_row_new (BIJI_ITEM (notebook));
+ row = bjb_notebook_row_new (notebook);
return row;
}
@@ -225,7 +225,7 @@ bjb_notebooks_dialog_set_item (BjbNotebooksDialog *self,
if (!g_set_object (&self->item, note))
return;
- BJB_DEBUG_MSG ("Setting note '%s'", biji_item_get_title (BIJI_ITEM (note)));
+ BJB_DEBUG_MSG ("Setting note '%s'", biji_note_obj_get_title (note));
notebooks = biji_note_obj_get_notebooks (self->item);
rows = gtk_container_get_children (GTK_CONTAINER (self->notebooks_list));
@@ -236,12 +236,11 @@ bjb_notebooks_dialog_set_item (BjbNotebooksDialog *self,
for (GList *row = rows; row; row = row->next)
{
- BijiItem *notebook;
+ BijiNotebook *notebook;
gboolean selected;
notebook = bjb_notebook_row_get_item (row->data);
- selected = biji_item_has_notebook (BIJI_ITEM (self->item),
- (char *)biji_item_get_title (notebook));
+ selected = biji_note_obj_has_notebook (self->item, biji_notebook_get_title (notebook));
bjb_notebook_row_set_active (row->data, selected);
}
}
diff --git a/src/bjb-share.c b/src/bjb-share.c
index e22a61dc..afed7f5a 100644
--- a/src/bjb-share.c
+++ b/src/bjb-share.c
@@ -37,7 +37,7 @@ on_email_note_callback (BijiNoteObj *note)
GVariantBuilder *arraybuilder;
GVariant *dict;
- title_mail = mail_str ((gchar*) biji_item_get_title (BIJI_ITEM (note)));
+ title_mail = mail_str (biji_note_obj_get_title (note));
text_mail = mail_str (biji_note_obj_get_raw_text (note));
proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION,
diff --git a/src/bjb-window.c b/src/bjb-window.c
index 8e9688d7..201f2584 100644
--- a/src/bjb-window.c
+++ b/src/bjb-window.c
@@ -124,12 +124,12 @@ destroy_note_if_needed (BjbWindow *self)
}
static void
-on_note_renamed (BijiItem *note,
- BjbWindow *self)
+on_note_renamed (BijiNoteObj *note,
+ BjbWindow *self)
{
const char *str;
- str = biji_item_get_title (note);
+ str = biji_note_obj_get_title (note);
if (str == NULL || strlen(str) == 0)
str = _("Untitled");
gtk_entry_set_text (GTK_ENTRY (self->title_entry), str);
@@ -144,7 +144,7 @@ on_note_list_row_activated (GtkListBox *box,
gpointer user_data)
{
const char *note_uuid;
- BijiItem *to_open;
+ gpointer to_open;
BijiManager *manager;
BjbWindow *self = BJB_WINDOW (user_data);
GList *windows;
@@ -170,14 +170,14 @@ on_note_list_row_activated (GtkListBox *box,
hdy_leaflet_navigate (self->main_leaflet, HDY_NAVIGATION_DIRECTION_FORWARD);
/* Only open the note if it's not already opened. */
- if (!biji_note_obj_is_opened (BIJI_NOTE_OBJ (to_open)))
+ if (!biji_note_obj_is_opened (to_open))
{
- bjb_window_set_note (self, BIJI_NOTE_OBJ (to_open));
+ bjb_window_set_note (self, to_open);
}
}
else if (to_open && BIJI_IS_NOTEBOOK (to_open))
{
- bjb_controller_set_notebook (self->controller, BIJI_NOTEBOOK (to_open));
+ bjb_controller_set_notebook (self->controller, to_open);
}
}
@@ -467,7 +467,7 @@ on_show_notebook_cb (GSimpleAction *action,
const char *note_uuid;
const char *title;
BjbWindow *self = BJB_WINDOW (user_data);
- BijiItem *notebook;
+ BijiNotebook *notebook;
BijiManager *manager;
clear_text_in_search_entry (self);
@@ -482,10 +482,10 @@ on_show_notebook_cb (GSimpleAction *action,
{
manager = bjb_window_get_manager (GTK_WIDGET (self));
notebook = biji_manager_find_notebook (manager, note_uuid);
- bjb_controller_set_notebook (self->controller, BIJI_NOTEBOOK (notebook));
+ bjb_controller_set_notebook (self->controller, notebook);
/* Update headerbar title. */
- title = biji_item_get_title (notebook);
+ title = biji_notebook_get_title (notebook);
gtk_label_set_text (GTK_LABEL (self->filter_label), title);
}
@@ -505,7 +505,7 @@ on_trash_cb (GSimpleAction *action,
/* Delete the note from notebook
* The deleted note will emit a signal. */
- biji_item_trash (BIJI_ITEM (note));
+ biji_note_obj_trash (note);
destroy_note_if_needed (self);
bjb_window_set_view (self, BJB_WINDOW_MAIN_VIEW);
@@ -578,8 +578,8 @@ bjb_window_configure_event (GtkWidget *widget,
}
static void
-append_notebook (BijiItem *notebook,
- BjbWindow *self)
+append_notebook (BijiNotebook *notebook,
+ BjbWindow *self)
{
const char *note_uuid;
const char *title;
@@ -587,10 +587,10 @@ append_notebook (BijiItem *notebook,
GtkStyleContext *context;
GtkWidget *button;
- note_uuid = biji_item_get_uuid (notebook);
+ note_uuid = biji_notebook_get_uuid (notebook);
variant = g_variant_new_string (note_uuid);
- title = biji_item_get_title (notebook);
+ title = biji_notebook_get_title (notebook);
button = gtk_model_button_new ();
g_object_set (button,
"action-name", "win.show-notebook",
@@ -626,7 +626,7 @@ on_display_notebooks_changed (BjbWindow *self)
for (guint i = 0; i < n_items; i++)
{
- g_autoptr(BijiItem) item = NULL;
+ g_autoptr(BijiNotebook) item = NULL;
item = g_list_model_get_item (notebooks, i);
append_notebook (item, self);
@@ -925,8 +925,8 @@ bjb_window_set_view (BjbWindow *self,
}
static void
-on_last_updated_cb (BijiItem *note,
- BjbWindow *self)
+on_last_updated_cb (BijiNoteObj *note,
+ BjbWindow *self)
{
g_autofree char *label = NULL;
g_autofree char *time_str = NULL;
@@ -944,10 +944,10 @@ on_last_updated_cb (BijiItem *note,
static void
populate_headerbar_for_note_view (BjbWindow *self)
{
- on_note_renamed (BIJI_ITEM (self->note), self);
+ on_note_renamed (self->note, self);
g_signal_connect (self->note, "renamed", G_CALLBACK (on_note_renamed), self);
- on_last_updated_cb (BIJI_ITEM (self->note), self);
+ on_last_updated_cb (self->note, self);
g_signal_connect (self->note, "changed", G_CALLBACK (on_last_updated_cb), self);
}
diff --git a/src/libbiji/biji-manager.c b/src/libbiji/biji-manager.c
index df6bca16..f0d63cd7 100644
--- a/src/libbiji/biji-manager.c
+++ b/src/libbiji/biji-manager.c
@@ -93,7 +93,7 @@ on_provider_loaded_cb (BijiProvider *provider,
case BIJI_LIVING_ITEMS:
for (l=items; l!=NULL; l=l->next)
{
- if (BIJI_IS_ITEM (l->data))
+ if (BIJI_IS_NOTEBOOK (l->data) || BIJI_IS_NOTE_OBJ (l->data))
biji_manager_add_item (manager, l->data, BIJI_LIVING_ITEMS, FALSE);
}
break;
@@ -101,7 +101,7 @@ on_provider_loaded_cb (BijiProvider *provider,
case BIJI_ARCHIVED_ITEMS:
for (l=items; l!= NULL; l=l->next)
{
- if (BIJI_IS_ITEM (l->data))
+ if (BIJI_IS_NOTEBOOK (l->data) || BIJI_IS_NOTE_OBJ (l->data))
biji_manager_add_item (manager, l->data, BIJI_ARCHIVED_ITEMS, FALSE);
}
break;
@@ -370,19 +370,20 @@ static gboolean
title_is_unique (BijiManager *self, gchar *title)
{
gboolean is_unique = TRUE;
- BijiItem *iter;
GList *items, *l;
items = g_hash_table_get_values (self->items);
for ( l=items ; l != NULL ; l = l->next)
{
- if (BIJI_IS_ITEM (l->data) == FALSE)
- break;
+ const char *item_title = NULL;
- iter = BIJI_ITEM (l->data);
+ if (BIJI_IS_NOTE_OBJ (l->data))
+ item_title = biji_note_obj_get_title (l->data);
+ else if (BIJI_IS_NOTEBOOK (l->data))
+ item_title = biji_notebook_get_title (l->data);
- if (g_strcmp0 (biji_item_get_title (iter), title) == 0)
+ if (g_strcmp0 (item_title, title) == 0)
{
is_unique = FALSE;
break;
@@ -421,10 +422,10 @@ biji_manager_get_unique_title (BijiManager *manager, const gchar *title)
void
-biji_manager_notify_changed (BijiManager *manager,
- BijiItemsGroup group,
- BijiManagerChangeFlag flag,
- BijiItem *item)
+biji_manager_notify_changed (BijiManager *manager,
+ BijiItemsGroup group,
+ BijiManagerChangeFlag flag,
+ gpointer item)
{
g_debug ("manager: notify changed, %i", flag);
g_signal_emit (manager,
@@ -437,16 +438,17 @@ biji_manager_notify_changed (BijiManager *manager,
static void
-on_item_deleted_cb (BijiItem *item, BijiManager *self)
+on_item_deleted_cb (BijiNoteObj *item,
+ BijiManager *self)
{
- BijiItem *to_delete;
+ BijiNoteObj *to_delete;
const gchar *path;
GHashTable *store;
BijiItemsGroup group;
to_delete = NULL;
- path = biji_item_get_uuid (item);
+ path = biji_note_obj_get_uuid (item);
store = NULL;
if ((to_delete = g_hash_table_lookup (self->archives, path)))
@@ -465,66 +467,36 @@ on_item_deleted_cb (BijiItem *item, BijiManager *self)
g_hash_table_remove (store, path);
- biji_manager_notify_changed (self, group,
- BIJI_MANAGER_ITEM_DELETED, item);
+ biji_manager_notify_changed (self, group, BIJI_MANAGER_ITEM_DELETED, item);
}
/* Signal if item is known */
static void
-on_item_trashed_cb (BijiItem *item, BijiManager *self)
+on_item_trashed_cb (BijiNoteObj *item,
+ BijiManager *self)
{
const gchar *path;
- path = biji_item_get_uuid (item);
+ path = biji_note_obj_get_uuid (item);
item = g_hash_table_lookup (self->items, path);
if (item == NULL)
return;
biji_manager_notify_changed (self, BIJI_LIVING_ITEMS, BIJI_MANAGER_ITEM_TRASHED, item);
- g_hash_table_insert (self->archives,
- (gpointer) biji_item_get_uuid (item), item);
+ g_hash_table_insert (self->archives, (gpointer) path, item);
g_hash_table_remove (self->items, path);
}
-/*
- * old uuid : we need this because local provider uses
- * file name as uuid. Now this proves this is not right.
- *
- * save : in order to restore the note inside tracker
- *
- *
- * notify... BIJI_ARCHIVED_ITEM
- * well, works currently : we assume Archives change.
- * but we might double-ping as well
- * or improve the whole logic
- */
-static void
-on_item_restored_cb (BijiItem *item, gchar *old_uuid, BijiManager *manager)
-{
- const char *path = biji_item_get_uuid (item);
- if (BIJI_IS_NOTE_OBJ (item))
- biji_note_obj_save_note (BIJI_NOTE_OBJ (item));
-
- g_hash_table_insert (manager->items, (gpointer) path, item);
- g_hash_table_remove (manager->archives, path);
-
- biji_manager_notify_changed (manager,
- BIJI_ARCHIVED_ITEMS,
- BIJI_MANAGER_ITEM_DELETED,
- item);
-}
-
-
static void
manager_on_note_changed_cb (BijiNoteObj *note, BijiManager *manager)
{
biji_manager_notify_changed (manager,
BIJI_LIVING_ITEMS,
BIJI_MANAGER_NOTE_AMENDED,
- BIJI_ITEM (note));
+ note);
}
static void
@@ -533,7 +505,7 @@ manager_on_item_icon_changed_cb (BijiNoteObj *note, BijiManager *manager)
biji_manager_notify_changed (manager,
BIJI_LIVING_ITEMS,
BIJI_MANAGER_ITEM_ICON_CHANGED,
- BIJI_ITEM (note));
+ note);
}
static int
@@ -543,29 +515,32 @@ compare_notebook (gconstpointer a,
{
g_autofree char *up_a = NULL;
g_autofree char *up_b = NULL;
- BijiItem *item_a = (BijiItem *) a;
- BijiItem *item_b = (BijiItem *) b;
+ BijiNotebook *item_a = (BijiNotebook *) a;
+ BijiNotebook *item_b = (BijiNotebook *) b;
- up_a = g_utf8_casefold (biji_item_get_title (item_a), -1);
- up_b = g_utf8_casefold (biji_item_get_title (item_b), -1);
+ up_a = g_utf8_casefold (biji_notebook_get_title (item_a), -1);
+ up_b = g_utf8_casefold (biji_notebook_get_title (item_b), -1);
return g_strcmp0 (up_a, up_b);
}
gboolean
-biji_manager_add_item (BijiManager *manager,
- BijiItem *item,
- BijiItemsGroup group,
- gboolean notify)
+biji_manager_add_item (BijiManager *manager,
+ gpointer item,
+ BijiItemsGroup group,
+ gboolean notify)
{
const gchar *uid;
gboolean retval;
g_return_val_if_fail (BIJI_IS_MANAGER (manager), FALSE);
- g_return_val_if_fail (BIJI_IS_ITEM (item), FALSE);
+ g_return_val_if_fail (BIJI_IS_NOTEBOOK (item) || BIJI_IS_NOTE_OBJ (item), FALSE);
retval = TRUE;
- uid = biji_item_get_uuid (item);
+ if (BIJI_IS_NOTEBOOK (item))
+ uid = biji_notebook_get_uuid (BIJI_NOTEBOOK (item));
+ else
+ uid = biji_note_obj_get_uuid (BIJI_NOTE_OBJ (item));
/* Check if item is not already there */
if (uid != NULL)
@@ -588,22 +563,15 @@ biji_manager_add_item (BijiManager *manager,
{
/* Add the item*/
if (group == BIJI_LIVING_ITEMS)
- g_hash_table_insert (manager->items,
- (gpointer) biji_item_get_uuid (item), item);
+ g_hash_table_insert (manager->items, (gpointer) uid, item);
else if (group == BIJI_ARCHIVED_ITEMS)
- g_hash_table_insert (manager->archives,
- (gpointer) biji_item_get_uuid (item), item);
+ g_hash_table_insert (manager->archives, (gpointer) uid, item);
/* Connect */
- g_signal_connect (item, "deleted",
- G_CALLBACK (on_item_deleted_cb), manager);
- g_signal_connect (item, "trashed",
- G_CALLBACK (on_item_trashed_cb), manager);
- g_signal_connect (item, "restored",
- G_CALLBACK (on_item_restored_cb), manager);
-
if (BIJI_IS_NOTE_OBJ (item))
{
+ g_signal_connect (item, "deleted", G_CALLBACK (on_item_deleted_cb), manager);
+ g_signal_connect (item, "trashed", G_CALLBACK (on_item_trashed_cb), manager);
g_signal_connect (item, "changed", G_CALLBACK (manager_on_note_changed_cb), manager);
g_signal_connect (item, "renamed", G_CALLBACK (manager_on_note_changed_cb), manager);
g_signal_connect (item, "color-changed", G_CALLBACK (manager_on_item_icon_changed_cb), manager);
@@ -724,7 +692,7 @@ biji_manager_get_notebooks (BijiManager *self)
return G_LIST_MODEL (self->notebooks);
}
-BijiItem *
+BijiNotebook *
biji_manager_find_notebook (BijiManager *self,
const char *uuid)
{
@@ -739,12 +707,12 @@ biji_manager_find_notebook (BijiManager *self,
for (guint i = 0; i < n_items; i++)
{
- g_autoptr(BijiItem) notebook = NULL;
+ g_autoptr(BijiNotebook) notebook = NULL;
const char *item_uuid;
notebook = g_list_model_get_item (notebooks, i);
- item_uuid = biji_item_get_uuid (notebook);
+ item_uuid = biji_notebook_get_uuid (notebook);
if (g_strcmp0 (uuid, item_uuid) == 0)
return notebook;
@@ -753,10 +721,11 @@ biji_manager_find_notebook (BijiManager *self,
return NULL;
}
-BijiItem *
+gpointer
biji_manager_get_item_at_path (BijiManager *self, const gchar *path)
{
- BijiItem *retval;
+ gpointer retval;
+
g_return_val_if_fail (BIJI_IS_MANAGER (self), NULL);
if (path == NULL)
@@ -941,7 +910,7 @@ biji_manager_note_new (BijiManager *self,
retval = BIJI_PROVIDER_GET_CLASS (provider)->create_new_note (provider, str);
if (retval)
- biji_manager_add_item (self, BIJI_ITEM (retval), BIJI_LIVING_ITEMS, TRUE);
+ biji_manager_add_item (self, retval, BIJI_LIVING_ITEMS, TRUE);
return retval;
}
diff --git a/src/libbiji/biji-manager.h b/src/libbiji/biji-manager.h
index d84e5d00..71cb10f7 100644
--- a/src/libbiji/biji-manager.h
+++ b/src/libbiji/biji-manager.h
@@ -5,6 +5,7 @@
#include "biji-info-set.h"
#include "biji-note-obj.h"
+#include "biji-notebook.h"
#include <libedataserver/libedataserver.h> /* ESourceRegistry */
@@ -72,7 +73,7 @@ gchar *biji_manager_get_unique_title (BijiManager *manager,
gboolean biji_manager_add_item (BijiManager *manager,
- BijiItem *item,
+ gpointer item,
BijiItemsGroup group,
gboolean notify);
@@ -80,10 +81,10 @@ gboolean biji_manager_add_item (BijiManager *manager,
void biji_manager_notify_changed (BijiManager *manager,
BijiItemsGroup group,
BijiManagerChangeFlag flag,
- BijiItem *item);
+ gpointer item);
-BijiItem *biji_manager_get_item_at_path (BijiManager *manager,
+gpointer biji_manager_get_item_at_path (BijiManager *manager,
const gchar *path);
/* Get all items, either notes or notebooks
@@ -93,7 +94,7 @@ BijiItem *biji_manager_get_item_at_path (BijiManager *manager,
GList *biji_manager_get_items (BijiManager *manager,
BijiItemsGroup group);
GListModel *biji_manager_get_notebooks (BijiManager *self);
-BijiItem *biji_manager_find_notebook (BijiManager *self,
+BijiNotebook *biji_manager_find_notebook (BijiManager *self,
const char *uuid);
BijiNoteObj *biji_manager_note_new (BijiManager *manager,
diff --git a/src/libbiji/biji-note-obj.c b/src/libbiji/biji-note-obj.c
index f3d66747..fac49f93 100644
--- a/src/libbiji/biji-note-obj.c
+++ b/src/libbiji/biji-note-obj.c
@@ -35,6 +35,7 @@ typedef struct
gint64 last_metadata_change_date;
GdkRGBA *color; // Not yet in Tracker
+ BijiManager *manager;
/* Editing use the same widget
* for all notes provider. */
BijiWebkitEditor *editor;
@@ -60,6 +61,7 @@ enum {
PROP_TITLE,
PROP_MTIME,
PROP_CONTENT,
+ PROP_MANAGER,
BIJI_OBJ_PROPERTIES
};
@@ -67,6 +69,9 @@ static GParamSpec *properties[BIJI_OBJ_PROPERTIES] = { NULL, };
/* Signals. Do not interfere with biji-item parent class. */
enum {
+ NOTE_RESTORED,
+ NOTE_DELETED,
+ NOTE_TRASHED,
NOTE_RENAMED,
NOTE_CHANGED,
NOTE_COLOR_CHANGED,
@@ -75,7 +80,7 @@ enum {
static guint biji_obj_signals [BIJI_OBJ_SIGNALS] = { 0 };
-G_DEFINE_TYPE_WITH_PRIVATE (BijiNoteObj, biji_note_obj, BIJI_TYPE_ITEM)
+G_DEFINE_TYPE_WITH_PRIVATE (BijiNoteObj, biji_note_obj, G_TYPE_OBJECT)
static void
on_save_timeout (BijiNoteObj *self)
@@ -98,6 +103,18 @@ on_save_timeout (BijiNoteObj *self)
g_object_unref (self);
}
+static void
+on_note_obj_add_notebook_cb (GObject *object,
+ GAsyncResult *result,
+ gpointer user_data)
+{
+ g_autoptr(BijiNotebook) notebook = user_data;
+
+ g_assert (BIJI_IS_NOTEBOOK (notebook));
+
+ biji_notebook_refresh (notebook);
+}
+
static void
biji_note_obj_init (BijiNoteObj *self)
{
@@ -159,6 +176,9 @@ biji_note_obj_set_property (GObject *object,
biji_note_obj_set_raw_text (self, g_value_get_string (value));
g_object_notify_by_pspec (object, properties[PROP_CONTENT]);
break;
+ case PROP_MANAGER:
+ priv->manager = g_value_get_object (value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@@ -194,20 +214,6 @@ biji_note_obj_get_property (GObject *object,
}
}
-/* First cancel timeout
- * this func is most probably stupid it might exists (move file) */
-static gboolean
-trash (BijiItem *item)
-{
- BijiNoteObj *self = BIJI_NOTE_OBJ (item);
- BijiNoteObjPrivate *priv = biji_note_obj_get_instance_private (self);
-
- priv->needs_save = FALSE;
- biji_timeout_cancel (priv->timeout);
-
- return BIJI_NOTE_OBJ_GET_CLASS (self)->archive (self);
-}
-
gboolean
biji_note_obj_is_trashed (BijiNoteObj *self)
{
@@ -222,14 +228,6 @@ biji_note_obj_get_path (BijiNoteObj *self)
return priv->path;
}
-static const char *
-get_path (BijiItem *item)
-{
- g_return_val_if_fail (BIJI_IS_NOTE_OBJ (item), NULL);
-
- return biji_note_obj_get_path (BIJI_NOTE_OBJ (item));
-}
-
void
biji_note_obj_set_path (BijiNoteObj *self,
const char *path)
@@ -252,21 +250,13 @@ biji_note_obj_get_title (BijiNoteObj *self)
return priv->title;
}
-static const char *
-get_title (BijiItem *item)
-{
- g_return_val_if_fail (BIJI_IS_NOTE_OBJ (item), NULL);
-
- return biji_note_obj_get_title (BIJI_NOTE_OBJ (item));
-}
-
/* If already a title, then note is renamed */
gboolean
biji_note_obj_set_title (BijiNoteObj *self,
const char *proposed_title)
{
BijiNoteObjPrivate *priv = biji_note_obj_get_instance_private (self);
- BijiManager *manager = biji_item_get_manager (BIJI_ITEM (self));
+ BijiManager *manager = priv->manager;
g_autofree char *title = NULL;
if (g_strcmp0 (proposed_title, priv->title) == 0)
@@ -285,6 +275,20 @@ biji_note_obj_set_title (BijiNoteObj *self,
return TRUE;
}
+const char *
+biji_note_obj_get_uuid (BijiNoteObj *self)
+{
+ return biji_note_obj_get_path (self);
+}
+
+gint64
+biji_note_obj_get_mtime (BijiNoteObj *self)
+{
+ BijiNoteObjPrivate *priv = biji_note_obj_get_instance_private (self);
+
+ return priv->mtime;
+}
+
gboolean
biji_note_obj_set_mtime (BijiNoteObj *self,
gint64 time)
@@ -298,21 +302,130 @@ biji_note_obj_set_mtime (BijiNoteObj *self,
return TRUE;
}
-static gint64
-get_mtime (BijiItem *item)
+gpointer
+biji_note_obj_get_manager (BijiNoteObj *self)
{
- BijiNoteObj *self = BIJI_NOTE_OBJ (item);
BijiNoteObjPrivate *priv = biji_note_obj_get_instance_private (self);
- return priv->mtime;
+ return priv->manager;
+}
+
+gboolean
+biji_note_obj_trash (BijiNoteObj *self)
+{
+ BijiNoteObjPrivate *priv = biji_note_obj_get_instance_private (self);
+ gboolean retval;
+
+ priv->needs_save = FALSE;
+ biji_timeout_cancel (priv->timeout);
+
+ retval = BIJI_NOTE_OBJ_GET_CLASS (self)->archive (self);
+
+ if (retval)
+ g_signal_emit_by_name (self, "trashed", NULL);
+
+ return retval;
+}
+
+gboolean
+biji_note_obj_restore (BijiNoteObj *self)
+{
+ g_autofree char *old_uuid = NULL;
+ gboolean retval;
+
+ g_return_val_if_fail (BIJI_IS_NOTE_OBJ (self), FALSE);
+
+ retval = BIJI_NOTE_OBJ_GET_CLASS (self)->restore (self, &old_uuid);
+ if (retval)
+ g_signal_emit_by_name (self, "restored", old_uuid, NULL);
+
+ return retval;
+}
+
+gboolean
+biji_note_obj_delete (BijiNoteObj *self)
+{
+ gboolean retval;
+
+ g_return_val_if_fail (BIJI_IS_NOTE_OBJ (self), FALSE);
+
+ retval = BIJI_NOTE_OBJ_GET_CLASS (self)->delete (self);
+ if (retval)
+ g_signal_emit_by_name (self, "deleted", NULL);
+
+ return retval;
+}
+
+gboolean
+biji_note_obj_has_notebook (BijiNoteObj *self,
+ const char *label)
+{
+ BijiNoteObjPrivate *priv = biji_note_obj_get_instance_private (self);
+
+ if (g_hash_table_lookup (priv->labels, label))
+ return TRUE;
+
+ return FALSE;
+}
+
+gboolean
+biji_note_obj_add_notebook (BijiNoteObj *self,
+ gpointer notebook,
+ const char *title)
+{
+ BijiNoteObjPrivate *priv = biji_note_obj_get_instance_private (self);
+ const char *label = title;
+
+ g_return_val_if_fail (BIJI_IS_NOTE_OBJ (self), FALSE);
+
+ if (BIJI_IS_NOTEBOOK (notebook))
+ label = biji_notebook_get_title (notebook);
+
+ if (biji_note_obj_has_notebook (self, label))
+ return FALSE;
+
+ g_hash_table_add (priv->labels, g_strdup (label));
+
+ if (BIJI_IS_NOTEBOOK (notebook))
+ {
+ biji_tracker_add_note_to_notebook_async (biji_manager_get_tracker (priv->manager),
+ self, label, on_note_obj_add_notebook_cb,
+ g_object_ref (notebook));
+
+ biji_note_obj_set_last_metadata_change_date (self, g_get_real_time () / G_USEC_PER_SEC);
+ biji_note_obj_save_note (self);
+ }
+
+ return TRUE;
+}
+
+gboolean
+biji_note_obj_remove_notebook (BijiNoteObj *self,
+ gpointer notebook)
+{
+ BijiNoteObjPrivate *priv = biji_note_obj_get_instance_private (self);
+
+ g_return_val_if_fail (BIJI_IS_NOTE_OBJ (self), FALSE);
+ g_return_val_if_fail (BIJI_IS_NOTEBOOK (notebook), FALSE);
+
+ if (g_hash_table_remove (priv->labels, biji_notebook_get_title (notebook)))
+ {
+ biji_tracker_remove_note_notebook_async (biji_manager_get_tracker (priv->manager),
+ self, notebook, on_note_obj_add_notebook_cb,
+ g_object_ref (notebook));
+
+ biji_note_obj_set_last_metadata_change_date (self, g_get_real_time () / G_USEC_PER_SEC);
+ biji_note_obj_save_note (self);
+ return TRUE;
+ }
+
+ return FALSE;
}
char *
biji_note_obj_get_last_change_date_string (BijiNoteObj *self)
{
- BijiItem *item = BIJI_ITEM (self);
-
- return bjb_utils_get_human_time (get_mtime (item));
+ return bjb_utils_get_human_time (biji_note_obj_get_mtime (self));
}
gint64
@@ -415,97 +528,6 @@ biji_note_obj_get_notebooks (BijiNoteObj *self)
return g_hash_table_get_values (priv->labels);
}
-static gboolean
-has_notebook (BijiItem *item,
- char *label)
-{
- BijiNoteObjPrivate *priv = biji_note_obj_get_instance_private (BIJI_NOTE_OBJ (item));
-
- if (g_hash_table_lookup (priv->labels, label))
- return TRUE;
-
- return FALSE;
-}
-
-static void
-on_note_obj_add_notebook_cb (GObject *object,
- GAsyncResult *result,
- gpointer user_data)
-{
- g_autoptr(BijiNotebook) notebook = user_data;
-
- g_assert (BIJI_IS_NOTEBOOK (notebook));
-
- biji_notebook_refresh (notebook);
-}
-
-static gboolean
-add_notebook (BijiItem *item,
- BijiItem *notebook,
- char *title)
-{
- BijiNoteObj *self;
- BijiNoteObjPrivate *priv;
- char *label = title;
-
- g_return_val_if_fail (BIJI_IS_NOTE_OBJ (item), FALSE);
- self = BIJI_NOTE_OBJ (item);
- priv = biji_note_obj_get_instance_private (self);
-
- if (BIJI_IS_NOTEBOOK (notebook))
- label = (char*) biji_item_get_title (notebook);
-
- if (has_notebook (item, label))
- return FALSE;
-
- g_hash_table_add (priv->labels, g_strdup (label));
-
- if (BIJI_IS_NOTEBOOK (notebook))
- {
- BijiManager *manager;
-
- manager = biji_item_get_manager (item);
- biji_tracker_add_note_to_notebook_async (biji_manager_get_tracker (manager),
- self, label, on_note_obj_add_notebook_cb,
- g_object_ref (notebook));
-
- biji_note_obj_set_last_metadata_change_date (self, g_get_real_time () / G_USEC_PER_SEC);
- biji_note_obj_save_note (self);
- }
-
- return TRUE;
-}
-
-static gboolean
-remove_notebook (BijiItem *item,
- BijiItem *notebook)
-{
- BijiNoteObj *self;
- BijiNoteObjPrivate *priv;
-
- g_return_val_if_fail (BIJI_IS_NOTE_OBJ (item), FALSE);
- g_return_val_if_fail (BIJI_IS_NOTEBOOK (notebook), FALSE);
-
- self = BIJI_NOTE_OBJ (item);
- priv = biji_note_obj_get_instance_private (self);
-
- if (g_hash_table_remove (priv->labels, biji_item_get_title (notebook)))
- {
- BijiManager *manager;
-
- manager = biji_item_get_manager (item);
- biji_tracker_remove_note_notebook_async (biji_manager_get_tracker (manager),
- self, notebook, on_note_obj_add_notebook_cb,
- g_object_ref (notebook));
-
- biji_note_obj_set_last_metadata_change_date (self, g_get_real_time () / G_USEC_PER_SEC);
- biji_note_obj_save_note (self);
- return TRUE;
- }
-
- return FALSE;
-}
-
gboolean
biji_note_obj_is_template (BijiNoteObj *self)
{
@@ -674,13 +696,11 @@ static void
on_biji_note_obj_closed_cb (BijiNoteObj *self)
{
BijiNoteObjPrivate *priv;
- BijiItem *item;
const char *title;
priv = biji_note_obj_get_instance_private (self);
- item = BIJI_ITEM (self);
priv->editor = NULL;
- title = biji_item_get_title (item);
+ title = biji_note_obj_get_title (self);
/*
* Delete (not _trash_ if note is totaly blank
@@ -689,7 +709,7 @@ on_biji_note_obj_closed_cb (BijiNoteObj *self)
if (biji_note_obj_get_raw_text (self) == NULL)
{
priv->needs_save = FALSE;
- biji_item_delete (item);
+ biji_note_obj_delete (self);
}
/* If the note has no title */
@@ -755,7 +775,6 @@ static void
biji_note_obj_class_init (BijiNoteObjClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
- BijiItemClass *item_class = BIJI_ITEM_CLASS (klass);
object_class->finalize = biji_note_obj_finalize;
object_class->get_property = biji_note_obj_get_property;
@@ -790,8 +809,48 @@ biji_note_obj_class_init (BijiNoteObjClass *klass)
NULL,
G_PARAM_CONSTRUCT | G_PARAM_READWRITE);
+ properties[PROP_MANAGER] =
+ g_param_spec_object("manager",
+ "Note Manager",
+ "The Note Manager controlling this item",
+ BIJI_TYPE_MANAGER,
+ G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY);
+
g_object_class_install_properties (object_class, BIJI_OBJ_PROPERTIES, properties);
+ biji_obj_signals[NOTE_DELETED] =
+ g_signal_new ("deleted",
+ G_OBJECT_CLASS_TYPE (klass),
+ G_SIGNAL_RUN_LAST,
+ 0,
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+
+ biji_obj_signals[NOTE_TRASHED] =
+ g_signal_new ("trashed",
+ G_OBJECT_CLASS_TYPE (klass),
+ G_SIGNAL_RUN_LAST,
+ 0,
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+
+ biji_obj_signals[NOTE_RESTORED] =
+ g_signal_new ("restored",
+ G_OBJECT_CLASS_TYPE (klass),
+ G_SIGNAL_RUN_LAST,
+ 0,
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+
biji_obj_signals[NOTE_RENAMED] =
g_signal_new ("renamed",
G_OBJECT_CLASS_TYPE (klass),
@@ -824,15 +883,5 @@ biji_note_obj_class_init (BijiNoteObjClass *klass)
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE,
0);
-
- /* Interface
- * is_collectable is implemented at higher level, eg local_note */
- item_class->get_title = get_title;
- item_class->get_uuid = get_path;
- item_class->get_mtime = get_mtime;
- item_class->trash = trash;
- item_class->has_notebook = has_notebook;
- item_class->add_notebook = add_notebook;
- item_class->remove_notebook = remove_notebook;
}
diff --git a/src/libbiji/biji-note-obj.h b/src/libbiji/biji-note-obj.h
index 28e44640..de1c90dc 100644
--- a/src/libbiji/biji-note-obj.h
+++ b/src/libbiji/biji-note-obj.h
@@ -21,7 +21,6 @@
#include <gtk/gtk.h>
#include "biji-info-set.h"
-#include "biji-item.h"
G_BEGIN_DECLS
@@ -43,11 +42,11 @@ typedef enum
#define BIJI_TYPE_NOTE_OBJ (biji_note_obj_get_type ())
-G_DECLARE_DERIVABLE_TYPE (BijiNoteObj, biji_note_obj, BIJI, NOTE_OBJ, BijiItem)
+G_DECLARE_DERIVABLE_TYPE (BijiNoteObj, biji_note_obj, BIJI, NOTE_OBJ, GObject)
struct _BijiNoteObjClass
{
- BijiItemClass parent_class;
+ GObjectClass parent_class;
char *(*get_basename) (BijiNoteObj *note);
@@ -90,10 +89,26 @@ struct _BijiNoteObjClass
* - bold, italic, srike
*/
gboolean (*can_format) (BijiNoteObj *note);
+ gboolean (*restore) (BijiNoteObj *note,
+ char **old_uuid);
+ gboolean (*delete) (BijiNoteObj *note);
};
+const char *biji_note_obj_get_uuid (BijiNoteObj *self);
+gint64 biji_note_obj_get_mtime (BijiNoteObj *self);
gboolean biji_note_obj_set_mtime (BijiNoteObj *self,
gint64 time);
+gpointer biji_note_obj_get_manager (BijiNoteObj *self);
+gboolean biji_note_obj_trash (BijiNoteObj *self);
+gboolean biji_note_obj_restore (BijiNoteObj *self);
+gboolean biji_note_obj_delete (BijiNoteObj *self);
+gboolean biji_note_obj_has_notebook (BijiNoteObj *self,
+ const char *label);
+gboolean biji_note_obj_add_notebook (BijiNoteObj *self,
+ gpointer notebook,
+ const char *title);
+gboolean biji_note_obj_remove_notebook (BijiNoteObj *self,
+ gpointer notebook);
char *biji_note_obj_get_last_change_date_string (BijiNoteObj *self);
diff --git a/src/libbiji/biji-notebook.c b/src/libbiji/biji-notebook.c
index 707c7c4e..a8fc5224 100644
--- a/src/libbiji/biji-notebook.c
+++ b/src/libbiji/biji-notebook.c
@@ -41,18 +41,19 @@ static void on_collected_item_change (BijiNotebook *self);
struct _BijiNotebook
{
- BijiItem parent_instance;
+ GObject parent_instance;
gchar *urn;
gchar *name;
gint64 mtime;
+ BijiManager *manager;
GList *collected_items;
};
static void biji_notebook_finalize (GObject *object);
-G_DEFINE_TYPE (BijiNotebook, biji_notebook, BIJI_TYPE_ITEM)
+G_DEFINE_TYPE (BijiNotebook, biji_notebook, G_TYPE_OBJECT)
/* Properties */
enum {
@@ -60,104 +61,13 @@ enum {
PROP_URN,
PROP_NAME,
PROP_MTIME,
+ PROP_MANAGER,
BIJI_NOTEBOOK_PROPERTIES
};
static GParamSpec *properties[BIJI_NOTEBOOK_PROPERTIES] = { NULL, };
-static const gchar *
-biji_notebook_get_title (BijiItem *coll)
-{
- BijiNotebook *self;
-
- g_return_val_if_fail (BIJI_IS_NOTEBOOK (coll), NULL);
- self = BIJI_NOTEBOOK (coll);
-
- return self->name;
-}
-
-
-static const gchar *
-biji_notebook_get_uuid (BijiItem *coll)
-{
- BijiNotebook *self;
-
- g_return_val_if_fail (BIJI_IS_NOTEBOOK (coll), NULL);
- self = BIJI_NOTEBOOK (coll);
-
- return self->urn;
-}
-
-static gint64
-biji_notebook_get_mtime (BijiItem *coll)
-{
- BijiNotebook *self;
-
- g_return_val_if_fail (BIJI_IS_NOTEBOOK (coll), 0);
- self = BIJI_NOTEBOOK (coll);
-
- return self->mtime;
-}
-
-static gboolean
-biji_notebook_trash (BijiItem *item)
-{
- BijiNotebook *self;
- BijiManager *manager;
-
- g_return_val_if_fail (BIJI_IS_NOTEBOOK (item), FALSE);
-
- self = BIJI_NOTEBOOK (item);
- manager = biji_item_get_manager (item);
-
- biji_tracker_remove_notebook (biji_manager_get_tracker (manager), self->urn);
-
- return TRUE;
-}
-
-static gboolean
-biji_notebook_delete (BijiItem *item)
-{
- g_return_val_if_fail (BIJI_IS_NOTEBOOK (item), FALSE);
-
- g_warning ("Notebooks delete is not yet implemented");
- return FALSE;
-}
-
-static gboolean
-biji_notebook_restore (BijiItem *item,
- gchar **old_uuid)
-{
- g_warning ("Notebooks restore is not yet implemented");
- return FALSE;
-}
-
-
-static gboolean
-biji_notebook_has_notebook (BijiItem *item, gchar *notebook)
-{
- //todo
- return FALSE;
-}
-
-
-static gboolean
-biji_notebook_add_notebook (BijiItem *item, BijiItem *coll, gchar *title)
-{
- g_warning ("biji notebook add notebook is not implemented.");
- return FALSE;
-}
-
-
-static gboolean
-biji_notebook_remove_notebook (BijiItem *item, BijiItem *notebook)
-{
- g_warning ("biji notebook remove notebook is not implemented.");
- return FALSE;
-}
-
-
static void
biji_notebook_set_property (GObject *object,
guint property_id,
@@ -178,6 +88,9 @@ biji_notebook_set_property (GObject *object,
case PROP_MTIME:
self->mtime = g_value_get_int64 (value);
break;
+ case PROP_MANAGER:
+ self->manager = g_value_get_object (value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@@ -241,7 +154,7 @@ on_collected_item_change (BijiNotebook *self)
BijiManager *manager;
GList *l;
- manager = biji_item_get_manager (BIJI_ITEM (self));
+ manager = self->manager;
/* Disconnected any handler */
for (l = self->collected_items; l != NULL; l = l->next)
@@ -269,7 +182,7 @@ biji_notebook_constructed (GObject *obj)
BijiManager *manager;
- manager = biji_item_get_manager (BIJI_ITEM (obj));
+ manager = self->manager;
biji_tracker_get_notes_with_notebook_async (biji_manager_get_tracker (manager),
self->name,
@@ -281,10 +194,8 @@ static void
biji_notebook_class_init (BijiNotebookClass *klass)
{
GObjectClass *g_object_class;
- BijiItemClass* item_class;
g_object_class = G_OBJECT_CLASS (klass);
- item_class = BIJI_ITEM_CLASS (klass);
g_object_class->constructed = biji_notebook_constructed;
g_object_class->finalize = biji_notebook_finalize;
@@ -312,18 +223,14 @@ biji_notebook_class_init (BijiNotebookClass *klass)
G_MININT64, G_MAXINT64, 0,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
- g_object_class_install_properties (g_object_class, BIJI_NOTEBOOK_PROPERTIES, properties);
+ properties[PROP_MANAGER] =
+ g_param_spec_object("manager",
+ "Note Manager",
+ "The Note Manager controlling this item",
+ BIJI_TYPE_MANAGER,
+ G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY);
- /* Interface */
- item_class->get_title = biji_notebook_get_title;
- item_class->get_uuid = biji_notebook_get_uuid;
- item_class->get_mtime = biji_notebook_get_mtime;
- item_class->trash = biji_notebook_trash;
- item_class->delete = biji_notebook_delete;
- item_class->restore = biji_notebook_restore;
- item_class->has_notebook = biji_notebook_has_notebook;
- item_class->add_notebook = biji_notebook_add_notebook;
- item_class->remove_notebook = biji_notebook_remove_notebook;
+ g_object_class_install_properties (g_object_class, BIJI_NOTEBOOK_PROPERTIES, properties);
}
@@ -357,3 +264,45 @@ biji_notebook_new (GObject *manager, gchar *urn, gchar *name, gint64 mtime)
"mtime", mtime,
NULL);
}
+
+gint64
+biji_notebook_get_mtime (BijiNotebook *self)
+{
+ g_return_val_if_fail (BIJI_IS_NOTEBOOK (self), 0);
+
+ return self->mtime;
+}
+
+gpointer
+biji_notebook_manager (BijiNotebook *self)
+{
+ g_return_val_if_fail (BIJI_IS_NOTEBOOK (self), NULL);
+
+ return self->manager;
+}
+
+const char *
+biji_notebook_get_title (BijiNotebook *self)
+{
+ g_return_val_if_fail (BIJI_IS_NOTEBOOK (self), NULL);
+
+ return self->name;
+}
+
+const char *
+biji_notebook_get_uuid (BijiNotebook *self)
+{
+ g_return_val_if_fail (BIJI_IS_NOTEBOOK (self), NULL);
+
+ return self->urn;
+}
+
+gboolean
+biji_notebook_trash (BijiNotebook *self)
+{
+ g_return_val_if_fail (BIJI_IS_NOTEBOOK (self), FALSE);
+
+ biji_tracker_remove_notebook (biji_manager_get_tracker (self->manager), self->urn);
+
+ return TRUE;
+}
diff --git a/src/libbiji/biji-notebook.h b/src/libbiji/biji-notebook.h
index 8a1f2e81..ad41ee67 100644
--- a/src/libbiji/biji-notebook.h
+++ b/src/libbiji/biji-notebook.h
@@ -20,18 +20,23 @@
#pragma once
-#include "biji-item.h"
+#include <glib-object.h>
G_BEGIN_DECLS
#define BIJI_TYPE_NOTEBOOK (biji_notebook_get_type ())
-G_DECLARE_FINAL_TYPE (BijiNotebook, biji_notebook, BIJI, NOTEBOOK, BijiItem)
+G_DECLARE_FINAL_TYPE (BijiNotebook, biji_notebook, BIJI, NOTEBOOK, GObject)
/* Exiting coll in tracker : provide urn & iso8601 date
* To create a brand new notebook in tracker rather gobjectize existing one,
* see biji_create_new_notebook_async */
BijiNotebook * biji_notebook_new (GObject *manager, gchar *urn, gchar *name, gint64 mtime);
+gint64 biji_notebook_get_mtime (BijiNotebook *self);
+gpointer biji_notebook_manager (BijiNotebook *self);
+const char *biji_notebook_get_title (BijiNotebook *self);
+const char *biji_notebook_get_uuid (BijiNotebook *self);
+gboolean biji_notebook_trash (BijiNotebook *self);
/* Watching for tracker would be best. Right now manually called. */
diff --git a/src/libbiji/biji-tracker.c b/src/libbiji/biji-tracker.c
index 6a2d5b4d..21e92abf 100644
--- a/src/libbiji/biji-tracker.c
+++ b/src/libbiji/biji-tracker.c
@@ -115,7 +115,7 @@ on_add_notebook_cb (GObject *object,
notebook = biji_notebook_new (G_OBJECT (self->manager),
urn, notebook_str,
g_get_real_time () / G_USEC_PER_SEC);
- biji_manager_add_item (self->manager, BIJI_ITEM (notebook), BIJI_LIVING_ITEMS, true);
+ biji_manager_add_item (self->manager, notebook, BIJI_LIVING_ITEMS, true);
}
g_task_return_pointer (task, notebook, NULL);
@@ -249,7 +249,7 @@ on_get_list_async_cb (GObject *object,
if (cursor)
{
- BijiItem *item = NULL;
+ gpointer item = NULL;
const char *full_path;
char *path;
@@ -475,7 +475,7 @@ biji_tracker_add_notebook_async (BijiTracker *self,
on_add_notebook_cb, task);
}
-BijiItem *
+BijiNotebook *
biji_tracker_add_notebook_finish (BijiTracker *self,
GAsyncResult *result,
GError **error)
@@ -591,7 +591,7 @@ biji_tracker_get_notebooks_finish (BijiTracker *self,
void
biji_tracker_remove_note_notebook_async (BijiTracker *self,
BijiNoteObj *note,
- BijiItem *notebook,
+ BijiNotebook *notebook,
GAsyncReadyCallback callback,
gpointer user_data)
{
@@ -604,9 +604,9 @@ biji_tracker_remove_note_notebook_async (BijiTracker *self,
g_return_if_fail (BIJI_IS_NOTEBOOK (notebook));
g_return_if_fail (callback);
- url = g_strdup_printf ("file://%s", biji_item_get_uuid (BIJI_ITEM (note)));
+ url = g_strdup_printf ("file://%s", biji_note_obj_get_uuid (note));
query = g_strdup_printf ("DELETE {'%s' nie:isPartOf '%s'}",
- biji_item_get_uuid (notebook), url);
+ biji_notebook_get_uuid (notebook), url);
task = g_task_new (self, NULL, callback, user_data);
@@ -645,7 +645,7 @@ biji_tracker_add_note_to_notebook_async (BijiTracker *self,
g_return_if_fail (notebook && *notebook);
g_return_if_fail (callback);
- url = g_strdup_printf ("file://%s", biji_item_get_uuid (BIJI_ITEM (note)));
+ url = g_strdup_printf ("file://%s", biji_note_obj_get_uuid (note));
query = g_strdup_printf ("INSERT {?urn nie:isPartOf '%s'} "
"WHERE {?urn a nfo:DataContainer; nie:title '%s'; nie:generator 'Bijiben'}",
url, notebook);
@@ -711,7 +711,7 @@ biji_tracker_delete_note (BijiTracker *self,
g_return_if_fail (BIJI_IS_NOTE_OBJ (note));
query = g_strdup_printf ("DELETE { <%s> a rdfs:Resource }",
- biji_item_get_uuid (BIJI_ITEM (note)));
+ biji_note_obj_get_uuid (note));
tracker_sparql_connection_update_async (self->connection, query,
#if !HAVE_TRACKER3
diff --git a/src/libbiji/biji-tracker.h b/src/libbiji/biji-tracker.h
index ffe1579a..f7a6fcab 100644
--- a/src/libbiji/biji-tracker.h
+++ b/src/libbiji/biji-tracker.h
@@ -40,7 +40,7 @@ void biji_tracker_add_notebook_async (BijiTracker *s
const char *notebook,
GAsyncReadyCallback callback,
gpointer user_data);
-BijiItem *biji_tracker_add_notebook_finish (BijiTracker *self,
+BijiNotebook *biji_tracker_add_notebook_finish (BijiTracker *self,
GAsyncResult *result,
GError **error);
void biji_tracker_remove_notebook (BijiTracker *self,
@@ -61,7 +61,7 @@ GHashTable *biji_tracker_get_notebooks_finish (BijiTracker *s
GError **error);
void biji_tracker_remove_note_notebook_async (BijiTracker *self,
BijiNoteObj *note,
- BijiItem *notebook,
+ BijiNotebook *notebook,
GAsyncReadyCallback callback,
gpointer user_data);
gboolean biji_tracker_remove_note_notebook_finish (BijiTracker *self,
diff --git a/src/libbiji/deserializer/biji-lazy-deserializer.c
b/src/libbiji/deserializer/biji-lazy-deserializer.c
index 1aeb638c..670f8322 100644
--- a/src/libbiji/deserializer/biji-lazy-deserializer.c
+++ b/src/libbiji/deserializer/biji-lazy-deserializer.c
@@ -511,7 +511,7 @@ processNode (BijiLazyDeserializer *self)
{
norm = g_string_new (tag);
g_string_erase (norm,0,16);
- biji_item_add_notebook (BIJI_ITEM (n), NULL, norm->str);
+ biji_note_obj_add_notebook (n, NULL, norm->str);
g_string_free (norm, TRUE);
}
@@ -542,7 +542,7 @@ biji_lazy_deserialize_internal (BijiLazyDeserializer *self)
xmlNodePtr cur;
xmlChar *version;
- path = biji_item_get_uuid (BIJI_ITEM (n));
+ path = biji_note_obj_get_uuid (n);
doc = xmlParseFile (path);
if (doc == NULL )
@@ -599,7 +599,7 @@ biji_lazy_deserialize_internal (BijiLazyDeserializer *self)
xmlFree (version);
- path = biji_item_get_uuid (BIJI_ITEM (n));
+ path = biji_note_obj_get_uuid (n);
self->r = xmlNewTextReaderFilename (path);
biji_parse_file (self);
diff --git a/src/libbiji/libbiji.h b/src/libbiji/libbiji.h
index 5f3fa28c..f81fe517 100644
--- a/src/libbiji/libbiji.h
+++ b/src/libbiji/libbiji.h
@@ -21,7 +21,6 @@
#include "biji-date-time.h"
-#include "biji-item.h"
#include "biji-marshalers.h"
#include "biji-manager.h"
#include "biji-notebook.h"
diff --git a/src/libbiji/meson.build b/src/libbiji/meson.build
index 580b46eb..f07facf1 100644
--- a/src/libbiji/meson.build
+++ b/src/libbiji/meson.build
@@ -14,7 +14,6 @@ sources = files(
'serializer/biji-lazy-serializer.c',
'biji-date-time.c',
'biji-info-set.c',
- 'biji-item.c',
'biji-manager.c',
'biji-notebook.c',
'biji-note-obj.c',
diff --git a/src/libbiji/provider/biji-import-provider.c b/src/libbiji/provider/biji-import-provider.c
index ed4a9993..3610a2a1 100644
--- a/src/libbiji/provider/biji-import-provider.c
+++ b/src/libbiji/provider/biji-import-provider.c
@@ -125,7 +125,7 @@ go_through_notes_cb (GObject *object,
if (iter != NULL)
{
g_hash_table_insert (self->items,
- (gpointer) biji_item_get_uuid (BIJI_ITEM (iter)),
+ (gpointer) biji_note_obj_get_uuid (iter),
(gpointer) iter);
}
}
diff --git a/src/libbiji/provider/biji-local-note.c b/src/libbiji/provider/biji-local-note.c
index bf2fd822..3f5b8766 100644
--- a/src/libbiji/provider/biji-local-note.c
+++ b/src/libbiji/provider/biji-local-note.c
@@ -56,7 +56,6 @@ local_note_set_html (BijiNoteObj *note,
static void
local_note_save (BijiNoteObj *note)
{
- BijiItem *item = BIJI_ITEM (note);
BijiLocalNote *self = BIJI_LOCAL_NOTE (note);
const BijiProviderInfo *prov_info = biji_provider_get_info (self->provider);
BijiInfoSet *info = biji_info_set_new ();
@@ -66,14 +65,14 @@ local_note_save (BijiNoteObj *note)
biji_lazy_serialize (note);
/* Tracker */
- info->url = (char *) biji_item_get_uuid (item);
- info->title = (char *) biji_item_get_title (item);
+ info->url = (char *) biji_note_obj_get_uuid (note);
+ info->title = (char *) biji_note_obj_get_title (note);
info->content = (char *) biji_note_obj_get_raw_text (note);
- info->mtime = biji_item_get_mtime (item);
+ info->mtime = biji_note_obj_get_mtime (note);
info->created = biji_note_obj_get_create_date (note);
info->datasource_urn = g_strdup (prov_info->datasource);
- manager = biji_item_get_manager (item);
+ manager = biji_note_obj_get_manager (note);
biji_tracker_save_note (biji_manager_get_tracker (manager), info);
}
@@ -152,8 +151,8 @@ local_note_is_trashed (BijiNoteObj *note)
}
static gboolean
-local_note_restore (BijiItem *item,
- char **old_uuid)
+local_note_restore (BijiNoteObj *item,
+ char **old_uuid)
{
BijiLocalNote *self = BIJI_LOCAL_NOTE (item);
g_autofree char *root_path = NULL;
@@ -206,16 +205,16 @@ delete_file (GObject *note,
/* Do not check if note is already trashed
* eg, note is empty */
static gboolean
-local_note_delete (BijiItem *item)
+local_note_delete (BijiNoteObj *note)
{
- BijiLocalNote *self = BIJI_LOCAL_NOTE (item);
+ BijiLocalNote *self = BIJI_LOCAL_NOTE (note);
g_autofree char *file_path = g_file_get_path (self->location);
BijiTracker *tracker;
g_debug ("local note delete : %s", file_path);
- tracker = biji_manager_get_tracker (biji_item_get_manager (item));
- biji_tracker_delete_note (tracker, BIJI_NOTE_OBJ (item));
+ tracker = biji_manager_get_tracker (biji_note_obj_get_manager (note));
+ biji_tracker_delete_note (tracker, note);
g_file_delete_async (self->location,
G_PRIORITY_LOW,
NULL, /* Cancellable */
@@ -236,14 +235,10 @@ static void
biji_local_note_class_init (BijiLocalNoteClass *klass)
{
GObjectClass *g_object_class = G_OBJECT_CLASS (klass);
- BijiItemClass *item_class = BIJI_ITEM_CLASS (klass);
BijiNoteObjClass *note_class = BIJI_NOTE_OBJ_CLASS (klass);
g_object_class->finalize = biji_local_note_finalize;
- item_class->restore = local_note_restore;
- item_class->delete = local_note_delete;
-
note_class->get_basename = local_note_get_basename;
note_class->get_html = local_note_get_html;
note_class->set_html = local_note_set_html;
@@ -251,6 +246,8 @@ biji_local_note_class_init (BijiLocalNoteClass *klass)
note_class->can_format = note_yes;
note_class->archive = local_note_archive;
note_class->is_trashed = local_note_is_trashed;
+ note_class->restore = local_note_restore;
+ note_class->delete = local_note_delete;
}
BijiNoteObj *
diff --git a/src/libbiji/provider/biji-memo-note.c b/src/libbiji/provider/biji-memo-note.c
index cb86c92e..d1f5f0dc 100644
--- a/src/libbiji/provider/biji-memo-note.c
+++ b/src/libbiji/provider/biji-memo-note.c
@@ -109,7 +109,7 @@ fill_in_components (ECalComponent *comp,
/* Set : title */
- text = e_cal_component_text_new (biji_item_get_title (BIJI_ITEM (self)), NULL);
+ text = e_cal_component_text_new (biji_note_obj_get_title (BIJI_NOTE_OBJ (self)), NULL);
e_cal_component_set_summary (clone, text);
e_cal_component_text_free (text);
@@ -152,7 +152,7 @@ fill_in_components (ECalComponent *comp,
* Several: attach / attendee / comment / contact / related / rstatus / x-prop
*/
- mtime = biji_item_get_mtime (BIJI_ITEM (self));
+ mtime = biji_note_obj_get_mtime (BIJI_NOTE_OBJ (self));
t = icaltime_from_time_val (mtime);
if (t)
{
@@ -265,15 +265,6 @@ memo_set_html (BijiNoteObj *note,
/* NULL */
}
-static gboolean
-memo_item_delete (BijiItem *item)
-{
- g_return_val_if_fail (BIJI_IS_NOTE_OBJ (item), FALSE);
-
- g_warning ("Memo note delete is not yet implemented");
- return FALSE;
-}
-
static void
on_memo_deleted (GObject *ecal,
GAsyncResult *res,
@@ -331,18 +322,14 @@ static void
biji_memo_note_class_init (BijiMemoNoteClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
- BijiItemClass *item_class;
BijiNoteObjClass *note_class;
- item_class = BIJI_ITEM_CLASS (klass);
note_class = BIJI_NOTE_OBJ_CLASS (klass);
object_class->finalize = biji_memo_note_finalize;
object_class->get_property = biji_memo_note_get_property;
object_class->set_property = biji_memo_note_set_property;
- item_class->delete = memo_item_delete;
-
note_class->get_basename = memo_get_basename;
note_class->get_html = memo_get_html;
note_class->set_html = memo_set_html;
diff --git a/src/libbiji/provider/biji-nextcloud-note.c b/src/libbiji/provider/biji-nextcloud-note.c
index da36398c..331e2ff2 100644
--- a/src/libbiji/provider/biji-nextcloud-note.c
+++ b/src/libbiji/provider/biji-nextcloud-note.c
@@ -59,8 +59,7 @@ note_no (BijiNoteObj *note)
static char *
get_basename (BijiNoteObj *note)
{
- BijiItem *item = BIJI_ITEM (note);
- return (char *) biji_item_get_uuid (item);
+ return (char *) biji_note_obj_get_uuid (note);
}
static char *
@@ -80,7 +79,6 @@ save_note_finish (GObject *source_object,
GAsyncResult *res,
gpointer user_data)
{
- BijiItem *item = BIJI_ITEM (source_object);
BijiNoteObj *note = BIJI_NOTE_OBJ (source_object);
BijiNextcloudNote *self = BIJI_NEXTCLOUD_NOTE (source_object);
const BijiProviderInfo *prov_info = biji_provider_get_info (BIJI_PROVIDER (self->provider));
@@ -90,11 +88,11 @@ save_note_finish (GObject *source_object,
info->url = (char *) biji_note_obj_get_path (note);
info->title = (char *) biji_note_obj_get_title (note);
info->content = (char *) biji_note_obj_get_raw_text (note);
- info->mtime = biji_item_get_mtime (item);
+ info->mtime = biji_note_obj_get_mtime (note);
info->created = biji_note_obj_get_create_date (note);
info->datasource_urn = g_strdup (prov_info->datasource);
- manager = biji_item_get_manager (item);
+ manager = biji_note_obj_get_manager (note);
biji_tracker_save_note (biji_manager_get_tracker (manager), info);
}
@@ -168,7 +166,7 @@ save_note_thread (GTask *task,
json_text = g_strdup_printf ("{\"title\": \"%s\", \"content\": \"%s\", \"modified\": %ld}",
biji_note_obj_get_title (note),
content,
- biji_item_get_mtime (BIJI_ITEM (source_object)));
+ biji_note_obj_get_mtime (note));
curl_easy_setopt (curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt (curl, CURLOPT_POSTFIELDS, json_text);
@@ -206,8 +204,7 @@ save_note_async (BijiNextcloudNote *self)
static void
save_note (BijiNoteObj *note)
{
- BijiItem *item = BIJI_ITEM (note);
- const char *title = biji_item_get_title (item);
+ const char *title = biji_note_obj_get_title (note);
const char *content = biji_note_obj_get_raw_text (note);
if (title && strlen (title) > 0 && content && strlen (content) > 0)
@@ -242,7 +239,7 @@ archive (BijiNoteObj *note)
{
curl_easy_cleanup (curl);
- tracker = biji_manager_get_tracker (biji_item_get_manager (BIJI_ITEM (note)));
+ tracker = biji_manager_get_tracker (biji_note_obj_get_manager (note));
biji_tracker_delete_note (tracker, note);
return TRUE;
diff --git a/src/libbiji/serializer/biji-lazy-serializer.c b/src/libbiji/serializer/biji-lazy-serializer.c
index e8645566..95884513 100644
--- a/src/libbiji/serializer/biji-lazy-serializer.c
+++ b/src/libbiji/serializer/biji-lazy-serializer.c
@@ -21,7 +21,6 @@
#include <string.h>
#include "biji-lazy-serializer.h"
-#include "../biji-item.h"
#include "../biji-note-obj.h"
#include "../biji-string.h"
@@ -191,7 +190,7 @@ biji_lazy_serialize_internal (BijiLazySerializer *self)
// <Title>
serialize_node (self->writer,
"title",
- (gchar*) biji_item_get_title (BIJI_ITEM (self->note)));
+ (char *)biji_note_obj_get_title (self->note));
// <text>
xmlTextWriterWriteRaw(self->writer, BAD_CAST "\n ");
@@ -204,7 +203,7 @@ biji_lazy_serialize_internal (BijiLazySerializer *self)
xmlTextWriterEndElement(self->writer);
// <last-change-date>
- change_date = g_date_time_new_from_unix_utc (biji_item_get_mtime (BIJI_ITEM (self->note)));
+ change_date = g_date_time_new_from_unix_utc (biji_note_obj_get_mtime (self->note));
change_date_str = g_date_time_format_iso8601 (change_date);
if (change_date_str)
{
@@ -256,7 +255,7 @@ biji_lazy_serialize_internal (BijiLazySerializer *self)
xmlFreeTextWriter(self->writer);
- path = biji_item_get_uuid (BIJI_ITEM (self->note));
+ path = biji_note_obj_get_uuid (self->note);
retval = g_file_set_contents (path, (gchar*) self->buf->content, -1, NULL);
return retval;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]