summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiecore/oapplication.cpp8
-rw-r--r--libopie2/opiecore/oapplication.h6
2 files changed, 13 insertions, 1 deletions
diff --git a/libopie2/opiecore/oapplication.cpp b/libopie2/opiecore/oapplication.cpp
index ac7cd5a..0ce61d8 100644
--- a/libopie2/opiecore/oapplication.cpp
+++ b/libopie2/opiecore/oapplication.cpp
@@ -1,136 +1,142 @@
1/* 1/*
2                 This file is part of the Opie Project 2                 This file is part of the Opie Project
3              Copyright (C) 2003 Michael 'Mickey' Lauer <mickey@Vanille.de> 3              Copyright (C) 2003 Michael 'Mickey' Lauer <mickey@Vanille.de>
4 =. 4 =.
5 .=l. 5 .=l.
6           .>+-= 6           .>+-=
7 _;:,     .>    :=|. This program is free software; you can 7 _;:,     .>    :=|. This program is free software; you can
8.> <`_,   >  .   <= redistribute it and/or modify it under 8.> <`_,   >  .   <= redistribute it and/or modify it under
9:`=1 )Y*s>-.--   : the terms of the GNU Library General Public 9:`=1 )Y*s>-.--   : the terms of the GNU Library General Public
10.="- .-=="i,     .._ License as published by the Free Software 10.="- .-=="i,     .._ License as published by the Free Software
11 - .   .-<_>     .<> Foundation; either version 2 of the License, 11 - .   .-<_>     .<> Foundation; either version 2 of the License,
12     ._= =}       : or (at your option) any later version. 12     ._= =}       : or (at your option) any later version.
13    .%`+i>       _;_. 13    .%`+i>       _;_.
14    .i_,=:_.      -<s. This program is distributed in the hope that 14    .i_,=:_.      -<s. This program is distributed in the hope that
15     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 15     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
16    : ..    .:,     . . . without even the implied warranty of 16    : ..    .:,     . . . without even the implied warranty of
17    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 17    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
18  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 18  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
19..}^=.=       =       ; Library General Public License for more 19..}^=.=       =       ; Library General Public License for more
20++=   -.     .`     .: details. 20++=   -.     .`     .: details.
21 :     =  ...= . :.=- 21 :     =  ...= . :.=-
22 -.   .:....=;==+<; You should have received a copy of the GNU 22 -.   .:....=;==+<; You should have received a copy of the GNU
23  -_. . .   )=.  = Library General Public License along with 23  -_. . .   )=.  = Library General Public License along with
24    --        :-=` this library; see the file COPYING.LIB. 24    --        :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 25 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, 26 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA. 27 Boston, MA 02111-1307, USA.
28*/ 28*/
29 29
30#include <opie2/oapplication.h> 30#include <opie2/oapplication.h>
31#include <opie2/oconfig.h> 31#include <opie2/oconfig.h>
32#include <opie2/odebug.h> 32#include <opie2/odebug.h>
33 33
34#include <signal.h> 34#include <signal.h>
35#include <stdio.h> 35#include <stdio.h>
36 36
37using namespace Opie::Core; 37using namespace Opie::Core;
38 38
39 39
40OApplication* OApplication::_instance = 0; 40OApplication* OApplication::_instance = 0;
41 41
42/************************************************************************************************** 42/**************************************************************************************************
43 * OApplicationPrivate 43 * OApplicationPrivate
44 **************************************************************************************************/ 44 **************************************************************************************************/
45 45
46namespace Opie { 46namespace Opie {
47namespace Core { 47namespace Core {
48namespace Internal { 48namespace Internal {
49class OApplicationPrivate 49class OApplicationPrivate
50{ 50{
51 public: 51 public:
52 OApplicationPrivate() {}; 52 OApplicationPrivate() {};
53 ~OApplicationPrivate() {}; 53 ~OApplicationPrivate() {};
54}; 54};
55} 55}
56 56
57/************************************************************************************************** 57/**************************************************************************************************
58 * OApplication 58 * OApplication
59 **************************************************************************************************/ 59 **************************************************************************************************/
60 60OApplication::OApplication( int& argc, char** argv, Type type )
61 :QPEApplication( argc, argv, type ),
62 _appname( QString::null ),
63 _config( 0 )
64{
65 init();
66 }
61 67
62OApplication::OApplication( int& argc, char** argv, const QCString& rAppName ) 68OApplication::OApplication( int& argc, char** argv, const QCString& rAppName )
63 :QPEApplication( argc, argv ), 69 :QPEApplication( argc, argv ),
64 _appname( rAppName ), 70 _appname( rAppName ),
65 _config( 0 ) 71 _config( 0 )
66{ 72{
67 init(); 73 init();
68} 74}
69 75
70 76
71OApplication::~OApplication() 77OApplication::~OApplication()
72{ 78{
73 delete d; 79 delete d;
74 if ( _config ) 80 if ( _config )
75 delete _config; 81 delete _config;
76 OApplication::_instance = 0; 82 OApplication::_instance = 0;
77 // after deconstruction of the one-and-only application object, 83 // after deconstruction of the one-and-only application object,
78 // the construction of another object is allowed 84 // the construction of another object is allowed
79} 85}
80 86
81 87
82OConfig* OApplication::config() 88OConfig* OApplication::config()
83{ 89{
84 if ( !_config ) 90 if ( !_config )
85 { 91 {
86 _config = new OConfig( _appname ); 92 _config = new OConfig( _appname );
87 } 93 }
88 return _config; 94 return _config;
89} 95}
90 96
91 97
92void OApplication::init() 98void OApplication::init()
93{ 99{
94 d = new Internal::OApplicationPrivate(); 100 d = new Internal::OApplicationPrivate();
95 if ( !OApplication::_instance ) 101 if ( !OApplication::_instance )
96 { 102 {
97 OApplication::_instance = this; 103 OApplication::_instance = this;
98 104
99 /* register SIGSEGV handler to give programs an option 105 /* register SIGSEGV handler to give programs an option
100 * to exit gracefully, e.g. save or close devices or files. 106 * to exit gracefully, e.g. save or close devices or files.
101 struct sigaction sa; 107 struct sigaction sa;
102 sa.sa_handler = ( void (*)(int) ) &segv_handler; 108 sa.sa_handler = ( void (*)(int) ) &segv_handler;
103 sa.sa_flags = SA_SIGINFO | SA_RESTART; 109 sa.sa_flags = SA_SIGINFO | SA_RESTART;
104 sigemptyset(&sa.sa_mask); 110 sigemptyset(&sa.sa_mask);
105 sigaction(SIGSEGV, &sa, NULL); 111 sigaction(SIGSEGV, &sa, NULL);
106 */ 112 */
107 } 113 }
108 else 114 else
109 { 115 {
110 ofatal << "OApplication: Can't create more than one OApplication object. Aborting." << oendl; 116 ofatal << "OApplication: Can't create more than one OApplication object. Aborting." << oendl;
111 //FIXME exit gracefully ? 117 //FIXME exit gracefully ?
112 ::exit( -1 ); 118 ::exit( -1 );
113 } 119 }
114} 120}
115 121
116 122
117void OApplication::showMainWidget( QWidget* widget, bool nomax ) 123void OApplication::showMainWidget( QWidget* widget, bool nomax )
118{ 124{
119 QPEApplication::showMainWidget( widget, nomax ); 125 QPEApplication::showMainWidget( widget, nomax );
120 widget->setCaption( _appname ); 126 widget->setCaption( _appname );
121} 127}
122 128
123 129
124void OApplication::setTitle( const QString& title ) const 130void OApplication::setTitle( const QString& title ) const
125{ 131{
126 if ( mainWidget() ) 132 if ( mainWidget() )
127 { 133 {
128 if ( !title.isNull() ) 134 if ( !title.isNull() )
129 mainWidget()->setCaption( QString(_appname) + QString( " - " ) + title ); 135 mainWidget()->setCaption( QString(_appname) + QString( " - " ) + title );
130 else 136 else
131 mainWidget()->setCaption( _appname ); 137 mainWidget()->setCaption( _appname );
132 } 138 }
133} 139}
134 140
135} 141}
136} 142}
diff --git a/libopie2/opiecore/oapplication.h b/libopie2/opiecore/oapplication.h
index 337fe5e..d34e6b1 100644
--- a/libopie2/opiecore/oapplication.h
+++ b/libopie2/opiecore/oapplication.h
@@ -1,111 +1,117 @@
1/* 1/*
2                 This file is part of the Opie Project 2                 This file is part of the Opie Project
3              Copyright (C) 2003 Michael 'Mickey' Lauer <mickey@Vanille.de> 3              Copyright (C) 2003 Michael 'Mickey' Lauer <mickey@Vanille.de>
4 =. 4 =.
5 .=l. 5 .=l.
6           .>+-= 6           .>+-=
7 _;:,     .>    :=|. This program is free software; you can 7 _;:,     .>    :=|. This program is free software; you can
8.> <`_,   >  .   <= redistribute it and/or modify it under 8.> <`_,   >  .   <= redistribute it and/or modify it under
9:`=1 )Y*s>-.--   : the terms of the GNU Library General Public 9:`=1 )Y*s>-.--   : the terms of the GNU Library General Public
10.="- .-=="i,     .._ License as published by the Free Software 10.="- .-=="i,     .._ License as published by the Free Software
11 - .   .-<_>     .<> Foundation; either version 2 of the License, 11 - .   .-<_>     .<> Foundation; either version 2 of the License,
12     ._= =}       : or (at your option) any later version. 12     ._= =}       : or (at your option) any later version.
13    .%`+i>       _;_. 13    .%`+i>       _;_.
14    .i_,=:_.      -<s. This program is distributed in the hope that 14    .i_,=:_.      -<s. This program is distributed in the hope that
15     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 15     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
16    : ..    .:,     . . . without even the implied warranty of 16    : ..    .:,     . . . without even the implied warranty of
17    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 17    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
18  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 18  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
19..}^=.=       =       ; Library General Public License for more 19..}^=.=       =       ; Library General Public License for more
20++=   -.     .`     .: details. 20++=   -.     .`     .: details.
21 :     =  ...= . :.=- 21 :     =  ...= . :.=-
22 -.   .:....=;==+<; You should have received a copy of the GNU 22 -.   .:....=;==+<; You should have received a copy of the GNU
23  -_. . .   )=.  = Library General Public License along with 23  -_. . .   )=.  = Library General Public License along with
24    --        :-=` this library; see the file COPYING.LIB. 24    --        :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 25 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, 26 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA. 27 Boston, MA 02111-1307, USA.
28*/ 28*/
29 29
30#ifndef OAPPLICATION_H 30#ifndef OAPPLICATION_H
31#define OAPPLICATION_H 31#define OAPPLICATION_H
32 32
33#define oApp Opie::Core::OApplication::oApplication() 33#define oApp Opie::Core::OApplication::oApplication()
34 34
35 35
36#include <qpe/qpeapplication.h> 36#include <qpe/qpeapplication.h>
37 37
38namespace Opie { 38namespace Opie {
39namespace Core { 39namespace Core {
40namespace Internal { 40namespace Internal {
41class OApplicationPrivate; 41class OApplicationPrivate;
42} // private class 42} // private class
43 43
44class OConfig; 44class OConfig;
45 45
46 46
47class OApplication : public QPEApplication 47class OApplication : public QPEApplication
48{ 48{
49 Q_OBJECT 49 Q_OBJECT
50 50
51 public: 51 public:
52
53 /**
54 * Constructor. Compatible to QPEApplication
55 */
56 OApplication( int& argc, char** argv, Type type=GuiClient);
57
52 /** 58 /**
53 * Constructor. Parses command-line arguments and sets the window caption. 59 * Constructor. Parses command-line arguments and sets the window caption.
54 * 60 *
55 * @param rAppName application name. Will be used for finding the 61 * @param rAppName application name. Will be used for finding the
56 * associated message, icon and configuration files 62 * associated message, icon and configuration files
57 * 63 *
58 */ 64 */
59 OApplication( int& argc, char** argv, const QCString& rAppName ); 65 OApplication( int& argc, char** argv, const QCString& rAppName );
60 /** 66 /**
61 * Destructor. Destroys the application object and its children. 67 * Destructor. Destroys the application object and its children.
62 */ 68 */
63 virtual ~OApplication(); 69 virtual ~OApplication();
64 /** 70 /**
65 * @returns the process-wide application object 71 * @returns the process-wide application object
66 * 72 *
67 * This is similar to the global @ref QApplication pointer qApp. It 73 * This is similar to the global @ref QApplication pointer qApp. It
68 * allows access to the single global OApplication object, since 74 * allows access to the single global OApplication object, since
69 * more than one cannot be created in the same application. It 75 * more than one cannot be created in the same application. It
70 * saves you the trouble of having to pass the pointer explicitly 76 * saves you the trouble of having to pass the pointer explicitly
71 * to every function that may require it. 77 * to every function that may require it.
72 */ 78 */
73 static OApplication* oApplication() { return _instance; }; 79 static OApplication* oApplication() { return _instance; };
74 /** 80 /**
75 * Returns the application name as given during creation. 81 * Returns the application name as given during creation.
76 * 82 *
77 * @returns a reference to the application name 83 * @returns a reference to the application name
78 */ 84 */
79 const QCString& appName() const { return _appname; }; 85 const QCString& appName() const { return _appname; };
80 /** 86 /**
81 * @returns the application session config object. 87 * @returns the application session config object.
82 * 88 *
83 * @see OConfig 89 * @see OConfig
84 */ 90 */
85 OConfig* config(); 91 OConfig* config();
86 /** 92 /**
87 * Shows the main @a widget and sets the name of the application as window caption. 93 * Shows the main @a widget and sets the name of the application as window caption.
88 */ 94 */
89 virtual void showMainWidget( QWidget* widget, bool nomax = false ); 95 virtual void showMainWidget( QWidget* widget, bool nomax = false );
90 /** 96 /**
91 * Set the application title. The application title will be concatenated 97 * Set the application title. The application title will be concatenated
92 * to the application name given in the constructor. 98 * to the application name given in the constructor.
93 * 99 *
94 * @param title the title. If not given, resets caption to appname 100 * @param title the title. If not given, resets caption to appname
95 */ 101 */
96 virtual void setTitle( const QString& title = QString::null ) const; 102 virtual void setTitle( const QString& title = QString::null ) const;
97 103
98 protected: 104 protected:
99 void init(); 105 void init();
100 106
101 private: 107 private:
102 const QCString _appname; 108 const QCString _appname;
103 static OApplication* _instance; 109 static OApplication* _instance;
104 OConfig* _config; 110 OConfig* _config;
105 Internal::OApplicationPrivate* d; 111 Internal::OApplicationPrivate* d;
106}; 112};
107 113
108} // Core 114} // Core
109} // Opie 115} // Opie
110 116
111#endif // OAPPLICATION_H 117#endif // OAPPLICATION_H