summaryrefslogtreecommitdiffstats
path: root/karm/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'karm/main.cpp')
-rw-r--r--karm/main.cpp93
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" ),
+ aboutData.addAuthor( "Sirtaj Singh Kang", I18N_NOOP( "Original Author" ),
+ 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;
+}