void Groupwise::getCalendar(const KURL &url) { QString u = soapUrl(url); QString user = url.user(); QString pass = url.pass(); debugMessage("URL: " + u); debugMessage("User: "******"Password: "******"UTC")); kdDebug() << "Login" << endl; if(!server.login()) { errorMessage(i18n("Unable to login: "******"Read calendar" << endl; if(!server.readCalendarSynchronous(&calendar)) { errorMessage(i18n("Unable to read calendar data: ") + server.errorText()); } kdDebug() << "Logout" << endl; server.logout(); } KCal::ICalFormat format; QString ical = format.toString(&calendar); data(ical.utf8()); finished(); }
int main( int argc, char **argv ) { KAboutData aboutData( "soapdebug", 0, ki18n("Groupwise Soap Debug"), "0.1" ); aboutData.addAuthor( ki18n("Cornelius Schumacher"), KLocalizedString(), "*****@*****.**" ); KCmdLineArgs::init( argc, argv, &aboutData ); KCmdLineOptions options; options.add("s"); options.add("server <hostname>", ki18n("Server")); options.add("u"); options.add("user <string>", ki18n("User")); options.add("p"); options.add("password <string>", ki18n("Password")); options.add("f"); options.add("freebusy-user <string>", ki18n("Free/Busy user name")); options.add("addressbook-id <string>", ki18n("Address book identifier")); KCmdLineArgs::addCmdLineOptions( options ); KApplication app; KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); QString user = args->getOption( "user" ); QString pass = args->getOption( "password" ); QString url = args->getOption( "server" ); #if 1 if ( user.isEmpty() ) { kError() <<"Need user."; return 1; } if ( pass.isEmpty() ) { kError() <<"Need password."; return 1; } if ( url.isEmpty() ) { kError() <<"Need server."; return 1; } #endif KDateTime::Spec spec = KDateTime::Spec::LocalZone(); GroupwiseServer server( url, user, pass, spec, 0 ); #if 1 if ( !server.login() ) { kError() <<"Unable to login to server" << url; return 1; } #endif #if 0 server.dumpData(); #endif #if 0 server.getCategoryList(); #endif #if 0 server.dumpFolderList(); #endif #if 0 QString fbUser = args->getOption( "freebusy-user" ); if ( fbUser.isEmpty() ) { kError() <<"Need user for which the freebusy data should be retrieved."; } else { KCal::FreeBusy *fb = new KCal::FreeBusy; server.readFreeBusy( "user1", QDate( 2004, 9, 1 ), QDate( 2004, 10, 31 ), fb ); } #endif #if 0 KTemporaryFile temp; temp.setautoRemove(false); temp.open(); KCal::ResourceLocal resource( temp.fileName() ); resource.setActive( true ); KCal::CalendarResources calendar; calendar.resourceManager()->add( &resource ); kDebug() <<"Login"; if ( !server.login() ) { kDebug() <<"Unable to login."; } else { kDebug() <<"Read calendar"; if ( !server.readCalendarSynchronous( &resource ) ) { kDebug() <<"Unable to read calendar data."; } kDebug() <<"Logout"; server.logout(); } KCal::ICalFormat format; QString ical = format.toString( &calendar ); kDebug() <<"ICALENDAR:" << ical; #endif #if 0 QString id = args->getOption( "addressbook-id" ); kDebug() <<"ADDRESSBOOK ID:" << id; QStringList ids; ids.append( id ); KABC::ResourceMemory resource; kDebug() <<"Login"; if ( !server.login() ) { kError() <<"Unable to login."; } else { kDebug() <<"Read Addressbook"; if ( !server.readAddressBooksSynchronous( ids, &resource ) ) { kError() <<"Unable to read addressbook data."; } kDebug() <<"Logout"; server.logout(); } KABC::Addressee::List addressees; KABC::Resource::Iterator it2; for( it2 = resource.begin(); it2 != resource.end(); ++it2 ) { kDebug() <<"ADDRESSEE:" << (*it2).fullEmail(); addressees.append( *it2 ); } #endif #if 0 server.getDelta(); #endif server.logout(); return 0; }
bool ICalReport::generate() { #if KDE_IS_VERSION(3,4,89) KCal::CalendarLocal cal("UTC"); #else KCal::CalendarLocal cal; #endif if( !open()) { tjWarning(i18n("Can not open ICal File '%1' for writing!") .arg(fileName)); return false; } TaskList filteredList; if (!filterTaskList(filteredList, 0, getHideTask(), getRollUpTask())) return false; // Make sure that parents are in front of childs. We need this later to set // the relation. filteredList.setSorting(CoreAttributesList::TreeMode, 0); filteredList.setSorting(CoreAttributesList::StartUp, 1); sortTaskList(filteredList); ResourceList filteredResourceList; if (!filterResourceList(filteredResourceList, 0, hideResource, rollUpResource)) return false; sortResourceList(filteredResourceList); QPtrDict<KCal::Todo> toDoDict; QPtrDict<KCal::Event> eventDict; for (TaskListIterator tli(filteredList); *tli != 0; ++tli) { // Generate a TODO item for each task. KCal::Todo* todo = generateTODO(*tli, filteredResourceList); // In case we have the parent in the list set the relation pointer. if((*tli)->getParent() && toDoDict.find((*tli)->getParent())) todo->setRelatedTo(toDoDict[(*tli)->getParent()]); // Insert the just created TODO into the calendar. cal.addTodo(todo); // Insert the TODO into the dict. We might need it as a parent. toDoDict.insert(*tli, todo); if ((*tli)->isLeaf() && !(*tli)->isMilestone()) { // Generate an event item for each task. KCal::Event* event = generateEvent(*tli, filteredResourceList); // In case we have the parent in the list set the relation pointer. if((*tli)->getParent() && eventDict.find((*tli)->getParent())) event->setRelatedTo(eventDict[(*tli)->getParent()]); // Insert the just created EVENT into the calendar. cal.addEvent(event); // Insert the EVENT into the dict. We might need it as a parent. eventDict.insert(*tli, event); } } // Dump the calendar in ICal format into a text file. KCal::ICalFormat format; s << format.toString(&cal) << endl; return close(); }