Diffstat (limited to 'libopie2/opiecore/oapplication.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | libopie2/opiecore/oapplication.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/libopie2/opiecore/oapplication.cpp b/libopie2/opiecore/oapplication.cpp index 0ce61d8..0164957 100644 --- a/libopie2/opiecore/oapplication.cpp +++ b/libopie2/opiecore/oapplication.cpp | |||
@@ -1,142 +1,149 @@ | |||
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 <qcopchannel_qws.h> | ||
35 | |||
36 | |||
34 | #include <signal.h> | 37 | #include <signal.h> |
35 | #include <stdio.h> | 38 | #include <stdio.h> |
36 | 39 | ||
37 | using namespace Opie::Core; | 40 | using namespace Opie::Core; |
38 | 41 | ||
39 | 42 | ||
40 | OApplication* OApplication::_instance = 0; | 43 | OApplication* OApplication::_instance = 0; |
41 | 44 | ||
42 | /************************************************************************************************** | 45 | /************************************************************************************************** |
43 | * OApplicationPrivate | 46 | * OApplicationPrivate |
44 | **************************************************************************************************/ | 47 | **************************************************************************************************/ |
45 | 48 | ||
46 | namespace Opie { | 49 | namespace Opie { |
47 | namespace Core { | 50 | namespace Core { |
48 | namespace Internal { | 51 | namespace Internal { |
49 | class OApplicationPrivate | 52 | class OApplicationPrivate |
50 | { | 53 | { |
51 | public: | 54 | public: |
52 | OApplicationPrivate() {}; | 55 | OApplicationPrivate() {}; |
53 | ~OApplicationPrivate() {}; | 56 | ~OApplicationPrivate() {}; |
54 | }; | 57 | }; |
55 | } | 58 | } |
56 | 59 | ||
57 | /************************************************************************************************** | 60 | /************************************************************************************************** |
58 | * OApplication | 61 | * OApplication |
59 | **************************************************************************************************/ | 62 | **************************************************************************************************/ |
60 | OApplication::OApplication( int& argc, char** argv, Type type ) | 63 | OApplication::OApplication( int& argc, char** argv, Type type ) |
61 | :QPEApplication( argc, argv, type ), | 64 | :QPEApplication( argc, argv, type ), |
62 | _appname( QString::null ), | 65 | _appname( QString::null ), |
63 | _config( 0 ) | 66 | _config( 0 ) |
64 | { | 67 | { |
65 | init(); | 68 | init(); |
66 | } | 69 | } |
67 | 70 | ||
68 | OApplication::OApplication( int& argc, char** argv, const QCString& rAppName ) | 71 | OApplication::OApplication( int& argc, char** argv, const QCString& rAppName ) |
69 | :QPEApplication( argc, argv ), | 72 | :QPEApplication( argc, argv ), |
70 | _appname( rAppName ), | 73 | _appname( rAppName ), |
71 | _config( 0 ) | 74 | _config( 0 ) |
72 | { | 75 | { |
73 | init(); | 76 | init(); |
74 | } | 77 | } |
75 | 78 | ||
76 | 79 | ||
77 | OApplication::~OApplication() | 80 | OApplication::~OApplication() |
78 | { | 81 | { |
79 | delete d; | 82 | delete d; |
80 | if ( _config ) | 83 | if ( _config ) |
81 | delete _config; | 84 | delete _config; |
82 | OApplication::_instance = 0; | 85 | OApplication::_instance = 0; |
83 | // after deconstruction of the one-and-only application object, | 86 | // after deconstruction of the one-and-only application object, |
84 | // the construction of another object is allowed | 87 | // the construction of another object is allowed |
85 | } | 88 | } |
86 | 89 | ||
87 | 90 | ||
88 | OConfig* OApplication::config() | 91 | OConfig* OApplication::config() |
89 | { | 92 | { |
90 | if ( !_config ) | 93 | if ( !_config ) |
91 | { | 94 | { |
92 | _config = new OConfig( _appname ); | 95 | _config = new OConfig( _appname ); |
93 | } | 96 | } |
94 | return _config; | 97 | return _config; |
95 | } | 98 | } |
96 | 99 | ||
97 | 100 | ||
98 | void OApplication::init() | 101 | void OApplication::init() |
99 | { | 102 | { |
100 | d = new Internal::OApplicationPrivate(); | 103 | d = new Internal::OApplicationPrivate(); |
101 | if ( !OApplication::_instance ) | 104 | if ( !OApplication::_instance ) |
102 | { | 105 | { |
103 | OApplication::_instance = this; | 106 | OApplication::_instance = this; |
104 | 107 | ||
108 | QCopChannel *chan = new QCopChannel("QPE/System", this, "OApplication System Channel"); | ||
109 | connect(chan,SIGNAL(received(const QCString&,const QByteArray&)), | ||
110 | this,SIGNAL(systemMessageSignal(const QCString&,const QByteArray&))); | ||
111 | |||
105 | /* register SIGSEGV handler to give programs an option | 112 | /* register SIGSEGV handler to give programs an option |
106 | * to exit gracefully, e.g. save or close devices or files. | 113 | * to exit gracefully, e.g. save or close devices or files. |
107 | struct sigaction sa; | 114 | struct sigaction sa; |
108 | sa.sa_handler = ( void (*)(int) ) &segv_handler; | 115 | sa.sa_handler = ( void (*)(int) ) &segv_handler; |
109 | sa.sa_flags = SA_SIGINFO | SA_RESTART; | 116 | sa.sa_flags = SA_SIGINFO | SA_RESTART; |
110 | sigemptyset(&sa.sa_mask); | 117 | sigemptyset(&sa.sa_mask); |
111 | sigaction(SIGSEGV, &sa, NULL); | 118 | sigaction(SIGSEGV, &sa, NULL); |
112 | */ | 119 | */ |
113 | } | 120 | } |
114 | else | 121 | else |
115 | { | 122 | { |
116 | ofatal << "OApplication: Can't create more than one OApplication object. Aborting." << oendl; | 123 | ofatal << "OApplication: Can't create more than one OApplication object. Aborting." << oendl; |
117 | //FIXME exit gracefully ? | 124 | //FIXME exit gracefully ? |
118 | ::exit( -1 ); | 125 | ::exit( -1 ); |
119 | } | 126 | } |
120 | } | 127 | } |
121 | 128 | ||
122 | 129 | ||
123 | void OApplication::showMainWidget( QWidget* widget, bool nomax ) | 130 | void OApplication::showMainWidget( QWidget* widget, bool nomax ) |
124 | { | 131 | { |
125 | QPEApplication::showMainWidget( widget, nomax ); | 132 | QPEApplication::showMainWidget( widget, nomax ); |
126 | widget->setCaption( _appname ); | 133 | widget->setCaption( _appname ); |
127 | } | 134 | } |
128 | 135 | ||
129 | 136 | ||
130 | void OApplication::setTitle( const QString& title ) const | 137 | void OApplication::setTitle( const QString& title ) const |
131 | { | 138 | { |
132 | if ( mainWidget() ) | 139 | if ( mainWidget() ) |
133 | { | 140 | { |
134 | if ( !title.isNull() ) | 141 | if ( !title.isNull() ) |
135 | mainWidget()->setCaption( QString(_appname) + QString( " - " ) + title ); | 142 | mainWidget()->setCaption( QString(_appname) + QString( " - " ) + title ); |
136 | else | 143 | else |
137 | mainWidget()->setCaption( _appname ); | 144 | mainWidget()->setCaption( _appname ); |
138 | } | 145 | } |
139 | } | 146 | } |
140 | 147 | ||
141 | } | 148 | } |
142 | } | 149 | } |