summaryrefslogtreecommitdiff
path: root/library
authorzecke <zecke>2004-05-17 21:15:42 (UTC)
committer zecke <zecke>2004-05-17 21:15:42 (UTC)
commit598c9bc76840120fa3efdb000461bae2c1fef639 (patch) (unidiff)
tree4cf0c66149f7bee38a2bcface9e7fbfd0d28b85a /library
parent1827ce23d0719a22c14613dc5859093818da1d0a (diff)
downloadopie-598c9bc76840120fa3efdb000461bae2c1fef639.zip
opie-598c9bc76840120fa3efdb000461bae2c1fef639.tar.gz
opie-598c9bc76840120fa3efdb000461bae2c1fef639.tar.bz2
ich@opiezilla:~/programming/opie/head/opie$ nm lib/libopiecore2.so | grep polish
U _ZN14QPEApplication6polishEP7QWidget ich@opiezilla:~/programming/opie/head/opie$ nm lib/libopiecore2.so | grep polish U _ZN12QApplication6polishEP7QWidget in qt_override we had to overwrite the Palette for some widgets for some styles (setting no background liquid and such) we overwrote the polish method. As we did not inherit from QPEApplication the 'polish' symbol was only internal to libqpe and this way Opie apps worked on Opies and Sharps libqpe, and Sharp apps work on our libqpe. Now with libopiecore the compiler tries to include different symbols as shown above. So for now we could disable the legacy palette polishing which shouldn't hurt anyway. OApplication is the source of all evil, we wouldn't 'pull' in the polish symbol... but having a 'shadow' weak symbol as backup isn't good as well. Chicken you may enable the option in config.in...
Diffstat (limited to 'library') (more/less context) (show whitespace changes)
-rw-r--r--library/qpeapplication.h2
-rw-r--r--library/qt_override.cpp9
2 files changed, 10 insertions, 1 deletions
diff --git a/library/qpeapplication.h b/library/qpeapplication.h
index 8c85ad0..d2782e4 100644
--- a/library/qpeapplication.h
+++ b/library/qpeapplication.h
@@ -143,51 +143,53 @@ signals:
143 void volumeChanged( bool muted ); 143 void volumeChanged( bool muted );
144 void appMessage( const QCString& msg, const QByteArray& data); 144 void appMessage( const QCString& msg, const QByteArray& data);
145 void weekChanged( bool startOnMonday ); 145 void weekChanged( bool startOnMonday );
146 void dateFormatChanged( DateFormat ); 146 void dateFormatChanged( DateFormat );
147 void flush(); 147 void flush();
148 void reload(); 148 void reload();
149 /* linkChanged signal */ 149 /* linkChanged signal */
150 150
151private slots: 151private slots:
152 void systemMessage( const QCString &msg, const QByteArray &data ); 152 void systemMessage( const QCString &msg, const QByteArray &data );
153 void pidMessage( const QCString &msg, const QByteArray &data ); 153 void pidMessage( const QCString &msg, const QByteArray &data );
154 void removeSenderFromStylusDict(); 154 void removeSenderFromStylusDict();
155 void hideOrQuit(); 155 void hideOrQuit();
156 156
157protected: 157protected:
158 bool qwsEventFilter( QWSEvent * ); 158 bool qwsEventFilter( QWSEvent * );
159 void internalSetStyle( const QString &style ); 159 void internalSetStyle( const QString &style );
160 void prepareForTermination(bool willrestart); 160 void prepareForTermination(bool willrestart);
161 virtual void restart(); 161 virtual void restart();
162 virtual void shutdown(); 162 virtual void shutdown();
163 bool eventFilter( QObject *, QEvent * ); 163 bool eventFilter( QObject *, QEvent * );
164 void timerEvent( QTimerEvent * ); 164 void timerEvent( QTimerEvent * );
165 bool raiseAppropriateWindow(); 165 bool raiseAppropriateWindow();
166 virtual void tryQuit(); 166 virtual void tryQuit();
167#ifndef OPIE_NO_ERASE_RECT_HACKFIX
167#if QT_VERSION > 233 168#if QT_VERSION > 233
168 virtual void polish ( QWidget * ); // this is actually implemented in qt_override.cpp (!) 169 virtual void polish ( QWidget * ); // this is actually implemented in qt_override.cpp (!)
169#endif 170#endif
171#endif
170private: 172private:
171#ifndef QT_NO_TRANSLATION 173#ifndef QT_NO_TRANSLATION
172 void installTranslation( const QString& baseName ); 174 void installTranslation( const QString& baseName );
173#endif 175#endif
174 void mapToDefaultAction( QWSKeyEvent *ke, int defKey ); 176 void mapToDefaultAction( QWSKeyEvent *ke, int defKey );
175 void processQCopFile(); 177 void processQCopFile();
176 178
177#if defined(Q_WS_QWS) && !defined(QT_NO_COP) 179#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
178 QCopChannel *sysChannel; 180 QCopChannel *sysChannel;
179 QCopChannel *pidChannel; 181 QCopChannel *pidChannel;
180#endif 182#endif
181 QPEApplicationData *d; 183 QPEApplicationData *d;
182 184
183 bool reserved_sh; 185 bool reserved_sh;
184 186
185 187
186 188
187}; 189};
188 190
189inline void QPEApplication::showDialog( QDialog* d, bool nomax ) 191inline void QPEApplication::showDialog( QDialog* d, bool nomax )
190{ 192{
191 showWidget( d, nomax ); 193 showWidget( d, nomax );
192} 194}
193 195
diff --git a/library/qt_override.cpp b/library/qt_override.cpp
index 4d1f475..56f82d7 100644
--- a/library/qt_override.cpp
+++ b/library/qt_override.cpp
@@ -1,55 +1,60 @@
1 1
2#include <qpe/qpeapplication.h> 2#include <qpe/qpeapplication.h>
3#include <qfontdatabase.h> 3#include <qfontdatabase.h>
4 4
5#include <unistd.h> 5#include <unistd.h>
6#include <stdlib.h> 6#include <stdlib.h>
7#include <stdio.h> 7#include <stdio.h>
8#include <limits.h> 8#include <limits.h>
9#include <sys/param.h> // for toolchains with old libc headers 9#include <sys/param.h> // for toolchains with old libc headers
10 10
11#include "qt_override_p.h" 11#include "qt_override_p.h"
12 12
13#if QT_VERSION > 233 13#if QT_VERSION > 233
14 14
15#ifndef OPIE_NO_ERASE_RECT_HACKFIX
15struct color_fix_t { 16struct color_fix_t {
16 char *m_app; 17 char *m_app;
17 char *m_class; 18 char *m_class;
18 char *m_name; 19 char *m_name;
19 QColorGroup::ColorRole m_set; 20 QColorGroup::ColorRole m_set;
20 QColorGroup::ColorRole m_get; 21 QColorGroup::ColorRole m_get;
21}; 22};
22 23
23#ifndef OPIE_NO_OVERRIDE_QT 24
24 25
25static const color_fix_t apps_that_need_special_colors [] = { 26static const color_fix_t apps_that_need_special_colors [] = {
26 { "HancomMobileWord", "HTextEdit", 0, QColorGroup::Background, QColorGroup::Base }, 27 { "HancomMobileWord", "HTextEdit", 0, QColorGroup::Background, QColorGroup::Base },
27 { "neocal", "Display", 0, QColorGroup::Background, QColorGroup::Base }, 28 { "neocal", "Display", 0, QColorGroup::Background, QColorGroup::Base },
28 29
29 { 0, 0, 0, QColorGroup::Base, QColorGroup::Base } 30 { 0, 0, 0, QColorGroup::Base, QColorGroup::Base }
30}; 31};
31 32
33#endif
34
35#ifndef OPIE_NO_OVERRIDE_QT
36
32static const char * const apps_that_need_pointsizes_times_10 [] = { 37static const char * const apps_that_need_pointsizes_times_10 [] = {
33 "HancomMobileWord", 38 "HancomMobileWord",
34 "hancomsheet", 39 "hancomsheet",
35 "HancomPresenterViewer", 40 "HancomPresenterViewer",
36 41
37 0 42 0
38}; 43};
39 44
40 45
41 46
42 47
43int Opie::force_appearance = 0; 48int Opie::force_appearance = 0;
44 49
45 50
46// Return the *real* name of the binary - not just a quick guess 51// Return the *real* name of the binary - not just a quick guess
47// by looking at argv [0] (which could be anything) 52// by looking at argv [0] (which could be anything)
48 53
49static void binaryNameFree ( ) 54static void binaryNameFree ( )
50{ 55{
51 ::free ((void *) Opie::binaryName ( )); // we need to cast away the const here 56 ::free ((void *) Opie::binaryName ( )); // we need to cast away the const here
52} 57}
53 58
54const char *Opie::binaryName ( ) 59const char *Opie::binaryName ( )
55{ 60{
@@ -68,69 +73,71 @@ const char *Opie::binaryName ( )
68 73
69 ::atexit ( binaryNameFree ); 74 ::atexit ( binaryNameFree );
70 } 75 }
71 return appname; 76 return appname;
72} 77}
73 78
74#else 79#else
75int Opie::force_appearance = 0; 80int Opie::force_appearance = 0;
76#endif 81#endif
77 82
78// Fix for a toolchain incompatibility (binaries compiled with 83// Fix for a toolchain incompatibility (binaries compiled with
79// old tcs using shared libs compiled with newer tcs) 84// old tcs using shared libs compiled with newer tcs)
80 85
81extern "C" { 86extern "C" {
82 87
83extern void __gmon_start__ ( ) __attribute__(( weak )); 88extern void __gmon_start__ ( ) __attribute__(( weak ));
84 89
85extern void __gmon_start__ ( ) 90extern void __gmon_start__ ( )
86{ 91{
87} 92}
88 93
89} 94}
90 95
91 96
97#ifndef OPIE_NO_ERASE_RECT_HACKFIX
92// Fix for apps, that use QPainter::eraseRect() which doesn't work with styles 98// Fix for apps, that use QPainter::eraseRect() which doesn't work with styles
93// that set a background pixmap (it would be easier to fix eraseRect(), but 99// that set a background pixmap (it would be easier to fix eraseRect(), but
94// TT made it an inline ...) 100// TT made it an inline ...)
95 101
96void QPEApplication::polish ( QWidget *w ) 102void QPEApplication::polish ( QWidget *w )
97{ 103{
98#ifndef OPIE_NO_OVERRIDE_QT 104#ifndef OPIE_NO_OVERRIDE_QT
99 //qDebug ( "QPEApplication::polish()" ); 105 //qDebug ( "QPEApplication::polish()" );
100 106
101 for ( const color_fix_t *ptr = apps_that_need_special_colors; ptr-> m_app; ptr++ ) { 107 for ( const color_fix_t *ptr = apps_that_need_special_colors; ptr-> m_app; ptr++ ) {
102 if (( ::strcmp ( Opie::binaryName ( ), ptr-> m_app ) == 0 ) && 108 if (( ::strcmp ( Opie::binaryName ( ), ptr-> m_app ) == 0 ) &&
103 ( ptr-> m_class ? w-> inherits ( ptr-> m_class ) : true ) && 109 ( ptr-> m_class ? w-> inherits ( ptr-> m_class ) : true ) &&
104 ( ptr-> m_name ? ( ::strcmp ( w-> name ( ), ptr-> m_name ) == 0 ) : true )) { 110 ( ptr-> m_name ? ( ::strcmp ( w-> name ( ), ptr-> m_name ) == 0 ) : true )) {
105 QPalette pal = w-> palette ( ); 111 QPalette pal = w-> palette ( );
106 pal. setColor ( ptr-> m_set, pal. color ( QPalette::Active, ptr-> m_get )); 112 pal. setColor ( ptr-> m_set, pal. color ( QPalette::Active, ptr-> m_get ));
107 w-> setPalette ( pal ); 113 w-> setPalette ( pal );
108 } 114 }
109 } 115 }
110#endif 116#endif
111 QApplication::polish ( w ); 117 QApplication::polish ( w );
112} 118}
119#endif
113 120
114 121
115#ifndef OPIE_NO_OVERRIDE_QT 122#ifndef OPIE_NO_OVERRIDE_QT
116// Fix for the binary incompatibility that TT introduced in Qt/E 2.3.4 -- point sizes 123// Fix for the binary incompatibility that TT introduced in Qt/E 2.3.4 -- point sizes
117// were multiplied by 10 (which was incorrect) 124// were multiplied by 10 (which was incorrect)
118 125
119QValueList <int> QFontDatabase::pointSizes ( QString const &family, QString const &style, QString const &charset ) 126QValueList <int> QFontDatabase::pointSizes ( QString const &family, QString const &style, QString const &charset )
120{ 127{
121 //qDebug ( "QFontDatabase::pointSizes()" ); 128 //qDebug ( "QFontDatabase::pointSizes()" );
122 129
123 QValueList <int> sl = pointSizes_NonWeak ( family, style, charset ); 130 QValueList <int> sl = pointSizes_NonWeak ( family, style, charset );
124 131
125 for ( const char * const *ptr = apps_that_need_pointsizes_times_10; *ptr; ptr++ ) { 132 for ( const char * const *ptr = apps_that_need_pointsizes_times_10; *ptr; ptr++ ) {
126 if ( ::strcmp ( Opie::binaryName ( ), *ptr ) == 0 ) { 133 if ( ::strcmp ( Opie::binaryName ( ), *ptr ) == 0 ) {
127 for ( QValueList <int>::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) 134 for ( QValueList <int>::Iterator it = sl. begin ( ); it != sl. end ( ); ++it )
128 *it *= 10; 135 *it *= 10;
129 } 136 }
130 } 137 }
131 return sl; 138 return sl;
132} 139}
133 140
134 141
135// Various style/font/color related overrides for weak symbols in Qt/E, 142// Various style/font/color related overrides for weak symbols in Qt/E,
136// which allows us to force the usage of the global Opie appearance. 143// which allows us to force the usage of the global Opie appearance.