コード例 #1
0
ファイル: bjb-main-view.c プロジェクト: Abdillah/bijiben
GList *
bjb_main_view_get_selected_items (BjbMainView *view)
{
  GList *l, *paths, *result = NULL;
  gchar *url;
  BijiItem *item;

  /*  GtkTreePath */
  paths = get_selected_paths (view);


  for (l=paths; l!= NULL; l=l->next)
  {
    url = get_note_url_from_tree_path (l->data, view);
    item = biji_manager_get_item_at_path (
              bjb_window_base_get_manager (view->priv->window), url);
    if (BIJI_IS_ITEM (item))
      result = g_list_prepend (result, item);

    g_free (url);
  }

  g_list_free_full (paths, (GDestroyNotify) gtk_tree_path_free);
  return result;
}
コード例 #2
0
gboolean
biji_note_book_add_item (BijiNoteBook *book, BijiItem *item, gboolean notify)
{
  g_return_val_if_fail (BIJI_IS_NOTE_BOOK (book), FALSE);
  g_return_val_if_fail (BIJI_IS_ITEM (item), FALSE);

  const gchar *uid;
  gboolean retval = TRUE;

  uid = biji_item_get_uuid (item);

  if (g_hash_table_lookup (book->priv->items, uid))
    retval = FALSE;

  else if (BIJI_IS_NOTE_OBJ (item))
    _biji_note_book_add_one_item (book, item);

  else if (BIJI_IS_COLLECTION (item))
  {
    g_hash_table_insert (book->priv->items,
                         (gpointer) biji_item_get_uuid (item),
                         item);

    g_signal_connect (item, "deleted",
                      G_CALLBACK (on_item_deleted_cb), book);
  }

  if (retval && notify)
    biji_note_book_notify_changed (book, BIJI_BOOK_ITEM_ADDED, item);

  return retval;
}
コード例 #3
0
static void
on_provider_loaded_cb (BijiProvider *provider,
                       GList *items,
                       BijiNoteBook *book)
{
  BijiItem *item = NULL;
  BijiNoteBookChangeFlag flag = BIJI_BOOK_CHANGE_FLAG;
  GList *l;
  gint i = 0;


  for (l=items; l!=NULL; l=l->next)
  {
    if (BIJI_IS_ITEM (l->data))
    {
      _biji_note_book_add_one_item (book, l->data);
      i++;
    }
  }

  if (i==1)
    flag = BIJI_BOOK_ITEM_ADDED;

  else if (i>1)
    flag = BIJI_BOOK_MASS_CHANGE;


  if (flag > BIJI_BOOK_CHANGE_FLAG)
    biji_note_book_notify_changed (book, flag, item);
}
コード例 #4
0
gboolean 
biji_note_book_remove_item (BijiNoteBook *book, BijiItem *item)
{
  g_return_val_if_fail (BIJI_IS_NOTE_BOOK (book), FALSE);
  g_return_val_if_fail (BIJI_IS_ITEM      (item), FALSE);

  BijiItem *to_delete = NULL;
  const gchar *path;
  gboolean retval = FALSE;

  path = biji_item_get_uuid (item);
  to_delete = g_hash_table_lookup (book->priv->items, path);

  if (to_delete)
  {
    /* Signal before doing anything here. So the note is still
     * fully available for signal receiver. */
    biji_note_book_notify_changed (book, BIJI_BOOK_ITEM_TRASHED, to_delete);
    biji_item_trash (item);
    g_hash_table_remove (book->priv->items, path);

    retval = TRUE;
  }

  return retval;
}
コード例 #5
0
static void
_biji_note_book_add_one_item (BijiNoteBook *book, BijiItem *item)
{
  g_return_if_fail (BIJI_IS_ITEM (item));


  /* Add it to the list */
  g_hash_table_insert (book->priv->items,
                       (gpointer) biji_item_get_uuid (item), item);

  /* Notify */
  if (BIJI_IS_NOTE_OBJ (item))
  {
    g_signal_connect (item, "changed", G_CALLBACK (book_on_note_changed_cb), book);
    g_signal_connect (item, "renamed", G_CALLBACK (book_on_note_changed_cb), book);
    g_signal_connect (item, "color-changed", G_CALLBACK (book_on_item_icon_changed_cb), book);
  }

  else if (BIJI_IS_COLLECTION (item))
  {
    g_signal_connect (item, "deleted", G_CALLBACK (on_item_deleted_cb), book);
    g_signal_connect (item , "icon-changed", G_CALLBACK (book_on_item_icon_changed_cb), book);
  }
}