kalarmd Library API Documentation

alarmapp.cpp

00001 /*
00002     This file is part of the KDE alarm daemon.
00003     Copyright (c) 1997-1999 Preston Brown
00004     Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org>
00005     Copyright (c) 2001 David Jarvie <software@astrojar.org.uk>
00006 
00007     This program is free software; you can redistribute it and/or modify
00008     it under the terms of the GNU General Public License as published by
00009     the Free Software Foundation; either version 2 of the License, or
00010     (at your option) any later version.
00011 
00012     This program is distributed in the hope that it will be useful,
00013     but WITHOUT ANY WARRANTY; without even the implied warranty of
00014     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
00015     GNU General Public License for more details.
00016 
00017     You should have received a copy of the GNU General Public License
00018     along with this program; if not, write to the Free Software
00019     Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
00020 
00021     As a special exception, permission is given to link this program
00022     with any edition of Qt, and distribute the resulting executable,
00023     without including the source code for Qt in the source distribution.
00024 */
00025 
00026 // $Id: alarmapp.cpp,v 1.13 2003/03/07 22:09:26 waba Exp $
00027 
00028 #include <qstring.h>
00029 
00030 #include <kcmdlineargs.h>
00031 #include <kdebug.h>
00032 #include <kstartupinfo.h>
00033 
00034 #include "alarmdaemon.h"
00035 
00036 #include "alarmapp.h"
00037 #include "alarmapp.moc"
00038 
00039 
00040 AlarmApp::AlarmApp() :
00041   KUniqueApplication(/*false,false*/),
00042   mAd(0L)
00043 {
00044 }
00045 
00046 AlarmApp::~AlarmApp()
00047 {
00048 }
00049 
00050 int AlarmApp::newInstance()
00051 {
00052   kdDebug(5900) << "kalarmd:AlarmApp::newInstance()" << endl;
00053 
00054   KStartupInfo::appStarted();
00055 
00056   /* Prevent the application being restored automatically by the session manager
00057    * at session startup. Instead, the KDE autostart facility is used to start
00058    * the application. This allows the user to configure whether or not it is to
00059    * be started automatically, and also ensures that it is started in the correct
00060    * phase of session startup, i.e. after clients have been restored by the
00061    * session manager.
00062    */
00063   disableSessionManagement();
00064 
00065   // Check if we already have a running alarm daemon widget
00066   if (mAd) return 0;
00067 
00068   // Check if we are starting up at session startup
00069   static bool restored = false;
00070   if (!restored  &&  isRestored()) {
00071     mStartedAtLogin = true;
00072     restored = true;       // make sure we restore only once
00073   }
00074   else {
00075     KCmdLineArgs* args = KCmdLineArgs::parsedArgs();
00076     mStartedAtLogin = args->isSet("login");
00077     args->clear();      // free up memory
00078   }
00079 
00080   mAd = new AlarmDaemon(0L, "ad");
00081 
00082   return 0;
00083 }
KDE Logo
This file is part of the documentation for kalarmd Library Version 3.2.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sat May 1 11:38:04 2004 by doxygen 1.2.15 written by Dimitri van Heesch, © 1997-2003