-rw-r--r-- | Rules.make | 6 | ||||
-rw-r--r-- | config.in | 8 | ||||
-rw-r--r-- | library/library.pro | 6 | ||||
-rw-r--r-- | library/qpeapplication.cpp | 40 | ||||
-rw-r--r-- | library/qpeapplication.h | 5 | ||||
-rw-r--r-- | library/qt_override.cpp | 170 | ||||
-rw-r--r-- | library/qt_override_p.h | 25 | ||||
-rw-r--r-- | noncore/settings/appearance2/appearance.cpp | 210 | ||||
-rw-r--r-- | noncore/settings/appearance2/appearance.h | 8 |
9 files changed, 5 insertions, 473 deletions
@@ -1,319 +1,313 @@ | |||
1 | .phony: force | 1 | .phony: force |
2 | force: | 2 | force: |
3 | 3 | ||
4 | $(configs) : | 4 | $(configs) : |
5 | $(call makecfg,$@) | 5 | $(call makecfg,$@) |
6 | 6 | ||
7 | $(TOPDIR)/gen.pro : $(TOPDIR)/.config | 7 | $(TOPDIR)/gen.pro : $(TOPDIR)/.config |
8 | echo > $@ | 8 | echo > $@ |
9 | # added for threaded version | 9 | # added for threaded version |
10 | ifneq ($(CONFIG_THREADED),) | 10 | ifneq ($(CONFIG_THREADED),) |
11 | echo CONFIG += thread >> $@ | 11 | echo CONFIG += thread >> $@ |
12 | else | 12 | else |
13 | echo CONFIG -= thread >> $@ | 13 | echo CONFIG -= thread >> $@ |
14 | endif | 14 | endif |
15 | # added for auto stripped build | 15 | # added for auto stripped build |
16 | ifneq ($(CONFIG_STRIP),) | 16 | ifneq ($(CONFIG_STRIP),) |
17 | echo CONFIG += strip >> $@ | 17 | echo CONFIG += strip >> $@ |
18 | endif | 18 | endif |
19 | ifneq ($(CONFIG_DEBUG),) | 19 | ifneq ($(CONFIG_DEBUG),) |
20 | echo CONFIG += debug >> $@ | 20 | echo CONFIG += debug >> $@ |
21 | echo CONFIG -= release >> $@ | 21 | echo CONFIG -= release >> $@ |
22 | echo DEFINES += "QT_COMPONENT_DEBUG=2" >> $@ | 22 | echo DEFINES += "QT_COMPONENT_DEBUG=2" >> $@ |
23 | echo DEFINES += QT_DEBUG >> $@ | 23 | echo DEFINES += QT_DEBUG >> $@ |
24 | else | 24 | else |
25 | echo CONFIG -= debug >> $@ | 25 | echo CONFIG -= debug >> $@ |
26 | echo CONFIG += release >> $@ | 26 | echo CONFIG += release >> $@ |
27 | echo DEFINES += "OPIE_NO_DEBUG" >> $@ | 27 | echo DEFINES += "OPIE_NO_DEBUG" >> $@ |
28 | endif | 28 | endif |
29 | ifeq ($(CONFIG_STATIC),y) | 29 | ifeq ($(CONFIG_STATIC),y) |
30 | echo !contains\( TARGET,qpe \) \{ >> $@ | 30 | echo !contains\( TARGET,qpe \) \{ >> $@ |
31 | echo CONFIG += staticlib >> $@ | 31 | echo CONFIG += staticlib >> $@ |
32 | echo \} >> $@ | 32 | echo \} >> $@ |
33 | endif | 33 | endif |
34 | ifeq ($(filter 3.%,$(QTE_VERSION)),) # not qt3 | 34 | ifeq ($(filter 3.%,$(QTE_VERSION)),) # not qt3 |
35 | echo CONFIG -= qt3 >> $@ | 35 | echo CONFIG -= qt3 >> $@ |
36 | else | 36 | else |
37 | echo CONFIG += qt3 >> $@ | 37 | echo CONFIG += qt3 >> $@ |
38 | endif | 38 | endif |
39 | ifneq ($(CONFIG_QUICK_LAUNCH),) | 39 | ifneq ($(CONFIG_QUICK_LAUNCH),) |
40 | echo contains\( CONFIG, quick-app \) \{ >> $@ | 40 | echo contains\( CONFIG, quick-app \) \{ >> $@ |
41 | echo CONFIG -= staticlib >> $@ | 41 | echo CONFIG -= staticlib >> $@ |
42 | echo CONFIG -= quick-app >> $@ | 42 | echo CONFIG -= quick-app >> $@ |
43 | echo CONFIG += quick-app-lib >> $@ | 43 | echo CONFIG += quick-app-lib >> $@ |
44 | echo QUICKLAUNCH_PATH = $(CONFIG_QUICKLAUNCH_PATH) >> $@ | 44 | echo QUICKLAUNCH_PATH = $(CONFIG_QUICKLAUNCH_PATH) >> $@ |
45 | echo \} >> $@ | 45 | echo \} >> $@ |
46 | else | 46 | else |
47 | echo contains\( CONFIG, quick-app \) \{ >> $@ | 47 | echo contains\( CONFIG, quick-app \) \{ >> $@ |
48 | echo CONFIG -= quick-app >> $@ | 48 | echo CONFIG -= quick-app >> $@ |
49 | echo CONFIG += quick-app-bin >> $@ | 49 | echo CONFIG += quick-app-bin >> $@ |
50 | echo \} >> $@ | 50 | echo \} >> $@ |
51 | endif | 51 | endif |
52 | ifeq ($(CONFIG_SQL_PIM_BACKEND),y) | 52 | ifeq ($(CONFIG_SQL_PIM_BACKEND),y) |
53 | echo ENABLE_SQL_PIM_BACKEND=$(CONFIG_SQL_PIM_BACKEND) >> $@ | 53 | echo ENABLE_SQL_PIM_BACKEND=$(CONFIG_SQL_PIM_BACKEND) >> $@ |
54 | else | 54 | else |
55 | echo ENABLE_SQL_PIM_BACKEND=n >> $@ | 55 | echo ENABLE_SQL_PIM_BACKEND=n >> $@ |
56 | endif | 56 | endif |
57 | ifeq ($(CONFIG_OPIE_NO_OVERRIDE_QT),y) | ||
58 | echo CONFIG += no-override >> $@ | ||
59 | endif | ||
60 | ifeq ($(CONFIG_OPIELOGIN_USEPAM),y) | 57 | ifeq ($(CONFIG_OPIELOGIN_USEPAM),y) |
61 | echo CONFIG += OPIELOGIN_USEPAM >> $@ | 58 | echo CONFIG += OPIELOGIN_USEPAM >> $@ |
62 | endif | 59 | endif |
63 | ifeq ($(CONFIG_LIBQPE_WITHROHFEEDBACK),y) | 60 | ifeq ($(CONFIG_LIBQPE_WITHROHFEEDBACK),y) |
64 | echo CONFIG += LIBQPE_WITHROHFEEDBACK >> $@ | 61 | echo CONFIG += LIBQPE_WITHROHFEEDBACK >> $@ |
65 | endif | 62 | endif |
66 | ifeq ($(CONFIG_OPIE_NO_ERASERECT_FIX),y) | ||
67 | echo DEFINES += OPIE_NO_ERASE_RECT_HACKFIX >> $@ | ||
68 | endif | ||
69 | ifeq ($(CONFIG_OPIE_NO_BUILTIN_SHUTDOWN),y) | 63 | ifeq ($(CONFIG_OPIE_NO_BUILTIN_SHUTDOWN),y) |
70 | echo DEFINES += OPIE_NO_BUILTIN_SHUTDOWN >> $@ | 64 | echo DEFINES += OPIE_NO_BUILTIN_SHUTDOWN >> $@ |
71 | endif | 65 | endif |
72 | ifeq ($(CONFIG_OPIE_NO_BUILTIN_CALIBRATE),y) | 66 | ifeq ($(CONFIG_OPIE_NO_BUILTIN_CALIBRATE),y) |
73 | echo DEFINES += OPIE_NO_BUILTIN_CALIBRATE >> $@ | 67 | echo DEFINES += OPIE_NO_BUILTIN_CALIBRATE >> $@ |
74 | endif | 68 | endif |
75 | ifeq ($(CONFIG_USE_REALTIME_AUDIO_THREAD),y) | 69 | ifeq ($(CONFIG_USE_REALTIME_AUDIO_THREAD),y) |
76 | echo DEFINES += USE_REALTIME_AUDIO_THREAD >> $@ | 70 | echo DEFINES += USE_REALTIME_AUDIO_THREAD >> $@ |
77 | endif | 71 | endif |
78 | ifeq ($(CONFIG_USE_FILE_NOTIFICATION),y) | 72 | ifeq ($(CONFIG_USE_FILE_NOTIFICATION),y) |
79 | echo DEFINES += USE_FILE_NOTIFICATION >> $@ | 73 | echo DEFINES += USE_FILE_NOTIFICATION >> $@ |
80 | endif | 74 | endif |
81 | ifeq ($(CONFIG_QT_QWS_ALLOW_CLOCK),y) | 75 | ifeq ($(CONFIG_QT_QWS_ALLOW_CLOCK),y) |
82 | echo DEFINES += QT_QWS_ALLOW_OVERCLOCK >> $@ | 76 | echo DEFINES += QT_QWS_ALLOW_OVERCLOCK >> $@ |
83 | endif | 77 | endif |
84 | ifeq ($(CONFIG_OPIE_NEW_ALLOC),y) | 78 | ifeq ($(CONFIG_OPIE_NEW_ALLOC),y) |
85 | echo DEFINES += OPIE_NEW_MALLOC >> $@ | 79 | echo DEFINES += OPIE_NEW_MALLOC >> $@ |
86 | endif | 80 | endif |
87 | ifeq ($(CONFIG_OPIE_NO_SOUND_PCM_READ_BITS),y) | 81 | ifeq ($(CONFIG_OPIE_NO_SOUND_PCM_READ_BITS),y) |
88 | echo DEFINES += OPIE_NO_SOUND_PCM_READ_BITS >> $@ | 82 | echo DEFINES += OPIE_NO_SOUND_PCM_READ_BITS >> $@ |
89 | endif | 83 | endif |
90 | echo DEFINES += OPIE_SOUND_FRAGMENT_SHIFT=$(CONFIG_OPIE_SOUND_FRAGMENT_SHIFT) >> $@ | 84 | echo DEFINES += OPIE_SOUND_FRAGMENT_SHIFT=$(CONFIG_OPIE_SOUND_FRAGMENT_SHIFT) >> $@ |
91 | ifeq ($(CONFIG_OPIE_WE_VERSION_OVERRIDE),y) | 85 | ifeq ($(CONFIG_OPIE_WE_VERSION_OVERRIDE),y) |
92 | echo DEFINES += OPIE_WE_VERSION=$(CONFIG_OPIE_WE_VERSION) >> $@ | 86 | echo DEFINES += OPIE_WE_VERSION=$(CONFIG_OPIE_WE_VERSION) >> $@ |
93 | endif | 87 | endif |
94 | ifeq ($(CONFIG_OPIE_TASKBAR_LOCK_KEY_STATE),y) | 88 | ifeq ($(CONFIG_OPIE_TASKBAR_LOCK_KEY_STATE),y) |
95 | echo DEFINES += OPIE_TASKBAR_LOCK_KEY_STATE >> $@ | 89 | echo DEFINES += OPIE_TASKBAR_LOCK_KEY_STATE >> $@ |
96 | endif | 90 | endif |
97 | # Write LIB dirs and INC dirs... | 91 | # Write LIB dirs and INC dirs... |
98 | ifeq ($(CONFIG_LIBETPAN_DEP),y) | 92 | ifeq ($(CONFIG_LIBETPAN_DEP),y) |
99 | echo LIBETPAN_LIB_DIR = $(CONFIG_LIBETPAN_LIB_DIR) >> $@ | 93 | echo LIBETPAN_LIB_DIR = $(CONFIG_LIBETPAN_LIB_DIR) >> $@ |
100 | echo LIBETPAN_INC_DIR = $(CONFIG_LIBETPAN_INC_DIR) >> $@ | 94 | echo LIBETPAN_INC_DIR = $(CONFIG_LIBETPAN_INC_DIR) >> $@ |
101 | endif | 95 | endif |
102 | ifeq ($(CONFIG_LIBPCAP_DEP),y) | 96 | ifeq ($(CONFIG_LIBPCAP_DEP),y) |
103 | echo LIBPCAP_LIB_DIR = $(CONFIG_LIBPCAP_LIB_DIR) >> $@ | 97 | echo LIBPCAP_LIB_DIR = $(CONFIG_LIBPCAP_LIB_DIR) >> $@ |
104 | echo LIBPCAP_INC_DIR = $(CONFIG_LIBPCAP_INC_DIR) >> $@ | 98 | echo LIBPCAP_INC_DIR = $(CONFIG_LIBPCAP_INC_DIR) >> $@ |
105 | endif | 99 | endif |
106 | ifeq ($(CONFIG_LIBSQLITE_DEP),y) | 100 | ifeq ($(CONFIG_LIBSQLITE_DEP),y) |
107 | echo LIBSQLITE_LIB_DIR = $(CONFIG_LIBSQLITE_LIB_DIR) >> $@ | 101 | echo LIBSQLITE_LIB_DIR = $(CONFIG_LIBSQLITE_LIB_DIR) >> $@ |
108 | echo LIBSQLITE_INC_DIR = $(CONFIG_LIBSQLITE_INC_DIR) >> $@ | 102 | echo LIBSQLITE_INC_DIR = $(CONFIG_LIBSQLITE_INC_DIR) >> $@ |
109 | endif | 103 | endif |
110 | ifeq ($(CONFIG_LIBXINE_DEP),y) | 104 | ifeq ($(CONFIG_LIBXINE_DEP),y) |
111 | echo LIBXINE_LIB_DIR = $(CONFIG_LIBXINE_LIB_DIR) >> $@ | 105 | echo LIBXINE_LIB_DIR = $(CONFIG_LIBXINE_LIB_DIR) >> $@ |
112 | echo LIBXINE_INC_DIR = $(CONFIG_LIBXINE_INC_DIR) >> $@ | 106 | echo LIBXINE_INC_DIR = $(CONFIG_LIBXINE_INC_DIR) >> $@ |
113 | endif | 107 | endif |
114 | ifeq ($(CONFIG_LIBBLUEZ_DEP),y) | 108 | ifeq ($(CONFIG_LIBBLUEZ_DEP),y) |
115 | echo LIBBLUEZ_LIB_DIR = $(CONFIG_LIBBLUEZ_LIB_DIR) >> $@ | 109 | echo LIBBLUEZ_LIB_DIR = $(CONFIG_LIBBLUEZ_LIB_DIR) >> $@ |
116 | echo LIBBLUEZ_INC_DIR = $(CONFIG_LIBBLUEZ_INC_DIR) >> $@ | 110 | echo LIBBLUEZ_INC_DIR = $(CONFIG_LIBBLUEZ_INC_DIR) >> $@ |
117 | endif | 111 | endif |
118 | ifeq ($(CONFIG_LIBIPK_DEP),y) | 112 | ifeq ($(CONFIG_LIBIPK_DEP),y) |
119 | echo LIBIPK_LIB_DIR = $(CONFIG_LIBIPK_LIB_DIR) >> $@ | 113 | echo LIBIPK_LIB_DIR = $(CONFIG_LIBIPK_LIB_DIR) >> $@ |
120 | echo LIBIPK_INC_DIR = $(CONFIG_LIBIPK_INC_DIR) >> $@ | 114 | echo LIBIPK_INC_DIR = $(CONFIG_LIBIPK_INC_DIR) >> $@ |
121 | endif | 115 | endif |
122 | ifeq ($(CONFIG_LIBSDK_DEP),y) | 116 | ifeq ($(CONFIG_LIBSDK_DEP),y) |
123 | echo LIBSDL_LIB_DIR = $(CONFIG_LIBSDL_LIB_DIR) >> $@ | 117 | echo LIBSDL_LIB_DIR = $(CONFIG_LIBSDL_LIB_DIR) >> $@ |
124 | echo LIBSDL_INC_DIR = $(CONFIG_LIBSDL_INC_DIR) >> $@ | 118 | echo LIBSDL_INC_DIR = $(CONFIG_LIBSDL_INC_DIR) >> $@ |
125 | endif | 119 | endif |
126 | ifeq ($(CONFIG_LIBSWORD_DEP),y) | 120 | ifeq ($(CONFIG_LIBSWORD_DEP),y) |
127 | echo LIBSWORD_LIB_DIR = $(CONFIG_LIBSWORD_LIB_DIR) >> $@ | 121 | echo LIBSWORD_LIB_DIR = $(CONFIG_LIBSWORD_LIB_DIR) >> $@ |
128 | echo LIBSWORD_INC_DIR = $(CONFIG_LIBSWORD_INC_DIR) >> $@ | 122 | echo LIBSWORD_INC_DIR = $(CONFIG_LIBSWORD_INC_DIR) >> $@ |
129 | endif | 123 | endif |
130 | ifeq ($(CONFIG_LIBFREETYPE2_DEP),y) | 124 | ifeq ($(CONFIG_LIBFREETYPE2_DEP),y) |
131 | echo LIBFREETYPE2_INC_DIR = $(CONFIG_LIBFREETYPE2_INC_DIR) >> $@ | 125 | echo LIBFREETYPE2_INC_DIR = $(CONFIG_LIBFREETYPE2_INC_DIR) >> $@ |
132 | endif | 126 | endif |
133 | $(TOPDIR)/.depends : $(shell if [ -e $(TOPDIR)/config.in ]\; then echo $(TOPDIR)/config.in\; fi\;) $(TOPDIR)/.config $(TOPDIR)/packages | 127 | $(TOPDIR)/.depends : $(shell if [ -e $(TOPDIR)/config.in ]\; then echo $(TOPDIR)/config.in\; fi\;) $(TOPDIR)/.config $(TOPDIR)/packages |
134 | @echo Generating dependency information... | 128 | @echo Generating dependency information... |
135 | # add to subdir-y, and add descend rules | 129 | # add to subdir-y, and add descend rules |
136 | @cat $(TOPDIR)/packages | grep -v '^#' | \ | 130 | @cat $(TOPDIR)/packages | grep -v '^#' | \ |
137 | awk '{print \ | 131 | awk '{print \ |
138 | ".PHONY : " $$2 "\n" \ | 132 | ".PHONY : " $$2 "\n" \ |
139 | "subdir-$$(" $$1 ") += " $$2 "\n\n"; \ | 133 | "subdir-$$(" $$1 ") += " $$2 "\n\n"; \ |
140 | print $$2 " : " $$2 "/Makefile\n\t+$$(call descend,$$@,$(filter-out $$@,$$(filter-out $$@,$$(MAKECMDGOALS))))\n"; }' > $(TOPDIR)/.depends | 134 | print $$2 " : " $$2 "/Makefile\n\t+$$(call descend,$$@,$(filter-out $$@,$$(filter-out $$@,$$(MAKECMDGOALS))))\n"; }' > $(TOPDIR)/.depends |
141 | cat $(TOPDIR)/packages | grep -v '^#' | \ | 135 | cat $(TOPDIR)/packages | grep -v '^#' | \ |
142 | perl -ne '($$cfg, $$dir, $$pro) = $$_ =~ /^(\S+)\s+(\S+)\s+(\S+)/; if ( -e "$$dir/$$pro" ) { print "$$dir/Makefile : $$dir/$$pro \$$(QMAKE) \$$(OPIEDIR)/gen.pro \$$(OPIEDIR)/.config\n\t\$$(call makefilegen,\$$@)\n\n"; }' \ | 136 | perl -ne '($$cfg, $$dir, $$pro) = $$_ =~ /^(\S+)\s+(\S+)\s+(\S+)/; if ( -e "$$dir/$$pro" ) { print "$$dir/Makefile : $$dir/$$pro \$$(QMAKE) \$$(OPIEDIR)/gen.pro \$$(OPIEDIR)/.config\n\t\$$(call makefilegen,\$$@)\n\n"; }' \ |
143 | >> $(TOPDIR)/.depends | 137 | >> $(TOPDIR)/.depends |
144 | # interpackage dependency generation | 138 | # interpackage dependency generation |
145 | @cat $(TOPDIR)/packages | \ | 139 | @cat $(TOPDIR)/packages | \ |
146 | $(TOPDIR)/scripts/deps.pl >> $(TOPDIR)/.depends | 140 | $(TOPDIR)/scripts/deps.pl >> $(TOPDIR)/.depends |
147 | 141 | ||
148 | $(TOPDIR)/.depends.cfgs: | 142 | $(TOPDIR)/.depends.cfgs: |
149 | # config.in interdependencies | 143 | # config.in interdependencies |
150 | @echo $(configs) | sed -e 's,/config.in,,g' | ( for i in `cat`; do echo $$i; done ) > dirs | 144 | @echo $(configs) | sed -e 's,/config.in,,g' | ( for i in `cat`; do echo $$i; done ) > dirs |
151 | @cat dirs | ( for i in `cat`; do if [ "`cat dirs|grep $$i 2>/dev/null|wc -l`" -ne "1" ]; then deps=`cat dirs|grep $$i| grep -v "^$$i$$"|for i in \`cat|sed -e's,^$(TOPDIR)/,$$(TOPDIR)/,g'\`; do echo $$i/config.in; done`; echo `echo $$i/config.in|sed -e 's,^$(TOPDIR)/,$$(TOPDIR)/,'` : $$deps; fi; done ) >> $@ | 145 | @cat dirs | ( for i in `cat`; do if [ "`cat dirs|grep $$i 2>/dev/null|wc -l`" -ne "1" ]; then deps=`cat dirs|grep $$i| grep -v "^$$i$$"|for i in \`cat|sed -e's,^$(TOPDIR)/,$$(TOPDIR)/,g'\`; do echo $$i/config.in; done`; echo `echo $$i/config.in|sed -e 's,^$(TOPDIR)/,$$(TOPDIR)/,'` : $$deps; fi; done ) >> $@ |
152 | @-rm -f dirs | 146 | @-rm -f dirs |
153 | 147 | ||
154 | $(QTDIR)/stamp-headers : | 148 | $(QTDIR)/stamp-headers : |
155 | @-rm -f $(QTDIR)/stamp-headers* | 149 | @-rm -f $(QTDIR)/stamp-headers* |
156 | ( cd $(QTDIR)/include; \ | 150 | ( cd $(QTDIR)/include; \ |
157 | $(patsubst %,ln -sf ../src/kernel/%;,qgfx_qws.h qwsmouse_qws.h \ | 151 | $(patsubst %,ln -sf ../src/kernel/%;,qgfx_qws.h qwsmouse_qws.h \ |
158 | qcopchannel_qws.h qwindowsystem_qws.h \ | 152 | qcopchannel_qws.h qwindowsystem_qws.h \ |
159 | qfontmanager_qws.h qwsdefaultdecoration_qws.h)) | 153 | qfontmanager_qws.h qwsdefaultdecoration_qws.h)) |
160 | touch $@ | 154 | touch $@ |
161 | 155 | ||
162 | $(QTDIR)/stamp-headers-x11 : | 156 | $(QTDIR)/stamp-headers-x11 : |
163 | @-rm -f $(QTDIR)/stamp-headers* | 157 | @-rm -f $(QTDIR)/stamp-headers* |
164 | cd $(QTDIR)/include; $(patsubst %,ln -sf $(OPIEDIR)/x11/libqpe-x11/qt/%;,qgfx_qws.h qwsmouse_qws.h qcopchannel_qws.h qwindowsystem_qws.h qfontmanager_qws.h qwsdefaultdecoration_qws.h) | 158 | cd $(QTDIR)/include; $(patsubst %,ln -sf $(OPIEDIR)/x11/libqpe-x11/qt/%;,qgfx_qws.h qwsmouse_qws.h qcopchannel_qws.h qwindowsystem_qws.h qfontmanager_qws.h qwsdefaultdecoration_qws.h) |
165 | touch $@ | 159 | touch $@ |
166 | 160 | ||
167 | $(OPIEDIR)/stamp-headers : | 161 | $(OPIEDIR)/stamp-headers : |
168 | @-rm -f $(OPIEDIR)/stamp-headers* | 162 | @-rm -f $(OPIEDIR)/stamp-headers* |
169 | mkdir -p $(TOPDIR)/include/qpe \ | 163 | mkdir -p $(TOPDIR)/include/qpe \ |
170 | $(TOPDIR)/include/qtopia \ | 164 | $(TOPDIR)/include/qtopia \ |
171 | $(TOPDIR)/include/opie \ | 165 | $(TOPDIR)/include/opie \ |
172 | $(TOPDIR)/include/opie2 \ | 166 | $(TOPDIR)/include/opie2 \ |
173 | $(TOPDIR)/include/opie2/private \ | 167 | $(TOPDIR)/include/opie2/private \ |
174 | $(TOPDIR)/include/qtopia/private \ | 168 | $(TOPDIR)/include/qtopia/private \ |
175 | $(TOPDIR)/include/sl | 169 | $(TOPDIR)/include/sl |
176 | ( cd include/qpe && rm -f *.h; ln -sf ../../library/*.h .; ln -sf ../../library/backend/*.h .; rm -f *_p.h; ) | 170 | ( cd include/qpe && rm -f *.h; ln -sf ../../library/*.h .; ln -sf ../../library/backend/*.h .; rm -f *_p.h; ) |
177 | ( cd include/qtopia && rm -f *.h; ln -sf ../../library/*.h .; ) | 171 | ( cd include/qtopia && rm -f *.h; ln -sf ../../library/*.h .; ) |
178 | ( cd include/qtopia/private && rm -f *.h; ln -sf ../../../library/backend/*.h .; ) | 172 | ( cd include/qtopia/private && rm -f *.h; ln -sf ../../../library/backend/*.h .; ) |
179 | # libopie2 | 173 | # libopie2 |
180 | ( cd include/opie2 && ln -sf ../../libopie2/opiecore/*.h .; ) | 174 | ( cd include/opie2 && ln -sf ../../libopie2/opiecore/*.h .; ) |
181 | ( cd include/opie2 && ln -sf ../../libopie2/opiecore/device/*.h .; ) | 175 | ( cd include/opie2 && ln -sf ../../libopie2/opiecore/device/*.h .; ) |
182 | ( cd include/opie2 && ln -sf ../../libopie2/opiemm/*.h .; ) | 176 | ( cd include/opie2 && ln -sf ../../libopie2/opiemm/*.h .; ) |
183 | ( cd include/opie2 && ln -sf ../../libopie2/opiedb/*.h .; ) | 177 | ( cd include/opie2 && ln -sf ../../libopie2/opiedb/*.h .; ) |
184 | ( cd include/opie2 && ln -sf ../../libopie2/opienet/*.h .; ) | 178 | ( cd include/opie2 && ln -sf ../../libopie2/opienet/*.h .; ) |
185 | ( cd include/opie2 && ln -sf ../../libopie2/opiepim/*.h .; ) | 179 | ( cd include/opie2 && ln -sf ../../libopie2/opiepim/*.h .; ) |
186 | ( cd include/opie2 && ln -sf ../../libopie2/opiepim/core/*.h .; ) | 180 | ( cd include/opie2 && ln -sf ../../libopie2/opiepim/core/*.h .; ) |
187 | ( cd include/opie2 && ln -sf ../../libopie2/opiepim/backend/*.h .; ) | 181 | ( cd include/opie2 && ln -sf ../../libopie2/opiepim/backend/*.h .; ) |
188 | ( cd include/opie2/private && ln -sf ../../../libopie2/opiepim/private/*.h .; ) | 182 | ( cd include/opie2/private && ln -sf ../../../libopie2/opiepim/private/*.h .; ) |
189 | ( cd include/opie2 && ln -sf ../../libopie2/opiepim/ui/*.h .; ) | 183 | ( cd include/opie2 && ln -sf ../../libopie2/opiepim/ui/*.h .; ) |
190 | ( cd include/opie2 && ln -sf ../../libopie2/opieui/*.h .; ) | 184 | ( cd include/opie2 && ln -sf ../../libopie2/opieui/*.h .; ) |
191 | ( cd include/opie2 && ln -sf ../../libopie2/opieui/fileselector/*.h .; ) | 185 | ( cd include/opie2 && ln -sf ../../libopie2/opieui/fileselector/*.h .; ) |
192 | ( cd include/opie2 && ln -sf ../../libopie2/opieui/big-screen/*.h .; ) | 186 | ( cd include/opie2 && ln -sf ../../libopie2/opieui/big-screen/*.h .; ) |
193 | ( cd include/opie2 && ln -sf ../../libopie2/opiesecurity/*.h .; ) | 187 | ( cd include/opie2 && ln -sf ../../libopie2/opiesecurity/*.h .; ) |
194 | # auxilliary libraries | 188 | # auxilliary libraries |
195 | ( cd include/opie2 && ln -sf ../../libqtaux/*.h .; ) | 189 | ( cd include/opie2 && ln -sf ../../libqtaux/*.h .; ) |
196 | ( cd include/sl && ln -sf ../../libslcompat/*.h .; ) | 190 | ( cd include/sl && ln -sf ../../libslcompat/*.h .; ) |
197 | ( cd include/ && ln -sf ../noncore/net/ftplib/*.h .; ) | 191 | ( cd include/ && ln -sf ../noncore/net/ftplib/*.h .; ) |
198 | ( cd include/ && ln -sf ../inputmethods/pickboard/pickboardcfg.h .; ) | 192 | ( cd include/ && ln -sf ../inputmethods/pickboard/pickboardcfg.h .; ) |
199 | ( cd include/ && ln -sf ../inputmethods/pickboard/pickboardpicks.h .; ) | 193 | ( cd include/ && ln -sf ../inputmethods/pickboard/pickboardpicks.h .; ) |
200 | # all | 194 | # all |
201 | ( cd include/opie2; for generatedHeader in `cd ../../libopie2/opieui; ls *.ui | sed -e "s,\.ui,\.h,g"`; do \ | 195 | ( cd include/opie2; for generatedHeader in `cd ../../libopie2/opieui; ls *.ui | sed -e "s,\.ui,\.h,g"`; do \ |
202 | ln -sf ../../libopie2/opieui/$$generatedHeader $$generatedHeader; done ) | 196 | ln -sf ../../libopie2/opieui/$$generatedHeader $$generatedHeader; done ) |
203 | ( cd include/opie2; for generatedHeader in `cd ../../libopie2/opiepim/ui; ls *.ui | sed -e "s,\.ui,\.h,g"`; do \ | 197 | ( cd include/opie2; for generatedHeader in `cd ../../libopie2/opiepim/ui; ls *.ui | sed -e "s,\.ui,\.h,g"`; do \ |
204 | ln -sf ../../libopie2/opiepim/ui/$$generatedHeader $$generatedHeader; done ) | 198 | ln -sf ../../libopie2/opiepim/ui/$$generatedHeader $$generatedHeader; done ) |
205 | ln -sf ../../library/custom.h $(TOPDIR)/include/qpe/custom.h | 199 | ln -sf ../../library/custom.h $(TOPDIR)/include/qpe/custom.h |
206 | touch $@ | 200 | touch $@ |
207 | 201 | ||
208 | $(OPIEDIR)/stamp-headers-x11 : | 202 | $(OPIEDIR)/stamp-headers-x11 : |
209 | @-rm -f $(OPIEDIR)/stamp-headers* | 203 | @-rm -f $(OPIEDIR)/stamp-headers* |
210 | mkdir -p $(TOPDIR)/include/qpe $(TOPDIR)/include/qtopia \ | 204 | mkdir -p $(TOPDIR)/include/qpe $(TOPDIR)/include/qtopia \ |
211 | $(TOPDIR)/include/opie $(TOPDIR)/include/qtopia/private | 205 | $(TOPDIR)/include/opie $(TOPDIR)/include/qtopia/private |
212 | ( cd include/qpe && rm -f *.h; ln -sf ../../library/*.h .; ln -sf ../../library/backend/*.h .; rm -f *_p.h; ) | 206 | ( cd include/qpe && rm -f *.h; ln -sf ../../library/*.h .; ln -sf ../../library/backend/*.h .; rm -f *_p.h; ) |
213 | ( cd include/qtopia && rm -f *.h; ln -sf ../../library/*.h .; ) | 207 | ( cd include/qtopia && rm -f *.h; ln -sf ../../library/*.h .; ) |
214 | ( cd include/qtopia/private && rm -f *.h; ln -sf ../../../library/backend/*.h .; ) | 208 | ( cd include/qtopia/private && rm -f *.h; ln -sf ../../../library/backend/*.h .; ) |
215 | ( cd include/opie && rm -f *.h; ln -sf ../../libopie/*.h .; rm -f *_p.h; ) | 209 | ( cd include/opie && rm -f *.h; ln -sf ../../libopie/*.h .; rm -f *_p.h; ) |
216 | ( cd include/opie && ln -sf ../../libsql/*.h .; ) | 210 | ( cd include/opie && ln -sf ../../libsql/*.h .; ) |
217 | ( cd include/opie && ln -sf ../../libopie/pim/*.h .; ) | 211 | ( cd include/opie && ln -sf ../../libopie/pim/*.h .; ) |
218 | ( cd include/opie; for generatedHeader in `cd ../../libopie; ls *.ui | sed -e "s,\.ui,\.h,g"`; do \ | 212 | ( cd include/opie; for generatedHeader in `cd ../../libopie; ls *.ui | sed -e "s,\.ui,\.h,g"`; do \ |
219 | ln -sf ../../libopie/$$generatedHeader $$generatedHeader; done ) | 213 | ln -sf ../../libopie/$$generatedHeader $$generatedHeader; done ) |
220 | ln -sf ../../library/custom.h $(TOPDIR)/include/qpe/custom.h | 214 | ln -sf ../../library/custom.h $(TOPDIR)/include/qpe/custom.h |
221 | ( cd include/qpe; ln -sf ../../x11/libqpe-x11/qpe/*.h .; ) | 215 | ( cd include/qpe; ln -sf ../../x11/libqpe-x11/qpe/*.h .; ) |
222 | touch $@ | 216 | touch $@ |
223 | 217 | ||
224 | $(TOPDIR)/library/custom.h : $(TOPDIR)/.config | 218 | $(TOPDIR)/library/custom.h : $(TOPDIR)/.config |
225 | @-rm -f $@ | 219 | @-rm -f $@ |
226 | @$(if $(patsubst "%",%,$(CONFIG_CUSTOMFILE)),\ | 220 | @$(if $(patsubst "%",%,$(CONFIG_CUSTOMFILE)),\ |
227 | ln -sf $(patsubst "%",%,$(CONFIG_CUSTOMFILE)) $@) | 221 | ln -sf $(patsubst "%",%,$(CONFIG_CUSTOMFILE)) $@) |
228 | @touch $@ | 222 | @touch $@ |
229 | 223 | ||
230 | $(TOPDIR)/scripts/lxdialog/lxdialog $(TOPDIR)/scripts/kconfig/mconf $(TOPDIR)/scripts/kconfig/conf $(TOPDIR)/scripts/kconfig/qconf $(TOPDIR)/scripts/kconfig/libkconfig.so $(TOPDIR)/scripts/kconfig/gconf $(TOPDIR)/qmake/qmake: | 224 | $(TOPDIR)/scripts/lxdialog/lxdialog $(TOPDIR)/scripts/kconfig/mconf $(TOPDIR)/scripts/kconfig/conf $(TOPDIR)/scripts/kconfig/qconf $(TOPDIR)/scripts/kconfig/libkconfig.so $(TOPDIR)/scripts/kconfig/gconf $(TOPDIR)/qmake/qmake: |
231 | +$(call descend,$(shell dirname $@),$(shell basename $@)) | 225 | +$(call descend,$(shell dirname $@),$(shell basename $@)) |
232 | 226 | ||
233 | menuconfig: $(TOPDIR)/scripts/lxdialog/lxdialog $(TOPDIR)/scripts/kconfig/mconf ./config.in | 227 | menuconfig: $(TOPDIR)/scripts/lxdialog/lxdialog $(TOPDIR)/scripts/kconfig/mconf ./config.in |
234 | $(TOPDIR)/scripts/kconfig/mconf ./config.in | 228 | $(TOPDIR)/scripts/kconfig/mconf ./config.in |
235 | @touch ./.config.stamp | 229 | @touch ./.config.stamp |
236 | 230 | ||
237 | xconfig: $(TOPDIR)/scripts/kconfig/qconf $(TOPDIR)/scripts/kconfig/libkconfig.so ./config.in | 231 | xconfig: $(TOPDIR)/scripts/kconfig/qconf $(TOPDIR)/scripts/kconfig/libkconfig.so ./config.in |
238 | $(TOPDIR)/scripts/kconfig/qconf ./config.in | 232 | $(TOPDIR)/scripts/kconfig/qconf ./config.in |
239 | @touch .config.stamp | 233 | @touch .config.stamp |
240 | 234 | ||
241 | gconfig: $(TOPDIR)/scripts/kconfig/gconf $(TOPDIR)/scripts/kconfig/libkconfig.so ./config.in | 235 | gconfig: $(TOPDIR)/scripts/kconfig/gconf $(TOPDIR)/scripts/kconfig/libkconfig.so ./config.in |
242 | $(TOPDIR)/scripts/kconfig/gconf ./config.in | 236 | $(TOPDIR)/scripts/kconfig/gconf ./config.in |
243 | @touch .config.stamp | 237 | @touch .config.stamp |
244 | 238 | ||
245 | config: $(TOPDIR)/scripts/kconfig/conf ./config.in | 239 | config: $(TOPDIR)/scripts/kconfig/conf ./config.in |
246 | $(TOPDIR)/scripts/kconfig/conf ./config.in | 240 | $(TOPDIR)/scripts/kconfig/conf ./config.in |
247 | @touch .config.stamp | 241 | @touch .config.stamp |
248 | 242 | ||
249 | oldconfig: $(TOPDIR)/scripts/kconfig/conf ./config.in | 243 | oldconfig: $(TOPDIR)/scripts/kconfig/conf ./config.in |
250 | $(TOPDIR)/scripts/kconfig/conf -o ./config.in | 244 | $(TOPDIR)/scripts/kconfig/conf -o ./config.in |
251 | @touch .config.stamp | 245 | @touch .config.stamp |
252 | 246 | ||
253 | randconfig: $(TOPDIR)/scripts/kconfig/conf ./config.in | 247 | randconfig: $(TOPDIR)/scripts/kconfig/conf ./config.in |
254 | $(TOPDIR)/scripts/kconfig/conf -r ./config.in | 248 | $(TOPDIR)/scripts/kconfig/conf -r ./config.in |
255 | @touch .config.stamp | 249 | @touch .config.stamp |
256 | 250 | ||
257 | allyesconfig: $(TOPDIR)/scripts/kconfig/conf ./config.in | 251 | allyesconfig: $(TOPDIR)/scripts/kconfig/conf ./config.in |
258 | $(TOPDIR)/scripts/kconfig/conf -y ./config.in | 252 | $(TOPDIR)/scripts/kconfig/conf -y ./config.in |
259 | @touch .config.stamp | 253 | @touch .config.stamp |
260 | 254 | ||
261 | allnoconfig: $(TOPDIR)/scripts/kconfig/conf ./config.in | 255 | allnoconfig: $(TOPDIR)/scripts/kconfig/conf ./config.in |
262 | $(TOPDIR)/scripts/kconfig/conf -n ./config.in | 256 | $(TOPDIR)/scripts/kconfig/conf -n ./config.in |
263 | @touch .config.stamp | 257 | @touch .config.stamp |
264 | 258 | ||
265 | defconfig: $(TOPDIR)/scripts/kconfig/conf ./config.in | 259 | defconfig: $(TOPDIR)/scripts/kconfig/conf ./config.in |
266 | $(TOPDIR)/scripts/kconfig/conf -d ./config.in | 260 | $(TOPDIR)/scripts/kconfig/conf -d ./config.in |
267 | @touch .config.stamp | 261 | @touch .config.stamp |
268 | 262 | ||
269 | $(TOPDIR)/qmake/qmake : $(TOPDIR)/mkspecs/default | 263 | $(TOPDIR)/qmake/qmake : $(TOPDIR)/mkspecs/default |
270 | 264 | ||
271 | $(TOPDIR)/mkspecs/default : | 265 | $(TOPDIR)/mkspecs/default : |
272 | ln -sf linux-g++ $@ | 266 | ln -sf linux-g++ $@ |
273 | 267 | ||
274 | $(TOPDIR)/scripts/subst : force | 268 | $(TOPDIR)/scripts/subst : force |
275 | @( \ | 269 | @( \ |
276 | echo 's,\$$QPE_VERSION,$(QPE_VERSION),g'; \ | 270 | echo 's,\$$QPE_VERSION,$(QPE_VERSION),g'; \ |
277 | echo 's,\$$OPIE_VERSION,$(OPIE_VERSION),g'; \ | 271 | echo 's,\$$OPIE_VERSION,$(OPIE_VERSION),g'; \ |
278 | echo 's,\$$QTE_VERSION,$(QTE_VERSION),g'; \ | 272 | echo 's,\$$QTE_VERSION,$(QTE_VERSION),g'; \ |
279 | echo 's,\$$QTE_REVISION,$(QTE_REVISION),g'; \ | 273 | echo 's,\$$QTE_REVISION,$(QTE_REVISION),g'; \ |
280 | echo 's,\$$SUB_VERSION,$(SUB_VERSION),g'; \ | 274 | echo 's,\$$SUB_VERSION,$(SUB_VERSION),g'; \ |
281 | echo 's,\$$EXTRAVERSION,$(EXTRAVERSION),g'; \ | 275 | echo 's,\$$EXTRAVERSION,$(EXTRAVERSION),g'; \ |
282 | echo 's,\$$QTE_BASEVERSION,$(QTE_BASEVERSION),g'; \ | 276 | echo 's,\$$QTE_BASEVERSION,$(QTE_BASEVERSION),g'; \ |
283 | ) > $@ || ( rm -f $@; exit 1 ) | 277 | ) > $@ || ( rm -f $@; exit 1 ) |
284 | 278 | ||
285 | $(TOPDIR)/scripts/filesubst : force | 279 | $(TOPDIR)/scripts/filesubst : force |
286 | @( \ | 280 | @( \ |
287 | echo 's,\$$OPIEDIR/root/,/,g'; \ | 281 | echo 's,\$$OPIEDIR/root/,/,g'; \ |
288 | echo 's,$(OPIEDIR)/root/,/,g'; \ | 282 | echo 's,$(OPIEDIR)/root/,/,g'; \ |
289 | echo 's,\$$OPIEDIR,$(prefix),g'; \ | 283 | echo 's,\$$OPIEDIR,$(prefix),g'; \ |
290 | echo 's,$(OPIEDIR),$(prefix),g'; \ | 284 | echo 's,$(OPIEDIR),$(prefix),g'; \ |
291 | echo 's,\$$QTDIR,$(prefix),g'; \ | 285 | echo 's,\$$QTDIR,$(prefix),g'; \ |
292 | echo 's,$(QTDIR),$(prefix),g'; \ | 286 | echo 's,$(QTDIR),$(prefix),g'; \ |
293 | echo 's,^\(\./\)*root/,/,g'; \ | 287 | echo 's,^\(\./\)*root/,/,g'; \ |
294 | echo 's,^\(\./\)*etc/,$(prefix)/etc/,g'; \ | 288 | echo 's,^\(\./\)*etc/,$(prefix)/etc/,g'; \ |
295 | echo 's,^\(\./\)*lib/,$(prefix)/lib/,g'; \ | 289 | echo 's,^\(\./\)*lib/,$(prefix)/lib/,g'; \ |
296 | echo 's,^\(\./\)*bin/,$(prefix)/bin/,g'; \ | 290 | echo 's,^\(\./\)*bin/,$(prefix)/bin/,g'; \ |
297 | echo 's,^\(\./\)*pics/,$(prefix)/pics/,g'; \ | 291 | echo 's,^\(\./\)*pics/,$(prefix)/pics/,g'; \ |
298 | echo 's,^\(\./\)*sounds/,$(prefix)/sounds/,g'; \ | 292 | echo 's,^\(\./\)*sounds/,$(prefix)/sounds/,g'; \ |
299 | echo 's,^\(\./\)*i18n/,$(prefix)/i18n/,g'; \ | 293 | echo 's,^\(\./\)*i18n/,$(prefix)/i18n/,g'; \ |
300 | echo 's,^\(\./\)*plugins/,$(prefix)/plugins/,g'; \ | 294 | echo 's,^\(\./\)*plugins/,$(prefix)/plugins/,g'; \ |
301 | echo 's,^\(\./\)*apps/,$(prefix)/apps/,g'; \ | 295 | echo 's,^\(\./\)*apps/,$(prefix)/apps/,g'; \ |
302 | echo 's,^\(\./\)*share/,$(prefix)/share/,g'; \ | 296 | echo 's,^\(\./\)*share/,$(prefix)/share/,g'; \ |
303 | echo 's,^\(\./\)*i18n/,$(prefix)/i18n/,g'; \ | 297 | echo 's,^\(\./\)*i18n/,$(prefix)/i18n/,g'; \ |
304 | echo 's,^\(\./\)*help/,$(prefix)/help/,g'; \ | 298 | echo 's,^\(\./\)*help/,$(prefix)/help/,g'; \ |
305 | ) > $@ || ( rm -f $@; exit 1 ) | 299 | ) > $@ || ( rm -f $@; exit 1 ) |
306 | 300 | ||
307 | ## general rules ## | 301 | ## general rules ## |
308 | 302 | ||
309 | define descend | 303 | define descend |
310 | $(MAKE) $(if $(QMAKE),QMAKE=$(QMAKE)) -C $(1) $(2) | 304 | $(MAKE) $(if $(QMAKE),QMAKE=$(QMAKE)) -C $(1) $(2) |
311 | endef | 305 | endef |
312 | 306 | ||
313 | define makefilegen | 307 | define makefilegen |
314 | cd $(if $(1),$(dir $(1))); $(TOPDIR)/qmake/qmake $(3) -o $(if $(1),$(notdir $(1))) $(word 3,$(shell grep "[[:space:]]$(patsubst %/Makefile,%,$(1))[[:space:]]" $(OPIEDIR)/packages)) | 308 | cd $(if $(1),$(dir $(1))); $(TOPDIR)/qmake/qmake $(3) -o $(if $(1),$(notdir $(1))) $(word 3,$(shell grep "[[:space:]]$(patsubst %/Makefile,%,$(1))[[:space:]]" $(OPIEDIR)/packages)) |
315 | endef | 309 | endef |
316 | 310 | ||
317 | define makecfg | 311 | define makecfg |
318 | $(TOPDIR)/scripts/makecfg.pl $1 $(OPIEDIR) | 312 | $(TOPDIR)/scripts/makecfg.pl $1 $(OPIEDIR) |
319 | endef | 313 | endef |
@@ -1,283 +1,275 @@ | |||
1 | mainmenu "Opie Configuration" | 1 | mainmenu "Opie Configuration" |
2 | 2 | ||
3 | menu "Build Parameters" | 3 | menu "Build Parameters" |
4 | 4 | ||
5 | choice | 5 | choice |
6 | prompt "Target Machine" | 6 | prompt "Target Machine" |
7 | default TARGET_X86 | 7 | default TARGET_X86 |
8 | help | 8 | help |
9 | Please select the architecture of the machine you will be | 9 | Please select the architecture of the machine you will be |
10 | building the OpenZaurus buildroot for. | 10 | building the OpenZaurus buildroot for. |
11 | 11 | ||
12 | config TARGET_X86 | 12 | config TARGET_X86 |
13 | boolean "Intel X86" | 13 | boolean "Intel X86" |
14 | 14 | ||
15 | config TARGET_MACOSX | 15 | config TARGET_MACOSX |
16 | boolean "Mac OS X (DARWIN)" | 16 | boolean "Mac OS X (DARWIN)" |
17 | 17 | ||
18 | config TARGET_SHARP | 18 | config TARGET_SHARP |
19 | boolean "Sharp Zaurus w/ SA1100 (5000 and 5500)" | 19 | boolean "Sharp Zaurus w/ SA1100 (5000 and 5500)" |
20 | 20 | ||
21 | config TARGET_C700 | 21 | config TARGET_C700 |
22 | boolean "Sharp Zaurus w/ PXA25x (5600, C7x0, C8x0)" | 22 | boolean "Sharp Zaurus w/ PXA25x (5600, C7x0, C8x0)" |
23 | 23 | ||
24 | config TARGET_OE | 24 | config TARGET_OE |
25 | boolean "OpenEmbedded w/ OE build dir set below" | 25 | boolean "OpenEmbedded w/ OE build dir set below" |
26 | 26 | ||
27 | config TARGET_IPAQ | 27 | config TARGET_IPAQ |
28 | boolean "iPAQ" | 28 | boolean "iPAQ" |
29 | 29 | ||
30 | config TARGET_RAMSES | 30 | config TARGET_RAMSES |
31 | boolean "Ramses" | 31 | boolean "Ramses" |
32 | 32 | ||
33 | config TARGET_SIMPAD | 33 | config TARGET_SIMPAD |
34 | boolean "SIMpad" | 34 | boolean "SIMpad" |
35 | 35 | ||
36 | config TARGET_YOPY | 36 | config TARGET_YOPY |
37 | boolean "Yopy 3500/3700" | 37 | boolean "Yopy 3500/3700" |
38 | endchoice | 38 | endchoice |
39 | 39 | ||
40 | config OE_BUILD_DIR | 40 | config OE_BUILD_DIR |
41 | depends TARGET_OE | 41 | depends TARGET_OE |
42 | string "OE build directory" | 42 | string "OE build directory" |
43 | default ">>>set OpenEmbedded build directory here<<<" | 43 | default ">>>set OpenEmbedded build directory here<<<" |
44 | 44 | ||
45 | config OE_HOST_SYS | 45 | config OE_HOST_SYS |
46 | depends TARGET_OE | 46 | depends TARGET_OE |
47 | string "OE host system" | 47 | string "OE host system" |
48 | default "i686-linux" | 48 | default "i686-linux" |
49 | 49 | ||
50 | config OPTIMIZE | 50 | config OPTIMIZE |
51 | boolean "Use optimizations" | 51 | boolean "Use optimizations" |
52 | default "y" if ! TARGET_X86 | 52 | default "y" if ! TARGET_X86 |
53 | 53 | ||
54 | config THREADED | 54 | config THREADED |
55 | boolean "Enable threaded build" | 55 | boolean "Enable threaded build" |
56 | default "n" | 56 | default "n" |
57 | 57 | ||
58 | config STATIC | 58 | config STATIC |
59 | boolean "Build static libraries" | 59 | boolean "Build static libraries" |
60 | default "n" | 60 | default "n" |
61 | 61 | ||
62 | config DEBUG | 62 | config DEBUG |
63 | boolean "Enable debug builds" | 63 | boolean "Enable debug builds" |
64 | default n | 64 | default n |
65 | 65 | ||
66 | config RELEASE | 66 | config RELEASE |
67 | bool | 67 | bool |
68 | default y | 68 | default y |
69 | depends !DEBUG | 69 | depends !DEBUG |
70 | 70 | ||
71 | config QUICK_LAUNCH | 71 | config QUICK_LAUNCH |
72 | boolean "Enable Quick Launch" | 72 | boolean "Enable Quick Launch" |
73 | default n if TARGET_X86 | 73 | default n if TARGET_X86 |
74 | default y if ! TARGET_X86 | 74 | default y if ! TARGET_X86 |
75 | 75 | ||
76 | config QUICKLAUNCH_PATH | 76 | config QUICKLAUNCH_PATH |
77 | string "Path to quicklauncher" | 77 | string "Path to quicklauncher" |
78 | default "./quicklauncher" if TARGET_X86 | 78 | default "./quicklauncher" if TARGET_X86 |
79 | default "/opt/QtPalmtop/bin/quicklauncher" if ! TARGET_X86 | 79 | default "/opt/QtPalmtop/bin/quicklauncher" if ! TARGET_X86 |
80 | 80 | ||
81 | config SPECFILE | 81 | config SPECFILE |
82 | string | 82 | string |
83 | default "qws/linux-generic-g++" if TARGET_X86 && (! X11) | 83 | default "qws/linux-generic-g++" if TARGET_X86 && (! X11) |
84 | default "linux-g++" if TARGET_X86 && X11 | 84 | default "linux-g++" if TARGET_X86 && X11 |
85 | default "qws/linux-sharp-g++" if TARGET_SHARP && (! X11) | 85 | default "qws/linux-sharp-g++" if TARGET_SHARP && (! X11) |
86 | default "linux-g++" if TARGET_SHARP && X11 | 86 | default "linux-g++" if TARGET_SHARP && X11 |
87 | default "qws/linux-ipaq-g++" if TARGET_IPAQ && (! X11) | 87 | default "qws/linux-ipaq-g++" if TARGET_IPAQ && (! X11) |
88 | default "linux-g++" if TARGET_IPAQ && X11 | 88 | default "linux-g++" if TARGET_IPAQ && X11 |
89 | default "qws/linux-ramses-g++" if TARGET_RAMSES && (! X11) | 89 | default "qws/linux-ramses-g++" if TARGET_RAMSES && (! X11) |
90 | default "linux-g++" if TARGET_RAMSES && X11 | 90 | default "linux-g++" if TARGET_RAMSES && X11 |
91 | default "qws/linux-simpad-g++" if TARGET_SIMPAD && (! X11) | 91 | default "qws/linux-simpad-g++" if TARGET_SIMPAD && (! X11) |
92 | default "linux-g++" if TARGET_SIMPAD && X11 | 92 | default "linux-g++" if TARGET_SIMPAD && X11 |
93 | default "qws/linux-yopy-g++" if TARGET_YOPY && (! X11) | 93 | default "qws/linux-yopy-g++" if TARGET_YOPY && (! X11) |
94 | default "qws/macx-generic-g++" if TARGET_MACOSX && (! X11) | 94 | default "qws/macx-generic-g++" if TARGET_MACOSX && (! X11) |
95 | default "qws/linux-oe-g++" if TARGET_OE && (!X11) | 95 | default "qws/linux-oe-g++" if TARGET_OE && (!X11) |
96 | 96 | ||
97 | config CUSTOMFILE | 97 | config CUSTOMFILE |
98 | string | 98 | string |
99 | default "custom-ipaq.h" if TARGET_IPAQ | 99 | default "custom-ipaq.h" if TARGET_IPAQ |
100 | default "custom-sharp.h" if TARGET_SHARP | 100 | default "custom-sharp.h" if TARGET_SHARP |
101 | default "custom-ramses.h" if TARGET_RAMSES | 101 | default "custom-ramses.h" if TARGET_RAMSES |
102 | default "custom-ipaq.h" if TARGET_SIMPAD | 102 | default "custom-ipaq.h" if TARGET_SIMPAD |
103 | default "custom-yopy.h" if TARGET_YOPY | 103 | default "custom-yopy.h" if TARGET_YOPY |
104 | 104 | ||
105 | config OPTIMIZATIONS | 105 | config OPTIMIZATIONS |
106 | string "Optimization flags" | 106 | string "Optimization flags" |
107 | depends OPTIMIZE | 107 | depends OPTIMIZE |
108 | default "-march=armv4 -mtune=strongarm1100 -mapcs-32 -fexpensive-optimizations -fomit-frame-pointer -O2" if TARGET_IPAQ | 108 | default "-march=armv4 -mtune=strongarm1100 -mapcs-32 -fexpensive-optimizations -fomit-frame-pointer -O2" if TARGET_IPAQ |
109 | default "-march=armv4 -mtune=strongarm1100 -mapcs-32 -fexpensive-optimizations -fomit-frame-pointer -O2" if TARGET_YOPY | 109 | default "-march=armv4 -mtune=strongarm1100 -mapcs-32 -fexpensive-optimizations -fomit-frame-pointer -O2" if TARGET_YOPY |
110 | default "-march=armv4 -mtune=strongarm1100 -mapcs-32 -fexpensive-optimizations -fomit-frame-pointer -O2" if TARGET_SHARP | 110 | default "-march=armv4 -mtune=strongarm1100 -mapcs-32 -fexpensive-optimizations -fomit-frame-pointer -O2" if TARGET_SHARP |
111 | default "-march=armv4 -mtune=strongarm1100 -mapcs-32 -fexpensive-optimizations -fomit-frame-pointer -O2" if TARGET_RAMSES | 111 | default "-march=armv4 -mtune=strongarm1100 -mapcs-32 -fexpensive-optimizations -fomit-frame-pointer -O2" if TARGET_RAMSES |
112 | default "-march=armv4 -mtune=strongarm1100 -mapcs-32 -fexpensive-optimizations -fomit-frame-pointer -O2" if TARGET_SIMPAD | 112 | default "-march=armv4 -mtune=strongarm1100 -mapcs-32 -fexpensive-optimizations -fomit-frame-pointer -O2" if TARGET_SIMPAD |
113 | default "-march=armv5te -mtune=xscale -mapcs-32 -fexpensive-optimizations -fomit-frame-pointer -O2" if TARGET_C700 | 113 | default "-march=armv5te -mtune=xscale -mapcs-32 -fexpensive-optimizations -fomit-frame-pointer -O2" if TARGET_C700 |
114 | 114 | ||
115 | config EXPERIMENTAL | 115 | config EXPERIMENTAL |
116 | bool "Prompt for development and/or incomplete items" | 116 | bool "Prompt for development and/or incomplete items" |
117 | default y | 117 | default y |
118 | 118 | ||
119 | config USE_CCACHE | 119 | config USE_CCACHE |
120 | bool "Use ccache, if available?" | 120 | bool "Use ccache, if available?" |
121 | default y | 121 | default y |
122 | 122 | ||
123 | endmenu | 123 | endmenu |
124 | 124 | ||
125 | menu "Configuration" | 125 | menu "Configuration" |
126 | config OPIE_NO_OVERRIDE_QT | ||
127 | boolean "Build Opie against an unpatched version of Qt" | ||
128 | default n | ||
129 | |||
130 | config OPIE_NO_ERASERECT_FIX | ||
131 | boolean "Disable Fixup eraseRect for HancomMobileWord,neocal.. to make libopiecore work on Sharps libqpe" | ||
132 | default n | ||
133 | |||
134 | config OPIE_NO_BUILTIN_SHUTDOWN | 126 | config OPIE_NO_BUILTIN_SHUTDOWN |
135 | boolean "Disable the built in shutdown application" | 127 | boolean "Disable the built in shutdown application" |
136 | default y | 128 | default y |
137 | 129 | ||
138 | config OPIE_NO_BUILTIN_CALIBRATE | 130 | config OPIE_NO_BUILTIN_CALIBRATE |
139 | boolean "Disable the built in calibrate application" | 131 | boolean "Disable the built in calibrate application" |
140 | default y if TARGET_YOPY | 132 | default y if TARGET_YOPY |
141 | default n if ! TARGET_YOPY | 133 | default n if ! TARGET_YOPY |
142 | 134 | ||
143 | config OPIE_SOUND_FRAGMENT_SHIFT | 135 | config OPIE_SOUND_FRAGMENT_SHIFT |
144 | string "The sound fragment used in Opie Player I" | 136 | string "The sound fragment used in Opie Player I" |
145 | default "14" if TARGET_IPAQ | 137 | default "14" if TARGET_IPAQ |
146 | default "16" if ! TARGET_IPAQ | 138 | default "16" if ! TARGET_IPAQ |
147 | 139 | ||
148 | config USE_REALTIME_AUDIO_THREAD | 140 | config USE_REALTIME_AUDIO_THREAD |
149 | boolean "Use a realtime thread in Opie Player I" | 141 | boolean "Use a realtime thread in Opie Player I" |
150 | default y if TARGET_IPAQ || TARGET_SIMPAD || TARGET_RAMSES || TARGET_SHARP | 142 | default y if TARGET_IPAQ || TARGET_SIMPAD || TARGET_RAMSES || TARGET_SHARP |
151 | default n if ! (TARGET_IPAQ || TARGET_SIMPAD || TARGET_RAMSES || TARGET_SHARP) | 143 | default n if ! (TARGET_IPAQ || TARGET_SIMPAD || TARGET_RAMSES || TARGET_SHARP) |
152 | 144 | ||
153 | config QT_QWS_ALLOW_OVERCLOCK | 145 | config QT_QWS_ALLOW_OVERCLOCK |
154 | boolean "Allow the user to overclock the device" | 146 | boolean "Allow the user to overclock the device" |
155 | depends TARGET_RAMSES | 147 | depends TARGET_RAMSES |
156 | default n | 148 | default n |
157 | 149 | ||
158 | config USE_FILE_NOTIFICATION | 150 | config USE_FILE_NOTIFICATION |
159 | boolean "Substitute (some) polling interfaces with OFileNotifier" | 151 | boolean "Substitute (some) polling interfaces with OFileNotifier" |
160 | default y | 152 | default y |
161 | 153 | ||
162 | config OPIE_NEW_ALLOC | 154 | config OPIE_NEW_ALLOC |
163 | boolean "Use malloc and free for the implementation" | 155 | boolean "Use malloc and free for the implementation" |
164 | default y if TARGET_RAMSES || TARGET_IPAQ || TARGET_SIMPAD || TARGET_SHARP | 156 | default y if TARGET_RAMSES || TARGET_IPAQ || TARGET_SIMPAD || TARGET_SHARP |
165 | default n if ! (TARGET_IPAQ || TARGET_SIMPAD || TARGET_RAMSES || TARGET_SHARP) | 157 | default n if ! (TARGET_IPAQ || TARGET_SIMPAD || TARGET_RAMSES || TARGET_SHARP) |
166 | 158 | ||
167 | config OPIE_TASKBAR_LOCK_KEY_STATE | 159 | config OPIE_TASKBAR_LOCK_KEY_STATE |
168 | boolean "Have a KeyLock state indicator on the taskbar" | 160 | boolean "Have a KeyLock state indicator on the taskbar" |
169 | default y if TARGET_SHARP | 161 | default y if TARGET_SHARP |
170 | default n if !TARGET_SHARP | 162 | default n if !TARGET_SHARP |
171 | 163 | ||
172 | config LIBQPE_WITHROHFEEDBACK | 164 | config LIBQPE_WITHROHFEEDBACK |
173 | boolean "Build libqpe with Right-On-Hold feedback" | 165 | boolean "Build libqpe with Right-On-Hold feedback" |
174 | default y | 166 | default y |
175 | 167 | ||
176 | config OPIE_NO_SOUND_PCM_READ_BITS | 168 | config OPIE_NO_SOUND_PCM_READ_BITS |
177 | boolean "There is not a pcm_read_bits io control" | 169 | boolean "There is not a pcm_read_bits io control" |
178 | default y if TARGET_SHARP | 170 | default y if TARGET_SHARP |
179 | default n if ! TARGET_SHARP | 171 | default n if ! TARGET_SHARP |
180 | endmenu | 172 | endmenu |
181 | 173 | ||
182 | menu "Dependencies" | 174 | menu "Dependencies" |
183 | source dependencies.in | 175 | source dependencies.in |
184 | endmenu | 176 | endmenu |
185 | 177 | ||
186 | menu "Base" | 178 | menu "Base" |
187 | choice | 179 | choice |
188 | prompt "Qpe Library Selection" | 180 | prompt "Qpe Library Selection" |
189 | default LIBQPE | 181 | default LIBQPE |
190 | source library/config.in | 182 | source library/config.in |
191 | source x11/config.in | 183 | source x11/config.in |
192 | endchoice | 184 | endchoice |
193 | source libopie2/config.in | 185 | source libopie2/config.in |
194 | source libqtaux/config.in | 186 | source libqtaux/config.in |
195 | source rsync/config.in | 187 | source rsync/config.in |
196 | source core/opie-login/config.in | 188 | source core/opie-login/config.in |
197 | source core/opiealarm/config.in | 189 | source core/opiealarm/config.in |
198 | source core/tools/quicklauncher/config.in | 190 | source core/tools/quicklauncher/config.in |
199 | source core/launcher/config.in | 191 | source core/launcher/config.in |
200 | source core/symlinker/config.in | 192 | source core/symlinker/config.in |
201 | endmenu | 193 | endmenu |
202 | 194 | ||
203 | comment "" | 195 | comment "" |
204 | 196 | ||
205 | menu "Applets" | 197 | menu "Applets" |
206 | source core/applets/config.in | 198 | source core/applets/config.in |
207 | source noncore/applets/config.in | 199 | source noncore/applets/config.in |
208 | endmenu | 200 | endmenu |
209 | 201 | ||
210 | menu "Apps" | 202 | menu "Apps" |
211 | source core/apps/config.in | 203 | source core/apps/config.in |
212 | source noncore/apps/config.in | 204 | source noncore/apps/config.in |
213 | endmenu | 205 | endmenu |
214 | 206 | ||
215 | menu "Communications and Networking" | 207 | menu "Communications and Networking" |
216 | source noncore/comm/config.in | 208 | source noncore/comm/config.in |
217 | source noncore/net/config.in | 209 | source noncore/net/config.in |
218 | endmenu | 210 | endmenu |
219 | 211 | ||
220 | menu "Games" | 212 | menu "Games" |
221 | source noncore/games/config.in | 213 | source noncore/games/config.in |
222 | endmenu | 214 | endmenu |
223 | 215 | ||
224 | menu "Graphics and Multimedia" | 216 | menu "Graphics and Multimedia" |
225 | source freetype/config.in | 217 | source freetype/config.in |
226 | source noncore/graphics/config.in | 218 | source noncore/graphics/config.in |
227 | source core/multimedia/config.in | 219 | source core/multimedia/config.in |
228 | source noncore/multimedia/config.in | 220 | source noncore/multimedia/config.in |
229 | endmenu | 221 | endmenu |
230 | 222 | ||
231 | menu "Input methods" | 223 | menu "Input methods" |
232 | source inputmethods/config.in | 224 | source inputmethods/config.in |
233 | endmenu | 225 | endmenu |
234 | 226 | ||
235 | menu "Pim" | 227 | menu "Pim" |
236 | source core/obex/config.in | 228 | source core/obex/config.in |
237 | source core/pim/config.in | 229 | source core/pim/config.in |
238 | comment "Today Plugins ---" | 230 | comment "Today Plugins ---" |
239 | source noncore/todayplugins/config.in | 231 | source noncore/todayplugins/config.in |
240 | source core/pim/today/plugins/config.in | 232 | source core/pim/today/plugins/config.in |
241 | endmenu | 233 | endmenu |
242 | 234 | ||
243 | menu "Settings" | 235 | menu "Settings" |
244 | source core/settings/config.in | 236 | source core/settings/config.in |
245 | source noncore/settings/config.in | 237 | source noncore/settings/config.in |
246 | source noncore/securityplugins/config.in | 238 | source noncore/securityplugins/config.in |
247 | endmenu | 239 | endmenu |
248 | 240 | ||
249 | menu "Theming" | 241 | menu "Theming" |
250 | comment "Decorations ---" | 242 | comment "Decorations ---" |
251 | source noncore/decorations/config.in | 243 | source noncore/decorations/config.in |
252 | comment "Styles ---" | 244 | comment "Styles ---" |
253 | source noncore/styles/config.in | 245 | source noncore/styles/config.in |
254 | endmenu | 246 | endmenu |
255 | 247 | ||
256 | menu "Tools" | 248 | menu "Tools" |
257 | source noncore/tools/config.in | 249 | source noncore/tools/config.in |
258 | endmenu | 250 | endmenu |
259 | 251 | ||
260 | menu "Development" | 252 | menu "Development" |
261 | source development/keyview/config.in | 253 | source development/keyview/config.in |
262 | #source development/debugviewer/config.in | 254 | #source development/debugviewer/config.in |
263 | endmenu | 255 | endmenu |
264 | 256 | ||
265 | menu "Examples" | 257 | menu "Examples" |
266 | config EXAMPLES | 258 | config EXAMPLES |
267 | boolean "Compile Example Application" | 259 | boolean "Compile Example Application" |
268 | source examples/config.in | 260 | source examples/config.in |
269 | endmenu | 261 | endmenu |
270 | 262 | ||
271 | comment "" | 263 | comment "" |
272 | 264 | ||
273 | menu "Unsupported / Unmaintained" | 265 | menu "Unsupported / Unmaintained" |
274 | source noncore/unsupported/config.in | 266 | source noncore/unsupported/config.in |
275 | endmenu | 267 | endmenu |
276 | 268 | ||
277 | comment "" | 269 | comment "" |
278 | depends on EXPERIMENTAL | 270 | depends on EXPERIMENTAL |
279 | menu "Experimental" | 271 | menu "Experimental" |
280 | depends on EXPERIMENTAL | 272 | depends on EXPERIMENTAL |
281 | source libslcompat/config.in | 273 | source libslcompat/config.in |
282 | source core/qws/config.in | 274 | source core/qws/config.in |
283 | endmenu | 275 | endmenu |
diff --git a/library/library.pro b/library/library.pro index 04e125f..95c18a2 100644 --- a/library/library.pro +++ b/library/library.pro | |||
@@ -1,145 +1,139 @@ | |||
1 | TEMPLATE= lib | 1 | TEMPLATE= lib |
2 | #CONFIG += qt warn_on release | 2 | #CONFIG += qt warn_on release |
3 | CONFIG += qt warn_on debug | 3 | CONFIG += qt warn_on debug |
4 | HEADERS= calendar.h \ | 4 | HEADERS= calendar.h \ |
5 | global.h \ | 5 | global.h \ |
6 | resource.h \ | 6 | resource.h \ |
7 | xmlreader.h \ | 7 | xmlreader.h \ |
8 | mimetype.h \ | 8 | mimetype.h \ |
9 | menubutton.h \ | 9 | menubutton.h \ |
10 | network.h \ | 10 | network.h \ |
11 | networkinterface.h \ | 11 | networkinterface.h \ |
12 | filemanager.h \ | 12 | filemanager.h \ |
13 | fontmanager.h \ | 13 | fontmanager.h \ |
14 | qdawg.h \ | 14 | qdawg.h \ |
15 | datebookmonth.h \ | 15 | datebookmonth.h \ |
16 | fileselector.h \ | 16 | fileselector.h \ |
17 | fileselector_p.h \ | 17 | fileselector_p.h \ |
18 | imageedit.h \ | 18 | imageedit.h \ |
19 | qcopenvelope_qws.h \ | 19 | qcopenvelope_qws.h \ |
20 | qpedecoration_qws.h \ | 20 | qpedecoration_qws.h \ |
21 | qpeapplication.h \ | 21 | qpeapplication.h \ |
22 | qpestyle.h \ | 22 | qpestyle.h \ |
23 | qpedialog.h \ | 23 | qpedialog.h \ |
24 | lightstyle.h \ | 24 | lightstyle.h \ |
25 | config.h \ | 25 | config.h \ |
26 | applnk.h \ | 26 | applnk.h \ |
27 | sound.h \ | 27 | sound.h \ |
28 | tzselect.h \ | 28 | tzselect.h \ |
29 | qmath.h \ | 29 | qmath.h \ |
30 | datebookdb.h \ | 30 | datebookdb.h \ |
31 | alarmserver.h \ | 31 | alarmserver.h \ |
32 | process.h \ | 32 | process.h \ |
33 | password.h \ | 33 | password.h \ |
34 | timestring.h \ | 34 | timestring.h \ |
35 | fontfactoryinterface.h \ | 35 | fontfactoryinterface.h \ |
36 | fontdatabase.h \ | 36 | fontdatabase.h \ |
37 | power.h \ | 37 | power.h \ |
38 | storage.h \ | 38 | storage.h \ |
39 | qpemessagebox.h \ | 39 | qpemessagebox.h \ |
40 | timeconversion.h \ | 40 | timeconversion.h \ |
41 | qpedebug.h \ | 41 | qpedebug.h \ |
42 | qpemenubar.h \ | 42 | qpemenubar.h \ |
43 | qpetoolbar.h \ | 43 | qpetoolbar.h \ |
44 | backend/categories.h \ | 44 | backend/categories.h \ |
45 | stringutil.h \ | 45 | stringutil.h \ |
46 | backend/palmtoprecord.h \ | 46 | backend/palmtoprecord.h \ |
47 | backend/task.h \ | 47 | backend/task.h \ |
48 | backend/event.h \ | 48 | backend/event.h \ |
49 | backend/contact.h\ | 49 | backend/contact.h\ |
50 | categorymenu.h \ | 50 | categorymenu.h \ |
51 | categoryedit_p.h \ | 51 | categoryedit_p.h \ |
52 | categoryselect.h \ | 52 | categoryselect.h \ |
53 | categorywidget.h \ | 53 | categorywidget.h \ |
54 | ir.h \ | 54 | ir.h \ |
55 | backend/vobject_p.h \ | 55 | backend/vobject_p.h \ |
56 | findwidget_p.h \ | 56 | findwidget_p.h \ |
57 | finddialog.h \ | 57 | finddialog.h \ |
58 | lnkproperties.h \ | 58 | lnkproperties.h \ |
59 | windowdecorationinterface.h \ | 59 | windowdecorationinterface.h \ |
60 | textcodecinterface.h \ | 60 | textcodecinterface.h \ |
61 | imagecodecinterface.h \ | 61 | imagecodecinterface.h \ |
62 | qt_override_p.h \ | ||
63 | qpeglobal.h | 62 | qpeglobal.h |
64 | 63 | ||
65 | SOURCES= calendar.cpp \ | 64 | SOURCES= calendar.cpp \ |
66 | global.cpp \ | 65 | global.cpp \ |
67 | xmlreader.cpp \ | 66 | xmlreader.cpp \ |
68 | mimetype.cpp \ | 67 | mimetype.cpp \ |
69 | menubutton.cpp \ | 68 | menubutton.cpp \ |
70 | network.cpp \ | 69 | network.cpp \ |
71 | networkinterface.cpp \ | 70 | networkinterface.cpp \ |
72 | filemanager.cpp \ | 71 | filemanager.cpp \ |
73 | fontmanager.cpp \ | 72 | fontmanager.cpp \ |
74 | qdawg.cpp \ | 73 | qdawg.cpp \ |
75 | datebookmonth.cpp \ | 74 | datebookmonth.cpp \ |
76 | fileselector.cpp \ | 75 | fileselector.cpp \ |
77 | imageedit.cpp \ | 76 | imageedit.cpp \ |
78 | resource.cpp \ | 77 | resource.cpp \ |
79 | qpedecoration_qws.cpp \ | 78 | qpedecoration_qws.cpp \ |
80 | qcopenvelope_qws.cpp \ | 79 | qcopenvelope_qws.cpp \ |
81 | qpeapplication.cpp \ | 80 | qpeapplication.cpp \ |
82 | qpestyle.cpp \ | 81 | qpestyle.cpp \ |
83 | qpedialog.cpp \ | 82 | qpedialog.cpp \ |
84 | lightstyle.cpp \ | 83 | lightstyle.cpp \ |
85 | config.cpp \ | 84 | config.cpp \ |
86 | applnk.cpp \ | 85 | applnk.cpp \ |
87 | sound.cpp \ | 86 | sound.cpp \ |
88 | tzselect.cpp \ | 87 | tzselect.cpp \ |
89 | qmath.c \ | 88 | qmath.c \ |
90 | datebookdb.cpp \ | 89 | datebookdb.cpp \ |
91 | alarmserver.cpp \ | 90 | alarmserver.cpp \ |
92 | password.cpp \ | 91 | password.cpp \ |
93 | process.cpp \ | 92 | process.cpp \ |
94 | process_unix.cpp \ | 93 | process_unix.cpp \ |
95 | timestring.cpp \ | 94 | timestring.cpp \ |
96 | fontdatabase.cpp \ | 95 | fontdatabase.cpp \ |
97 | power.cpp \ | 96 | power.cpp \ |
98 | storage.cpp \ | 97 | storage.cpp \ |
99 | qpemessagebox.cpp \ | 98 | qpemessagebox.cpp \ |
100 | backend/timeconversion.cpp \ | 99 | backend/timeconversion.cpp \ |
101 | qpedebug.cpp \ | 100 | qpedebug.cpp \ |
102 | qpemenubar.cpp \ | 101 | qpemenubar.cpp \ |
103 | qpetoolbar.cpp \ | 102 | qpetoolbar.cpp \ |
104 | backend/categories.cpp \ | 103 | backend/categories.cpp \ |
105 | backend/stringutil.cpp \ | 104 | backend/stringutil.cpp \ |
106 | backend/palmtoprecord.cpp \ | 105 | backend/palmtoprecord.cpp \ |
107 | backend/task.cpp \ | 106 | backend/task.cpp \ |
108 | backend/event.cpp \ | 107 | backend/event.cpp \ |
109 | backend/contact.cpp \ | 108 | backend/contact.cpp \ |
110 | categorymenu.cpp \ | 109 | categorymenu.cpp \ |
111 | categoryedit_p.cpp \ | 110 | categoryedit_p.cpp \ |
112 | categoryselect.cpp \ | 111 | categoryselect.cpp \ |
113 | categorywidget.cpp \ | 112 | categorywidget.cpp \ |
114 | ir.cpp \ | 113 | ir.cpp \ |
115 | backend/vcc_yacc.cpp \ | 114 | backend/vcc_yacc.cpp \ |
116 | backend/vobject.cpp \ | 115 | backend/vobject.cpp \ |
117 | findwidget_p.cpp \ | 116 | findwidget_p.cpp \ |
118 | finddialog.cpp \ | 117 | finddialog.cpp \ |
119 | lnkproperties.cpp \ | 118 | lnkproperties.cpp \ |
120 | qt_override.cpp \ | ||
121 | widget_showing.cpp | 119 | widget_showing.cpp |
122 | 120 | ||
123 | 121 | ||
124 | 122 | ||
125 | # Qt 3 compatibility | 123 | # Qt 3 compatibility |
126 | HEADERS += quuid.h qcom.h qlibrary.h qlibrary_p.h | 124 | HEADERS += quuid.h qcom.h qlibrary.h qlibrary_p.h |
127 | SOURCES += quuid.cpp qlibrary.cpp qlibrary_unix.cpp | 125 | SOURCES += quuid.cpp qlibrary.cpp qlibrary_unix.cpp |
128 | INCLUDEPATH += $(OPIEDIR)/include backend | 126 | INCLUDEPATH += $(OPIEDIR)/include backend |
129 | LIBS += -ldl -lcrypt -lm | 127 | LIBS += -ldl -lcrypt -lm |
130 | INTERFACES = passwordbase_p.ui categoryeditbase_p.ui findwidgetbase_p.ui lnkpropertiesbase_p.ui | 128 | INTERFACES = passwordbase_p.ui categoryeditbase_p.ui findwidgetbase_p.ui lnkpropertiesbase_p.ui |
131 | TARGET = qpe | 129 | TARGET = qpe |
132 | DESTDIR = $(OPIEDIR)/lib$(PROJMAK) | 130 | DESTDIR = $(OPIEDIR)/lib$(PROJMAK) |
133 | VERSION = 1.5.0.1 | 131 | VERSION = 1.5.0.1 |
134 | 132 | ||
135 | include( $(OPIEDIR)/include.pro ) | 133 | include( $(OPIEDIR)/include.pro ) |
136 | 134 | ||
137 | contains( CONFIG, no-override ){ | ||
138 | DEFINES += OPIE_NO_OVERRIDE_QT | ||
139 | } | ||
140 | |||
141 | contains( CONFIG, LIBQPE_WITHROHFEEDBACK ){ | 135 | contains( CONFIG, LIBQPE_WITHROHFEEDBACK ){ |
142 | DEFINES += OPIE_WITHROHFEEDBACK | 136 | DEFINES += OPIE_WITHROHFEEDBACK |
143 | SOURCES += backend/rohfeedback.cpp | 137 | SOURCES += backend/rohfeedback.cpp |
144 | HEADERS += backend/rohfeedback.h | 138 | HEADERS += backend/rohfeedback.h |
145 | } | 139 | } |
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp index 1c5ced3..2bd7cbe 100644 --- a/library/qpeapplication.cpp +++ b/library/qpeapplication.cpp | |||
@@ -1,355 +1,354 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of the Qtopia Environment. | 4 | ** This file is part of the Qtopia Environment. |
5 | ** | 5 | ** |
6 | ** This file may be distributed and/or modified under the terms of the | 6 | ** This file may be distributed and/or modified under the terms of the |
7 | ** GNU General Public License version 2 as published by the Free Software | 7 | ** GNU General Public License version 2 as published by the Free Software |
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | 8 | ** Foundation and appearing in the file LICENSE.GPL included in the |
9 | ** packaging of this file. | 9 | ** packaging of this file. |
10 | ** | 10 | ** |
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 13 | ** |
14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
15 | ** | 15 | ** |
16 | ** Contact info@trolltech.com if any conditions of this licensing are | 16 | ** Contact info@trolltech.com if any conditions of this licensing are |
17 | ** not clear to you. | 17 | ** not clear to you. |
18 | ** | 18 | ** |
19 | */ | 19 | */ |
20 | #define QTOPIA_INTERNAL_LANGLIST | 20 | #define QTOPIA_INTERNAL_LANGLIST |
21 | #include <stdlib.h> | 21 | #include <stdlib.h> |
22 | #include <unistd.h> | 22 | #include <unistd.h> |
23 | #ifndef Q_OS_MACX | 23 | #ifndef Q_OS_MACX |
24 | #include <linux/limits.h> // needed for some toolchains (PATH_MAX) | 24 | #include <linux/limits.h> // needed for some toolchains (PATH_MAX) |
25 | #endif | 25 | #endif |
26 | #include <qfile.h> | 26 | #include <qfile.h> |
27 | #include <qqueue.h> | 27 | #include <qqueue.h> |
28 | #ifdef Q_WS_QWS | 28 | #ifdef Q_WS_QWS |
29 | #ifndef QT_NO_COP | 29 | #ifndef QT_NO_COP |
30 | #if QT_VERSION <= 231 | 30 | #if QT_VERSION <= 231 |
31 | #define private public | 31 | #define private public |
32 | #define sendLocally processEvent | 32 | #define sendLocally processEvent |
33 | #include "qcopenvelope_qws.h" | 33 | #include "qcopenvelope_qws.h" |
34 | #undef private | 34 | #undef private |
35 | #else | 35 | #else |
36 | #include "qcopenvelope_qws.h" | 36 | #include "qcopenvelope_qws.h" |
37 | #endif | 37 | #endif |
38 | #endif | 38 | #endif |
39 | #include <qwindowsystem_qws.h> | 39 | #include <qwindowsystem_qws.h> |
40 | #endif | 40 | #endif |
41 | #include <qtextstream.h> | 41 | #include <qtextstream.h> |
42 | #include <qpalette.h> | 42 | #include <qpalette.h> |
43 | #include <qbuffer.h> | 43 | #include <qbuffer.h> |
44 | #include <qptrdict.h> | 44 | #include <qptrdict.h> |
45 | #include <qregexp.h> | 45 | #include <qregexp.h> |
46 | #include <qdir.h> | 46 | #include <qdir.h> |
47 | #include <qlabel.h> | 47 | #include <qlabel.h> |
48 | #include <qdialog.h> | 48 | #include <qdialog.h> |
49 | #include <qdragobject.h> | 49 | #include <qdragobject.h> |
50 | #include <qtextcodec.h> | 50 | #include <qtextcodec.h> |
51 | #include <qevent.h> | 51 | #include <qevent.h> |
52 | #include <qtooltip.h> | 52 | #include <qtooltip.h> |
53 | #include <qsignal.h> | 53 | #include <qsignal.h> |
54 | #include <qmainwindow.h> | 54 | #include <qmainwindow.h> |
55 | #include <qwidgetlist.h> | 55 | #include <qwidgetlist.h> |
56 | #include <qpixmapcache.h> | 56 | #include <qpixmapcache.h> |
57 | 57 | ||
58 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) | 58 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) |
59 | #define QTOPIA_INTERNAL_INITAPP | 59 | #define QTOPIA_INTERNAL_INITAPP |
60 | #include "qpeapplication.h" | 60 | #include "qpeapplication.h" |
61 | #include "qpestyle.h" | 61 | #include "qpestyle.h" |
62 | #include "styleinterface.h" | 62 | #include "styleinterface.h" |
63 | #if QT_VERSION >= 0x030000 | 63 | #if QT_VERSION >= 0x030000 |
64 | #include <qstylefactory.h> | 64 | #include <qstylefactory.h> |
65 | #else | 65 | #else |
66 | #include <qplatinumstyle.h> | 66 | #include <qplatinumstyle.h> |
67 | #include <qwindowsstyle.h> | 67 | #include <qwindowsstyle.h> |
68 | #include <qmotifstyle.h> | 68 | #include <qmotifstyle.h> |
69 | #include <qmotifplusstyle.h> | 69 | #include <qmotifplusstyle.h> |
70 | #include "lightstyle.h" | 70 | #include "lightstyle.h" |
71 | 71 | ||
72 | #include <qpe/qlibrary.h> | 72 | #include <qpe/qlibrary.h> |
73 | #endif | 73 | #endif |
74 | #include "global.h" | 74 | #include "global.h" |
75 | #include "resource.h" | 75 | #include "resource.h" |
76 | #if QT_VERSION <= 230 && defined(QT_NO_CODECS) | 76 | #if QT_VERSION <= 230 && defined(QT_NO_CODECS) |
77 | #include "qutfcodec.h" | 77 | #include "qutfcodec.h" |
78 | #endif | 78 | #endif |
79 | #include "config.h" | 79 | #include "config.h" |
80 | #include "network.h" | 80 | #include "network.h" |
81 | #ifdef QWS | 81 | #ifdef QWS |
82 | #include "fontmanager.h" | 82 | #include "fontmanager.h" |
83 | #include "fontdatabase.h" | 83 | #include "fontdatabase.h" |
84 | #endif | 84 | #endif |
85 | 85 | ||
86 | #include "alarmserver.h" | 86 | #include "alarmserver.h" |
87 | #include "applnk.h" | 87 | #include "applnk.h" |
88 | #include "qpemenubar.h" | 88 | #include "qpemenubar.h" |
89 | #include "textcodecinterface.h" | 89 | #include "textcodecinterface.h" |
90 | #include "imagecodecinterface.h" | 90 | #include "imagecodecinterface.h" |
91 | #include <qtopia/qpeglobal.h> | 91 | #include <qtopia/qpeglobal.h> |
92 | 92 | ||
93 | #include <unistd.h> | 93 | #include <unistd.h> |
94 | #include <sys/file.h> | 94 | #include <sys/file.h> |
95 | #include <sys/ioctl.h> | 95 | #include <sys/ioctl.h> |
96 | #ifndef QT_NO_SOUND | 96 | #ifndef QT_NO_SOUND |
97 | #include <sys/soundcard.h> | 97 | #include <sys/soundcard.h> |
98 | #endif | 98 | #endif |
99 | #include "qt_override_p.h" | ||
100 | 99 | ||
101 | #include <backend/rohfeedback.h> | 100 | #include <backend/rohfeedback.h> |
102 | 101 | ||
103 | 102 | ||
104 | static bool useBigPixmaps = 0; | 103 | static bool useBigPixmaps = 0; |
105 | 104 | ||
106 | class HackWidget : public QWidget | 105 | class HackWidget : public QWidget |
107 | { | 106 | { |
108 | public: | 107 | public: |
109 | bool needsOk() | 108 | bool needsOk() |
110 | { return (getWState() & WState_Reserved1 ); } | 109 | { return (getWState() & WState_Reserved1 ); } |
111 | 110 | ||
112 | QRect normalGeometry() | 111 | QRect normalGeometry() |
113 | { return topData()->normalGeometry; }; | 112 | { return topData()->normalGeometry; }; |
114 | }; | 113 | }; |
115 | 114 | ||
116 | class QPEApplicationData | 115 | class QPEApplicationData |
117 | { | 116 | { |
118 | public: | 117 | public: |
119 | QPEApplicationData ( ) : | 118 | QPEApplicationData ( ) : |
120 | presstimer( 0 ), presswidget( 0 ), rightpressed( false ), kbgrabbed( false ), | 119 | presstimer( 0 ), presswidget( 0 ), rightpressed( false ), kbgrabbed( false ), |
121 | notbusysent( false ), preloaded( false ), forceshow( false ), nomaximize( false ), | 120 | notbusysent( false ), preloaded( false ), forceshow( false ), nomaximize( false ), |
122 | keep_running( true ), qcopQok( false ), | 121 | keep_running( true ), qcopQok( false ), |
123 | fontFamily( "Vera" ), fontSize( 10 ), smallIconSize( 14 ), | 122 | fontFamily( "Vera" ), fontSize( 10 ), smallIconSize( 14 ), |
124 | bigIconSize( 32 ), qpe_main_widget( 0 ) | 123 | bigIconSize( 32 ), qpe_main_widget( 0 ) |
125 | { | 124 | { |
126 | Config cfg( "qpe" ); | 125 | Config cfg( "qpe" ); |
127 | cfg.setGroup( "Appearance" ); | 126 | cfg.setGroup( "Appearance" ); |
128 | useBigPixmaps = cfg.readBoolEntry( "useBigPixmaps", false ); | 127 | useBigPixmaps = cfg.readBoolEntry( "useBigPixmaps", false ); |
129 | fontFamily = cfg.readEntry( "FontFamily", "Vera" ); | 128 | fontFamily = cfg.readEntry( "FontFamily", "Vera" ); |
130 | fontSize = cfg.readNumEntry( "FontSize", 10 ); | 129 | fontSize = cfg.readNumEntry( "FontSize", 10 ); |
131 | smallIconSize = cfg.readNumEntry( "SmallIconSize", 14 ); | 130 | smallIconSize = cfg.readNumEntry( "SmallIconSize", 14 ); |
132 | bigIconSize = cfg.readNumEntry( "BigIconSize", 32 ); | 131 | bigIconSize = cfg.readNumEntry( "BigIconSize", 32 ); |
133 | #ifdef OPIE_WITHROHFEEDBACK | 132 | #ifdef OPIE_WITHROHFEEDBACK |
134 | RoH = 0; | 133 | RoH = 0; |
135 | #endif | 134 | #endif |
136 | } | 135 | } |
137 | 136 | ||
138 | int presstimer; | 137 | int presstimer; |
139 | QWidget* presswidget; | 138 | QWidget* presswidget; |
140 | QPoint presspos; | 139 | QPoint presspos; |
141 | #ifdef OPIE_WITHROHFEEDBACK | 140 | #ifdef OPIE_WITHROHFEEDBACK |
142 | Opie::Internal::RoHFeedback *RoH; | 141 | Opie::Internal::RoHFeedback *RoH; |
143 | #endif | 142 | #endif |
144 | 143 | ||
145 | bool rightpressed : 1; | 144 | bool rightpressed : 1; |
146 | bool kbgrabbed : 1; | 145 | bool kbgrabbed : 1; |
147 | bool notbusysent : 1; | 146 | bool notbusysent : 1; |
148 | bool preloaded : 1; | 147 | bool preloaded : 1; |
149 | bool forceshow : 1; | 148 | bool forceshow : 1; |
150 | bool nomaximize : 1; | 149 | bool nomaximize : 1; |
151 | bool keep_running : 1; | 150 | bool keep_running : 1; |
152 | bool qcopQok : 1; | 151 | bool qcopQok : 1; |
153 | 152 | ||
154 | QCString fontFamily; | 153 | QCString fontFamily; |
155 | int fontSize; | 154 | int fontSize; |
156 | int smallIconSize; | 155 | int smallIconSize; |
157 | int bigIconSize; | 156 | int bigIconSize; |
158 | 157 | ||
159 | QString appName; | 158 | QString appName; |
160 | struct QCopRec | 159 | struct QCopRec |
161 | { | 160 | { |
162 | QCopRec( const QCString &ch, const QCString &msg, | 161 | QCopRec( const QCString &ch, const QCString &msg, |
163 | const QByteArray &d ) : | 162 | const QByteArray &d ) : |
164 | channel( ch ), message( msg ), data( d ) | 163 | channel( ch ), message( msg ), data( d ) |
165 | { } | 164 | { } |
166 | 165 | ||
167 | QCString channel; | 166 | QCString channel; |
168 | QCString message; | 167 | QCString message; |
169 | QByteArray data; | 168 | QByteArray data; |
170 | }; | 169 | }; |
171 | QWidget* qpe_main_widget; | 170 | QWidget* qpe_main_widget; |
172 | QGuardedPtr<QWidget> lastraised; | 171 | QGuardedPtr<QWidget> lastraised; |
173 | QQueue<QCopRec> qcopq; | 172 | QQueue<QCopRec> qcopq; |
174 | QString styleName; | 173 | QString styleName; |
175 | QString decorationName; | 174 | QString decorationName; |
176 | 175 | ||
177 | void enqueueQCop( const QCString &ch, const QCString &msg, | 176 | void enqueueQCop( const QCString &ch, const QCString &msg, |
178 | const QByteArray &data ) | 177 | const QByteArray &data ) |
179 | { | 178 | { |
180 | qcopq.enqueue( new QCopRec( ch, msg, data ) ); | 179 | qcopq.enqueue( new QCopRec( ch, msg, data ) ); |
181 | } | 180 | } |
182 | void sendQCopQ() | 181 | void sendQCopQ() |
183 | { | 182 | { |
184 | if (!qcopQok ) | 183 | if (!qcopQok ) |
185 | return; | 184 | return; |
186 | 185 | ||
187 | QCopRec * r; | 186 | QCopRec * r; |
188 | 187 | ||
189 | while((r=qcopq.dequeue())) { | 188 | while((r=qcopq.dequeue())) { |
190 | // remove from queue before sending... | 189 | // remove from queue before sending... |
191 | // event loop can come around again before getting | 190 | // event loop can come around again before getting |
192 | // back from sendLocally | 191 | // back from sendLocally |
193 | #ifndef QT_NO_COP | 192 | #ifndef QT_NO_COP |
194 | QCopChannel::sendLocally( r->channel, r->message, r->data ); | 193 | QCopChannel::sendLocally( r->channel, r->message, r->data ); |
195 | #endif | 194 | #endif |
196 | 195 | ||
197 | delete r; | 196 | delete r; |
198 | } | 197 | } |
199 | } | 198 | } |
200 | 199 | ||
201 | static void show_mx(QWidget* mw, bool nomaximize, QString &strName) { | 200 | static void show_mx(QWidget* mw, bool nomaximize, QString &strName) { |
202 | if ( mw->inherits("QMainWindow") || mw->isA("QMainWindow") ) | 201 | if ( mw->inherits("QMainWindow") || mw->isA("QMainWindow") ) |
203 | { | 202 | { |
204 | ( ( QMainWindow* ) mw )->setUsesBigPixmaps( useBigPixmaps ); | 203 | ( ( QMainWindow* ) mw )->setUsesBigPixmaps( useBigPixmaps ); |
205 | } | 204 | } |
206 | QPoint p; | 205 | QPoint p; |
207 | QSize s; | 206 | QSize s; |
208 | bool max; | 207 | bool max; |
209 | 208 | ||
210 | if ( mw->isVisible() ) { | 209 | if ( mw->isVisible() ) { |
211 | if ( read_widget_rect(strName, max, p, s) && validate_widget_size(mw, p, s) ) { | 210 | if ( read_widget_rect(strName, max, p, s) && validate_widget_size(mw, p, s) ) { |
212 | mw->resize(s); | 211 | mw->resize(s); |
213 | mw->move(p); | 212 | mw->move(p); |
214 | } | 213 | } |
215 | mw->raise(); | 214 | mw->raise(); |
216 | } else { | 215 | } else { |
217 | 216 | ||
218 | if ( mw->layout() && mw->inherits("QDialog") ) { | 217 | if ( mw->layout() && mw->inherits("QDialog") ) { |
219 | if ( read_widget_rect(strName, max, p, s) && validate_widget_size(mw, p, s) ) { | 218 | if ( read_widget_rect(strName, max, p, s) && validate_widget_size(mw, p, s) ) { |
220 | mw->resize(s); | 219 | mw->resize(s); |
221 | mw->move(p); | 220 | mw->move(p); |
222 | 221 | ||
223 | if ( max && !nomaximize ) { | 222 | if ( max && !nomaximize ) { |
224 | mw->showMaximized(); | 223 | mw->showMaximized(); |
225 | } else { | 224 | } else { |
226 | mw->show(); | 225 | mw->show(); |
227 | } | 226 | } |
228 | } else { | 227 | } else { |
229 | QPEApplication::showDialog((QDialog*)mw,nomaximize); | 228 | QPEApplication::showDialog((QDialog*)mw,nomaximize); |
230 | } | 229 | } |
231 | } else { | 230 | } else { |
232 | if ( read_widget_rect(strName, max, p, s) && validate_widget_size(mw, p, s) ) { | 231 | if ( read_widget_rect(strName, max, p, s) && validate_widget_size(mw, p, s) ) { |
233 | mw->resize(s); | 232 | mw->resize(s); |
234 | mw->move(p); | 233 | mw->move(p); |
235 | } else { //no stored rectangle, make an estimation | 234 | } else { //no stored rectangle, make an estimation |
236 | int x = (qApp->desktop()->width()-mw->frameGeometry().width())/2; | 235 | int x = (qApp->desktop()->width()-mw->frameGeometry().width())/2; |
237 | int y = (qApp->desktop()->height()-mw->frameGeometry().height())/2; | 236 | int y = (qApp->desktop()->height()-mw->frameGeometry().height())/2; |
238 | mw->move( QMAX(x,0), QMAX(y,0) ); | 237 | mw->move( QMAX(x,0), QMAX(y,0) ); |
239 | #ifdef Q_WS_QWS | 238 | #ifdef Q_WS_QWS |
240 | if ( !nomaximize ) | 239 | if ( !nomaximize ) |
241 | mw->showMaximized(); | 240 | mw->showMaximized(); |
242 | #endif | 241 | #endif |
243 | } | 242 | } |
244 | if ( max && !nomaximize ) | 243 | if ( max && !nomaximize ) |
245 | mw->showMaximized(); | 244 | mw->showMaximized(); |
246 | else | 245 | else |
247 | mw->show(); | 246 | mw->show(); |
248 | } | 247 | } |
249 | } | 248 | } |
250 | } | 249 | } |
251 | 250 | ||
252 | static bool read_widget_rect(const QString &app, bool &maximized, QPoint &p, QSize &s) | 251 | static bool read_widget_rect(const QString &app, bool &maximized, QPoint &p, QSize &s) |
253 | { | 252 | { |
254 | maximized = TRUE; | 253 | maximized = TRUE; |
255 | // 350 is the trigger in qwsdefaultdecoration for providing a resize button | 254 | // 350 is the trigger in qwsdefaultdecoration for providing a resize button |
256 | if ( qApp->desktop()->width() <= 350 ) | 255 | if ( qApp->desktop()->width() <= 350 ) |
257 | return FALSE; | 256 | return FALSE; |
258 | 257 | ||
259 | Config cfg( "qpe" ); | 258 | Config cfg( "qpe" ); |
260 | cfg.setGroup("ApplicationPositions"); | 259 | cfg.setGroup("ApplicationPositions"); |
261 | QString str = cfg.readEntry( app, QString::null ); | 260 | QString str = cfg.readEntry( app, QString::null ); |
262 | QStringList l = QStringList::split(",", str); | 261 | QStringList l = QStringList::split(",", str); |
263 | 262 | ||
264 | if ( l.count() == 5) { | 263 | if ( l.count() == 5) { |
265 | p.setX( l[0].toInt() ); | 264 | p.setX( l[0].toInt() ); |
266 | p.setY( l[1].toInt() ); | 265 | p.setY( l[1].toInt() ); |
267 | 266 | ||
268 | s.setWidth( l[2].toInt() ); | 267 | s.setWidth( l[2].toInt() ); |
269 | s.setHeight( l[3].toInt() ); | 268 | s.setHeight( l[3].toInt() ); |
270 | 269 | ||
271 | maximized = l[4].toInt(); | 270 | maximized = l[4].toInt(); |
272 | 271 | ||
273 | return TRUE; | 272 | return TRUE; |
274 | } | 273 | } |
275 | 274 | ||
276 | return FALSE; | 275 | return FALSE; |
277 | } | 276 | } |
278 | 277 | ||
279 | 278 | ||
280 | static bool validate_widget_size(const QWidget *w, QPoint &p, QSize &s) | 279 | static bool validate_widget_size(const QWidget *w, QPoint &p, QSize &s) |
281 | { | 280 | { |
282 | #ifndef Q_WS_QWS | 281 | #ifndef Q_WS_QWS |
283 | QRect qt_maxWindowRect = qApp->desktop()->geometry(); | 282 | QRect qt_maxWindowRect = qApp->desktop()->geometry(); |
284 | #endif | 283 | #endif |
285 | int maxX = qt_maxWindowRect.width(); | 284 | int maxX = qt_maxWindowRect.width(); |
286 | int maxY = qt_maxWindowRect.height(); | 285 | int maxY = qt_maxWindowRect.height(); |
287 | int wWidth = s.width() + ( w->frameGeometry().width() - w->geometry().width() ); | 286 | int wWidth = s.width() + ( w->frameGeometry().width() - w->geometry().width() ); |
288 | int wHeight = s.height() + ( w->frameGeometry().height() - w->geometry().height() ); | 287 | int wHeight = s.height() + ( w->frameGeometry().height() - w->geometry().height() ); |
289 | 288 | ||
290 | // total window size is not allowed to be larger than desktop window size | 289 | // total window size is not allowed to be larger than desktop window size |
291 | if ( ( wWidth >= maxX ) && ( wHeight >= maxY ) ) | 290 | if ( ( wWidth >= maxX ) && ( wHeight >= maxY ) ) |
292 | return FALSE; | 291 | return FALSE; |
293 | 292 | ||
294 | if ( wWidth > maxX ) { | 293 | if ( wWidth > maxX ) { |
295 | s.setWidth( maxX - (w->frameGeometry().width() - w->geometry().width() ) ); | 294 | s.setWidth( maxX - (w->frameGeometry().width() - w->geometry().width() ) ); |
296 | wWidth = maxX; | 295 | wWidth = maxX; |
297 | } | 296 | } |
298 | 297 | ||
299 | if ( wHeight > maxY ) { | 298 | if ( wHeight > maxY ) { |
300 | s.setHeight( maxY - (w->frameGeometry().height() - w->geometry().height() ) ); | 299 | s.setHeight( maxY - (w->frameGeometry().height() - w->geometry().height() ) ); |
301 | wHeight = maxY; | 300 | wHeight = maxY; |
302 | } | 301 | } |
303 | 302 | ||
304 | // any smaller than this and the maximize/close/help buttons will be overlapping | 303 | // any smaller than this and the maximize/close/help buttons will be overlapping |
305 | if ( wWidth < 80 || wHeight < 60 ) | 304 | if ( wWidth < 80 || wHeight < 60 ) |
306 | return FALSE; | 305 | return FALSE; |
307 | 306 | ||
308 | if ( p.x() < 0 ) | 307 | if ( p.x() < 0 ) |
309 | p.setX(0); | 308 | p.setX(0); |
310 | if ( p.y() < 0 ) | 309 | if ( p.y() < 0 ) |
311 | p.setY(0); | 310 | p.setY(0); |
312 | 311 | ||
313 | if ( p.x() + wWidth > maxX ) | 312 | if ( p.x() + wWidth > maxX ) |
314 | p.setX( maxX - wWidth ); | 313 | p.setX( maxX - wWidth ); |
315 | if ( p.y() + wHeight > maxY ) | 314 | if ( p.y() + wHeight > maxY ) |
316 | p.setY( maxY - wHeight ); | 315 | p.setY( maxY - wHeight ); |
317 | 316 | ||
318 | return TRUE; | 317 | return TRUE; |
319 | } | 318 | } |
320 | 319 | ||
321 | static void store_widget_rect(QWidget *w, QString &app) | 320 | static void store_widget_rect(QWidget *w, QString &app) |
322 | { | 321 | { |
323 | // 350 is the trigger in qwsdefaultdecoration for providing a resize button | 322 | // 350 is the trigger in qwsdefaultdecoration for providing a resize button |
324 | if ( qApp->desktop()->width() <= 350 ) | 323 | if ( qApp->desktop()->width() <= 350 ) |
325 | return; | 324 | return; |
326 | // we use these to map the offset of geometry and pos. ( we can only use normalGeometry to | 325 | // we use these to map the offset of geometry and pos. ( we can only use normalGeometry to |
327 | // get the non-maximized version, so we have to do it the hard way ) | 326 | // get the non-maximized version, so we have to do it the hard way ) |
328 | int offsetX = w->x() - w->geometry().left(); | 327 | int offsetX = w->x() - w->geometry().left(); |
329 | int offsetY = w->y() - w->geometry().top(); | 328 | int offsetY = w->y() - w->geometry().top(); |
330 | 329 | ||
331 | QRect r; | 330 | QRect r; |
332 | if ( w->isMaximized() ) | 331 | if ( w->isMaximized() ) |
333 | r = ( (HackWidget *) w)->normalGeometry(); | 332 | r = ( (HackWidget *) w)->normalGeometry(); |
334 | else | 333 | else |
335 | r = w->geometry(); | 334 | r = w->geometry(); |
336 | 335 | ||
337 | // Stores the window placement as pos(), size() (due to the offset mapping) | 336 | // Stores the window placement as pos(), size() (due to the offset mapping) |
338 | Config cfg( "qpe" ); | 337 | Config cfg( "qpe" ); |
339 | cfg.setGroup("ApplicationPositions"); | 338 | cfg.setGroup("ApplicationPositions"); |
340 | QString s; | 339 | QString s; |
341 | s.sprintf("%d,%d,%d,%d,%d", r.left() + offsetX, r.top() + offsetY, r.width(), r.height(), w->isMaximized() ); | 340 | s.sprintf("%d,%d,%d,%d,%d", r.left() + offsetX, r.top() + offsetY, r.width(), r.height(), w->isMaximized() ); |
342 | cfg.writeEntry( app, s ); | 341 | cfg.writeEntry( app, s ); |
343 | } | 342 | } |
344 | 343 | ||
345 | static bool setWidgetCaptionFromAppName( QWidget* /*mw*/, const QString& /*appName*/, const QString& /*appsPath*/ ) | 344 | static bool setWidgetCaptionFromAppName( QWidget* /*mw*/, const QString& /*appName*/, const QString& /*appsPath*/ ) |
346 | { | 345 | { |
347 | /* | 346 | /* |
348 | // This works but disable it for now until it is safe to apply | 347 | // This works but disable it for now until it is safe to apply |
349 | // What is does is scan the .desktop files of all the apps for | 348 | // What is does is scan the .desktop files of all the apps for |
350 | // the applnk that has the corresponding argv[0] as this program | 349 | // the applnk that has the corresponding argv[0] as this program |
351 | // then it uses the name stored in the .desktop file as the caption | 350 | // then it uses the name stored in the .desktop file as the caption |
352 | // for the main widget. This saves duplicating translations for | 351 | // for the main widget. This saves duplicating translations for |
353 | // the app name in the program and in the .desktop files. | 352 | // the app name in the program and in the .desktop files. |
354 | 353 | ||
355 | AppLnkSet apps( appsPath ); | 354 | AppLnkSet apps( appsPath ); |
@@ -1099,594 +1098,555 @@ bool QPEApplication::qwsEventFilter( QWSEvent * e ) | |||
1099 | return TRUE; | 1098 | return TRUE; |
1100 | } | 1099 | } |
1101 | else if ( ( ( HackWidget * ) active ) ->needsOk() ) { | 1100 | else if ( ( ( HackWidget * ) active ) ->needsOk() ) { |
1102 | QSignal s; | 1101 | QSignal s; |
1103 | s.connect( active, SLOT( accept() ) ); | 1102 | s.connect( active, SLOT( accept() ) ); |
1104 | s.activate(); | 1103 | s.activate(); |
1105 | } | 1104 | } |
1106 | else { | 1105 | else { |
1107 | // do the same as with the select key: Map to the default action of the widget: | 1106 | // do the same as with the select key: Map to the default action of the widget: |
1108 | mapToDefaultAction( ke, Qt::Key_Return ); | 1107 | mapToDefaultAction( ke, Qt::Key_Return ); |
1109 | } | 1108 | } |
1110 | } | 1109 | } |
1111 | } | 1110 | } |
1112 | } | 1111 | } |
1113 | else if ( ke->simpleData.keycode == Qt::Key_F30 ) { | 1112 | else if ( ke->simpleData.keycode == Qt::Key_F30 ) { |
1114 | // Use special "select" key to do whatever default action a widget has | 1113 | // Use special "select" key to do whatever default action a widget has |
1115 | mapToDefaultAction( ke, Qt::Key_Space ); | 1114 | mapToDefaultAction( ke, Qt::Key_Space ); |
1116 | } | 1115 | } |
1117 | else if ( ke->simpleData.keycode == Qt::Key_Escape && | 1116 | else if ( ke->simpleData.keycode == Qt::Key_Escape && |
1118 | ke->simpleData.is_press ) { | 1117 | ke->simpleData.is_press ) { |
1119 | // Escape key closes app if focus on toplevel | 1118 | // Escape key closes app if focus on toplevel |
1120 | QWidget * active = activeWindow(); | 1119 | QWidget * active = activeWindow(); |
1121 | if ( active && active->testWFlags( WType_TopLevel ) && | 1120 | if ( active && active->testWFlags( WType_TopLevel ) && |
1122 | ( int ) active->winId() == ke->simpleData.window && | 1121 | ( int ) active->winId() == ke->simpleData.window && |
1123 | !active->testWFlags( WStyle_Dialog | WStyle_Customize | WType_Popup | WType_Desktop ) ) { | 1122 | !active->testWFlags( WStyle_Dialog | WStyle_Customize | WType_Popup | WType_Desktop ) ) { |
1124 | if ( active->inherits( "QDialog" ) ) { | 1123 | if ( active->inherits( "QDialog" ) ) { |
1125 | HackDialog * d = ( HackDialog * ) active; | 1124 | HackDialog * d = ( HackDialog * ) active; |
1126 | d->rejectIt(); | 1125 | d->rejectIt(); |
1127 | return TRUE; | 1126 | return TRUE; |
1128 | } else /*if ( strcmp( argv() [ 0 ], "embeddedkonsole" ) != 0 )*/ { | 1127 | } else /*if ( strcmp( argv() [ 0 ], "embeddedkonsole" ) != 0 )*/ { |
1129 | active->close(); | 1128 | active->close(); |
1130 | } | 1129 | } |
1131 | } | 1130 | } |
1132 | 1131 | ||
1133 | } | 1132 | } |
1134 | else if ( ke->simpleData.keycode >= Qt::Key_F1 && ke->simpleData.keycode <= Qt::Key_F29 ) { | 1133 | else if ( ke->simpleData.keycode >= Qt::Key_F1 && ke->simpleData.keycode <= Qt::Key_F29 ) { |
1135 | // this should be if ( ODevice::inst ( )-> buttonForKeycode ( ... )) | 1134 | // this should be if ( ODevice::inst ( )-> buttonForKeycode ( ... )) |
1136 | // but we cannot access libopie function within libqpe :( | 1135 | // but we cannot access libopie function within libqpe :( |
1137 | 1136 | ||
1138 | QWidget * active = activeWindow ( ); | 1137 | QWidget * active = activeWindow ( ); |
1139 | if ( active && ((int) active-> winId ( ) == ke-> simpleData.window )) { | 1138 | if ( active && ((int) active-> winId ( ) == ke-> simpleData.window )) { |
1140 | if ( d-> kbgrabbed ) { // we grabbed the keyboard | 1139 | if ( d-> kbgrabbed ) { // we grabbed the keyboard |
1141 | QChar ch ( ke-> simpleData.unicode ); | 1140 | QChar ch ( ke-> simpleData.unicode ); |
1142 | QKeyEvent qke ( ke-> simpleData. is_press ? QEvent::KeyPress : QEvent::KeyRelease, | 1141 | QKeyEvent qke ( ke-> simpleData. is_press ? QEvent::KeyPress : QEvent::KeyRelease, |
1143 | ke-> simpleData.keycode, | 1142 | ke-> simpleData.keycode, |
1144 | ch. latin1 ( ), | 1143 | ch. latin1 ( ), |
1145 | ke-> simpleData.modifiers, | 1144 | ke-> simpleData.modifiers, |
1146 | QString ( ch ), | 1145 | QString ( ch ), |
1147 | ke-> simpleData.is_auto_repeat, 1 ); | 1146 | ke-> simpleData.is_auto_repeat, 1 ); |
1148 | 1147 | ||
1149 | QObject *which = QWidget::keyboardGrabber ( ); | 1148 | QObject *which = QWidget::keyboardGrabber ( ); |
1150 | if ( !which ) | 1149 | if ( !which ) |
1151 | which = QApplication::focusWidget ( ); | 1150 | which = QApplication::focusWidget ( ); |
1152 | if ( !which ) | 1151 | if ( !which ) |
1153 | which = QApplication::activeWindow ( ); | 1152 | which = QApplication::activeWindow ( ); |
1154 | if ( !which ) | 1153 | if ( !which ) |
1155 | which = qApp; | 1154 | which = qApp; |
1156 | 1155 | ||
1157 | QApplication::sendEvent ( which, &qke ); | 1156 | QApplication::sendEvent ( which, &qke ); |
1158 | } | 1157 | } |
1159 | else { // we didn't grab the keyboard, so send the event to the launcher | 1158 | else { // we didn't grab the keyboard, so send the event to the launcher |
1160 | QCopEnvelope e ( "QPE/Launcher", "deviceButton(int,int,int)" ); | 1159 | QCopEnvelope e ( "QPE/Launcher", "deviceButton(int,int,int)" ); |
1161 | e << int( ke-> simpleData.keycode ) << int( ke-> simpleData. is_press ) << int( ke-> simpleData.is_auto_repeat ); | 1160 | e << int( ke-> simpleData.keycode ) << int( ke-> simpleData. is_press ) << int( ke-> simpleData.is_auto_repeat ); |
1162 | } | 1161 | } |
1163 | } | 1162 | } |
1164 | return true; | 1163 | return true; |
1165 | } | 1164 | } |
1166 | } | 1165 | } |
1167 | if ( e->type == QWSEvent::Focus ) { | 1166 | if ( e->type == QWSEvent::Focus ) { |
1168 | QWSFocusEvent * fe = ( QWSFocusEvent* ) e; | 1167 | QWSFocusEvent * fe = ( QWSFocusEvent* ) e; |
1169 | if ( !fe->simpleData.get_focus ) { | 1168 | if ( !fe->simpleData.get_focus ) { |
1170 | QWidget * active = activeWindow(); | 1169 | QWidget * active = activeWindow(); |
1171 | while ( active && active->isPopup() ) { | 1170 | while ( active && active->isPopup() ) { |
1172 | active->close(); | 1171 | active->close(); |
1173 | active = activeWindow(); | 1172 | active = activeWindow(); |
1174 | } | 1173 | } |
1175 | } | 1174 | } |
1176 | else { | 1175 | else { |
1177 | // make sure our modal widget is ALWAYS on top | 1176 | // make sure our modal widget is ALWAYS on top |
1178 | QWidget *topm = activeModalWidget(); | 1177 | QWidget *topm = activeModalWidget(); |
1179 | if ( topm && static_cast<int>( topm->winId() ) != fe->simpleData.window) { | 1178 | if ( topm && static_cast<int>( topm->winId() ) != fe->simpleData.window) { |
1180 | topm->raise(); | 1179 | topm->raise(); |
1181 | } | 1180 | } |
1182 | } | 1181 | } |
1183 | if ( fe->simpleData.get_focus && inputMethodDict ) { | 1182 | if ( fe->simpleData.get_focus && inputMethodDict ) { |
1184 | InputMethodHint m = inputMethodHint( QWidget::find( e->window() ) ); | 1183 | InputMethodHint m = inputMethodHint( QWidget::find( e->window() ) ); |
1185 | if ( m == AlwaysOff ) | 1184 | if ( m == AlwaysOff ) |
1186 | Global::hideInputMethod(); | 1185 | Global::hideInputMethod(); |
1187 | if ( m == AlwaysOn ) | 1186 | if ( m == AlwaysOn ) |
1188 | Global::showInputMethod(); | 1187 | Global::showInputMethod(); |
1189 | } | 1188 | } |
1190 | } | 1189 | } |
1191 | 1190 | ||
1192 | 1191 | ||
1193 | return QApplication::qwsEventFilter( e ); | 1192 | return QApplication::qwsEventFilter( e ); |
1194 | } | 1193 | } |
1195 | #endif | 1194 | #endif |
1196 | 1195 | ||
1197 | /*! | 1196 | /*! |
1198 | Destroys the QPEApplication. | 1197 | Destroys the QPEApplication. |
1199 | */ | 1198 | */ |
1200 | QPEApplication::~QPEApplication() | 1199 | QPEApplication::~QPEApplication() |
1201 | { | 1200 | { |
1202 | ungrabKeyboard(); | 1201 | ungrabKeyboard(); |
1203 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) | 1202 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) |
1204 | // Need to delete QCopChannels early, since the display will | 1203 | // Need to delete QCopChannels early, since the display will |
1205 | // be gone by the time we get to ~QObject(). | 1204 | // be gone by the time we get to ~QObject(). |
1206 | delete sysChannel; | 1205 | delete sysChannel; |
1207 | delete pidChannel; | 1206 | delete pidChannel; |
1208 | #endif | 1207 | #endif |
1209 | 1208 | ||
1210 | #ifdef OPIE_WITHROHFEEDBACK | 1209 | #ifdef OPIE_WITHROHFEEDBACK |
1211 | if( d->RoH ) | 1210 | if( d->RoH ) |
1212 | delete d->RoH; | 1211 | delete d->RoH; |
1213 | #endif | 1212 | #endif |
1214 | delete d; | 1213 | delete d; |
1215 | } | 1214 | } |
1216 | 1215 | ||
1217 | /*! | 1216 | /*! |
1218 | Returns <tt>$OPIEDIR/</tt>. | 1217 | Returns <tt>$OPIEDIR/</tt>. |
1219 | */ | 1218 | */ |
1220 | QString QPEApplication::qpeDir() | 1219 | QString QPEApplication::qpeDir() |
1221 | { | 1220 | { |
1222 | QString base, dir; | 1221 | QString base, dir; |
1223 | 1222 | ||
1224 | if (getenv( "OPIEDIR" )) | 1223 | if (getenv( "OPIEDIR" )) |
1225 | base = QString(getenv("OPIEDIR")).stripWhiteSpace(); | 1224 | base = QString(getenv("OPIEDIR")).stripWhiteSpace(); |
1226 | if ( !base.isNull() && (base.length() > 0 )){ | 1225 | if ( !base.isNull() && (base.length() > 0 )){ |
1227 | #ifdef Q_OS_WIN32 | 1226 | #ifdef Q_OS_WIN32 |
1228 | QString temp(base); | 1227 | QString temp(base); |
1229 | if (temp[(int)temp.length()-1] != QDir::separator()) | 1228 | if (temp[(int)temp.length()-1] != QDir::separator()) |
1230 | temp.append(QDir::separator()); | 1229 | temp.append(QDir::separator()); |
1231 | dir = temp; | 1230 | dir = temp; |
1232 | #else | 1231 | #else |
1233 | dir = QString( base ) + "/"; | 1232 | dir = QString( base ) + "/"; |
1234 | #endif | 1233 | #endif |
1235 | }else{ | 1234 | }else{ |
1236 | dir = QString( ".." ) + QDir::separator(); | 1235 | dir = QString( ".." ) + QDir::separator(); |
1237 | } | 1236 | } |
1238 | 1237 | ||
1239 | return dir; | 1238 | return dir; |
1240 | } | 1239 | } |
1241 | 1240 | ||
1242 | /*! | 1241 | /*! |
1243 | Returns the user's current Document directory. There is a trailing "/". | 1242 | Returns the user's current Document directory. There is a trailing "/". |
1244 | .. well, it does now,, and there's no trailing '/' | 1243 | .. well, it does now,, and there's no trailing '/' |
1245 | */ | 1244 | */ |
1246 | QString QPEApplication::documentDir() | 1245 | QString QPEApplication::documentDir() |
1247 | { | 1246 | { |
1248 | const char* base = getenv( "HOME"); | 1247 | const char* base = getenv( "HOME"); |
1249 | if ( base ) | 1248 | if ( base ) |
1250 | return QString( base ) + "/Documents"; | 1249 | return QString( base ) + "/Documents"; |
1251 | 1250 | ||
1252 | return QString( "../Documents" ); | 1251 | return QString( "../Documents" ); |
1253 | } | 1252 | } |
1254 | 1253 | ||
1255 | static int deforient = -1; | 1254 | static int deforient = -1; |
1256 | 1255 | ||
1257 | /*! | 1256 | /*! |
1258 | \internal | 1257 | \internal |
1259 | */ | 1258 | */ |
1260 | int QPEApplication::defaultRotation() | 1259 | int QPEApplication::defaultRotation() |
1261 | { | 1260 | { |
1262 | if ( deforient < 0 ) { | 1261 | if ( deforient < 0 ) { |
1263 | QString d = getenv( "QWS_DISPLAY" ); | 1262 | QString d = getenv( "QWS_DISPLAY" ); |
1264 | if ( d.contains( "Rot90" ) ) { | 1263 | if ( d.contains( "Rot90" ) ) { |
1265 | deforient = 90; | 1264 | deforient = 90; |
1266 | } | 1265 | } |
1267 | else if ( d.contains( "Rot180" ) ) { | 1266 | else if ( d.contains( "Rot180" ) ) { |
1268 | deforient = 180; | 1267 | deforient = 180; |
1269 | } | 1268 | } |
1270 | else if ( d.contains( "Rot270" ) ) { | 1269 | else if ( d.contains( "Rot270" ) ) { |
1271 | deforient = 270; | 1270 | deforient = 270; |
1272 | } | 1271 | } |
1273 | else { | 1272 | else { |
1274 | deforient = 0; | 1273 | deforient = 0; |
1275 | } | 1274 | } |
1276 | } | 1275 | } |
1277 | return deforient; | 1276 | return deforient; |
1278 | } | 1277 | } |
1279 | 1278 | ||
1280 | /*! | 1279 | /*! |
1281 | \internal | 1280 | \internal |
1282 | */ | 1281 | */ |
1283 | void QPEApplication::setDefaultRotation( int r ) | 1282 | void QPEApplication::setDefaultRotation( int r ) |
1284 | { | 1283 | { |
1285 | if ( qApp->type() == GuiServer ) { | 1284 | if ( qApp->type() == GuiServer ) { |
1286 | deforient = r; | 1285 | deforient = r; |
1287 | setenv( "QWS_DISPLAY", QString( "Transformed:Rot%1:0" ).arg( r ).latin1(), 1 ); | 1286 | setenv( "QWS_DISPLAY", QString( "Transformed:Rot%1:0" ).arg( r ).latin1(), 1 ); |
1288 | Config config("qpe"); | 1287 | Config config("qpe"); |
1289 | config.setGroup( "Rotation" ); | 1288 | config.setGroup( "Rotation" ); |
1290 | config.writeEntry( "Rot", r ); | 1289 | config.writeEntry( "Rot", r ); |
1291 | } | 1290 | } |
1292 | else { | 1291 | else { |
1293 | #ifndef QT_NO_COP | 1292 | #ifndef QT_NO_COP |
1294 | { QCopEnvelope e( "QPE/System", "setDefaultRotation(int)" ); | 1293 | { QCopEnvelope e( "QPE/System", "setDefaultRotation(int)" ); |
1295 | e << r; | 1294 | e << r; |
1296 | } | 1295 | } |
1297 | #endif | 1296 | #endif |
1298 | 1297 | ||
1299 | } | 1298 | } |
1300 | } | 1299 | } |
1301 | 1300 | ||
1302 | #include <qgfx_qws.h> | 1301 | #include <qgfx_qws.h> |
1303 | #include <qwindowsystem_qws.h> | 1302 | #include <qwindowsystem_qws.h> |
1304 | 1303 | ||
1305 | #if QT_VERSION > 236 | 1304 | #if QT_VERSION > 236 |
1306 | extern void qws_clearLoadedFonts(); | 1305 | extern void qws_clearLoadedFonts(); |
1307 | #endif | 1306 | #endif |
1308 | 1307 | ||
1309 | void QPEApplication::setCurrentMode( int x, int y, int depth ) | 1308 | void QPEApplication::setCurrentMode( int x, int y, int depth ) |
1310 | { | 1309 | { |
1311 | // Reset the caches | 1310 | // Reset the caches |
1312 | #if QT_VERSION > 236 | 1311 | #if QT_VERSION > 236 |
1313 | qws_clearLoadedFonts(); | 1312 | qws_clearLoadedFonts(); |
1314 | #endif | 1313 | #endif |
1315 | QPixmapCache::clear(); | 1314 | QPixmapCache::clear(); |
1316 | 1315 | ||
1317 | // Change the screen mode | 1316 | // Change the screen mode |
1318 | qt_screen->setMode(x, y, depth); | 1317 | qt_screen->setMode(x, y, depth); |
1319 | 1318 | ||
1320 | if ( qApp->type() == GuiServer ) { | 1319 | if ( qApp->type() == GuiServer ) { |
1321 | #if QT_VERSION > 236 | 1320 | #if QT_VERSION > 236 |
1322 | // Reconfigure the GuiServer | 1321 | // Reconfigure the GuiServer |
1323 | qwsServer->beginDisplayReconfigure(); | 1322 | qwsServer->beginDisplayReconfigure(); |
1324 | qwsServer->endDisplayReconfigure(); | 1323 | qwsServer->endDisplayReconfigure(); |
1325 | #endif | 1324 | #endif |
1326 | // Get all the running apps to reset | 1325 | // Get all the running apps to reset |
1327 | QCopEnvelope env( "QPE/System", "reset()" ); | 1326 | QCopEnvelope env( "QPE/System", "reset()" ); |
1328 | } | 1327 | } |
1329 | } | 1328 | } |
1330 | 1329 | ||
1331 | void QPEApplication::reset() { | 1330 | void QPEApplication::reset() { |
1332 | // Reconnect to the screen | 1331 | // Reconnect to the screen |
1333 | qt_screen->disconnect(); | 1332 | qt_screen->disconnect(); |
1334 | qt_screen->connect( QString::null ); | 1333 | qt_screen->connect( QString::null ); |
1335 | 1334 | ||
1336 | // Redraw everything | 1335 | // Redraw everything |
1337 | applyStyle(); | 1336 | applyStyle(); |
1338 | } | 1337 | } |
1339 | 1338 | ||
1340 | #if (QT_VERSION < 238) && defined Q_OS_MACX | 1339 | #if (QT_VERSION < 238) && defined Q_OS_MACX |
1341 | bool qt_left_hand_scrollbars = false; | 1340 | bool qt_left_hand_scrollbars = false; |
1342 | #else | 1341 | #else |
1343 | extern bool qt_left_hand_scrollbars QPE_WEAK_SYMBOL; | 1342 | extern bool qt_left_hand_scrollbars QPE_WEAK_SYMBOL; |
1344 | #endif | 1343 | #endif |
1345 | 1344 | ||
1346 | /*! | 1345 | /*! |
1347 | \internal | 1346 | \internal |
1348 | */ | 1347 | */ |
1349 | void QPEApplication::applyStyle() | 1348 | void QPEApplication::applyStyle() |
1350 | { | 1349 | { |
1351 | Config config( "qpe" ); | 1350 | Config config( "qpe" ); |
1352 | config.setGroup( "Appearance" ); | 1351 | config.setGroup( "Appearance" ); |
1353 | 1352 | ||
1354 | #if QT_VERSION > 233 | 1353 | #if QT_VERSION > 233 |
1355 | #if !defined(OPIE_NO_OVERRIDE_QT) | ||
1356 | // don't block ourselves ... | ||
1357 | Opie::force_appearance = 0; | ||
1358 | |||
1359 | static QString appname = Opie::binaryName ( ); | ||
1360 | |||
1361 | QStringList ex = config. readListEntry ( "NoStyle", ';' ); | ||
1362 | int nostyle = 0; | ||
1363 | for ( QStringList::Iterator it = ex. begin ( ); it != ex. end ( ); ++it ) { | ||
1364 | if ( QRegExp (( *it ). mid ( 1 ), false, true ). find ( appname, 0 ) >= 0 ) { | ||
1365 | nostyle = ( *it ). left ( 1 ). toInt ( 0, 32 ); | ||
1366 | break; | ||
1367 | } | ||
1368 | } | ||
1369 | #else | ||
1370 | int nostyle = 0; | ||
1371 | #endif | ||
1372 | |||
1373 | // Widget style | 1354 | // Widget style |
1374 | QString style = config.readEntry( "Style", "FlatStyle" ); | 1355 | QString style = config.readEntry( "Style", "FlatStyle" ); |
1375 | 1356 | ||
1376 | // don't set a custom style | ||
1377 | if ( nostyle & Opie::Force_Style ) | ||
1378 | style = "FlatStyle"; | ||
1379 | |||
1380 | internalSetStyle ( style ); | 1357 | internalSetStyle ( style ); |
1381 | 1358 | ||
1382 | // Colors - from /etc/colors/Liquid.scheme | 1359 | // Colors - from /etc/colors/Liquid.scheme |
1383 | QColor bgcolor( config.readEntry( "Background", "#E0E0E0" ) ); | 1360 | QColor bgcolor( config.readEntry( "Background", "#E0E0E0" ) ); |
1384 | QColor btncolor( config.readEntry( "Button", "#96c8fa" ) ); | 1361 | QColor btncolor( config.readEntry( "Button", "#96c8fa" ) ); |
1385 | QPalette pal( btncolor, bgcolor ); | 1362 | QPalette pal( btncolor, bgcolor ); |
1386 | QString color = config.readEntry( "Highlight", "#73adef" ); | 1363 | QString color = config.readEntry( "Highlight", "#73adef" ); |
1387 | pal.setColor( QColorGroup::Highlight, QColor( color ) ); | 1364 | pal.setColor( QColorGroup::Highlight, QColor( color ) ); |
1388 | color = config.readEntry( "HighlightedText", "#FFFFFF" ); | 1365 | color = config.readEntry( "HighlightedText", "#FFFFFF" ); |
1389 | pal.setColor( QColorGroup::HighlightedText, QColor( color ) ); | 1366 | pal.setColor( QColorGroup::HighlightedText, QColor( color ) ); |
1390 | color = config.readEntry( "Text", "#000000" ); | 1367 | color = config.readEntry( "Text", "#000000" ); |
1391 | pal.setColor( QColorGroup::Text, QColor( color ) ); | 1368 | pal.setColor( QColorGroup::Text, QColor( color ) ); |
1392 | color = config.readEntry( "ButtonText", "#000000" ); | 1369 | color = config.readEntry( "ButtonText", "#000000" ); |
1393 | pal.setColor( QPalette::Active, QColorGroup::ButtonText, QColor( color ) ); | 1370 | pal.setColor( QPalette::Active, QColorGroup::ButtonText, QColor( color ) ); |
1394 | color = config.readEntry( "Base", "#FFFFFF" ); | 1371 | color = config.readEntry( "Base", "#FFFFFF" ); |
1395 | pal.setColor( QColorGroup::Base, QColor( color ) ); | 1372 | pal.setColor( QColorGroup::Base, QColor( color ) ); |
1396 | 1373 | ||
1397 | pal.setColor( QPalette::Disabled, QColorGroup::Text, | 1374 | pal.setColor( QPalette::Disabled, QColorGroup::Text, |
1398 | pal.color( QPalette::Active, QColorGroup::Background ).dark() ); | 1375 | pal.color( QPalette::Active, QColorGroup::Background ).dark() ); |
1399 | 1376 | ||
1400 | setPalette( pal, TRUE ); | 1377 | setPalette( pal, TRUE ); |
1401 | 1378 | ||
1402 | 1379 | ||
1403 | // Set the ScrollBar on the 'right' side but only if the weak symbol is present | 1380 | // Set the ScrollBar on the 'right' side but only if the weak symbol is present |
1404 | if (&qt_left_hand_scrollbars ) | 1381 | if (&qt_left_hand_scrollbars ) |
1405 | qt_left_hand_scrollbars = config.readBoolEntry( "LeftHand", false ); | 1382 | qt_left_hand_scrollbars = config.readBoolEntry( "LeftHand", false ); |
1406 | 1383 | ||
1407 | // Window Decoration | 1384 | // Window Decoration |
1408 | QString dec = config.readEntry( "Decoration", "Flat" ); | 1385 | QString dec = config.readEntry( "Decoration", "Flat" ); |
1409 | 1386 | ||
1410 | // don't set a custom deco | ||
1411 | if ( nostyle & Opie::Force_Decoration ) | ||
1412 | dec = ""; | ||
1413 | |||
1414 | |||
1415 | if ( dec != d->decorationName ) { | 1387 | if ( dec != d->decorationName ) { |
1416 | qwsSetDecoration( new QPEDecoration( dec ) ); | 1388 | qwsSetDecoration( new QPEDecoration( dec ) ); |
1417 | d->decorationName = dec; | 1389 | d->decorationName = dec; |
1418 | } | 1390 | } |
1419 | 1391 | ||
1420 | // Font | 1392 | // Font |
1421 | QString ff = config.readEntry( "FontFamily", font().family() ); | 1393 | QString ff = config.readEntry( "FontFamily", font().family() ); |
1422 | int fs = config.readNumEntry( "FontSize", font().pointSize() ); | 1394 | int fs = config.readNumEntry( "FontSize", font().pointSize() ); |
1423 | 1395 | ||
1424 | // don't set a custom font | ||
1425 | if ( nostyle & Opie::Force_Font ) { | ||
1426 | ff = "Vera"; | ||
1427 | fs = 10; | ||
1428 | } | ||
1429 | |||
1430 | setFont ( QFont ( ff, fs ), true ); | 1396 | setFont ( QFont ( ff, fs ), true ); |
1431 | |||
1432 | #if !defined(OPIE_NO_OVERRIDE_QT) | ||
1433 | // revert to global blocking policy ... | ||
1434 | Opie::force_appearance = config. readBoolEntry ( "ForceStyle", false ) ? Opie::Force_All : Opie::Force_None; | ||
1435 | Opie::force_appearance &= ~nostyle; | ||
1436 | #endif | ||
1437 | #endif | 1397 | #endif |
1438 | } | 1398 | } |
1439 | 1399 | ||
1440 | void QPEApplication::systemMessage( const QCString& msg, const QByteArray& data ) | 1400 | void QPEApplication::systemMessage( const QCString& msg, const QByteArray& data ) |
1441 | { | 1401 | { |
1442 | #ifdef Q_WS_QWS | 1402 | #ifdef Q_WS_QWS |
1443 | QDataStream stream( data, IO_ReadOnly ); | 1403 | QDataStream stream( data, IO_ReadOnly ); |
1444 | if ( msg == "applyStyle()" ) { | 1404 | if ( msg == "applyStyle()" ) { |
1445 | applyStyle(); | 1405 | applyStyle(); |
1446 | } | 1406 | } |
1447 | else if ( msg == "toggleApplicationMenu()" ) { | 1407 | else if ( msg == "toggleApplicationMenu()" ) { |
1448 | QWidget *active = activeWindow ( ); | 1408 | QWidget *active = activeWindow ( ); |
1449 | 1409 | ||
1450 | if ( active ) { | 1410 | if ( active ) { |
1451 | QPEMenuToolFocusManager *man = QPEMenuToolFocusManager::manager ( ); | 1411 | QPEMenuToolFocusManager *man = QPEMenuToolFocusManager::manager ( ); |
1452 | bool oldactive = man-> isActive ( ); | 1412 | bool oldactive = man-> isActive ( ); |
1453 | 1413 | ||
1454 | man-> setActive( !man-> isActive() ); | 1414 | man-> setActive( !man-> isActive() ); |
1455 | 1415 | ||
1456 | if ( !oldactive && !man-> isActive ( )) { // no menubar to toggle -> try O-Menu | 1416 | if ( !oldactive && !man-> isActive ( )) { // no menubar to toggle -> try O-Menu |
1457 | QCopEnvelope e ( "QPE/TaskBar", "toggleStartMenu()" ); | 1417 | QCopEnvelope e ( "QPE/TaskBar", "toggleStartMenu()" ); |
1458 | } | 1418 | } |
1459 | } | 1419 | } |
1460 | } | 1420 | } |
1461 | else if ( msg == "setDefaultRotation(int)" ) { | 1421 | else if ( msg == "setDefaultRotation(int)" ) { |
1462 | if ( type() == GuiServer ) { | 1422 | if ( type() == GuiServer ) { |
1463 | int r; | 1423 | int r; |
1464 | stream >> r; | 1424 | stream >> r; |
1465 | setDefaultRotation( r ); | 1425 | setDefaultRotation( r ); |
1466 | } | 1426 | } |
1467 | } | 1427 | } |
1468 | else if ( msg == "setCurrentMode(int,int,int)" ) { // Added: 2003-06-11 by Tim Ansell <mithro@mithis.net> | 1428 | else if ( msg == "setCurrentMode(int,int,int)" ) { // Added: 2003-06-11 by Tim Ansell <mithro@mithis.net> |
1469 | if ( type() == GuiServer ) { | 1429 | if ( type() == GuiServer ) { |
1470 | int x, y, depth; | 1430 | int x, y, depth; |
1471 | stream >> x; | 1431 | stream >> x; |
1472 | stream >> y; | 1432 | stream >> y; |
1473 | stream >> depth; | 1433 | stream >> depth; |
1474 | setCurrentMode( x, y, depth ); | 1434 | setCurrentMode( x, y, depth ); |
1475 | } | 1435 | } |
1476 | } | 1436 | } |
1477 | else if ( msg == "reset()" ) { | 1437 | else if ( msg == "reset()" ) { |
1478 | if ( type() != GuiServer ) | 1438 | if ( type() != GuiServer ) |
1479 | reset(); | 1439 | reset(); |
1480 | } | 1440 | } |
1481 | else if ( msg == "setCurrentRotation(int)" ) { | 1441 | else if ( msg == "setCurrentRotation(int)" ) { |
1482 | int r; | 1442 | int r; |
1483 | stream >> r; | 1443 | stream >> r; |
1484 | setCurrentRotation( r ); | 1444 | setCurrentRotation( r ); |
1485 | } | 1445 | } |
1486 | else if ( msg == "shutdown()" ) { | 1446 | else if ( msg == "shutdown()" ) { |
1487 | if ( type() == GuiServer ) | 1447 | if ( type() == GuiServer ) |
1488 | shutdown(); | 1448 | shutdown(); |
1489 | } | 1449 | } |
1490 | else if ( msg == "quit()" ) { | 1450 | else if ( msg == "quit()" ) { |
1491 | if ( type() != GuiServer ) | 1451 | if ( type() != GuiServer ) |
1492 | tryQuit(); | 1452 | tryQuit(); |
1493 | } | 1453 | } |
1494 | else if ( msg == "forceQuit()" ) { | 1454 | else if ( msg == "forceQuit()" ) { |
1495 | if ( type() != GuiServer ) | 1455 | if ( type() != GuiServer ) |
1496 | quit(); | 1456 | quit(); |
1497 | } | 1457 | } |
1498 | else if ( msg == "restart()" ) { | 1458 | else if ( msg == "restart()" ) { |
1499 | if ( type() == GuiServer ) | 1459 | if ( type() == GuiServer ) |
1500 | restart(); | 1460 | restart(); |
1501 | } | 1461 | } |
1502 | else if ( msg == "language(QString)" ) { | 1462 | else if ( msg == "language(QString)" ) { |
1503 | if ( type() == GuiServer ) { | 1463 | if ( type() == GuiServer ) { |
1504 | QString l; | 1464 | QString l; |
1505 | stream >> l; | 1465 | stream >> l; |
1506 | QString cl = getenv( "LANG" ); | 1466 | QString cl = getenv( "LANG" ); |
1507 | if ( cl != l ) { | 1467 | if ( cl != l ) { |
1508 | if ( l.isNull() ) | 1468 | if ( l.isNull() ) |
1509 | unsetenv( "LANG" ); | 1469 | unsetenv( "LANG" ); |
1510 | else | 1470 | else |
1511 | setenv( "LANG", l.latin1(), 1 ); | 1471 | setenv( "LANG", l.latin1(), 1 ); |
1512 | restart(); | 1472 | restart(); |
1513 | } | 1473 | } |
1514 | } | 1474 | } |
1515 | } | 1475 | } |
1516 | else if ( msg == "timeChange(QString)" ) { | 1476 | else if ( msg == "timeChange(QString)" ) { |
1517 | QString t; | 1477 | QString t; |
1518 | stream >> t; | 1478 | stream >> t; |
1519 | if ( t.isNull() ) | 1479 | if ( t.isNull() ) |
1520 | unsetenv( "TZ" ); | 1480 | unsetenv( "TZ" ); |
1521 | else | 1481 | else |
1522 | setenv( "TZ", t.latin1(), 1 ); | 1482 | setenv( "TZ", t.latin1(), 1 ); |
1523 | // emit the signal so everyone else knows... | 1483 | // emit the signal so everyone else knows... |
1524 | emit timeChanged(); | 1484 | emit timeChanged(); |
1525 | } | 1485 | } |
1526 | else if ( msg == "addAlarm(QDateTime,QCString,QCString,int)" ) { | 1486 | else if ( msg == "addAlarm(QDateTime,QCString,QCString,int)" ) { |
1527 | if ( type() == GuiServer ) { | 1487 | if ( type() == GuiServer ) { |
1528 | QDateTime when; | 1488 | QDateTime when; |
1529 | QCString channel, message; | 1489 | QCString channel, message; |
1530 | int data; | 1490 | int data; |
1531 | stream >> when >> channel >> message >> data; | 1491 | stream >> when >> channel >> message >> data; |
1532 | AlarmServer::addAlarm( when, channel, message, data ); | 1492 | AlarmServer::addAlarm( when, channel, message, data ); |
1533 | } | 1493 | } |
1534 | } | 1494 | } |
1535 | else if ( msg == "deleteAlarm(QDateTime,QCString,QCString,int)" ) { | 1495 | else if ( msg == "deleteAlarm(QDateTime,QCString,QCString,int)" ) { |
1536 | if ( type() == GuiServer ) { | 1496 | if ( type() == GuiServer ) { |
1537 | QDateTime when; | 1497 | QDateTime when; |
1538 | QCString channel, message; | 1498 | QCString channel, message; |
1539 | int data; | 1499 | int data; |
1540 | stream >> when >> channel >> message >> data; | 1500 | stream >> when >> channel >> message >> data; |
1541 | AlarmServer::deleteAlarm( when, channel, message, data ); | 1501 | AlarmServer::deleteAlarm( when, channel, message, data ); |
1542 | } | 1502 | } |
1543 | } | 1503 | } |
1544 | else if ( msg == "clockChange(bool)" ) { | 1504 | else if ( msg == "clockChange(bool)" ) { |
1545 | int tmp; | 1505 | int tmp; |
1546 | stream >> tmp; | 1506 | stream >> tmp; |
1547 | emit clockChanged( tmp ); | 1507 | emit clockChanged( tmp ); |
1548 | } | 1508 | } |
1549 | else if ( msg == "weekChange(bool)" ) { | 1509 | else if ( msg == "weekChange(bool)" ) { |
1550 | int tmp; | 1510 | int tmp; |
1551 | stream >> tmp; | 1511 | stream >> tmp; |
1552 | emit weekChanged( tmp ); | 1512 | emit weekChanged( tmp ); |
1553 | } | 1513 | } |
1554 | else if ( msg == "setDateFormat(DateFormat)" ) { | 1514 | else if ( msg == "setDateFormat(DateFormat)" ) { |
1555 | DateFormat tmp; | 1515 | DateFormat tmp; |
1556 | stream >> tmp; | 1516 | stream >> tmp; |
1557 | emit dateFormatChanged( tmp ); | 1517 | emit dateFormatChanged( tmp ); |
1558 | } | 1518 | } |
1559 | else if ( msg == "setVolume(int,int)" ) { | 1519 | else if ( msg == "setVolume(int,int)" ) { |
1560 | int t, v; | 1520 | int t, v; |
1561 | stream >> t >> v; | 1521 | stream >> t >> v; |
1562 | setVolume( t, v ); | 1522 | setVolume( t, v ); |
1563 | emit volumeChanged( muted ); | 1523 | emit volumeChanged( muted ); |
1564 | } | 1524 | } |
1565 | else if ( msg == "volumeChange(bool)" ) { | 1525 | else if ( msg == "volumeChange(bool)" ) { |
1566 | stream >> muted; | 1526 | stream >> muted; |
1567 | setVolume(); | 1527 | setVolume(); |
1568 | emit volumeChanged( muted ); | 1528 | emit volumeChanged( muted ); |
1569 | } | 1529 | } |
1570 | else if ( msg == "setMic(int,int)" ) { // Added: 2002-02-08 by Jeremy Cowgar <jc@cowgar.com> | 1530 | else if ( msg == "setMic(int,int)" ) { // Added: 2002-02-08 by Jeremy Cowgar <jc@cowgar.com> |
1571 | int t, v; | 1531 | int t, v; |
1572 | stream >> t >> v; | 1532 | stream >> t >> v; |
1573 | setMic( t, v ); | 1533 | setMic( t, v ); |
1574 | emit micChanged( micMuted ); | 1534 | emit micChanged( micMuted ); |
1575 | } | 1535 | } |
1576 | else if ( msg == "micChange(bool)" ) { // Added: 2002-02-08 by Jeremy Cowgar <jc@cowgar.com> | 1536 | else if ( msg == "micChange(bool)" ) { // Added: 2002-02-08 by Jeremy Cowgar <jc@cowgar.com> |
1577 | stream >> micMuted; | 1537 | stream >> micMuted; |
1578 | setMic(); | 1538 | setMic(); |
1579 | emit micChanged( micMuted ); | 1539 | emit micChanged( micMuted ); |
1580 | } | 1540 | } |
1581 | else if ( msg == "setBass(int,int)" ) { // Added: 2002-12-13 by Maximilian Reiss <harlekin@handhelds.org> | 1541 | else if ( msg == "setBass(int,int)" ) { // Added: 2002-12-13 by Maximilian Reiss <harlekin@handhelds.org> |
1582 | int t, v; | 1542 | int t, v; |
1583 | stream >> t >> v; | 1543 | stream >> t >> v; |
1584 | setBass( t, v ); | 1544 | setBass( t, v ); |
1585 | } | 1545 | } |
1586 | else if ( msg == "bassChange(bool)" ) { // Added: 2002-12-13 by Maximilian Reiss <harlekin@handhelds.org> | 1546 | else if ( msg == "bassChange(bool)" ) { // Added: 2002-12-13 by Maximilian Reiss <harlekin@handhelds.org> |
1587 | setBass(); | 1547 | setBass(); |
1588 | } | 1548 | } |
1589 | else if ( msg == "setTreble(int,int)" ) { // Added: 2002-12-13 by Maximilian Reiss <harlekin@handhelds.org> | 1549 | else if ( msg == "setTreble(int,int)" ) { // Added: 2002-12-13 by Maximilian Reiss <harlekin@handhelds.org> |
1590 | int t, v; | 1550 | int t, v; |
1591 | stream >> t >> v; | 1551 | stream >> t >> v; |
1592 | setTreble( t, v ); | 1552 | setTreble( t, v ); |
1593 | } | 1553 | } |
1594 | else if ( msg == "trebleChange(bool)" ) { // Added: 2002-12-13 by Maximilian Reiss <harlekin@handhelds.org> | 1554 | else if ( msg == "trebleChange(bool)" ) { // Added: 2002-12-13 by Maximilian Reiss <harlekin@handhelds.org> |
1595 | setTreble(); | 1555 | setTreble(); |
1596 | } else if ( msg == "getMarkedText()" ) { | 1556 | } else if ( msg == "getMarkedText()" ) { |
1597 | if ( type() == GuiServer ) { | 1557 | if ( type() == GuiServer ) { |
1598 | const ushort unicode = 'C'-'@'; | 1558 | const ushort unicode = 'C'-'@'; |
1599 | const int scan = Key_C; | 1559 | const int scan = Key_C; |
1600 | qwsServer->processKeyEvent( unicode, scan, ControlButton, TRUE, FALSE ); | 1560 | qwsServer->processKeyEvent( unicode, scan, ControlButton, TRUE, FALSE ); |
1601 | qwsServer->processKeyEvent( unicode, scan, ControlButton, FALSE, FALSE ); | 1561 | qwsServer->processKeyEvent( unicode, scan, ControlButton, FALSE, FALSE ); |
1602 | } | 1562 | } |
1603 | } else if ( msg == "newChannel(QString)") { | 1563 | } else if ( msg == "newChannel(QString)") { |
1604 | QString myChannel = "QPE/Application/" + d->appName; | 1564 | QString myChannel = "QPE/Application/" + d->appName; |
1605 | QString channel; | 1565 | QString channel; |
1606 | stream >> channel; | 1566 | stream >> channel; |
1607 | if (channel == myChannel) { | 1567 | if (channel == myChannel) { |
1608 | processQCopFile(); | 1568 | processQCopFile(); |
1609 | d->sendQCopQ(); | 1569 | d->sendQCopQ(); |
1610 | } | 1570 | } |
1611 | } | 1571 | } |
1612 | 1572 | ||
1613 | 1573 | ||
1614 | #endif | 1574 | #endif |
1615 | } | 1575 | } |
1616 | 1576 | ||
1617 | 1577 | ||
1618 | 1578 | ||
1619 | 1579 | ||
1620 | 1580 | ||
1621 | /*! | 1581 | /*! |
1622 | \internal | 1582 | \internal |
1623 | */ | 1583 | */ |
1624 | bool QPEApplication::raiseAppropriateWindow() | 1584 | bool QPEApplication::raiseAppropriateWindow() |
1625 | { | 1585 | { |
1626 | bool r=FALSE; | 1586 | bool r=FALSE; |
1627 | 1587 | ||
1628 | // 1. Raise the main widget | 1588 | // 1. Raise the main widget |
1629 | QWidget *top = d->qpe_main_widget; | 1589 | QWidget *top = d->qpe_main_widget; |
1630 | if ( !top ) top = mainWidget(); | 1590 | if ( !top ) top = mainWidget(); |
1631 | 1591 | ||
1632 | if ( top && d->keep_running ) { | 1592 | if ( top && d->keep_running ) { |
1633 | if ( top->isVisible() ) | 1593 | if ( top->isVisible() ) |
1634 | r = TRUE; | 1594 | r = TRUE; |
1635 | else if (d->preloaded) { | 1595 | else if (d->preloaded) { |
1636 | // We are preloaded and not visible.. pretend we just started.. | 1596 | // We are preloaded and not visible.. pretend we just started.. |
1637 | #ifndef QT_NO_COP | 1597 | #ifndef QT_NO_COP |
1638 | QCopEnvelope e("QPE/System", "fastAppShowing(QString)"); | 1598 | QCopEnvelope e("QPE/System", "fastAppShowing(QString)"); |
1639 | e << d->appName; | 1599 | e << d->appName; |
1640 | #endif | 1600 | #endif |
1641 | } | 1601 | } |
1642 | 1602 | ||
1643 | d->show_mx(top,d->nomaximize, d->appName); | 1603 | d->show_mx(top,d->nomaximize, d->appName); |
1644 | top->raise(); | 1604 | top->raise(); |
1645 | } | 1605 | } |
1646 | 1606 | ||
1647 | QWidget *topm = activeModalWidget(); | 1607 | QWidget *topm = activeModalWidget(); |
1648 | 1608 | ||
1649 | // 2. Raise any parentless widgets (except top and topm, as they | 1609 | // 2. Raise any parentless widgets (except top and topm, as they |
1650 | // are raised before and after this loop). Order from most | 1610 | // are raised before and after this loop). Order from most |
1651 | // recently raised as deepest to least recently as top, so | 1611 | // recently raised as deepest to least recently as top, so |
1652 | // that repeated calls cycle through widgets. | 1612 | // that repeated calls cycle through widgets. |
1653 | QWidgetList *list = topLevelWidgets(); | 1613 | QWidgetList *list = topLevelWidgets(); |
1654 | if ( list ) { | 1614 | if ( list ) { |
1655 | bool foundlast = FALSE; | 1615 | bool foundlast = FALSE; |
1656 | QWidget* topsub = 0; | 1616 | QWidget* topsub = 0; |
1657 | if ( d->lastraised ) { | 1617 | if ( d->lastraised ) { |
1658 | for (QWidget* w = list->first(); w; w = list->next()) { | 1618 | for (QWidget* w = list->first(); w; w = list->next()) { |
1659 | if ( !w->parentWidget() && w != topm && w->isVisible() && !w->isDesktop() ) { | 1619 | if ( !w->parentWidget() && w != topm && w->isVisible() && !w->isDesktop() ) { |
1660 | if ( w == d->lastraised ) | 1620 | if ( w == d->lastraised ) |
1661 | foundlast = TRUE; | 1621 | foundlast = TRUE; |
1662 | if ( foundlast ) { | 1622 | if ( foundlast ) { |
1663 | w->raise(); | 1623 | w->raise(); |
1664 | topsub = w; | 1624 | topsub = w; |
1665 | } | 1625 | } |
1666 | } | 1626 | } |
1667 | } | 1627 | } |
1668 | } | 1628 | } |
1669 | for (QWidget* w = list->first(); w; w = list->next()) { | 1629 | for (QWidget* w = list->first(); w; w = list->next()) { |
1670 | if ( !w->parentWidget() && w != topm && w->isVisible() && !w->isDesktop() ) { | 1630 | if ( !w->parentWidget() && w != topm && w->isVisible() && !w->isDesktop() ) { |
1671 | if ( w == d->lastraised ) | 1631 | if ( w == d->lastraised ) |
1672 | break; | 1632 | break; |
1673 | w->raise(); | 1633 | w->raise(); |
1674 | topsub = w; | 1634 | topsub = w; |
1675 | } | 1635 | } |
1676 | } | 1636 | } |
1677 | d->lastraised = topsub; | 1637 | d->lastraised = topsub; |
1678 | delete list; | 1638 | delete list; |
1679 | } | 1639 | } |
1680 | 1640 | ||
1681 | // 3. Raise the active modal widget. | 1641 | // 3. Raise the active modal widget. |
1682 | if ( topm ) { | 1642 | if ( topm ) { |
1683 | topm->show(); | 1643 | topm->show(); |
1684 | topm->raise(); | 1644 | topm->raise(); |
1685 | // If we haven't already handled the fastAppShowing message | 1645 | // If we haven't already handled the fastAppShowing message |
1686 | if (!top && d->preloaded) { | 1646 | if (!top && d->preloaded) { |
1687 | #ifndef QT_NO_COP | 1647 | #ifndef QT_NO_COP |
1688 | QCopEnvelope e("QPE/System", "fastAppShowing(QString)"); | 1648 | QCopEnvelope e("QPE/System", "fastAppShowing(QString)"); |
1689 | e << d->appName; | 1649 | e << d->appName; |
1690 | #endif | 1650 | #endif |
1691 | } | 1651 | } |
1692 | r = FALSE; | 1652 | r = FALSE; |
diff --git a/library/qpeapplication.h b/library/qpeapplication.h index 849d5b3..167fe69 100644 --- a/library/qpeapplication.h +++ b/library/qpeapplication.h | |||
@@ -1,244 +1,239 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of the Qtopia Environment. | 4 | ** This file is part of the Qtopia Environment. |
5 | ** | 5 | ** |
6 | ** This file may be distributed and/or modified under the terms of the | 6 | ** This file may be distributed and/or modified under the terms of the |
7 | ** GNU General Public License version 2 as published by the Free Software | 7 | ** GNU General Public License version 2 as published by the Free Software |
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | 8 | ** Foundation and appearing in the file LICENSE.GPL included in the |
9 | ** packaging of this file. | 9 | ** packaging of this file. |
10 | ** | 10 | ** |
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 13 | ** |
14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
15 | ** | 15 | ** |
16 | ** Contact info@trolltech.com if any conditions of this licensing are | 16 | ** Contact info@trolltech.com if any conditions of this licensing are |
17 | ** not clear to you. | 17 | ** not clear to you. |
18 | ** | 18 | ** |
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | #ifndef __QPE_APPLICATION_H__ | 20 | #ifndef __QPE_APPLICATION_H__ |
21 | #define __QPE_APPLICATION_H__ | 21 | #define __QPE_APPLICATION_H__ |
22 | 22 | ||
23 | #include <stdlib.h> // for setenv() | 23 | #include <stdlib.h> // for setenv() |
24 | 24 | ||
25 | #include <qglobal.h> | 25 | #include <qglobal.h> |
26 | #include <qapplication.h> | 26 | #include <qapplication.h> |
27 | #include <qdialog.h> | 27 | #include <qdialog.h> |
28 | #include <qwsdisplay_qws.h> | 28 | #include <qwsdisplay_qws.h> |
29 | #if defined(_WS_QWS_) && !defined(Q_WS_QWS) | 29 | #if defined(_WS_QWS_) && !defined(Q_WS_QWS) |
30 | #define Q_WS_QWS | 30 | #define Q_WS_QWS |
31 | #endif | 31 | #endif |
32 | #include "qpedecoration_qws.h" | 32 | #include "qpedecoration_qws.h" |
33 | #include "timestring.h" | 33 | #include "timestring.h" |
34 | #include "qpeglobal.h" | 34 | #include "qpeglobal.h" |
35 | 35 | ||
36 | class QCopChannel; | 36 | class QCopChannel; |
37 | class QPEApplicationData; | 37 | class QPEApplicationData; |
38 | class QWSEvent; | 38 | class QWSEvent; |
39 | class QWSKeyEvent; | 39 | class QWSKeyEvent; |
40 | 40 | ||
41 | /** | 41 | /** |
42 | \brief The QPEApplication class implements various system services | 42 | \brief The QPEApplication class implements various system services |
43 | that are available to all Qtopia applications. | 43 | that are available to all Qtopia applications. |
44 | 44 | ||
45 | Simply by using QPEApplication instead of QApplication, a standard Qt | 45 | Simply by using QPEApplication instead of QApplication, a standard Qt |
46 | application becomes a Qtopia application. It automatically follows | 46 | application becomes a Qtopia application. It automatically follows |
47 | style changes, quits and raises, and in the | 47 | style changes, quits and raises, and in the |
48 | case of \link docwidget.html document-oriented\endlink applications, | 48 | case of \link docwidget.html document-oriented\endlink applications, |
49 | changes the currently displayed document in response to the environment. | 49 | changes the currently displayed document in response to the environment. |
50 | 50 | ||
51 | To create a \link docwidget.html document-oriented\endlink | 51 | To create a \link docwidget.html document-oriented\endlink |
52 | application use showMainDocumentWidget(); to create a | 52 | application use showMainDocumentWidget(); to create a |
53 | non-document-oriented application use showMainWidget(). The | 53 | non-document-oriented application use showMainWidget(). The |
54 | keepRunning() function indicates whether the application will | 54 | keepRunning() function indicates whether the application will |
55 | continue running after it's processed the last \link qcop.html | 55 | continue running after it's processed the last \link qcop.html |
56 | QCop\endlink message. This can be changed using setKeepRunning(). | 56 | QCop\endlink message. This can be changed using setKeepRunning(). |
57 | 57 | ||
58 | A variety of signals are emitted when certain events occur, for | 58 | A variety of signals are emitted when certain events occur, for |
59 | example, timeChanged(), clockChanged(), weekChanged(), | 59 | example, timeChanged(), clockChanged(), weekChanged(), |
60 | dateFormatChanged() and volumeChanged(). If the application receives | 60 | dateFormatChanged() and volumeChanged(). If the application receives |
61 | a \link qcop.html QCop\endlink message on the application's | 61 | a \link qcop.html QCop\endlink message on the application's |
62 | QPE/Application/\e{appname} channel, the appMessage() signal is | 62 | QPE/Application/\e{appname} channel, the appMessage() signal is |
63 | emitted. There are also flush() and reload() signals, which | 63 | emitted. There are also flush() and reload() signals, which |
64 | are emitted when synching begins and ends respectively - upon these | 64 | are emitted when synching begins and ends respectively - upon these |
65 | signals, the application should save and reload any data | 65 | signals, the application should save and reload any data |
66 | files that are involved in synching. Most of these signals will initially | 66 | files that are involved in synching. Most of these signals will initially |
67 | be received and unfiltered through the appMessage() signal. | 67 | be received and unfiltered through the appMessage() signal. |
68 | 68 | ||
69 | This class also provides a set of useful static functions. The | 69 | This class also provides a set of useful static functions. The |
70 | qpeDir() and documentDir() functions return the respective paths. | 70 | qpeDir() and documentDir() functions return the respective paths. |
71 | The grabKeyboard() and ungrabKeyboard() functions are used to | 71 | The grabKeyboard() and ungrabKeyboard() functions are used to |
72 | control whether the application takes control of the device's | 72 | control whether the application takes control of the device's |
73 | physical buttons (e.g. application launch keys). The stylus' mode of | 73 | physical buttons (e.g. application launch keys). The stylus' mode of |
74 | operation is set with setStylusOperation() and retrieved with | 74 | operation is set with setStylusOperation() and retrieved with |
75 | stylusOperation(). There are also setInputMethodHint() and | 75 | stylusOperation(). There are also setInputMethodHint() and |
76 | inputMethodHint() functions. | 76 | inputMethodHint() functions. |
77 | 77 | ||
78 | \ingroup qtopiaemb | 78 | \ingroup qtopiaemb |
79 | */ | 79 | */ |
80 | class QPEApplication : public QApplication | 80 | class QPEApplication : public QApplication |
81 | { | 81 | { |
82 | Q_OBJECT | 82 | Q_OBJECT |
83 | public: | 83 | public: |
84 | QPEApplication( int& argc, char **argv, Type=GuiClient ); | 84 | QPEApplication( int& argc, char **argv, Type=GuiClient ); |
85 | ~QPEApplication(); | 85 | ~QPEApplication(); |
86 | 86 | ||
87 | static QString qpeDir(); | 87 | static QString qpeDir(); |
88 | static QString documentDir(); | 88 | static QString documentDir(); |
89 | void applyStyle(); | 89 | void applyStyle(); |
90 | void reset(); | 90 | void reset(); |
91 | static int defaultRotation(); | 91 | static int defaultRotation(); |
92 | static void setDefaultRotation(int r); | 92 | static void setDefaultRotation(int r); |
93 | static void setCurrentRotation(int r); | 93 | static void setCurrentRotation(int r); |
94 | static void setCurrentMode(int x, int y, int depth ); | 94 | static void setCurrentMode(int x, int y, int depth ); |
95 | static void grabKeyboard(); | 95 | static void grabKeyboard(); |
96 | static void ungrabKeyboard(); | 96 | static void ungrabKeyboard(); |
97 | 97 | ||
98 | enum StylusMode { | 98 | enum StylusMode { |
99 | LeftOnly, | 99 | LeftOnly, |
100 | RightOnHold | 100 | RightOnHold |
101 | // RightOnHoldLeftDelayed, etc. | 101 | // RightOnHoldLeftDelayed, etc. |
102 | }; | 102 | }; |
103 | static void setStylusOperation( QWidget*, StylusMode ); | 103 | static void setStylusOperation( QWidget*, StylusMode ); |
104 | static StylusMode stylusOperation( QWidget* ); | 104 | static StylusMode stylusOperation( QWidget* ); |
105 | 105 | ||
106 | enum InputMethodHint { | 106 | enum InputMethodHint { |
107 | Normal, | 107 | Normal, |
108 | AlwaysOff, | 108 | AlwaysOff, |
109 | AlwaysOn | 109 | AlwaysOn |
110 | }; | 110 | }; |
111 | 111 | ||
112 | enum screenSaverHint { | 112 | enum screenSaverHint { |
113 | Disable = 0, | 113 | Disable = 0, |
114 | DisableLightOff = 1, | 114 | DisableLightOff = 1, |
115 | DisableSuspend = 2, | 115 | DisableSuspend = 2, |
116 | Enable = 100 | 116 | Enable = 100 |
117 | }; | 117 | }; |
118 | 118 | ||
119 | static void setInputMethodHint( QWidget *, InputMethodHint ); | 119 | static void setInputMethodHint( QWidget *, InputMethodHint ); |
120 | static InputMethodHint inputMethodHint( QWidget * ); | 120 | static InputMethodHint inputMethodHint( QWidget * ); |
121 | 121 | ||
122 | void showMainWidget( QWidget*, bool nomax=FALSE ); | 122 | void showMainWidget( QWidget*, bool nomax=FALSE ); |
123 | void showMainDocumentWidget( QWidget*, bool nomax=FALSE ); | 123 | void showMainDocumentWidget( QWidget*, bool nomax=FALSE ); |
124 | 124 | ||
125 | static void showDialog( QDialog*, bool nomax=FALSE ) QPE_WEAK_SYMBOL; | 125 | static void showDialog( QDialog*, bool nomax=FALSE ) QPE_WEAK_SYMBOL; |
126 | static int execDialog ( QDialog*, bool nomax=FALSE ) QPE_WEAK_SYMBOL; | 126 | static int execDialog ( QDialog*, bool nomax=FALSE ) QPE_WEAK_SYMBOL; |
127 | static void showWidget( QWidget*, bool nomax=FALSE ) QPE_WEAK_SYMBOL; | 127 | static void showWidget( QWidget*, bool nomax=FALSE ) QPE_WEAK_SYMBOL; |
128 | /* Merge setTempScreenSaverMode */ | 128 | /* Merge setTempScreenSaverMode */ |
129 | #ifdef QTOPIA_INTERNAL_INITAPP | 129 | #ifdef QTOPIA_INTERNAL_INITAPP |
130 | void initApp( int argv, char **argv ); | 130 | void initApp( int argv, char **argv ); |
131 | #endif | 131 | #endif |
132 | 132 | ||
133 | static void setKeepRunning(); | 133 | static void setKeepRunning(); |
134 | bool keepRunning() const; | 134 | bool keepRunning() const; |
135 | 135 | ||
136 | bool keyboardGrabbed() const; | 136 | bool keyboardGrabbed() const; |
137 | 137 | ||
138 | int exec(); | 138 | int exec(); |
139 | 139 | ||
140 | signals: | 140 | signals: |
141 | void clientMoused(); | 141 | void clientMoused(); |
142 | void timeChanged(); | 142 | void timeChanged(); |
143 | void clockChanged( bool pm ); | 143 | void clockChanged( bool pm ); |
144 | void micChanged( bool muted ); | 144 | void micChanged( bool muted ); |
145 | void volumeChanged( bool muted ); | 145 | void volumeChanged( bool muted ); |
146 | void appMessage( const QCString& msg, const QByteArray& data); | 146 | void appMessage( const QCString& msg, const QByteArray& data); |
147 | void weekChanged( bool startOnMonday ); | 147 | void weekChanged( bool startOnMonday ); |
148 | void dateFormatChanged( DateFormat ); | 148 | void dateFormatChanged( DateFormat ); |
149 | void flush(); | 149 | void flush(); |
150 | void reload(); | 150 | void reload(); |
151 | /* linkChanged signal */ | 151 | /* linkChanged signal */ |
152 | 152 | ||
153 | private slots: | 153 | private slots: |
154 | void systemMessage( const QCString &msg, const QByteArray &data ); | 154 | void systemMessage( const QCString &msg, const QByteArray &data ); |
155 | void pidMessage( const QCString &msg, const QByteArray &data ); | 155 | void pidMessage( const QCString &msg, const QByteArray &data ); |
156 | void removeSenderFromStylusDict(); | 156 | void removeSenderFromStylusDict(); |
157 | void hideOrQuit(); | 157 | void hideOrQuit(); |
158 | 158 | ||
159 | protected: | 159 | protected: |
160 | bool qwsEventFilter( QWSEvent * ); | 160 | bool qwsEventFilter( QWSEvent * ); |
161 | void internalSetStyle( const QString &style ); | 161 | void internalSetStyle( const QString &style ); |
162 | void prepareForTermination(bool willrestart); | 162 | void prepareForTermination(bool willrestart); |
163 | virtual void restart(); | 163 | virtual void restart(); |
164 | virtual void shutdown(); | 164 | virtual void shutdown(); |
165 | bool eventFilter( QObject *, QEvent * ); | 165 | bool eventFilter( QObject *, QEvent * ); |
166 | void timerEvent( QTimerEvent * ); | 166 | void timerEvent( QTimerEvent * ); |
167 | bool raiseAppropriateWindow(); | 167 | bool raiseAppropriateWindow(); |
168 | virtual void tryQuit(); | 168 | virtual void tryQuit(); |
169 | #ifndef OPIE_NO_ERASE_RECT_HACKFIX | ||
170 | #if QT_VERSION > 233 | ||
171 | virtual void polish ( QWidget * ); // this is actually implemented in qt_override.cpp (!) | ||
172 | #endif | ||
173 | #endif | ||
174 | private: | 169 | private: |
175 | void mapToDefaultAction( QWSKeyEvent *ke, int defKey ); | 170 | void mapToDefaultAction( QWSKeyEvent *ke, int defKey ); |
176 | void processQCopFile(); | 171 | void processQCopFile(); |
177 | 172 | ||
178 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) | 173 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) |
179 | QCopChannel *sysChannel; | 174 | QCopChannel *sysChannel; |
180 | QCopChannel *pidChannel; | 175 | QCopChannel *pidChannel; |
181 | #endif | 176 | #endif |
182 | QPEApplicationData *d; | 177 | QPEApplicationData *d; |
183 | 178 | ||
184 | bool reserved_sh; | 179 | bool reserved_sh; |
185 | 180 | ||
186 | }; | 181 | }; |
187 | 182 | ||
188 | 183 | ||
189 | 184 | ||
190 | enum Transformation { Rot0, Rot90, Rot180, Rot270 }; /* from qgfxtransformed_qws.cpp */ | 185 | enum Transformation { Rot0, Rot90, Rot180, Rot270 }; /* from qgfxtransformed_qws.cpp */ |
191 | 186 | ||
192 | inline int TransToDeg ( Transformation t ) | 187 | inline int TransToDeg ( Transformation t ) |
193 | { | 188 | { |
194 | int d = static_cast<int>( t ); | 189 | int d = static_cast<int>( t ); |
195 | return d * 90; | 190 | return d * 90; |
196 | } | 191 | } |
197 | 192 | ||
198 | inline Transformation DegToTrans ( int d ) | 193 | inline Transformation DegToTrans ( int d ) |
199 | { | 194 | { |
200 | Transformation t = static_cast<Transformation>( d / 90 ); | 195 | Transformation t = static_cast<Transformation>( d / 90 ); |
201 | return t; | 196 | return t; |
202 | } | 197 | } |
203 | 198 | ||
204 | /* | 199 | /* |
205 | * Set current rotation of Opie, and rotation for newly started apps. | 200 | * Set current rotation of Opie, and rotation for newly started apps. |
206 | * Differs from setDefaultRotation in that 1) it rotates currently running apps, | 201 | * Differs from setDefaultRotation in that 1) it rotates currently running apps, |
207 | * and 2) does not set deforient or save orientation to qpe.conf. | 202 | * and 2) does not set deforient or save orientation to qpe.conf. |
208 | */ | 203 | */ |
209 | 204 | ||
210 | inline void QPEApplication::setCurrentRotation( int r ) | 205 | inline void QPEApplication::setCurrentRotation( int r ) |
211 | { | 206 | { |
212 | // setTransformation has been introduced in Qt/Embedded 2.3.4 snapshots | 207 | // setTransformation has been introduced in Qt/Embedded 2.3.4 snapshots |
213 | // for compatibility with the SharpROM use fallback to setDefaultTransformation() | 208 | // for compatibility with the SharpROM use fallback to setDefaultTransformation() |
214 | #if QT_VERSION > 233 | 209 | #if QT_VERSION > 233 |
215 | Transformation e = DegToTrans( r ); | 210 | Transformation e = DegToTrans( r ); |
216 | ::setenv( "QWS_DISPLAY", QString( "Transformed:Rot%1:0" ).arg( r ).latin1(), 1 ); | 211 | ::setenv( "QWS_DISPLAY", QString( "Transformed:Rot%1:0" ).arg( r ).latin1(), 1 ); |
217 | qApp->desktop()->qwsDisplay()->setTransformation( e ); | 212 | qApp->desktop()->qwsDisplay()->setTransformation( e ); |
218 | #else | 213 | #else |
219 | setDefaultRotation( r ); | 214 | setDefaultRotation( r ); |
220 | #endif | 215 | #endif |
221 | } | 216 | } |
222 | 217 | ||
223 | /* | 218 | /* |
224 | * Qtopia 1.7 SDK compatibility macros | 219 | * Qtopia 1.7 SDK compatibility macros |
225 | * FIXME: Support Opie Quicklaunch Interface | 220 | * FIXME: Support Opie Quicklaunch Interface |
226 | */ | 221 | */ |
227 | #define QTOPIA_ADD_APPLICATION(NAME,IMPLEMENTATION) \ | 222 | #define QTOPIA_ADD_APPLICATION(NAME,IMPLEMENTATION) \ |
228 | int main( int argc, char** argv ) \ | 223 | int main( int argc, char** argv ) \ |
229 | { \ | 224 | { \ |
230 | QPEApplication app = QPEApplication( argc, argv );\ | 225 | QPEApplication app = QPEApplication( argc, argv );\ |
231 | IMPLEMENTATION* mw = new IMPLEMENTATION(); \ | 226 | IMPLEMENTATION* mw = new IMPLEMENTATION(); \ |
232 | app.showMainWidget( mw ); \ | 227 | app.showMainWidget( mw ); \ |
233 | app.exec(); \ | 228 | app.exec(); \ |
234 | } | 229 | } |
235 | #define QTOPIA_MAIN // Bee-Bop-Alula | 230 | #define QTOPIA_MAIN // Bee-Bop-Alula |
236 | 231 | ||
237 | /* | 232 | /* |
238 | * -remove me | 233 | * -remove me |
239 | */ | 234 | */ |
240 | #ifdef Q_WS_QWS | 235 | #ifdef Q_WS_QWS |
241 | extern Q_EXPORT QRect qt_maxWindowRect; | 236 | extern Q_EXPORT QRect qt_maxWindowRect; |
242 | #endif | 237 | #endif |
243 | 238 | ||
244 | #endif | 239 | #endif |
diff --git a/library/qt_override.cpp b/library/qt_override.cpp deleted file mode 100644 index a0d753b..0000000 --- a/library/qt_override.cpp +++ b/dev/null | |||
@@ -1,170 +0,0 @@ | |||
1 | |||
2 | #include <qpe/qpeapplication.h> | ||
3 | #include <qfontdatabase.h> | ||
4 | |||
5 | #include <unistd.h> | ||
6 | #include <stdlib.h> | ||
7 | #include <stdio.h> | ||
8 | #include <limits.h> | ||
9 | #include <sys/param.h> // for toolchains with old libc headers | ||
10 | |||
11 | #include <qtopia/qpeglobal.h> | ||
12 | #include "qt_override_p.h" | ||
13 | |||
14 | #if QT_VERSION > 233 | ||
15 | |||
16 | #ifndef OPIE_NO_ERASE_RECT_HACKFIX | ||
17 | struct color_fix_t { | ||
18 | char *m_app; | ||
19 | char *m_class; | ||
20 | char *m_name; | ||
21 | QColorGroup::ColorRole m_set; | ||
22 | QColorGroup::ColorRole m_get; | ||
23 | }; | ||
24 | |||
25 | |||
26 | |||
27 | static const color_fix_t apps_that_need_special_colors [] = { | ||
28 | { "HancomMobileWord", "HTextEdit", 0, QColorGroup::Background, QColorGroup::Base }, | ||
29 | { "neocal", "Display", 0, QColorGroup::Background, QColorGroup::Base }, | ||
30 | |||
31 | { 0, 0, 0, QColorGroup::Base, QColorGroup::Base } | ||
32 | }; | ||
33 | |||
34 | #endif | ||
35 | |||
36 | #ifndef OPIE_NO_OVERRIDE_QT | ||
37 | |||
38 | static const char * const apps_that_need_pointsizes_times_10 [] = { | ||
39 | "HancomMobileWord", | ||
40 | "hancomsheet", | ||
41 | "HancomPresenterViewer", | ||
42 | |||
43 | 0 | ||
44 | }; | ||
45 | |||
46 | |||
47 | |||
48 | |||
49 | int Opie::force_appearance = 0; | ||
50 | |||
51 | |||
52 | // Return the *real* name of the binary - not just a quick guess | ||
53 | // by looking at argv [0] (which could be anything) | ||
54 | |||
55 | static void binaryNameFree ( ) | ||
56 | { | ||
57 | ::free ((void *) Opie::binaryName ( )); // we need to cast away the const here | ||
58 | } | ||
59 | |||
60 | const char *Opie::binaryName ( ) | ||
61 | { | ||
62 | static const char *appname = 0; | ||
63 | |||
64 | if ( !appname ) { | ||
65 | char dst [PATH_MAX + 1]; | ||
66 | int l = ::readlink ( "/proc/self/exe", dst, PATH_MAX ); | ||
67 | |||
68 | if ( l <= 0 ) | ||
69 | l = 0; | ||
70 | |||
71 | dst [l] = 0; | ||
72 | const char *b = ::strrchr ( dst, '/' ); | ||
73 | appname = ::strdup ( b ? b + 1 : dst ); | ||
74 | |||
75 | ::atexit ( binaryNameFree ); | ||
76 | } | ||
77 | return appname; | ||
78 | } | ||
79 | |||
80 | #else | ||
81 | int Opie::force_appearance = 0; | ||
82 | #endif | ||
83 | |||
84 | // Fix for a toolchain incompatibility (binaries compiled with | ||
85 | // old tcs using shared libs compiled with newer tcs) | ||
86 | |||
87 | extern "C" { | ||
88 | |||
89 | extern void __gmon_start__ ( ) QPE_WEAK_SYMBOL; | ||
90 | extern void __gmon_start__ ( ) | ||
91 | { | ||
92 | } | ||
93 | |||
94 | } | ||
95 | |||
96 | |||
97 | #ifndef OPIE_NO_ERASE_RECT_HACKFIX | ||
98 | // Fix for apps, that use QPainter::eraseRect() which doesn't work with styles | ||
99 | // that set a background pixmap (it would be easier to fix eraseRect(), but | ||
100 | // TT made it an inline ...) | ||
101 | |||
102 | void QPEApplication::polish ( QWidget *w ) | ||
103 | { | ||
104 | #ifndef OPIE_NO_OVERRIDE_QT | ||
105 | for ( const color_fix_t *ptr = apps_that_need_special_colors; ptr-> m_app; ptr++ ) { | ||
106 | if (( ::strcmp ( Opie::binaryName ( ), ptr-> m_app ) == 0 ) && | ||
107 | ( ptr-> m_class ? w-> inherits ( ptr-> m_class ) : true ) && | ||
108 | ( ptr-> m_name ? ( ::strcmp ( w-> name ( ), ptr-> m_name ) == 0 ) : true )) { | ||
109 | QPalette pal = w-> palette ( ); | ||
110 | pal. setColor ( ptr-> m_set, pal. color ( QPalette::Active, ptr-> m_get )); | ||
111 | w-> setPalette ( pal ); | ||
112 | } | ||
113 | } | ||
114 | #endif | ||
115 | QApplication::polish ( w ); | ||
116 | } | ||
117 | #endif | ||
118 | |||
119 | |||
120 | #ifndef OPIE_NO_OVERRIDE_QT | ||
121 | // Fix for the binary incompatibility that TT introduced in Qt/E 2.3.4 -- point sizes | ||
122 | // were multiplied by 10 (which was incorrect) | ||
123 | |||
124 | QValueList <int> QFontDatabase::pointSizes ( QString const &family, QString const &style, QString const &charset ) | ||
125 | { | ||
126 | QValueList <int> sl = pointSizes_NonWeak ( family, style, charset ); | ||
127 | |||
128 | for ( const char * const *ptr = apps_that_need_pointsizes_times_10; *ptr; ptr++ ) { | ||
129 | if ( ::strcmp ( Opie::binaryName ( ), *ptr ) == 0 ) { | ||
130 | for ( QValueList <int>::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) | ||
131 | *it *= 10; | ||
132 | } | ||
133 | } | ||
134 | return sl; | ||
135 | } | ||
136 | |||
137 | |||
138 | // Various style/font/color related overrides for weak symbols in Qt/E, | ||
139 | // which allows us to force the usage of the global Opie appearance. | ||
140 | |||
141 | void QApplication::setStyle ( QStyle *style ) | ||
142 | { | ||
143 | if ( Opie::force_appearance & Opie::Force_Style ) | ||
144 | delete style; | ||
145 | else | ||
146 | QApplication::setStyle_NonWeak ( style ); | ||
147 | } | ||
148 | |||
149 | void QApplication::setPalette ( const QPalette &pal, bool informWidgets, const char *className ) | ||
150 | { | ||
151 | if (!( Opie::force_appearance & Opie::Force_Style )) | ||
152 | QApplication::setPalette_NonWeak ( pal, informWidgets, className ); | ||
153 | } | ||
154 | |||
155 | void QApplication::setFont ( const QFont &fnt, bool informWidgets, const char *className ) | ||
156 | { | ||
157 | if (!( Opie::force_appearance & Opie::Force_Font )) | ||
158 | QApplication::setFont_NonWeak ( fnt, informWidgets, className ); | ||
159 | } | ||
160 | |||
161 | |||
162 | void QApplication::qwsSetDecoration ( QWSDecoration *deco ) | ||
163 | { | ||
164 | if ( Opie::force_appearance & Opie::Force_Decoration ) | ||
165 | delete deco; | ||
166 | else | ||
167 | QApplication::qwsSetDecoration_NonWeak ( deco ); | ||
168 | } | ||
169 | #endif | ||
170 | #endif | ||
diff --git a/library/qt_override_p.h b/library/qt_override_p.h deleted file mode 100644 index cb05d15..0000000 --- a/library/qt_override_p.h +++ b/dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | #ifndef __QT_OVERRIDE_H__ | ||
2 | #define __QT_OVERRIDE_H__ | ||
3 | |||
4 | #if QT_VERSION > 233 | ||
5 | |||
6 | namespace Opie { | ||
7 | |||
8 | enum ForceAppearance { | ||
9 | Force_Style = 0x01, | ||
10 | Force_Font = 0x02, | ||
11 | Force_Decoration = 0x04, | ||
12 | |||
13 | Force_All = 0xff, | ||
14 | Force_None = 0x00, | ||
15 | }; | ||
16 | |||
17 | extern const char *binaryName ( ); | ||
18 | |||
19 | extern int force_appearance; | ||
20 | |||
21 | } | ||
22 | |||
23 | #endif // (QT_VERSION >233) | ||
24 | |||
25 | #endif | ||
diff --git a/noncore/settings/appearance2/appearance.cpp b/noncore/settings/appearance2/appearance.cpp index 088171c..d649ed6 100644 --- a/noncore/settings/appearance2/appearance.cpp +++ b/noncore/settings/appearance2/appearance.cpp | |||
@@ -40,853 +40,653 @@ | |||
40 | #include <opie2/ofiledialog.h> | 40 | #include <opie2/ofiledialog.h> |
41 | #include <opie2/otabwidget.h> | 41 | #include <opie2/otabwidget.h> |
42 | #include <opie2/odebug.h> | 42 | #include <opie2/odebug.h> |
43 | 43 | ||
44 | #include <qpe/config.h> | 44 | #include <qpe/config.h> |
45 | #include <qpe/global.h> | 45 | #include <qpe/global.h> |
46 | #include <qpe/qpeapplication.h> | 46 | #include <qpe/qpeapplication.h> |
47 | #include <qpe/qpemessagebox.h> | 47 | #include <qpe/qpemessagebox.h> |
48 | #include <qpe/qcopenvelope_qws.h> | 48 | #include <qpe/qcopenvelope_qws.h> |
49 | #include <qpe/qpestyle.h> | 49 | #include <qpe/qpestyle.h> |
50 | #include <qpe/lightstyle.h> | 50 | #include <qpe/lightstyle.h> |
51 | #include <qpe/styleinterface.h> | 51 | #include <qpe/styleinterface.h> |
52 | 52 | ||
53 | /* QT */ | 53 | /* QT */ |
54 | #include <qbuttongroup.h> | 54 | #include <qbuttongroup.h> |
55 | #include <qcheckbox.h> | 55 | #include <qcheckbox.h> |
56 | #include <qcombobox.h> | 56 | #include <qcombobox.h> |
57 | #include <qdialog.h> | 57 | #include <qdialog.h> |
58 | #include <qdir.h> | 58 | #include <qdir.h> |
59 | #include <qlabel.h> | 59 | #include <qlabel.h> |
60 | #include <qlayout.h> | 60 | #include <qlayout.h> |
61 | #include <qlineedit.h> | 61 | #include <qlineedit.h> |
62 | #include <qlistbox.h> | 62 | #include <qlistbox.h> |
63 | #include <qmessagebox.h> | 63 | #include <qmessagebox.h> |
64 | #include <qpushbutton.h> | 64 | #include <qpushbutton.h> |
65 | #include <qradiobutton.h> | 65 | #include <qradiobutton.h> |
66 | #if QT_VERSION >= 0x030000 | 66 | #if QT_VERSION >= 0x030000 |
67 | #include <qstylefactory.h> | 67 | #include <qstylefactory.h> |
68 | #endif | 68 | #endif |
69 | #include <qtoolbutton.h> | 69 | #include <qtoolbutton.h> |
70 | #include <qwindowsstyle.h> | 70 | #include <qwindowsstyle.h> |
71 | #include <qlistview.h> | 71 | #include <qlistview.h> |
72 | #include <qheader.h> | 72 | #include <qheader.h> |
73 | #include <qvbox.h> | 73 | #include <qvbox.h> |
74 | #include <qwhatsthis.h> | 74 | #include <qwhatsthis.h> |
75 | 75 | ||
76 | using namespace Opie; | 76 | using namespace Opie; |
77 | using namespace Opie::Ui; | 77 | using namespace Opie::Ui; |
78 | using namespace Opie::Core; | 78 | using namespace Opie::Core; |
79 | 79 | ||
80 | class DefaultWindowDecoration : public WindowDecorationInterface | 80 | class DefaultWindowDecoration : public WindowDecorationInterface |
81 | { | 81 | { |
82 | public: | 82 | public: |
83 | DefaultWindowDecoration() : ref(0) {} | 83 | DefaultWindowDecoration() : ref(0) {} |
84 | QString name() const | 84 | QString name() const |
85 | { | 85 | { |
86 | return "Default"; | 86 | return "Default"; |
87 | } | 87 | } |
88 | QPixmap icon() const | 88 | QPixmap icon() const |
89 | { | 89 | { |
90 | return QPixmap(); | 90 | return QPixmap(); |
91 | } | 91 | } |
92 | QRESULT queryInterface( const QUuid &uuid, QUnknownInterface **iface ) | 92 | QRESULT queryInterface( const QUuid &uuid, QUnknownInterface **iface ) |
93 | { | 93 | { |
94 | *iface = 0; | 94 | *iface = 0; |
95 | if ( uuid == IID_QUnknown ) | 95 | if ( uuid == IID_QUnknown ) |
96 | *iface = this; | 96 | *iface = this; |
97 | else if ( uuid == IID_WindowDecoration ) | 97 | else if ( uuid == IID_WindowDecoration ) |
98 | *iface = this; | 98 | *iface = this; |
99 | 99 | ||
100 | if ( *iface ) | 100 | if ( *iface ) |
101 | (*iface)->addRef(); | 101 | (*iface)->addRef(); |
102 | return QS_OK; | 102 | return QS_OK; |
103 | } | 103 | } |
104 | Q_REFCOUNT | 104 | Q_REFCOUNT |
105 | 105 | ||
106 | private: | 106 | private: |
107 | ulong ref; | 107 | ulong ref; |
108 | }; | 108 | }; |
109 | 109 | ||
110 | 110 | ||
111 | 111 | ||
112 | 112 | ||
113 | 113 | ||
114 | 114 | ||
115 | 115 | ||
116 | QWidget *Appearance::createStyleTab ( QWidget *parent, Config &cfg ) | 116 | QWidget *Appearance::createStyleTab ( QWidget *parent, Config &cfg ) |
117 | { | 117 | { |
118 | QWidget* tab = new QWidget( parent, "StyleTab" ); | 118 | QWidget* tab = new QWidget( parent, "StyleTab" ); |
119 | QVBoxLayout* vertLayout = new QVBoxLayout( tab, 3, 3 ); | 119 | QVBoxLayout* vertLayout = new QVBoxLayout( tab, 3, 3 ); |
120 | 120 | ||
121 | m_style_list = new QListBox( tab, "m_style_list" ); | 121 | m_style_list = new QListBox( tab, "m_style_list" ); |
122 | vertLayout->addWidget( m_style_list ); | 122 | vertLayout->addWidget( m_style_list ); |
123 | QWhatsThis::add( m_style_list, tr( "Styles control the way items such as buttons and scroll bars appear in all applications.\n\nClick here to select an available style." ) ); | 123 | QWhatsThis::add( m_style_list, tr( "Styles control the way items such as buttons and scroll bars appear in all applications.\n\nClick here to select an available style." ) ); |
124 | 124 | ||
125 | m_style_settings = new QPushButton ( tr( "Settings..." ), tab ); | 125 | m_style_settings = new QPushButton ( tr( "Settings..." ), tab ); |
126 | connect ( m_style_settings, SIGNAL( clicked()), this, SLOT( styleSettingsClicked())); | 126 | connect ( m_style_settings, SIGNAL( clicked()), this, SLOT( styleSettingsClicked())); |
127 | vertLayout-> addWidget ( m_style_settings ); | 127 | vertLayout-> addWidget ( m_style_settings ); |
128 | QWhatsThis::add( m_style_settings, tr( "Click here to configure the currently selected style.\n\nNote: This option is not available for all styles." ) ); | 128 | QWhatsThis::add( m_style_settings, tr( "Click here to configure the currently selected style.\n\nNote: This option is not available for all styles." ) ); |
129 | 129 | ||
130 | QString s = cfg. readEntry ( "Style", "Light" ); | 130 | QString s = cfg. readEntry ( "Style", "Light" ); |
131 | 131 | ||
132 | 132 | ||
133 | #if QT_VERSION >= 0x030000 | 133 | #if QT_VERSION >= 0x030000 |
134 | m_style_list->insertStringList(QStyleFactory::styles()); | 134 | m_style_list->insertStringList(QStyleFactory::styles()); |
135 | #else | 135 | #else |
136 | m_style_list-> insertItem ( new StyleListItem ( "Windows", new QWindowsStyle ( ))); | 136 | m_style_list-> insertItem ( new StyleListItem ( "Windows", new QWindowsStyle ( ))); |
137 | m_style_list-> insertItem ( new StyleListItem ( "Light", new LightStyle ( ))); | 137 | m_style_list-> insertItem ( new StyleListItem ( "Light", new LightStyle ( ))); |
138 | m_style_list-> insertItem ( new StyleListItem ( "QPE", new QPEStyle ( ))); | 138 | m_style_list-> insertItem ( new StyleListItem ( "QPE", new QPEStyle ( ))); |
139 | #endif | 139 | #endif |
140 | 140 | ||
141 | { | 141 | { |
142 | QString path = QPEApplication::qpeDir ( ); | 142 | QString path = QPEApplication::qpeDir ( ); |
143 | path.append( "/plugins/styles/" ); | 143 | path.append( "/plugins/styles/" ); |
144 | QStringList sl = QDir ( path, "lib*.so" ). entryList ( ); | 144 | QStringList sl = QDir ( path, "lib*.so" ). entryList ( ); |
145 | 145 | ||
146 | for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) | 146 | for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) |
147 | { | 147 | { |
148 | QString libstr = path; | 148 | QString libstr = path; |
149 | libstr.append( "/" ); | 149 | libstr.append( "/" ); |
150 | libstr.append( *it ); | 150 | libstr.append( *it ); |
151 | QLibrary *lib = new QLibrary ( libstr ); | 151 | QLibrary *lib = new QLibrary ( libstr ); |
152 | StyleInterface *iface; | 152 | StyleInterface *iface; |
153 | 153 | ||
154 | if (( lib-> queryInterface ( IID_Style, (QUnknownInterface **) &iface ) == QS_OK ) && iface ) | 154 | if (( lib-> queryInterface ( IID_Style, (QUnknownInterface **) &iface ) == QS_OK ) && iface ) |
155 | { | 155 | { |
156 | StyleListItem *slit = new StyleListItem ( lib, iface ); | 156 | StyleListItem *slit = new StyleListItem ( lib, iface ); |
157 | m_style_list-> insertItem ( slit ); | 157 | m_style_list-> insertItem ( slit ); |
158 | 158 | ||
159 | if ( slit-> key ( ) == s ) | 159 | if ( slit-> key ( ) == s ) |
160 | m_style_list-> setCurrentItem ( slit ); | 160 | m_style_list-> setCurrentItem ( slit ); |
161 | } | 161 | } |
162 | else | 162 | else |
163 | delete lib; | 163 | delete lib; |
164 | } | 164 | } |
165 | } | 165 | } |
166 | 166 | ||
167 | m_original_style = m_style_list-> currentItem ( ); | 167 | m_original_style = m_style_list-> currentItem ( ); |
168 | styleClicked ( m_original_style ); | 168 | styleClicked ( m_original_style ); |
169 | 169 | ||
170 | connect( m_style_list, SIGNAL( highlighted(int) ), this, SLOT( styleClicked(int) ) ); | 170 | connect( m_style_list, SIGNAL( highlighted(int) ), this, SLOT( styleClicked(int) ) ); |
171 | 171 | ||
172 | return tab; | 172 | return tab; |
173 | } | 173 | } |
174 | 174 | ||
175 | QWidget *Appearance::createDecoTab ( QWidget *parent, Config &cfg ) | 175 | QWidget *Appearance::createDecoTab ( QWidget *parent, Config &cfg ) |
176 | { | 176 | { |
177 | QWidget* tab = new QWidget( parent, "DecoTab" ); | 177 | QWidget* tab = new QWidget( parent, "DecoTab" ); |
178 | QVBoxLayout* vertLayout = new QVBoxLayout( tab, 3, 3 ); | 178 | QVBoxLayout* vertLayout = new QVBoxLayout( tab, 3, 3 ); |
179 | 179 | ||
180 | m_deco_list = new QListBox( tab, "m_deco_list" ); | 180 | m_deco_list = new QListBox( tab, "m_deco_list" ); |
181 | vertLayout->addWidget( m_deco_list ); | 181 | vertLayout->addWidget( m_deco_list ); |
182 | QWhatsThis::add( m_deco_list, tr( "Window decorations control the way the application title bar and its buttons appear.\n\nClick here to select an available decoration." ) ); | 182 | QWhatsThis::add( m_deco_list, tr( "Window decorations control the way the application title bar and its buttons appear.\n\nClick here to select an available decoration." ) ); |
183 | 183 | ||
184 | QString s = cfg. readEntry ( "Decoration", "libflat.so" ); | 184 | QString s = cfg. readEntry ( "Decoration", "libflat.so" ); |
185 | 185 | ||
186 | m_deco_list-> insertItem ( new DecoListItem ( "QPE" )); | 186 | m_deco_list-> insertItem ( new DecoListItem ( "QPE" )); |
187 | 187 | ||
188 | { | 188 | { |
189 | QString path = QPEApplication::qpeDir(); | 189 | QString path = QPEApplication::qpeDir(); |
190 | path.append( "/plugins/decorations/" ); | 190 | path.append( "/plugins/decorations/" ); |
191 | QStringList sl = QDir ( path, "lib*.so" ). entryList ( ); | 191 | QStringList sl = QDir ( path, "lib*.so" ). entryList ( ); |
192 | 192 | ||
193 | for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) | 193 | for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) |
194 | { | 194 | { |
195 | QString libstr = path; | 195 | QString libstr = path; |
196 | libstr.append( "/" ); | 196 | libstr.append( "/" ); |
197 | libstr.append( *it ); | 197 | libstr.append( *it ); |
198 | QLibrary *lib = new QLibrary ( libstr ); | 198 | QLibrary *lib = new QLibrary ( libstr ); |
199 | WindowDecorationInterface *iface; | 199 | WindowDecorationInterface *iface; |
200 | 200 | ||
201 | if ( lib-> queryInterface ( IID_WindowDecoration, (QUnknownInterface **) &iface ) == QS_OK ) | 201 | if ( lib-> queryInterface ( IID_WindowDecoration, (QUnknownInterface **) &iface ) == QS_OK ) |
202 | { | 202 | { |
203 | DecoListItem *dlit = new DecoListItem ( lib, iface ); | 203 | DecoListItem *dlit = new DecoListItem ( lib, iface ); |
204 | m_deco_list-> insertItem ( dlit ); | 204 | m_deco_list-> insertItem ( dlit ); |
205 | 205 | ||
206 | if ( dlit-> key ( ) == s ) | 206 | if ( dlit-> key ( ) == s ) |
207 | m_deco_list-> setCurrentItem ( dlit ); | 207 | m_deco_list-> setCurrentItem ( dlit ); |
208 | } | 208 | } |
209 | else | 209 | else |
210 | delete lib; | 210 | delete lib; |
211 | } | 211 | } |
212 | } | 212 | } |
213 | 213 | ||
214 | m_original_deco = m_deco_list-> currentItem ( ); | 214 | m_original_deco = m_deco_list-> currentItem ( ); |
215 | if ( m_deco_list-> currentItem ( ) < 0 ) | 215 | if ( m_deco_list-> currentItem ( ) < 0 ) |
216 | m_deco_list-> setCurrentItem ( 0 ); | 216 | m_deco_list-> setCurrentItem ( 0 ); |
217 | decoClicked ( m_original_deco ); | 217 | decoClicked ( m_original_deco ); |
218 | 218 | ||
219 | connect( m_deco_list, SIGNAL( highlighted(int) ), this, SLOT( decoClicked(int) ) ); | 219 | connect( m_deco_list, SIGNAL( highlighted(int) ), this, SLOT( decoClicked(int) ) ); |
220 | 220 | ||
221 | return tab; | 221 | return tab; |
222 | } | 222 | } |
223 | 223 | ||
224 | QWidget *Appearance::createFontTab ( QWidget *parent, Config &cfg ) | 224 | QWidget *Appearance::createFontTab ( QWidget *parent, Config &cfg ) |
225 | { | 225 | { |
226 | QString familyStr = cfg. readEntry ( "FontFamily", "Helvetica" ); | 226 | QString familyStr = cfg. readEntry ( "FontFamily", "Helvetica" ); |
227 | QString styleStr = cfg. readEntry ( "FontStyle", "Regular" ); | 227 | QString styleStr = cfg. readEntry ( "FontStyle", "Regular" ); |
228 | int size = cfg. readNumEntry ( "FontSize", 10 ); | 228 | int size = cfg. readNumEntry ( "FontSize", 10 ); |
229 | 229 | ||
230 | m_fontselect = new OFontSelector ( false, parent, "FontTab" ); | 230 | m_fontselect = new OFontSelector ( false, parent, "FontTab" ); |
231 | m_fontselect-> setSelectedFont ( familyStr, styleStr, size ); | 231 | m_fontselect-> setSelectedFont ( familyStr, styleStr, size ); |
232 | QWhatsThis::add( m_fontselect, tr( "Select the desired name, style and size of the default font applications will use." ) ); | 232 | QWhatsThis::add( m_fontselect, tr( "Select the desired name, style and size of the default font applications will use." ) ); |
233 | 233 | ||
234 | connect( m_fontselect, SIGNAL( fontSelected(const QFont&)), | 234 | connect( m_fontselect, SIGNAL( fontSelected(const QFont&)), |
235 | this, SLOT( fontClicked(const QFont&))); | 235 | this, SLOT( fontClicked(const QFont&))); |
236 | 236 | ||
237 | return m_fontselect; | 237 | return m_fontselect; |
238 | } | 238 | } |
239 | 239 | ||
240 | QWidget *Appearance::createColorTab ( QWidget *parent, Config &cfg ) | 240 | QWidget *Appearance::createColorTab ( QWidget *parent, Config &cfg ) |
241 | { | 241 | { |
242 | QWidget *tab = new QWidget( parent, "ColorTab" ); | 242 | QWidget *tab = new QWidget( parent, "ColorTab" ); |
243 | QGridLayout *gridLayout = new QGridLayout( tab, 0, 0, 3, 3 ); | 243 | QGridLayout *gridLayout = new QGridLayout( tab, 0, 0, 3, 3 ); |
244 | gridLayout->setRowStretch ( 3, 10 ); | 244 | gridLayout->setRowStretch ( 3, 10 ); |
245 | 245 | ||
246 | m_color_list = new QListBox ( tab ); | 246 | m_color_list = new QListBox ( tab ); |
247 | gridLayout->addMultiCellWidget ( m_color_list, 0, 3, 0, 0 ); | 247 | gridLayout->addMultiCellWidget ( m_color_list, 0, 3, 0, 0 ); |
248 | connect( m_color_list, SIGNAL( highlighted(int) ), this, SLOT( colorClicked(int) ) ); | 248 | connect( m_color_list, SIGNAL( highlighted(int) ), this, SLOT( colorClicked(int) ) ); |
249 | QWhatsThis::add( m_color_list, tr( "Color schemes are a collection of colors which are used for various parts of the display.\n\nClick here to select an available scheme." ) ); | 249 | QWhatsThis::add( m_color_list, tr( "Color schemes are a collection of colors which are used for various parts of the display.\n\nClick here to select an available scheme." ) ); |
250 | 250 | ||
251 | m_color_list-> insertItem ( new ColorListItem ( tr( "Current scheme" ), cfg )); | 251 | m_color_list-> insertItem ( new ColorListItem ( tr( "Current scheme" ), cfg )); |
252 | 252 | ||
253 | QString path = QPEApplication::qpeDir ( ); | 253 | QString path = QPEApplication::qpeDir ( ); |
254 | path.append( "/etc/colors/" ); | 254 | path.append( "/etc/colors/" ); |
255 | QStringList sl = QDir ( path ). entryList ( "*.scheme" ); | 255 | QStringList sl = QDir ( path ). entryList ( "*.scheme" ); |
256 | 256 | ||
257 | for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) | 257 | for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) |
258 | { | 258 | { |
259 | QString name = (*it). left ((*it). find ( ".scheme" )); | 259 | QString name = (*it). left ((*it). find ( ".scheme" )); |
260 | QString pathstr = path; | 260 | QString pathstr = path; |
261 | pathstr.append( *it ); | 261 | pathstr.append( *it ); |
262 | Config config ( pathstr, Config::File ); | 262 | Config config ( pathstr, Config::File ); |
263 | config. setGroup ( "Colors" ); | 263 | config. setGroup ( "Colors" ); |
264 | 264 | ||
265 | m_color_list-> insertItem ( new ColorListItem ( name, config )); | 265 | m_color_list-> insertItem ( new ColorListItem ( name, config )); |
266 | } | 266 | } |
267 | 267 | ||
268 | m_color_list-> setCurrentItem ( 0 ); | 268 | m_color_list-> setCurrentItem ( 0 ); |
269 | 269 | ||
270 | QPushButton* tempButton = new QPushButton( tab, "editSchemeButton" ); | 270 | QPushButton* tempButton = new QPushButton( tab, "editSchemeButton" ); |
271 | tempButton->setText( tr( "Edit..." ) ); | 271 | tempButton->setText( tr( "Edit..." ) ); |
272 | connect( tempButton, SIGNAL( clicked() ), this, SLOT( editSchemeClicked() ) ); | 272 | connect( tempButton, SIGNAL( clicked() ), this, SLOT( editSchemeClicked() ) ); |
273 | gridLayout->addWidget( tempButton, 0, 1 ); | 273 | gridLayout->addWidget( tempButton, 0, 1 ); |
274 | QWhatsThis::add( tempButton, tr( "Click here to change the colors in the current color scheme." ) ); | 274 | QWhatsThis::add( tempButton, tr( "Click here to change the colors in the current color scheme." ) ); |
275 | 275 | ||
276 | tempButton = new QPushButton( tab, "deleteSchemeButton" ); | 276 | tempButton = new QPushButton( tab, "deleteSchemeButton" ); |
277 | tempButton->setText( tr( "Delete" ) ); | 277 | tempButton->setText( tr( "Delete" ) ); |
278 | connect( tempButton, SIGNAL( clicked() ), this, SLOT( deleteSchemeClicked() ) ); | 278 | connect( tempButton, SIGNAL( clicked() ), this, SLOT( deleteSchemeClicked() ) ); |
279 | gridLayout->addWidget( tempButton, 1, 1 ); | 279 | gridLayout->addWidget( tempButton, 1, 1 ); |
280 | QWhatsThis::add( tempButton, tr( "Click here to delete the color scheme selected in the list to the left." ) ); | 280 | QWhatsThis::add( tempButton, tr( "Click here to delete the color scheme selected in the list to the left." ) ); |
281 | 281 | ||
282 | tempButton = new QPushButton( tab, "saveSchemeButton" ); | 282 | tempButton = new QPushButton( tab, "saveSchemeButton" ); |
283 | tempButton->setText( tr( "Save" ) ); | 283 | tempButton->setText( tr( "Save" ) ); |
284 | connect( tempButton, SIGNAL( clicked() ), this, SLOT( saveSchemeClicked() ) ); | 284 | connect( tempButton, SIGNAL( clicked() ), this, SLOT( saveSchemeClicked() ) ); |
285 | gridLayout->addWidget( tempButton, 2, 1 ); | 285 | gridLayout->addWidget( tempButton, 2, 1 ); |
286 | QWhatsThis::add( tempButton, tr( "Click here to name and save the current color scheme." ) ); | 286 | QWhatsThis::add( tempButton, tr( "Click here to name and save the current color scheme." ) ); |
287 | 287 | ||
288 | return tab; | 288 | return tab; |
289 | } | 289 | } |
290 | 290 | ||
291 | QWidget *Appearance::createAdvancedTab ( QWidget *parent, Config &cfg ) | 291 | QWidget *Appearance::createAdvancedTab ( QWidget *parent, Config &cfg ) |
292 | { | 292 | { |
293 | QWidget *tab = new QWidget ( parent ); | 293 | QWidget *tab = new QWidget ( parent ); |
294 | QVBoxLayout *vertLayout = new QVBoxLayout( tab, 3, 3 ); | 294 | QVBoxLayout *vertLayout = new QVBoxLayout( tab, 3, 3 ); |
295 | 295 | ||
296 | QGridLayout *lay = new QGridLayout ( vertLayout, 0, 0, 3, 0 ); | ||
297 | |||
298 | m_force = new QCheckBox ( tr( "Force styling for all applications." ), tab ); | ||
299 | m_force-> setChecked ( cfg. readBoolEntry ( "ForceStyle" )); | ||
300 | lay-> addMultiCellWidget ( m_force, 0, 0, 0, 1 ); | ||
301 | QWhatsThis::add( m_force, tr( "Click here to allow all applications to use global appearance settings." ) ); | ||
302 | |||
303 | QLabel *l = new QLabel ( tab ); | ||
304 | l-> setText ( QString ( "<p>%1</p>" ). arg ( tr( "Disable styling for these applications ( <b>*</b> can be used as a wildcard):" ))); | ||
305 | lay-> addMultiCellWidget ( l, 1, 1, 0, 1 ); | ||
306 | QWhatsThis::add( l, tr( "If some applications do not display correctly with the global appearance settings, certain features can be turned off for that application.\n\nThis area allows you to select an application and which settings you wish to disable." ) ); | ||
307 | |||
308 | m_except = new QListView ( tab ); | ||
309 | m_except-> addColumn ( Resource::loadIconSet ( "appearance" ), "", 24 ); | ||
310 | m_except-> addColumn ( Resource::loadIconSet ( "font" ), "", 24 ); | ||
311 | m_except-> addColumn ( Resource::loadIconSet ( "appearance/deco" ), "", 24 ); | ||
312 | m_except-> addColumn ( tr( "Binary file(s)" )); | ||
313 | m_except-> setColumnAlignment ( 0, AlignCenter ); | ||
314 | m_except-> setColumnAlignment ( 1, AlignCenter ); | ||
315 | m_except-> setColumnAlignment ( 2, AlignCenter ); | ||
316 | m_except-> setAllColumnsShowFocus ( true ); | ||
317 | m_except-> setMinimumHeight ( 30 ); | ||
318 | m_except-> header ( )-> setClickEnabled ( false ); | ||
319 | m_except-> header ( )-> setResizeEnabled ( false ); | ||
320 | m_except-> header ( )-> setMovingEnabled ( false ); | ||
321 | m_except-> setSorting ( -1 ); | ||
322 | lay-> addMultiCellWidget ( m_except, 2, 6, 0, 0 ); | ||
323 | QWhatsThis::add( m_except, tr( "If some applications do not display correctly with the global appearance settings, certain features can be turned off for that application.\n\nThis area allows you to select an application and which settings you wish to disable." ) ); | ||
324 | |||
325 | connect ( m_except, SIGNAL( clicked(QListViewItem*,const QPoint&,int)), this, SLOT( clickedExcept(QListViewItem*,const QPoint&,int))); | ||
326 | |||
327 | QToolButton *tb = new QToolButton ( tab ); | ||
328 | tb-> setIconSet ( Resource::loadIconSet ( "appearance/add" )); | ||
329 | tb-> setFocusPolicy ( QWidget::StrongFocus ); | ||
330 | lay-> addWidget ( tb, 2, 1 ); | ||
331 | connect ( tb, SIGNAL( clicked()), this, SLOT( addExcept())); | ||
332 | QWhatsThis::add( tb, tr( "Click here to add an application to the list above." ) ); | ||
333 | |||
334 | tb = new QToolButton ( tab ); | ||
335 | tb-> setIconSet ( Resource::loadIconSet ( "editdelete" )); | ||
336 | tb-> setFocusPolicy ( QWidget::StrongFocus ); | ||
337 | lay-> addWidget ( tb, 3, 1 ); | ||
338 | connect ( tb, SIGNAL( clicked()), this, SLOT( delExcept())); | ||
339 | QWhatsThis::add( tb, tr( "Click here to delete the currently selected application." ) ); | ||
340 | |||
341 | tb = new QToolButton ( tab ); | ||
342 | tb-> setIconSet ( Resource::loadIconSet ( "up" )); | ||
343 | tb-> setFocusPolicy ( QWidget::StrongFocus ); | ||
344 | lay-> addWidget ( tb, 4, 1 ); | ||
345 | connect ( tb, SIGNAL( clicked()), this, SLOT( upExcept())); | ||
346 | QWhatsThis::add( tb, tr( "Click here to move the currently selected application up in the list." ) ); | ||
347 | |||
348 | tb = new QToolButton ( tab ); | ||
349 | tb-> setIconSet ( Resource::loadIconSet ( "down" )); | ||
350 | tb-> setFocusPolicy ( QWidget::StrongFocus ); | ||
351 | lay-> addWidget ( tb, 5, 1 ); | ||
352 | connect ( tb, SIGNAL( clicked()), this, SLOT( downExcept())); | ||
353 | QWhatsThis::add( tb, tr( "Click here to move the currently selected application down in the list." ) ); | ||
354 | |||
355 | lay-> setRowStretch ( 6, 10 ); | ||
356 | lay-> setColStretch ( 0, 10 ); | ||
357 | |||
358 | QStringList sl = cfg. readListEntry ( "NoStyle", ';' ); | ||
359 | QListViewItem *lvit = 0; | ||
360 | for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) | ||
361 | { | ||
362 | int fl = ( *it ). left ( 1 ). toInt ( 0, 32 ); | ||
363 | |||
364 | lvit = new ExceptListItem ( m_except, lvit, ( *it ). mid ( 1 ), fl & 0x01, fl & 0x02, fl & 0x04 ); | ||
365 | } | ||
366 | |||
367 | |||
368 | vertLayout-> addSpacing ( 3 ); | ||
369 | QFrame *f = new QFrame ( tab ); | ||
370 | f-> setFrameStyle ( QFrame::HLine | QFrame::Sunken ); | ||
371 | vertLayout-> addWidget ( f ); | ||
372 | vertLayout-> addSpacing ( 3 ); | ||
373 | |||
374 | |||
375 | QGridLayout* gridLayout = new QGridLayout ( vertLayout, 0, 0, 3, 0 ); | 296 | QGridLayout* gridLayout = new QGridLayout ( vertLayout, 0, 0, 3, 0 ); |
376 | 297 | ||
377 | int style = cfg. readNumEntry ( "TabStyle", 2 ) - 1; | 298 | int style = cfg. readNumEntry ( "TabStyle", 2 ) - 1; |
378 | bool tabtop = ( cfg. readEntry ( "TabPosition", "Top" ) == "Top" ); | 299 | bool tabtop = ( cfg. readEntry ( "TabPosition", "Top" ) == "Top" ); |
379 | 300 | ||
380 | QLabel* label = new QLabel( tr( "Tab style:" ), tab ); | 301 | QLabel* label = new QLabel( tr( "Tab style:" ), tab ); |
381 | gridLayout-> addWidget ( label, 0, 0 ); | 302 | gridLayout-> addWidget ( label, 0, 0 ); |
382 | QWhatsThis::add( label, tr( "Click here to select a desired style for tabbed dialogs (such as this application). The styles available are:\n\n1. Tabs - normal tabs with text labels only\n2. Tabs w/icons - tabs with icons for each tab, text label only appears on current tab\n3. Drop down list - a vertical listing of tabs\n4. Drop down list w/icons - a vertical listing of tabs with icons" ) ); | 303 | QWhatsThis::add( label, tr( "Click here to select a desired style for tabbed dialogs (such as this application). The styles available are:\n\n1. Tabs - normal tabs with text labels only\n2. Tabs w/icons - tabs with icons for each tab, text label only appears on current tab\n3. Drop down list - a vertical listing of tabs\n4. Drop down list w/icons - a vertical listing of tabs with icons" ) ); |
383 | 304 | ||
384 | QButtonGroup* btngrp = new QButtonGroup( tab, "buttongroup" ); | 305 | QButtonGroup* btngrp = new QButtonGroup( tab, "buttongroup" ); |
385 | btngrp-> hide ( ); | 306 | btngrp-> hide ( ); |
386 | btngrp-> setExclusive ( true ); | 307 | btngrp-> setExclusive ( true ); |
387 | 308 | ||
388 | m_tabstyle_list = new QComboBox ( false, tab, "tabstyle" ); | 309 | m_tabstyle_list = new QComboBox ( false, tab, "tabstyle" ); |
389 | m_tabstyle_list-> insertItem ( tr( "Tabs" )); | 310 | m_tabstyle_list-> insertItem ( tr( "Tabs" )); |
390 | m_tabstyle_list-> insertItem ( tr( "Tabs w/icons" )); | 311 | m_tabstyle_list-> insertItem ( tr( "Tabs w/icons" )); |
391 | m_tabstyle_list-> insertItem ( tr( "Drop down list" )); | 312 | m_tabstyle_list-> insertItem ( tr( "Drop down list" )); |
392 | m_tabstyle_list-> insertItem ( tr( "Drop down list w/icons" )); | 313 | m_tabstyle_list-> insertItem ( tr( "Drop down list w/icons" )); |
393 | m_tabstyle_list-> setCurrentItem ( style ); | 314 | m_tabstyle_list-> setCurrentItem ( style ); |
394 | gridLayout-> addMultiCellWidget ( m_tabstyle_list, 0, 0, 1, 2 ); | 315 | gridLayout-> addMultiCellWidget ( m_tabstyle_list, 0, 0, 1, 2 ); |
395 | QWhatsThis::add( m_tabstyle_list, tr( "Click here to select a desired style for tabbed dialogs (such as this application). The styles available are:\n\n1. Tabs - normal tabs with text labels only\n2. Tabs w/icons - tabs with icons for each tab, text label only appears on current tab\n3. Drop down list - a vertical listing of tabs\n4. Drop down list w/icons - a vertical listing of tabs with icons" ) ); | 316 | QWhatsThis::add( m_tabstyle_list, tr( "Click here to select a desired style for tabbed dialogs (such as this application). The styles available are:\n\n1. Tabs - normal tabs with text labels only\n2. Tabs w/icons - tabs with icons for each tab, text label only appears on current tab\n3. Drop down list - a vertical listing of tabs\n4. Drop down list w/icons - a vertical listing of tabs with icons" ) ); |
396 | 317 | ||
397 | m_tabstyle_top = new QRadioButton( tr( "Top" ), tab, "tabpostop" ); | 318 | m_tabstyle_top = new QRadioButton( tr( "Top" ), tab, "tabpostop" ); |
398 | btngrp-> insert ( m_tabstyle_top ); | 319 | btngrp-> insert ( m_tabstyle_top ); |
399 | gridLayout-> addWidget( m_tabstyle_top, 1, 1 ); | 320 | gridLayout-> addWidget( m_tabstyle_top, 1, 1 ); |
400 | QWhatsThis::add( m_tabstyle_top, tr( "Click here so that tabs appear at the top of the window." ) ); | 321 | QWhatsThis::add( m_tabstyle_top, tr( "Click here so that tabs appear at the top of the window." ) ); |
401 | 322 | ||
402 | m_tabstyle_bottom = new QRadioButton( tr( "Bottom" ), tab, "tabposbottom" ); | 323 | m_tabstyle_bottom = new QRadioButton( tr( "Bottom" ), tab, "tabposbottom" ); |
403 | btngrp-> insert ( m_tabstyle_bottom ); | 324 | btngrp-> insert ( m_tabstyle_bottom ); |
404 | gridLayout-> addWidget( m_tabstyle_bottom, 1, 2 ); | 325 | gridLayout-> addWidget( m_tabstyle_bottom, 1, 2 ); |
405 | QWhatsThis::add( m_tabstyle_bottom, tr( "Click here so that tabs appear at the bottom of the window." ) ); | 326 | QWhatsThis::add( m_tabstyle_bottom, tr( "Click here so that tabs appear at the bottom of the window." ) ); |
406 | 327 | ||
407 | m_tabstyle_top-> setChecked ( tabtop ); | 328 | m_tabstyle_top-> setChecked ( tabtop ); |
408 | m_tabstyle_bottom-> setChecked ( !tabtop ); | 329 | m_tabstyle_bottom-> setChecked ( !tabtop ); |
409 | 330 | ||
410 | m_original_tabstyle = style; | 331 | m_original_tabstyle = style; |
411 | m_original_tabpos = tabtop; | 332 | m_original_tabpos = tabtop; |
412 | 333 | ||
413 | vertLayout-> addSpacing ( 3 ); | 334 | vertLayout-> addSpacing ( 3 ); |
414 | QHBoxLayout *rotLay = new QHBoxLayout ( vertLayout, 3 ); | 335 | QHBoxLayout *rotLay = new QHBoxLayout ( vertLayout, 3 ); |
415 | 336 | ||
416 | QLabel* rotlabel = new QLabel( tr( "Rotation direction:" ), tab ); | 337 | QLabel* rotlabel = new QLabel( tr( "Rotation direction:" ), tab ); |
417 | m_rotdir_cw = new QRadioButton( tab, "rotdir_cw" ); | 338 | m_rotdir_cw = new QRadioButton( tab, "rotdir_cw" ); |
418 | QPixmap cw1 = Resource::loadIconSet("redo"). pixmap( ); | 339 | QPixmap cw1 = Resource::loadIconSet("redo"). pixmap( ); |
419 | m_rotdir_ccw = new QRadioButton( tab, "rotdir_ccw" ); | 340 | m_rotdir_ccw = new QRadioButton( tab, "rotdir_ccw" ); |
420 | QImage ccwImage = cw1. convertToImage( ). mirror( 1, 0 ); | 341 | QImage ccwImage = cw1. convertToImage( ). mirror( 1, 0 ); |
421 | QPixmap ccw1; | 342 | QPixmap ccw1; |
422 | m_rotdir_flip = new QRadioButton( tab, "rotdir_flip" ); | 343 | m_rotdir_flip = new QRadioButton( tab, "rotdir_flip" ); |
423 | QPixmap flip1 = Resource::loadIconSet("pass"). pixmap( ); | 344 | QPixmap flip1 = Resource::loadIconSet("pass"). pixmap( ); |
424 | QButtonGroup* rotbtngrp = new QButtonGroup( tab, "rotbuttongroup" ); | 345 | QButtonGroup* rotbtngrp = new QButtonGroup( tab, "rotbuttongroup" ); |
425 | 346 | ||
426 | rotbtngrp-> hide ( ); | 347 | rotbtngrp-> hide ( ); |
427 | rotbtngrp-> setExclusive ( true ); | 348 | rotbtngrp-> setExclusive ( true ); |
428 | rotbtngrp-> insert ( m_rotdir_cw ); | 349 | rotbtngrp-> insert ( m_rotdir_cw ); |
429 | rotbtngrp-> insert ( m_rotdir_ccw ); | 350 | rotbtngrp-> insert ( m_rotdir_ccw ); |
430 | rotbtngrp-> insert ( m_rotdir_flip ); | 351 | rotbtngrp-> insert ( m_rotdir_flip ); |
431 | 352 | ||
432 | ccw1. convertFromImage( ccwImage ); | 353 | ccw1. convertFromImage( ccwImage ); |
433 | m_rotdir_cw-> setPixmap( cw1 ); | 354 | m_rotdir_cw-> setPixmap( cw1 ); |
434 | m_rotdir_ccw-> setPixmap( ccw1 ); | 355 | m_rotdir_ccw-> setPixmap( ccw1 ); |
435 | m_rotdir_flip-> setPixmap( flip1 ); | 356 | m_rotdir_flip-> setPixmap( flip1 ); |
436 | 357 | ||
437 | rotLay-> addWidget ( rotlabel, 0 ); | 358 | rotLay-> addWidget ( rotlabel, 0 ); |
438 | rotLay-> addWidget ( m_rotdir_cw, 0 ); | 359 | rotLay-> addWidget ( m_rotdir_cw, 0 ); |
439 | rotLay-> addWidget ( m_rotdir_ccw, 0 ); | 360 | rotLay-> addWidget ( m_rotdir_ccw, 0 ); |
440 | rotLay-> addWidget ( m_rotdir_flip, 0 ); | 361 | rotLay-> addWidget ( m_rotdir_flip, 0 ); |
441 | 362 | ||
442 | int rotDirection = cfg.readNumEntry( "rotatedir" ); | 363 | int rotDirection = cfg.readNumEntry( "rotatedir" ); |
443 | ODirection rot = CW; | 364 | ODirection rot = CW; |
444 | 365 | ||
445 | if (rotDirection == -1) | 366 | if (rotDirection == -1) |
446 | { | 367 | { |
447 | rot = ODevice::inst ( )-> direction ( ); | 368 | rot = ODevice::inst ( )-> direction ( ); |
448 | } | 369 | } |
449 | else | 370 | else |
450 | { | 371 | { |
451 | rot = (ODirection)rotDirection; | 372 | rot = (ODirection)rotDirection; |
452 | } | 373 | } |
453 | 374 | ||
454 | m_rotdir_cw-> setChecked ( rot == CW ); | 375 | m_rotdir_cw-> setChecked ( rot == CW ); |
455 | m_rotdir_ccw-> setChecked ( rot == CCW ); | 376 | m_rotdir_ccw-> setChecked ( rot == CCW ); |
456 | m_rotdir_flip-> setChecked ( rot == Flip ); | 377 | m_rotdir_flip-> setChecked ( rot == Flip ); |
457 | 378 | ||
379 | |||
380 | /* | ||
381 | * add a spacing | ||
382 | */ | ||
383 | vertLayout->addItem( new QSpacerItem( 1, 1, QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding ) ); | ||
458 | return tab; | 384 | return tab; |
459 | } | 385 | } |
460 | 386 | ||
461 | 387 | ||
462 | Appearance::Appearance( QWidget* parent, const char* name, WFlags ) | 388 | Appearance::Appearance( QWidget* parent, const char* name, WFlags ) |
463 | : QDialog ( parent, name, true, WStyle_ContextHelp ) | 389 | : QDialog ( parent, name, true, WStyle_ContextHelp ) |
464 | { | 390 | { |
465 | setCaption( tr( "Appearance Settings" ) ); | 391 | setCaption( tr( "Appearance Settings" ) ); |
466 | 392 | ||
467 | Config config( "qpe" ); | 393 | Config config( "qpe" ); |
468 | config.setGroup( "Appearance" ); | 394 | config.setGroup( "Appearance" ); |
469 | 395 | ||
470 | QVBoxLayout *top = new QVBoxLayout ( this, 3, 3 ); | 396 | QVBoxLayout *top = new QVBoxLayout ( this, 3, 3 ); |
471 | 397 | ||
472 | m_sample = new SampleWindow ( this ); | 398 | m_sample = new SampleWindow ( this ); |
473 | 399 | ||
474 | m_sample-> setDecoration ( new DefaultWindowDecoration ( ) ); | 400 | m_sample-> setDecoration ( new DefaultWindowDecoration ( ) ); |
475 | QWhatsThis::add( m_sample, tr( "This is a preview window. Look here to see your new appearance as options are changed." ) ); | 401 | QWhatsThis::add( m_sample, tr( "This is a preview window. Look here to see your new appearance as options are changed." ) ); |
476 | 402 | ||
477 | OTabWidget* tw = new OTabWidget ( this, "tabwidget", OTabWidget::Global, OTabWidget::Bottom ); | 403 | OTabWidget* tw = new OTabWidget ( this, "tabwidget", OTabWidget::Global, OTabWidget::Bottom ); |
478 | QWidget *styletab; | 404 | QWidget *styletab; |
479 | 405 | ||
480 | m_color_list = 0; | 406 | m_color_list = 0; |
481 | 407 | ||
482 | tw-> addTab ( styletab = createStyleTab ( tw, config ), "appearance", tr( "Style" )); | 408 | tw-> addTab ( styletab = createStyleTab ( tw, config ), "appearance", tr( "Style" )); |
483 | tw-> addTab ( createFontTab ( tw, config ), "font", tr( "Font" )); | 409 | tw-> addTab ( createFontTab ( tw, config ), "font", tr( "Font" )); |
484 | tw-> addTab ( createColorTab ( tw, config ), "appearance/color", tr( "Colors" ) ); | 410 | tw-> addTab ( createColorTab ( tw, config ), "appearance/color", tr( "Colors" ) ); |
485 | tw-> addTab ( createDecoTab ( tw, config ), "appearance/deco", tr( "Windows" ) ); | 411 | tw-> addTab ( createDecoTab ( tw, config ), "appearance/deco", tr( "Windows" ) ); |
486 | tw-> addTab ( m_advtab = createAdvancedTab ( tw, config ), "SettingsIcon", tr( "Advanced" ) ); | 412 | tw-> addTab ( m_advtab = createAdvancedTab ( tw, config ), "SettingsIcon", tr( "Advanced" ) ); |
487 | 413 | ||
488 | top-> addWidget ( tw, 10 ); | 414 | top-> addWidget ( tw, 10 ); |
489 | top-> addWidget ( m_sample, 1 ); | 415 | top-> addWidget ( m_sample, 1 ); |
490 | 416 | ||
491 | tw-> setCurrentTab ( styletab ); | 417 | tw-> setCurrentTab ( styletab ); |
492 | connect ( tw, SIGNAL( currentChanged(QWidget*)), this, SLOT( tabChanged(QWidget*))); | 418 | connect ( tw, SIGNAL( currentChanged(QWidget*)), this, SLOT( tabChanged(QWidget*))); |
493 | 419 | ||
494 | m_style_changed = m_font_changed = m_color_changed = m_deco_changed = false; | 420 | m_style_changed = m_font_changed = m_color_changed = m_deco_changed = false; |
495 | } | 421 | } |
496 | 422 | ||
497 | Appearance::~Appearance() | 423 | Appearance::~Appearance() |
498 | {} | 424 | {} |
499 | 425 | ||
500 | void Appearance::tabChanged ( QWidget *w ) | 426 | void Appearance::tabChanged ( QWidget *w ) |
501 | { | 427 | { |
502 | if ( w == m_advtab ) | 428 | if ( w == m_advtab ) |
503 | { | 429 | { |
504 | m_sample-> hide ( ); | 430 | m_sample-> hide ( ); |
505 | updateGeometry ( ); // shouldn't be necessary ... | 431 | updateGeometry ( ); // shouldn't be necessary ... |
506 | } | 432 | } |
507 | else | 433 | else |
508 | m_sample-> show ( ); | 434 | m_sample-> show ( ); |
509 | } | 435 | } |
510 | 436 | ||
511 | void Appearance::accept ( ) | 437 | void Appearance::accept ( ) |
512 | { | 438 | { |
513 | bool newtabpos = m_tabstyle_top-> isChecked ( ); | 439 | bool newtabpos = m_tabstyle_top-> isChecked ( ); |
514 | int newtabstyle = m_tabstyle_list-> currentItem ( ); | 440 | int newtabstyle = m_tabstyle_list-> currentItem ( ); |
515 | 441 | ||
516 | Config config ( "qpe" ); | 442 | Config config ( "qpe" ); |
517 | config. setGroup ( "Appearance" ); | 443 | config. setGroup ( "Appearance" ); |
518 | 444 | ||
519 | if ( m_style_changed ) | 445 | if ( m_style_changed ) |
520 | { | 446 | { |
521 | StyleListItem *item = (StyleListItem *) m_style_list-> item ( m_style_list-> currentItem ( )); | 447 | StyleListItem *item = (StyleListItem *) m_style_list-> item ( m_style_list-> currentItem ( )); |
522 | if ( item ) | 448 | if ( item ) |
523 | config.writeEntry( "Style", item-> key ( )); | 449 | config.writeEntry( "Style", item-> key ( )); |
524 | } | 450 | } |
525 | 451 | ||
526 | if ( m_deco_changed ) | 452 | if ( m_deco_changed ) |
527 | { | 453 | { |
528 | DecoListItem *item = (DecoListItem *) m_deco_list-> item ( m_deco_list-> currentItem ( )); | 454 | DecoListItem *item = (DecoListItem *) m_deco_list-> item ( m_deco_list-> currentItem ( )); |
529 | if ( item ) | 455 | if ( item ) |
530 | config.writeEntry( "Decoration", item-> key ( )); | 456 | config.writeEntry( "Decoration", item-> key ( )); |
531 | } | 457 | } |
532 | 458 | ||
533 | if (( newtabstyle != m_original_tabstyle ) || ( newtabpos != m_original_tabpos )) | 459 | if (( newtabstyle != m_original_tabstyle ) || ( newtabpos != m_original_tabpos )) |
534 | { | 460 | { |
535 | config. writeEntry ( "TabStyle", newtabstyle + 1 ); | 461 | config. writeEntry ( "TabStyle", newtabstyle + 1 ); |
536 | config. writeEntry ( "TabPosition", newtabpos ? "Top" : "Bottom" ); | 462 | config. writeEntry ( "TabPosition", newtabpos ? "Top" : "Bottom" ); |
537 | } | 463 | } |
538 | 464 | ||
539 | if ( m_font_changed ) | 465 | if ( m_font_changed ) |
540 | { | 466 | { |
541 | config. writeEntry ( "FontFamily", m_fontselect-> fontFamily ( )); | 467 | config. writeEntry ( "FontFamily", m_fontselect-> fontFamily ( )); |
542 | config. writeEntry ( "FontStyle", m_fontselect-> fontStyle ( )); | 468 | config. writeEntry ( "FontStyle", m_fontselect-> fontStyle ( )); |
543 | config. writeEntry ( "FontSize", m_fontselect-> fontSize ( )); | 469 | config. writeEntry ( "FontSize", m_fontselect-> fontSize ( )); |
544 | } | 470 | } |
545 | 471 | ||
546 | 472 | ||
547 | if ( m_color_changed ) | 473 | if ( m_color_changed ) |
548 | { | 474 | { |
549 | ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( )); | 475 | ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( )); |
550 | 476 | ||
551 | if ( item ) | 477 | if ( item ) |
552 | item-> save ( config ); | 478 | item-> save ( config ); |
553 | } | 479 | } |
554 | 480 | ||
555 | ODirection rot; | 481 | ODirection rot; |
556 | if (m_rotdir_ccw-> isChecked ( )) | 482 | if (m_rotdir_ccw-> isChecked ( )) |
557 | { | 483 | { |
558 | rot = CCW; | 484 | rot = CCW; |
559 | } | 485 | } |
560 | else if (m_rotdir_cw-> isChecked ( )) | 486 | else if (m_rotdir_cw-> isChecked ( )) |
561 | { | 487 | { |
562 | rot = CW; | 488 | rot = CW; |
563 | } | 489 | } |
564 | else | 490 | else |
565 | { | 491 | { |
566 | rot = Flip; | 492 | rot = Flip; |
567 | } | 493 | } |
568 | config. writeEntry ( "rotatedir", (int)rot ); | 494 | config. writeEntry ( "rotatedir", (int)rot ); |
569 | 495 | ||
570 | m_except-> setFocus ( ); // if the focus was on the embedded line-edit, we have to move it away first, so the contents are updated | ||
571 | |||
572 | QStringList sl; | ||
573 | QString exceptstr; | ||
574 | for ( ExceptListItem *it = (ExceptListItem *) m_except-> firstChild ( ); it; it = (ExceptListItem *) it-> nextSibling ( )) | ||
575 | { | ||
576 | int fl = 0; | ||
577 | fl |= ( it-> noStyle ( ) ? 0x01 : 0 ); | ||
578 | fl |= ( it-> noFont ( ) ? 0x02 : 0 ); | ||
579 | fl |= ( it-> noDeco ( ) ? 0x04 : 0 ); | ||
580 | exceptstr = QString::number ( fl, 32 ); | ||
581 | exceptstr.append( it-> pattern ( )); | ||
582 | sl << exceptstr; | ||
583 | } | ||
584 | config. writeEntry ( "NoStyle", sl, ';' ); | ||
585 | config. writeEntry ( "ForceStyle", m_force-> isChecked ( )); | ||
586 | |||
587 | config. write ( ); // need to flush the config info first | 496 | config. write ( ); // need to flush the config info first |
588 | Global::applyStyle ( ); | 497 | Global::applyStyle ( ); |
589 | 498 | ||
590 | QDialog::accept ( ); | 499 | QDialog::accept ( ); |
591 | } | 500 | } |
592 | 501 | ||
593 | void Appearance::done ( int r ) | 502 | void Appearance::done ( int r ) |
594 | { | 503 | { |
595 | QDialog::done ( r ); | 504 | QDialog::done ( r ); |
596 | close ( ); | 505 | close ( ); |
597 | } | 506 | } |
598 | 507 | ||
599 | 508 | ||
600 | void Appearance::styleClicked ( int index ) | 509 | void Appearance::styleClicked ( int index ) |
601 | { | 510 | { |
602 | StyleListItem *sli = (StyleListItem *) m_style_list-> item ( index ); | 511 | StyleListItem *sli = (StyleListItem *) m_style_list-> item ( index ); |
603 | m_style_settings-> setEnabled ( sli ? sli-> hasSettings ( ) : false ); | 512 | m_style_settings-> setEnabled ( sli ? sli-> hasSettings ( ) : false ); |
604 | 513 | ||
605 | if ( m_sample && sli && sli-> style ( )) | 514 | if ( m_sample && sli && sli-> style ( )) |
606 | { | 515 | { |
607 | int ci = m_color_list ? m_color_list-> currentItem ( ) : -1; | 516 | int ci = m_color_list ? m_color_list-> currentItem ( ) : -1; |
608 | 517 | ||
609 | m_sample-> setStyle2 ( sli-> style ( ), ci < 0 ? palette ( ) : ((ColorListItem *) m_color_list-> item ( ci ))-> palette ( )); | 518 | m_sample-> setStyle2 ( sli-> style ( ), ci < 0 ? palette ( ) : ((ColorListItem *) m_color_list-> item ( ci ))-> palette ( )); |
610 | } | 519 | } |
611 | 520 | ||
612 | m_style_changed |= ( index != m_original_style ); | 521 | m_style_changed |= ( index != m_original_style ); |
613 | } | 522 | } |
614 | 523 | ||
615 | void Appearance::styleSettingsClicked ( ) | 524 | void Appearance::styleSettingsClicked ( ) |
616 | { | 525 | { |
617 | StyleListItem *item = (StyleListItem *) m_style_list-> item ( m_style_list-> currentItem ( )); | 526 | StyleListItem *item = (StyleListItem *) m_style_list-> item ( m_style_list-> currentItem ( )); |
618 | 527 | ||
619 | if ( item && item-> hasSettings ( )) | 528 | if ( item && item-> hasSettings ( )) |
620 | { | 529 | { |
621 | QDialog *d = new QDialog ( this, "SETTINGS-DLG", true ); | 530 | QDialog *d = new QDialog ( this, "SETTINGS-DLG", true ); |
622 | QVBoxLayout *vbox = new QVBoxLayout ( d, 3, 0 ); | 531 | QVBoxLayout *vbox = new QVBoxLayout ( d, 3, 0 ); |
623 | 532 | ||
624 | QWidget *w = item-> settings ( d ); | 533 | QWidget *w = item-> settings ( d ); |
625 | 534 | ||
626 | if ( w ) | 535 | if ( w ) |
627 | { | 536 | { |
628 | vbox-> addWidget ( w ); | 537 | vbox-> addWidget ( w ); |
629 | 538 | ||
630 | d-> setCaption ( w-> caption ( )); | 539 | d-> setCaption ( w-> caption ( )); |
631 | 540 | ||
632 | bool accepted = ( QPEApplication::execDialog ( d ) == QDialog::Accepted ); | 541 | bool accepted = ( QPEApplication::execDialog ( d ) == QDialog::Accepted ); |
633 | 542 | ||
634 | if ( item-> setSettings ( accepted )) | 543 | if ( item-> setSettings ( accepted )) |
635 | m_style_changed = true; | 544 | m_style_changed = true; |
636 | } | 545 | } |
637 | delete d; | 546 | delete d; |
638 | } | 547 | } |
639 | } | 548 | } |
640 | 549 | ||
641 | void Appearance::decoClicked ( int index ) | 550 | void Appearance::decoClicked ( int index ) |
642 | { | 551 | { |
643 | DecoListItem *dli = (DecoListItem *) m_deco_list-> item ( index ); | 552 | DecoListItem *dli = (DecoListItem *) m_deco_list-> item ( index ); |
644 | 553 | ||
645 | if ( m_sample ) | 554 | if ( m_sample ) |
646 | { | 555 | { |
647 | if ( dli && dli-> interface ( )) | 556 | if ( dli && dli-> interface ( )) |
648 | m_sample-> setDecoration ( dli-> interface ( )); | 557 | m_sample-> setDecoration ( dli-> interface ( )); |
649 | else | 558 | else |
650 | m_sample-> setDecoration ( new DefaultWindowDecoration ( )); | 559 | m_sample-> setDecoration ( new DefaultWindowDecoration ( )); |
651 | m_sample-> repaint ( ); | 560 | m_sample-> repaint ( ); |
652 | } | 561 | } |
653 | m_deco_changed |= ( index != m_original_deco ); | 562 | m_deco_changed |= ( index != m_original_deco ); |
654 | } | 563 | } |
655 | 564 | ||
656 | void Appearance::fontClicked ( const QFont &f ) | 565 | void Appearance::fontClicked ( const QFont &f ) |
657 | { | 566 | { |
658 | m_font_changed |= ( f != m_sample-> font ( )); | 567 | m_font_changed |= ( f != m_sample-> font ( )); |
659 | m_sample-> setFont ( f ); | 568 | m_sample-> setFont ( f ); |
660 | } | 569 | } |
661 | 570 | ||
662 | void Appearance::colorClicked ( int index ) | 571 | void Appearance::colorClicked ( int index ) |
663 | { | 572 | { |
664 | ColorListItem *item = (ColorListItem *) m_color_list-> item ( index ); | 573 | ColorListItem *item = (ColorListItem *) m_color_list-> item ( index ); |
665 | 574 | ||
666 | if ( item ) | 575 | if ( item ) |
667 | m_sample-> setPalette ( item-> palette ( )); | 576 | m_sample-> setPalette ( item-> palette ( )); |
668 | 577 | ||
669 | m_color_changed |= ( item-> palette ( ) != qApp-> palette ( )); | 578 | m_color_changed |= ( item-> palette ( ) != qApp-> palette ( )); |
670 | } | 579 | } |
671 | 580 | ||
672 | 581 | ||
673 | void Appearance::editSchemeClicked ( ) | 582 | void Appearance::editSchemeClicked ( ) |
674 | { | 583 | { |
675 | ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( )); | 584 | ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( )); |
676 | 585 | ||
677 | int cnt = 0; | 586 | int cnt = 0; |
678 | QString labels [QColorGroup::NColorRoles]; | 587 | QString labels [QColorGroup::NColorRoles]; |
679 | QColor colors [QColorGroup::NColorRoles]; | 588 | QColor colors [QColorGroup::NColorRoles]; |
680 | 589 | ||
681 | for ( int role = 0; role < (int) QColorGroup::NColorRoles; ++role ) | 590 | for ( int role = 0; role < (int) QColorGroup::NColorRoles; ++role ) |
682 | { | 591 | { |
683 | QColor col = item->color( static_cast<QColorGroup::ColorRole>( role ) ); | 592 | QColor col = item->color( static_cast<QColorGroup::ColorRole>( role ) ); |
684 | 593 | ||
685 | if ( col. isValid ( )) | 594 | if ( col. isValid ( )) |
686 | { | 595 | { |
687 | labels[cnt] = item->label( static_cast<QColorGroup::ColorRole>( role ) ); | 596 | labels[cnt] = item->label( static_cast<QColorGroup::ColorRole>( role ) ); |
688 | colors[cnt] = col; | 597 | colors[cnt] = col; |
689 | 598 | ||
690 | cnt++; | 599 | cnt++; |
691 | } | 600 | } |
692 | } | 601 | } |
693 | 602 | ||
694 | EditScheme* editdlg = new EditScheme( cnt, labels, colors, this, "editScheme", true ); | 603 | EditScheme* editdlg = new EditScheme( cnt, labels, colors, this, "editScheme", true ); |
695 | if ( QPEApplication::execDialog( editdlg ) == QDialog::Accepted ) | 604 | if ( QPEApplication::execDialog( editdlg ) == QDialog::Accepted ) |
696 | { | 605 | { |
697 | ColorListItem *citem = (ColorListItem *) m_color_list-> item ( 0 ); | 606 | ColorListItem *citem = (ColorListItem *) m_color_list-> item ( 0 ); |
698 | cnt = 0; | 607 | cnt = 0; |
699 | 608 | ||
700 | for ( int role = 0; role < (int) QColorGroup::NColorRoles; ++role ) | 609 | for ( int role = 0; role < (int) QColorGroup::NColorRoles; ++role ) |
701 | { | 610 | { |
702 | if ( item->color( static_cast<QColorGroup::ColorRole>( role ) ).isValid() ) | 611 | if ( item->color( static_cast<QColorGroup::ColorRole>( role ) ).isValid() ) |
703 | { | 612 | { |
704 | citem->setColor( static_cast<QColorGroup::ColorRole>( role ), colors[cnt] ); | 613 | citem->setColor( static_cast<QColorGroup::ColorRole>( role ), colors[cnt] ); |
705 | cnt++; | 614 | cnt++; |
706 | } | 615 | } |
707 | } | 616 | } |
708 | 617 | ||
709 | m_color_list-> setCurrentItem ( 0 ); | 618 | m_color_list-> setCurrentItem ( 0 ); |
710 | colorClicked ( 0 ); | 619 | colorClicked ( 0 ); |
711 | 620 | ||
712 | m_color_changed = true; | 621 | m_color_changed = true; |
713 | } | 622 | } |
714 | delete editdlg; | 623 | delete editdlg; |
715 | } | 624 | } |
716 | 625 | ||
717 | 626 | ||
718 | void Appearance::saveSchemeClicked() | 627 | void Appearance::saveSchemeClicked() |
719 | { | 628 | { |
720 | ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( )); | 629 | ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( )); |
721 | 630 | ||
722 | if ( !item ) | 631 | if ( !item ) |
723 | return; | 632 | return; |
724 | 633 | ||
725 | QDialog *d = new QDialog ( this, 0, true ); | 634 | QDialog *d = new QDialog ( this, 0, true ); |
726 | d-> setCaption ( tr( "Save Scheme" )); | 635 | d-> setCaption ( tr( "Save Scheme" )); |
727 | QLineEdit *ed = new QLineEdit ( d ); | 636 | QLineEdit *ed = new QLineEdit ( d ); |
728 | ( new QVBoxLayout ( d, 3, 3 ))-> addWidget ( ed ); | 637 | ( new QVBoxLayout ( d, 3, 3 ))-> addWidget ( ed ); |
729 | ed-> setFocus ( ); | 638 | ed-> setFocus ( ); |
730 | 639 | ||
731 | if ( d-> exec ( ) == QDialog::Accepted ) | 640 | if ( d-> exec ( ) == QDialog::Accepted ) |
732 | { | 641 | { |
733 | QString schemename = ed-> text ( ); | 642 | QString schemename = ed-> text ( ); |
734 | QString filestr = QPEApplication::qpeDir(); | 643 | QString filestr = QPEApplication::qpeDir(); |
735 | filestr.append( "/etc/colors/" ); | 644 | filestr.append( "/etc/colors/" ); |
736 | filestr.append( schemename ); | 645 | filestr.append( schemename ); |
737 | filestr.append( ".scheme" ); | 646 | filestr.append( ".scheme" ); |
738 | QFile file ( filestr ); | 647 | QFile file ( filestr ); |
739 | if ( !file. exists ( )) | 648 | if ( !file. exists ( )) |
740 | { | 649 | { |
741 | QPalette p = item-> palette ( ); | 650 | QPalette p = item-> palette ( ); |
742 | 651 | ||
743 | Config config ( file.name(), Config::File ); | 652 | Config config ( file.name(), Config::File ); |
744 | config. setGroup( "Colors" ); | 653 | config. setGroup( "Colors" ); |
745 | 654 | ||
746 | item-> save ( config ); | 655 | item-> save ( config ); |
747 | 656 | ||
748 | config. write ( ); // need to flush the config info first | 657 | config. write ( ); // need to flush the config info first |
749 | 658 | ||
750 | m_color_list-> insertItem ( new ColorListItem ( schemename, config )); | 659 | m_color_list-> insertItem ( new ColorListItem ( schemename, config )); |
751 | } | 660 | } |
752 | else | 661 | else |
753 | { | 662 | { |
754 | QMessageBox::information ( this, tr( "Save scheme" ), tr( "Scheme does already exist." )); | 663 | QMessageBox::information ( this, tr( "Save scheme" ), tr( "Scheme does already exist." )); |
755 | } | 664 | } |
756 | } | 665 | } |
757 | delete d; | 666 | delete d; |
758 | } | 667 | } |
759 | 668 | ||
760 | void Appearance::deleteSchemeClicked() | 669 | void Appearance::deleteSchemeClicked() |
761 | { | 670 | { |
762 | ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( )); | 671 | ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( )); |
763 | 672 | ||
764 | if ( !item ) | 673 | if ( !item ) |
765 | return; | 674 | return; |
766 | 675 | ||
767 | if ( m_color_list-> currentItem ( ) > 0 ) | 676 | if ( m_color_list-> currentItem ( ) > 0 ) |
768 | { | 677 | { |
769 | if ( QPEMessageBox::confirmDelete ( this, tr( "Delete scheme" ), item-> text ( ) ) ) | 678 | if ( QPEMessageBox::confirmDelete ( this, tr( "Delete scheme" ), item-> text ( ) ) ) |
770 | { | 679 | { |
771 | QString filestr = QPEApplication::qpeDir ( ); | 680 | QString filestr = QPEApplication::qpeDir ( ); |
772 | filestr.append( "/etc/colors/" ); | 681 | filestr.append( "/etc/colors/" ); |
773 | filestr.append( item-> text ( ) ); | 682 | filestr.append( item-> text ( ) ); |
774 | filestr.append( ".scheme" ); | 683 | filestr.append( ".scheme" ); |
775 | QFile::remove ( filestr ); | 684 | QFile::remove ( filestr ); |
776 | delete item; | 685 | delete item; |
777 | } | 686 | } |
778 | } | 687 | } |
779 | else | 688 | else |
780 | { | 689 | { |
781 | QMessageBox::information( this, tr( "Delete scheme" ), tr( "Unable to delete current scheme." )); | 690 | QMessageBox::information( this, tr( "Delete scheme" ), tr( "Unable to delete current scheme." )); |
782 | } | 691 | } |
783 | } | 692 | } |
784 | |||
785 | |||
786 | void Appearance::addExcept ( ) | ||
787 | { | ||
788 | ExceptListItem *it = new ExceptListItem ( m_except, 0, tr( "<new>" ), true, true, true ); | ||
789 | m_except-> ensureItemVisible ( it ); | ||
790 | m_except-> setSelected ( it, true ); | ||
791 | } | ||
792 | |||
793 | void Appearance::delExcept ( ) | ||
794 | { | ||
795 | if ( m_except-> selectedItem ( )) | ||
796 | { | ||
797 | m_except-> setFocus ( ); | ||
798 | delete m_except-> selectedItem ( ); | ||
799 | } | ||
800 | } | ||
801 | |||
802 | void Appearance::upExcept ( ) | ||
803 | { | ||
804 | ExceptListItem *it = (ExceptListItem *) m_except-> selectedItem ( ); | ||
805 | |||
806 | if ( it && it-> itemAbove ( )) | ||
807 | it-> itemAbove ( )-> moveItem ( it ); | ||
808 | } | ||
809 | |||
810 | void Appearance::downExcept ( ) | ||
811 | { | ||
812 | ExceptListItem *it = (ExceptListItem *) m_except-> selectedItem ( ); | ||
813 | |||
814 | if ( it && it-> itemBelow ( )) | ||
815 | it-> moveItem ( it-> itemBelow ( )); | ||
816 | } | ||
817 | |||
818 | class ExEdit : public QLineEdit | ||
819 | { | ||
820 | public: | ||
821 | ExEdit ( ExceptListItem *item ) | ||
822 | : QLineEdit ( item-> listView ( )-> viewport ( ), "exedit" ), it ( item ) | ||
823 | { | ||
824 | setFrame ( false ); | ||
825 | |||
826 | QRect r = it-> listView ( )-> itemRect ( it ); | ||
827 | |||
828 | int x = it-> listView ( )-> header ( )-> cellPos ( 3 ) - 1; | ||
829 | int y = r. y ( ); | ||
830 | int w = it-> listView ( )-> viewport ( )-> width ( ) - x; | ||
831 | int h = r. height ( ); // + 2; | ||
832 | |||
833 | setText ( it-> pattern ( )); | ||
834 | setGeometry ( x, y, w, h ); | ||
835 | |||
836 | odebug << "ExEdit: [" << it->text(2).latin1() << "] at " | ||
837 | << x << "," << y << " " << w << "," << h << oendl; | ||
838 | |||
839 | m_out = true; | ||
840 | |||
841 | show ( ); | ||
842 | setFocus ( ); | ||
843 | selectAll ( ); | ||
844 | end ( true ); | ||
845 | } | ||
846 | |||
847 | virtual void focusOutEvent ( QFocusEvent * ) | ||
848 | { | ||
849 | hide ( ); | ||
850 | if ( m_out ) | ||
851 | it-> setPattern ( text ( )); | ||
852 | delete this; | ||
853 | } | ||
854 | |||
855 | virtual void keyPressEvent ( QKeyEvent *e ) | ||
856 | { | ||
857 | if ( e-> key ( ) == Key_Return ) | ||
858 | it-> listView ( )-> setFocus ( ); | ||
859 | else if ( e-> key ( ) == Key_Escape ) | ||
860 | { | ||
861 | m_out = false; | ||
862 | it-> listView ( )-> setFocus ( ); | ||
863 | } | ||
864 | else | ||
865 | QLineEdit::keyPressEvent ( e ); | ||
866 | } | ||
867 | |||
868 | private: | ||
869 | ExceptListItem *it; | ||
870 | bool m_out; | ||
871 | }; | ||
872 | |||
873 | void Appearance::clickedExcept ( QListViewItem *item, const QPoint &, int c ) | ||
874 | { | ||
875 | if ( !item || c < 0 || c > 3 ) | ||
876 | return; | ||
877 | |||
878 | ExceptListItem *it = (ExceptListItem *) item; | ||
879 | |||
880 | if ( c == 0 ) | ||
881 | it-> setNoStyle ( !it-> noStyle ( )); | ||
882 | else if ( c == 1 ) | ||
883 | it-> setNoFont ( !it-> noFont ( )); | ||
884 | else if ( c == 2 ) | ||
885 | it-> setNoDeco ( !it-> noDeco ( )); | ||
886 | else if ( c == 3 ) | ||
887 | { | ||
888 | m_except-> ensureItemVisible ( it ); | ||
889 | new ExEdit ( it ); | ||
890 | } | ||
891 | } | ||
892 | |||
diff --git a/noncore/settings/appearance2/appearance.h b/noncore/settings/appearance2/appearance.h index 134a918..de2f1ab 100644 --- a/noncore/settings/appearance2/appearance.h +++ b/noncore/settings/appearance2/appearance.h | |||
@@ -1,132 +1,124 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the OPIE Project | 2 | This file is part of the OPIE Project |
3 | =. Copyright (c) 2002 Dan Williams <williamsdr@acm.org> | 3 | =. Copyright (c) 2002 Dan Williams <williamsdr@acm.org> |
4 | .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org> | 4 | .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org> |
5 | .>+-= | 5 | .>+-= |
6 | _;:, .> :=|. This file is free software; you can | 6 | _;:, .> :=|. This file is free software; you can |
7 | .> <`_, > . <= redistribute it and/or modify it under | 7 | .> <`_, > . <= redistribute it and/or modify it under |
8 | :`=1 )Y*s>-.-- : the terms of the GNU General Public | 8 | :`=1 )Y*s>-.-- : the terms of the GNU General Public |
9 | .="- .-=="i, .._ License as published by the Free Software | 9 | .="- .-=="i, .._ License as published by the Free Software |
10 | - . .-<_> .<> Foundation; either version 2 of the License, | 10 | - . .-<_> .<> Foundation; either version 2 of the License, |
11 | ._= =} : or (at your option) any later version. | 11 | ._= =} : or (at your option) any later version. |
12 | .%`+i> _;_. | 12 | .%`+i> _;_. |
13 | .i_,=:_. -<s. This file is distributed in the hope that | 13 | .i_,=:_. -<s. This file is distributed in the hope that |
14 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 14 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
15 | : .. .:, . . . without even the implied warranty of | 15 | : .. .:, . . . without even the implied warranty of |
16 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 16 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
17 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General | 17 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General |
18 | ..}^=.= = ; Public License for more details. | 18 | ..}^=.= = ; Public License for more details. |
19 | ++= -. .` .: | 19 | ++= -. .` .: |
20 | : = ...= . :.=- You should have received a copy of the GNU | 20 | : = ...= . :.=- You should have received a copy of the GNU |
21 | -. .:....=;==+<; General Public License along with this file; | 21 | -. .:....=;==+<; General Public License along with this file; |
22 | -_. . . )=. = see the file COPYING. If not, write to the | 22 | -_. . . )=. = see the file COPYING. If not, write to the |
23 | -- :-=` Free Software Foundation, Inc., | 23 | -- :-=` Free Software Foundation, Inc., |
24 | 59 Temple Place - Suite 330, | 24 | 59 Temple Place - Suite 330, |
25 | Boston, MA 02111-1307, USA. | 25 | Boston, MA 02111-1307, USA. |
26 | 26 | ||
27 | */ | 27 | */ |
28 | 28 | ||
29 | #ifndef APPEARANCESETTINGS_H | 29 | #ifndef APPEARANCESETTINGS_H |
30 | #define APPEARANCESETTINGS_H | 30 | #define APPEARANCESETTINGS_H |
31 | 31 | ||
32 | #include <opie2/ofontselector.h> | 32 | #include <opie2/ofontselector.h> |
33 | 33 | ||
34 | #include <qpe/fontdatabase.h> | 34 | #include <qpe/fontdatabase.h> |
35 | 35 | ||
36 | #include <qdialog.h> | 36 | #include <qdialog.h> |
37 | 37 | ||
38 | using Opie::Ui::OFontSelector; | 38 | using Opie::Ui::OFontSelector; |
39 | 39 | ||
40 | class QCheckBox; | 40 | class QCheckBox; |
41 | class QComboBox; | 41 | class QComboBox; |
42 | class QLabel; | 42 | class QLabel; |
43 | class QLineEdit; | 43 | class QLineEdit; |
44 | class QListBox; | 44 | class QListBox; |
45 | class QMultiLineEdit; | 45 | class QMultiLineEdit; |
46 | class QPushButton; | 46 | class QPushButton; |
47 | class QRadioButton; | 47 | class QRadioButton; |
48 | class QToolButton; | 48 | class QToolButton; |
49 | class SampleWindow; | 49 | class SampleWindow; |
50 | namespace Opie {namespace Ui {class OFontSelector;}} | 50 | namespace Opie {namespace Ui {class OFontSelector;}} |
51 | class QListView; | 51 | class QListView; |
52 | class QListViewItem; | 52 | class QListViewItem; |
53 | class Config; | 53 | class Config; |
54 | 54 | ||
55 | class Appearance : public QDialog | 55 | class Appearance : public QDialog |
56 | { | 56 | { |
57 | Q_OBJECT | 57 | Q_OBJECT |
58 | 58 | ||
59 | public: | 59 | public: |
60 | Appearance( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); | 60 | Appearance( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); |
61 | ~Appearance(); | 61 | ~Appearance(); |
62 | static QString appName() { return QString::fromLatin1("appearance"); } | 62 | static QString appName() { return QString::fromLatin1("appearance"); } |
63 | 63 | ||
64 | protected: | 64 | protected: |
65 | virtual void accept ( ); | 65 | virtual void accept ( ); |
66 | virtual void done ( int r ); | 66 | virtual void done ( int r ); |
67 | 67 | ||
68 | protected slots: | 68 | protected slots: |
69 | void styleClicked ( int ); | 69 | void styleClicked ( int ); |
70 | void styleSettingsClicked ( ); | 70 | void styleSettingsClicked ( ); |
71 | void decoClicked ( int ); | 71 | void decoClicked ( int ); |
72 | void fontClicked ( const QFont & ); | 72 | void fontClicked ( const QFont & ); |
73 | void colorClicked ( int ); | 73 | void colorClicked ( int ); |
74 | 74 | ||
75 | void editSchemeClicked(); | 75 | void editSchemeClicked(); |
76 | void saveSchemeClicked(); | 76 | void saveSchemeClicked(); |
77 | void deleteSchemeClicked(); | 77 | void deleteSchemeClicked(); |
78 | 78 | ||
79 | void tabChanged ( QWidget * ); | 79 | void tabChanged ( QWidget * ); |
80 | 80 | ||
81 | void addExcept ( ); | ||
82 | void delExcept ( ); | ||
83 | void upExcept ( ); | ||
84 | void downExcept ( ); | ||
85 | void clickedExcept ( QListViewItem *, const QPoint &, int ); | ||
86 | |||
87 | private: | 81 | private: |
88 | void changeText(); | 82 | void changeText(); |
89 | 83 | ||
90 | QWidget *createStyleTab ( QWidget *parent, Config &cfg ); | 84 | QWidget *createStyleTab ( QWidget *parent, Config &cfg ); |
91 | QWidget *createDecoTab ( QWidget *parent, Config &cfg ); | 85 | QWidget *createDecoTab ( QWidget *parent, Config &cfg ); |
92 | QWidget *createFontTab ( QWidget *parent, Config &cfg ); | 86 | QWidget *createFontTab ( QWidget *parent, Config &cfg ); |
93 | QWidget *createColorTab ( QWidget *parent, Config &cfg ); | 87 | QWidget *createColorTab ( QWidget *parent, Config &cfg ); |
94 | QWidget *createAdvancedTab ( QWidget *parent, Config &cfg ); | 88 | QWidget *createAdvancedTab ( QWidget *parent, Config &cfg ); |
95 | 89 | ||
96 | private: | 90 | private: |
97 | bool m_style_changed; | 91 | bool m_style_changed; |
98 | bool m_font_changed; | 92 | bool m_font_changed; |
99 | bool m_scheme_changed; | 93 | bool m_scheme_changed; |
100 | bool m_deco_changed; | 94 | bool m_deco_changed; |
101 | bool m_color_changed; | 95 | bool m_color_changed; |
102 | 96 | ||
103 | int m_original_style; | 97 | int m_original_style; |
104 | int m_original_deco; | 98 | int m_original_deco; |
105 | int m_original_tabstyle; | 99 | int m_original_tabstyle; |
106 | bool m_original_tabpos; | 100 | bool m_original_tabpos; |
107 | 101 | ||
108 | QListBox * m_style_list; | 102 | QListBox * m_style_list; |
109 | QPushButton * m_style_settings; | 103 | QPushButton * m_style_settings; |
110 | 104 | ||
111 | QListBox * m_deco_list; | 105 | QListBox * m_deco_list; |
112 | 106 | ||
113 | QListBox * m_color_list; | 107 | QListBox * m_color_list; |
114 | 108 | ||
115 | Opie::Ui::OFontSelector *m_fontselect; | 109 | Opie::Ui::OFontSelector *m_fontselect; |
116 | 110 | ||
117 | SampleWindow *m_sample; | 111 | SampleWindow *m_sample; |
118 | 112 | ||
119 | QComboBox * m_tabstyle_list; | 113 | QComboBox * m_tabstyle_list; |
120 | QRadioButton *m_tabstyle_top; | 114 | QRadioButton *m_tabstyle_top; |
121 | QRadioButton *m_tabstyle_bottom; | 115 | QRadioButton *m_tabstyle_bottom; |
122 | 116 | ||
123 | QRadioButton *m_rotdir_cw; | 117 | QRadioButton *m_rotdir_cw; |
124 | QRadioButton *m_rotdir_ccw; | 118 | QRadioButton *m_rotdir_ccw; |
125 | QRadioButton *m_rotdir_flip; | 119 | QRadioButton *m_rotdir_flip; |
126 | 120 | ||
127 | QWidget * m_advtab; | 121 | QWidget * m_advtab; |
128 | QListView * m_except; | ||
129 | QCheckBox * m_force; | ||
130 | }; | 122 | }; |
131 | 123 | ||
132 | #endif | 124 | #endif |