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; }
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)); } } }
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(); }
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); }
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; } }
QString BrowserIter::name() const { if( m_infBrowser ) return inf_browser_get_node_name( INF_BROWSER(m_infBrowser), &m_infBrowserIter ); return ""; }