gboolean
nemo_desktop_item_properties_should_show (GList *files)
{
	NemoFileInfo *info;

	if (!files || files->next) {
		return FALSE;
	}

	info = NEMO_FILE_INFO (files->data);

	if (!nemo_file_info_is_mime_type (info, "application/x-desktop")) {
		return FALSE;
	}

	return TRUE;
}
GtkWidget *
nemo_desktop_item_properties_make_box (GtkSizeGroup *label_size_group,
                                           GList *files)
{
	NemoFileInfo *info;
	char *uri;
	GtkWidget *box;

	g_assert (nemo_desktop_item_properties_should_show (files));

	box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
	g_object_set_data_full (G_OBJECT (box), "label-size-group",
				label_size_group, (GDestroyNotify) g_object_unref);

	info = NEMO_FILE_INFO (files->data);

	uri = nemo_file_info_get_uri (info);
	nemo_desktop_item_properties_create_begin (uri, box);
	g_free (uri);

	return box;
}
Beispiel #3
0
/* nemo_property_page_provider_get_pages
 *  
 * This function is called by Nemo when it wants property page
 * items from the extension.
 *
 * This function is called in the main thread before a property page
 * is shown, so it should return quickly.
 * 
 * The function should return a GList of allocated NemoPropertyPage
 * items.
 */
static GList *
nemo_share_get_property_pages (NemoPropertyPageProvider *provider,
				   GList *files)
{
  PropertyPage *page;
  GList *pages;
  NemoPropertyPage *np_page;
  NemoFileInfo *fileinfo;
  ShareInfo *share_info;
  gboolean is_shareable;

  /* Only show the property page if 1 file is selected */
  if (!files || files->next != NULL) {
    return NULL;
  }

  fileinfo = NEMO_FILE_INFO (files->data);

  get_share_info_for_file_info (fileinfo, &share_info, &is_shareable);
  if (!is_shareable)
    return NULL;

  page = create_property_page (fileinfo);
  gtk_widget_hide (page->button_cancel);
  
  if (share_info)
    shares_free_share_info (share_info);

  pages = NULL;
  np_page = nemo_property_page_new
    ("NemoShare::property_page",
     gtk_label_new (_("Share")),
     page->main);
  pages = g_list_append (pages, np_page);

  return pages;
}