void KOrganizerApp::processCalendar( const KURL &url ) { KOrg::MainWindow *korg = ActionManager::findInstance( url ); if ( !korg ) { bool hasDocument = !url.isEmpty(); korg = new KOrganizer( "KOrganizer MainWindow" ); korg->init( hasDocument ); korg->topLevelWidget()->show(); kdDebug(5850) << "KOrganizerApp::processCalendar(): '" << url.url() << "'" << endl; if ( hasDocument ) korg->openURL( url ); else { KOrg::StdCalendar::self()->load(); korg->view()->updateCategories(); korg->view()->updateView(); } } else { korg->topLevelWidget()->show(); } // Handle window activation #if defined Q_WS_X11 && ! defined K_WS_QTONLY KStartupInfo::setNewStartupId( korg->topLevelWidget(), startupId() ); #endif }
int KOrganizerApp::newInstance() { kdDebug(5850) << "KOApp::newInstance()" << endl; static bool first = true; if ( isRestored() && first ) { KOrg::MainWindow *korg = ActionManager::findInstance( KURL() ); if ( korg ) { KOrg::StdCalendar::self()->load(); korg->view()->updateCategories(); korg->view()->updateView(); } first = false; return 0; } first = false; KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); KOGlobals::self()->alarmClient()->startDaemon(); // No filenames given => all other args are meaningless, show main Window if ( args->count() <= 0 ) { processCalendar( KURL() ); return 0; } // If filenames wer given as arguments, load them as calendars, one per window. if ( args->isSet( "open" ) ) { for( int i = 0; i < args->count(); ++i ) { processCalendar( args->url( i ) ); } } else { // Import, merge, or ask => we need the resource calendar window anyway. processCalendar( KURL() ); KOrg::MainWindow *korg = ActionManager::findInstance( KURL() ); if ( !korg ) { kdError() << "Unable to find default calendar resources view." << endl; return -1; } // Check for import, merge or ask if ( args->isSet( "import" ) ) { for( int i = 0; i < args->count(); ++i ) { korg->actionManager()->addResource( args->url( i ) ); } } else if ( args->isSet( "merge" ) ) { for( int i = 0; i < args->count(); ++i ) { korg->actionManager()->mergeURL( args->url( i ).url() ); } } else { for( int i = 0; i < args->count(); ++i ) { korg->actionManager()->importCalendar( args->url( i ) ); } } } kdDebug(5850) << "KOApp::newInstance() done" << endl; return 0; }