diff options
Diffstat (limited to 'ksysv/main.cpp')
-rw-r--r-- | ksysv/main.cpp | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/ksysv/main.cpp b/ksysv/main.cpp new file mode 100644 index 0000000..4dd0e09 --- /dev/null +++ b/ksysv/main.cpp @@ -0,0 +1,103 @@ + /*************************************************************************** + copyright : (C) 1997-2000 by Peter Putzer + email : putzer@kde.org + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; version 2. * + * * + ***************************************************************************/ + +#include <stdio.h> +#include <stdlib.h> + +#include <iostream> + +#include <kcmdlineargs.h> +#include <kaboutdata.h> +#include <kglobal.h> +#include <klocale.h> +#include <kstandarddirs.h> + +#include "ksvapplication.h" +#include "ksv_conf.h" +#include "ksvconfigwizard.h" +#include "TopWidget.h" +#include "version.h" + +using namespace std; + +#if (defined(DEBUG) && !(defined(NDEBUG) || defined(NO_DEBUG))) +#define KSYSV_DEBUG(x) x +#else +#define KSYSV_DEBUG(x) do { } while (0) +#endif + +static void myMessageOutput( QtMsgType type, const char *msg ) +{ + switch ( type ) { + case QtDebugMsg: + KSYSV_DEBUG(cerr << "Debug: " << msg << endl); + break; + case QtWarningMsg: + KSYSV_DEBUG(cerr << "Warning: " << msg << endl); + break; + case QtFatalMsg: + cerr << "Fatal: " << msg << endl; + abort(); // dump core on purpose + } +} + +int main( int argc, char **argv ) { + // install own message handler that ignores debug-msg when DEBUG is not defined + qInstallMsgHandler(myMessageOutput); + + KAboutData about("ksysv", I18N_NOOP("SysV-Init Editor"), KSYSV_VERSION_STRING, + I18N_NOOP ("Editor for Sys-V like init configurations"), + KAboutData::License_GPL, + "Copyright (c) 1997-2000, Peter Putzer.", + I18N_NOOP ("Similar to Red Hat's" \ + "\"tksysv\", but SysV-Init Editor allows\n" \ + "drag-and-drop, as well as keyboard use.")); + about.addAuthor ("Peter Putzer", I18N_NOOP("Main developer"), "putzer@kde.org"); + ksv::about = &about; + + KCmdLineArgs::init(argc, argv, &about); + KUniqueApplication::addCmdLineOptions (); + + if (!KUniqueApplication::start()) { + cerr << "SysV-Init Editor is already running!" << endl; + return -1; + } + + KSVApplication app; + + // session-management + if (kapp->isRestored()) + RESTORE(KSVTopLevel) + else + { + KSVConfig* conf = KSVConfig::self(); + if (!conf->isConfigured()) + { + KSVConfigWizard* w = new KSVConfigWizard(0, "ConfigWizard", true); + w->exec(); + + conf->setConfigured(true); + conf->setRunlevelPath (w->runlevelPath()); + conf->setScriptPath (w->servicesPath()); + conf->writeSettings(); + } + + KSVTopLevel* top = new KSVTopLevel(); + app.setMainWidget(top); + top->show(); + } + // end session-management + + return app.exec(); +} + |