Esempio n. 1
0
static gboolean
inf_test_browser_find_node(InfTestBrowser* test,
                           const gchar* name,
                           InfBrowserIter* result_iter)
{
  InfBrowserIter iter;
  gboolean result;

  if(inf_browser_get_explored(test->browser, &test->cwd) == FALSE)
  {
    fprintf(
      stderr,
      "Directory '%s' not yet explored\n",
      inf_browser_get_node_name(test->browser, &test->cwd)
    );
  }
  else
  {
    iter = test->cwd;
    for(result = inf_browser_get_child(test->browser, &iter);
        result == TRUE;
        result = inf_browser_get_next(test->browser, &iter))
    {
      if(strcmp(inf_browser_get_node_name(test->browser, &iter), name) == 0)
      {
        *result_iter = iter;
        return TRUE;
      }
    }
  }

  return FALSE;
}
Esempio n. 2
0
static void
inf_test_browser_cmd_ls(InfTestBrowser* test,
                        const gchar* param)
{
  InfBrowserIter iter;
  gboolean result;

  if(inf_browser_get_explored(test->browser, &test->cwd) == FALSE)
  {
    fprintf(
      stderr,
      "Directory '%s' not yet explored\n",
      inf_browser_get_node_name(test->browser, &test->cwd)
    );
  }
  else
  {
    iter = test->cwd;
    for(result = inf_browser_get_child(test->browser, &iter);
        result == TRUE;
        result = inf_browser_get_next(test->browser, &iter))
    {
      printf("%s\n", inf_browser_get_node_name(test->browser, &iter));
    }
  }
}
Esempio n. 3
0
static void
inf_test_browser_cmd_explore(InfTestBrowser* test,
                             const gchar* param)
{
  InfBrowserIter iter;

  if(inf_test_browser_find_node(test, param, &iter) == FALSE)
  {
    fprintf(
      stderr,
      "Directory '%s' does not exist\n",
      param
    );
  }
  else if(inf_browser_get_explored(test->browser, &iter) == TRUE)
  {
    fprintf(
      stderr,
      "Directory '%s' is already explored",
      inf_browser_get_node_name(test->browser, &iter)
    );
  }
  else
  {
    inf_browser_explore(test->browser, &iter, NULL, NULL);
  }
}
void Gobby::BrowserContextCommands::on_rename(InfBrowser* browser,
                                              InfBrowserIter iter)
{
	bool directory = inf_browser_is_subdirectory(browser, &iter);
	m_watch.reset(new NodeWatch(browser, &iter));
	m_watch->signal_node_removed().connect(sigc::mem_fun(
		*this, &BrowserContextCommands::on_dialog_node_removed));

	std::auto_ptr<EntryDialog> entry_dialog(
		new EntryDialog(
			m_parent,
			directory ? _("Choose a name for the directory")
			          : _("Choose a name for the document"),
			directory ? _("_Directory Name:")
			          : _("_Document Name:")));

	entry_dialog->add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
	entry_dialog->add_button(_("_Rename"), Gtk::RESPONSE_ACCEPT)
		->set_image(*Gtk::manage(new Gtk::Image(
			Gtk::Stock::EDIT, Gtk::ICON_SIZE_BUTTON)));

	entry_dialog->set_text(inf_browser_get_node_name(browser, &iter));
	entry_dialog->signal_response().connect(sigc::bind(
		sigc::mem_fun(*this,
			&BrowserContextCommands::on_rename_response),
		browser, iter));

	m_dialog = entry_dialog;
	m_dialog->present();
}
Esempio n. 5
0
static void
inf_test_mass_join_explore_finished_cb(InfRequest* request,
                                       const InfRequestResult* result,
                                       const GError* error,
                                       gpointer user_data)
{
    InfTestMassJoiner* joiner;
    InfBrowser* browser;
    InfBrowserIter iter;
    const char* name;
    gboolean document_exists;

    joiner = (InfTestMassJoiner*)user_data;
    browser = INF_BROWSER(joiner->browser);
    inf_browser_get_root(browser, &iter);
    if(inf_browser_get_child(browser, &iter) == FALSE)
    {
        fprintf(
            stderr,
            "Joiner %s: Document %s does not exist\n",
            joiner->username,
            joiner->document
        );

        inf_xml_connection_close(infc_browser_get_connection(joiner->browser));
    }

    document_exists = FALSE;

    do
    {
        name = inf_browser_get_node_name(browser, &iter);
        if(strcmp(name, joiner->document) == 0)
        {
            document_exists = TRUE;

            inf_browser_subscribe(
                browser,
                &iter,
                inf_test_mass_join_subscribe_finished_cb,
                joiner
            );

            break;
        }
    } while(inf_browser_get_next(browser, &iter) == TRUE);

    if(!document_exists)
    {
        fprintf(
            stderr,
            "Joiner %s: Document %s does not exist\n",
            joiner->username,
            joiner->document
        );

        inf_xml_connection_close(infc_browser_get_connection(joiner->browser));
    }
}
static void
infinoted_plugin_dbus_explore_node(InfinotedPluginDbus* plugin,
                                   InfinotedPluginDbusInvocation* invocation,
                                   InfBrowser* browser,
                                   const InfBrowserIter* iter)
{
  InfBrowserIter child_iter;
  GVariantBuilder builder;

  child_iter = *iter;
  g_variant_builder_init(&builder, G_VARIANT_TYPE("a(ss)"));

  if(inf_browser_get_child(browser, &child_iter))
  {
    do
    {
      if(inf_browser_is_subdirectory(browser, &child_iter))
      {
        g_variant_builder_add(
          &builder,
          "(ss)",
          inf_browser_get_node_name(browser, &child_iter),
          "InfSubdirectory"
        );
      }
      else
      {
        g_variant_builder_add(
          &builder,
          "(ss)",
          inf_browser_get_node_name(browser, &child_iter),
          inf_browser_get_node_type(browser, &child_iter)
        );
      }
    } while(inf_browser_get_next(browser, &child_iter));
  }

  g_dbus_method_invocation_return_value(
    invocation->invocation,
    g_variant_new("(@a(ss))", g_variant_builder_end(&builder))
  );

  infinoted_plugin_dbus_invocation_free(invocation->plugin, invocation);
}
Esempio n. 7
0
static void
inf_test_browser_cmd_cd(InfTestBrowser* test,
                        const gchar* param)
{
  InfBrowserIter iter;

  if(strcmp(param, "..") == 0)
  {
    iter = test->cwd;
    if(inf_browser_get_parent(test->browser, &iter) == FALSE)
    {
      fprintf(stderr, "Already at the root directory\n");
    }
    else
    {
      test->cwd = iter;
    }
  }
  else if(inf_test_browser_find_node(test, param, &iter) == FALSE)
  {
    fprintf(
      stderr,
      "Directory '%s' does not exist\n",
      param
    );
  }
  else if(inf_browser_get_explored(test->browser, &iter) == FALSE)
  {
    fprintf(
      stderr,
      "Directory '%s' not yet explored\n",
      inf_browser_get_node_name(test->browser, &iter)
    );
  }
  else
  {
    test->cwd = iter;
  }
}
Esempio n. 8
0
QString BrowserIter::name() const
{
    if( m_infBrowser )
        return inf_browser_get_node_name( INF_BROWSER(m_infBrowser), &m_infBrowserIter );
    return "";
}