00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
#include <stdlib.h>
00027
#include <iostream>
00028
00029
#include <kglobal.h>
00030
#include <kcmdlineargs.h>
00031
#include <kconfig.h>
00032
#include <kdebug.h>
00033
#include <klocale.h>
00034
#include <kwin.h>
00035
#include <kurl.h>
00036
00037
#include <libkcal/calformat.h>
00038
00039
#include "korganizer.h"
00040
#include "koprefs.h"
00041
#include "version.h"
00042
#include "alarmclient.h"
00043
#include "koglobals.h"
00044
#include "actionmanager.h"
00045
#include "resourceimportdialog.h"
00046
00047
#include "koapp.h"
00048
#include <kstartupinfo.h>
00049
00050
using namespace std;
00051
00052 KOrganizerApp::KOrganizerApp() : KUniqueApplication()
00053 {
00054 QString prodId =
"-//K Desktop Environment//NONSGML KOrganizer %1//EN";
00055 CalFormat::setApplication(
"KOrganizer", prodId.arg( korgVersion ) );
00056 }
00057
00058 KOrganizerApp::~KOrganizerApp()
00059 {
00060 }
00061
00062
int KOrganizerApp::newInstance()
00063 {
00064 kdDebug(5850) <<
"KOApp::newInstance()" << endl;
00065
00066
if ( isRestored() ) {
00067 RESTORE(
KOrganizer )
00068 return 0;
00069 }
00070
00071 KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
00072
00073 KOGlobals::self()->alarmClient()->startDaemon();
00074
00075
00076 if ( args->count() > 0 ) {
00077
int i;
00078
for( i = 0; i < args->count(); ++i ) {
00079 processCalendar( args->url( i ) );
00080 }
00081
if ( args->isSet(
"import" ) ) {
00082 processCalendar( KURL() );
00083 }
00084 }
else {
00085 processCalendar( KURL() );
00086 }
00087
00088
if ( args->isSet(
"import" ) ) {
00089
KOrg::MainWindow *korg =
ActionManager::findInstance( KURL() );
00090
if ( !korg ) {
00091 kdError() <<
"Unable to find default calendar resources view." << endl;
00092 }
else {
00093 QString importUrl = QString::fromLocal8Bit( args->getOption(
"import" ) );
00094 korg->
actionManager()->
importResource( importUrl );
00095 }
00096 }
00097
00098 kdDebug(5850) <<
"KOApp::newInstance() done" << endl;
00099
00100
return 0;
00101 }
00102
00103
00104
void KOrganizerApp::processCalendar(
const KURL &url )
00105 {
00106
KOrg::MainWindow *korg =
ActionManager::findInstance( url );
00107
if ( !korg ) {
00108
bool hasDocument = !url.isEmpty();
00109 korg =
new KOrganizer(
"KOrganizer MainWindow" );
00110 korg->
init( hasDocument );
00111 korg->
topLevelWidget()->show();
00112
00113 kdDebug(5850) <<
"KOrganizerApp::processCalendar(): '" << url.url()
00114 <<
"'" << endl;
00115
00116
if ( hasDocument ) korg->
openURL( url );
00117 }
00118
else
00119 korg->
topLevelWidget()->show();
00120
00121
00122
#if defined Q_WS_X11 && ! defined K_WS_QTONLY
00123
KStartupInfo::setNewStartupId( korg->
topLevelWidget(), startupId() );
00124
#endif
00125
}
00126
00127
#include "koapp.moc"