-rw-r--r-- | libopie2/opiecore/oapplication.cpp | 8 | ||||
-rw-r--r-- | libopie2/opiecore/oapplication.h | 6 |
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 | ||
37 | using namespace Opie::Core; | 37 | using namespace Opie::Core; |
38 | 38 | ||
39 | 39 | ||
40 | OApplication* OApplication::_instance = 0; | 40 | OApplication* OApplication::_instance = 0; |
41 | 41 | ||
42 | /************************************************************************************************** | 42 | /************************************************************************************************** |
43 | * OApplicationPrivate | 43 | * OApplicationPrivate |
44 | **************************************************************************************************/ | 44 | **************************************************************************************************/ |
45 | 45 | ||
46 | namespace Opie { | 46 | namespace Opie { |
47 | namespace Core { | 47 | namespace Core { |
48 | namespace Internal { | 48 | namespace Internal { |
49 | class OApplicationPrivate | 49 | class 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 | 60 | OApplication::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 | ||
62 | OApplication::OApplication( int& argc, char** argv, const QCString& rAppName ) | 68 | OApplication::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 | ||
71 | OApplication::~OApplication() | 77 | OApplication::~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 | ||
82 | OConfig* OApplication::config() | 88 | OConfig* 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 | ||
92 | void OApplication::init() | 98 | void 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 | ||
117 | void OApplication::showMainWidget( QWidget* widget, bool nomax ) | 123 | void 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 | ||
124 | void OApplication::setTitle( const QString& title ) const | 130 | void 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 | ||
38 | namespace Opie { | 38 | namespace Opie { |
39 | namespace Core { | 39 | namespace Core { |
40 | namespace Internal { | 40 | namespace Internal { |
41 | class OApplicationPrivate; | 41 | class OApplicationPrivate; |
42 | } // private class | 42 | } // private class |
43 | 43 | ||
44 | class OConfig; | 44 | class OConfig; |
45 | 45 | ||
46 | 46 | ||
47 | class OApplication : public QPEApplication | 47 | class 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 |