summaryrefslogtreecommitdiff
path: root/library/qt_override.cpp
authorzecke <zecke>2004-05-17 21:15:42 (UTC)
committer zecke <zecke>2004-05-17 21:15:42 (UTC)
commit598c9bc76840120fa3efdb000461bae2c1fef639 (patch) (unidiff)
tree4cf0c66149f7bee38a2bcface9e7fbfd0d28b85a /library/qt_override.cpp
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/qt_override.cpp') (more/less context) (show whitespace changes)
-rw-r--r--library/qt_override.cpp9
1 files changed, 8 insertions, 1 deletions
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.