Main Page   Modules   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   Related Pages  

KUniqueApplication Class Reference

#include <kuniqueapplication.h>

Inheritance diagram for KUniqueApplication:

KApplication DCOPObject KInstance List of all members.

Public Methods

 KUniqueApplication (bool allowStyles=true, bool GUIenabled=true, bool configUnique=false)
virtual ~KUniqueApplication ()
bool process (const QCString &fun, const QByteArray &data, QCString &replyType, QByteArray &replyData)
virtual int newInstance ()

Static Public Methods

void addCmdLineOptions ()
bool start ()

Protected Methods

virtual void virtual_hook (int id, void *data)

Detailed Description

Maintains only a single instance of a running application at a time.

If another instance is started, it will determine (via DCOP) whether it is the first instance or a second instance. If it is a second instance, it will forward on the information to the first instance and then quit.

See also:
KApplication DCOPObject
Author:
Preston Brown <pbrown@kde.org>

Definition at line 41 of file kuniqueapplication.h.


Constructor & Destructor Documentation

KUniqueApplication::KUniqueApplication bool    allowStyles = true,
bool    GUIenabled = true,
bool    configUnique = false
 

Constructor. Takes command line arguments from KCmdLineArgs

Parameters:
allowStyles  Set to false to disable the loading on plugin based styles. This is only useful to applications that do not display a GUI normally. If you do create an application with allowStyles set to false it normally runs in the background but under special circumstances displays widgets. Call KApplication::enableStyles() before displaying any widgets.
GUIenabled  Set to false to disable all GUI stuff. This implies no styles either.
configUnique  If true, the uniqueness of the application will depend on the value of the "MultipleInstances" key in the "KDE" group of the application config file.

virtual KUniqueApplication::~KUniqueApplication   [virtual]
 

Destructor


Member Function Documentation

void KUniqueApplication::addCmdLineOptions   [static]
 

Adds command line options specific for KUniqueApplication.

Should be called before calling KUniqueApplication constructor and / or start().

Reimplemented from KApplication.

virtual int KUniqueApplication::newInstance   [virtual]
 

Creates a new "instance" of the application.

Usually this will involve making some calls into the GUI portion of your application asking for a new window to be created, possibly with some data already loaded based on the arguments received.

Command line arguments have been passed to KCmdLineArgs before this function is called and can be checked in the usual way.

Note that newInstance() is called also in the first started application process.

Returns:
An exit value. The calling process will exit with this value.

bool KUniqueApplication::process const QCString &    fun,
const QByteArray &    data,
QCString &    replyType,
QByteArray &    replyData
[virtual]
 

Dispatches any incoming DCOP message for a new instance.

If it is not a request for a new instance, return false. Overloaded from DCOPObject to make sure that the application stays unique.

Parameters:
fun  DCOP function signature
data  the data for the arguments
replyType  the type of the reply value
replyData  the reply
See also:
DCOPObject

Reimplemented from DCOPObject.

bool KUniqueApplication::start   [static]
 

Forks and registers with dcop.

The command line arguments are being sent via DCOP to newInstance() and will be received once the application enters the event loop.

Typically this is used like:

 int main(int argc, char **argv) {
    KAboutData about("myappname", "myAppName", .....);
    KCmdLineArgs::init(argc, argv, &about);
    KCmdLineArgs::addCmdLineOptions( myCmdOptions );
    KUniqueApplication::addCmdLineOptions();

    if (!KUniqueApplication::start()) {
       fprintf(stderr, "myAppName is already running!
"); exit(0); } KUniqueApplication a; a.exec(); }
Note that it's not necessary to call start() explicitly. It will be called automatically before creating KUniqueApplication if it hasn't been called yet, without any performance impact.

Returns:
true if registration is succesful. false if another process was already running.


The documentation for this class was generated from the following file:
Generated on Wed Aug 13 23:30:27 2003 for kdelibs by doxygen1.2.18