You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdepim/karm/main.cpp

94 lines
2.7 KiB

#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" ),
"mark@hubcapconsulting.com" );
aboutData.addAuthor( "Sirtaj Singh Kang", I18N_NOOP( "Original Author" ),
"taj@kde.org" );
aboutData.addAuthor( "Allen Winter", 0, "winterz@verizon.net" );
aboutData.addAuthor( "David Faure", 0, "faure@kde.org" );
aboutData.addAuthor( "Espen Sand", 0, "espen@kde.org" );
aboutData.addAuthor( "Gioele Barabucci", 0, "gioele@gioelebarabucci.com" );
aboutData.addAuthor( "Jan Schaumann", 0, "jschauma@netmeister.org" );
aboutData.addAuthor( "Jesper Pedersen", 0, "blackie@kde.org" );
aboutData.addAuthor( "Kalle Dalheimer", 0, "kalle@kde.org" );
aboutData.addAuthor( "Scott Monachello", 0, "smonach@cox.net" );
aboutData.addAuthor( "Thorsten Staerk", 0, "kde@staerk.de" );
aboutData.addAuthor( "Tomas Pospisek", 0, "tpo_deb@sourcepole.ch" );
aboutData.addAuthor( "Willi Richert", 0, "w.richert@gmx.net" );
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;
}