diff options
Diffstat (limited to 'karm/main.cpp')
-rw-r--r-- | karm/main.cpp | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/karm/main.cpp b/karm/main.cpp new file mode 100644 index 000000000..cc1fc1cde --- /dev/null +++ b/karm/main.cpp @@ -0,0 +1,93 @@ +#include <signal.h> +#include <kapplication.h> +#include <klocale.h> +#include <kcmdlineargs.h> +#include <kaboutdata.h> +#include <kdebug.h> +#include "version.h" +#include "mainwindow.h" + + +namespace +{ + const char* description = I18N_NOOP("KDE Time tracker tool"); + + void cleanup( int ) + { + kdDebug(5970) << i18n("Just caught a software interrupt.") << endl; + kapp->exit(); + } +} + +static const KCmdLineOptions options[] = +{ + { "+file", I18N_NOOP( "The iCalendar file to open" ), 0 }, + KCmdLineLastOption +}; + +int main( int argc, char *argv[] ) +{ + KAboutData aboutData( "karm", I18N_NOOP("KArm"), + KARM_VERSION, description, KAboutData::License_GPL, + "(c) 1997-2004, KDE PIM Developers" ); + + aboutData.addAuthor( "Mark Bucciarelli", I18N_NOOP( "Current Maintainer" ), + "[email protected]" ); + aboutData.addAuthor( "Sirtaj Singh Kang", I18N_NOOP( "Original Author" ), + "[email protected]" ); + aboutData.addAuthor( "Allen Winter", 0, "[email protected]" ); + aboutData.addAuthor( "David Faure", 0, "[email protected]" ); + aboutData.addAuthor( "Espen Sand", 0, "[email protected]" ); + aboutData.addAuthor( "Gioele Barabucci", 0, "[email protected]" ); + aboutData.addAuthor( "Jan Schaumann", 0, "[email protected]" ); + aboutData.addAuthor( "Jesper Pedersen", 0, "[email protected]" ); + aboutData.addAuthor( "Kalle Dalheimer", 0, "[email protected]" ); + aboutData.addAuthor( "Scott Monachello", 0, "[email protected]" ); + aboutData.addAuthor( "Thorsten Staerk", 0, "[email protected]" ); + aboutData.addAuthor( "Tomas Pospisek", 0, "[email protected]" ); + aboutData.addAuthor( "Willi Richert", 0, "[email protected]" ); + + KCmdLineArgs::init( argc, argv, &aboutData ); + KCmdLineArgs::addCmdLineOptions( options ); + KApplication myApp; + + KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); + + MainWindow *mainWindow; + if ( args->count() > 0 ) + { + QString icsfile = QString::fromLocal8Bit( args->arg( 0 ) ); + // FIXME: there is probably a Qt or KDE fcn for this test + if ( icsfile.startsWith( "/" ) + || icsfile.lower().startsWith( "http://" ) + || icsfile.lower().startsWith( "ftp://" ) + ) + { + // leave as is + ; + } + else + { + icsfile = KCmdLineArgs::cwd() + "/" + icsfile; + } + mainWindow = new MainWindow( icsfile ); + } + else + { + mainWindow = new MainWindow(); + } + + myApp.setMainWidget( mainWindow ); + + if (kapp->isRestored() && KMainWindow::canBeRestored( 1 )) + mainWindow->restore( 1, false ); + else + mainWindow->show(); + + signal( SIGQUIT, cleanup ); + signal( SIGINT, cleanup ); + int ret = myApp.exec(); + + delete mainWindow; + return ret; +} |