summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--configs/linux-sharp-g++-shared2
-rw-r--r--configs/linux-sharp-g++-shared-debug2
-rw-r--r--configs/linux-sharp-g++-static2
-rw-r--r--configs/linux-sharp-g++-static-debug2
-rw-r--r--core/apps/embeddedkonsole/TEWidget.cpp2
-rw-r--r--core/launcher/desktop.cpp2
-rw-r--r--core/launcher/main.cpp2
-rw-r--r--core/launcher/shutdownimpl.cpp2
-rw-r--r--core/launcher/taskbar.cpp4
-rw-r--r--core/multimedia/opieplayer/loopcontrol_threaded.cpp2
-rw-r--r--library/alarmserver.cpp2
-rw-r--r--library/power.cpp4
-rw-r--r--library/storage.cpp2
-rw-r--r--qt/qte233-for-opie091-keyboard.patch4
14 files changed, 17 insertions, 17 deletions
diff --git a/configs/linux-sharp-g++-shared b/configs/linux-sharp-g++-shared
index 9c1dd03..862ee34 100644
--- a/configs/linux-sharp-g++-shared
+++ b/configs/linux-sharp-g++-shared
@@ -1,94 +1,94 @@
1# Compiling 1# Compiling
2 INTERFACE_DECL_PATH = . 2 INTERFACE_DECL_PATH = .
3 SYSCONF_CXX = arm-linux-g++ 3 SYSCONF_CXX = arm-linux-g++
4 SYSCONF_CC = arm-linux-gcc 4 SYSCONF_CC = arm-linux-gcc
5 DASHCROSS = -arm 5 DASHCROSS = -arm
6 6
7# Compiling with support libraries 7# Compiling with support libraries
8 SYSCONF_CXXFLAGS_X11= 8 SYSCONF_CXXFLAGS_X11=
9 SYSCONF_CXXFLAGS_QT= -I$(QTDIR)/include 9 SYSCONF_CXXFLAGS_QT= -I$(QTDIR)/include
10 SYSCONF_CXXFLAGS_OPENGL= -I/usr/X11R6/include 10 SYSCONF_CXXFLAGS_OPENGL= -I/usr/X11R6/include
11 11
12# Compiling YACC output 12# Compiling YACC output
13SYSCONF_CXXFLAGS_YACC = -Wno-unused -Wno-parentheses 13SYSCONF_CXXFLAGS_YACC = -Wno-unused -Wno-parentheses
14 14
15# Linking with support libraries 15# Linking with support libraries
16 SYSCONF_RPATH_X11= 16 SYSCONF_RPATH_X11=
17 SYSCONF_RPATH_QT= -Wl,-rpath,$(QTDIR)/lib 17 SYSCONF_RPATH_QT= -Wl,-rpath,$(QTDIR)/lib
18 SYSCONF_RPATH_OPENGL= -Wl,-rpath,/usr/X11R6/lib 18 SYSCONF_RPATH_OPENGL= -Wl,-rpath,/usr/X11R6/lib
19 19
20# Linking with support libraries 20# Linking with support libraries
21# X11 21# X11
22 SYSCONF_LFLAGS_X11= 22 SYSCONF_LFLAGS_X11=
23 SYSCONF_LIBS_X11= 23 SYSCONF_LIBS_X11=
24# Qt, Qt+OpenGL 24# Qt, Qt+OpenGL
25 SYSCONF_LFLAGS_QT= -L$(QTDIR)/lib 25 SYSCONF_LFLAGS_QT= -L$(QTDIR)/lib
26 SYSCONF_LIBS_QT = -lqte$(QT_THREAD_SUFFIX) 26 SYSCONF_LIBS_QT = -lqte$(QT_THREAD_SUFFIX)
27 SYSCONF_LIBS_QT_OPENGL= 27 SYSCONF_LIBS_QT_OPENGL=
28# OpenGL 28# OpenGL
29 SYSCONF_LFLAGS_OPENGL= -L/usr/X11R6/lib 29 SYSCONF_LFLAGS_OPENGL= -L/usr/X11R6/lib
30 SYSCONF_LIBS_OPENGL= 30 SYSCONF_LIBS_OPENGL=
31# Yacc 31# Yacc
32 SYSCONF_LIBS_YACC= 32 SYSCONF_LIBS_YACC=
33 33
34# Linking applications 34# Linking applications
35 SYSCONF_LINK = arm-linux-gcc 35 SYSCONF_LINK = arm-linux-gcc
36 SYSCONF_LFLAGS = 36 SYSCONF_LFLAGS =
37 SYSCONF_LIBS = 37 SYSCONF_LIBS =
38 38
39# Link flags for shared objects 39# Link flags for shared objects
40 SYSCONF_LFLAGS_SHOBJ= -shared 40 SYSCONF_LFLAGS_SHOBJ= -shared
41 41
42# Flags for threading 42# Flags for threading
43 SYSCONF_CFLAGS_THREAD= -D_REENTRANT 43 SYSCONF_CFLAGS_THREAD= -D_REENTRANT
44 SYSCONF_CXXFLAGS_THREAD= -D_REENTRANT 44 SYSCONF_CXXFLAGS_THREAD= -D_REENTRANT
45 SYSCONF_LFLAGS_THREAD= 45 SYSCONF_LFLAGS_THREAD=
46 SYSCONF_LIBS_THREAD= -lpthread 46 SYSCONF_LIBS_THREAD= -lpthread
47 47
48# Meta-object compiler 48# Meta-object compiler
49 SYSCONF_MOC = $(QTDIR)/bin/moc 49 SYSCONF_MOC = $(QTDIR)/bin/moc
50 50
51# UI compiler 51# UI compiler
52 SYSCONF_UIC = $(QTDIR)/bin/uic 52 SYSCONF_UIC = $(QTDIR)/bin/uic
53 53
54# Linking shared libraries 54# Linking shared libraries
55# - Build the $(TARGET) library, eg. lib$(TARGET).so.2.2.2 55# - Build the $(TARGET) library, eg. lib$(TARGET).so.2.2.2
56# - Place target in $(DESTDIR) - which has a trailing / 56# - Place target in $(DESTDIR) - which has a trailing /
57# - Usually needs to incorporate $(VER_MAJ), $(VER_MIN) and $(VER_PATCH) 57# - Usually needs to incorporate $(VER_MAJ), $(VER_MIN) and $(VER_PATCH)
58# 58#
59 SYSCONF_LINK_SHLIB= arm-linux-gcc 59 SYSCONF_LINK_SHLIB= arm-linux-gcc
60 SYSCONF_LINK_TARGET_SHARED= lib$(TARGET).so.$(VER_MAJ).$(VER_MIN).$(VER_PATCH) 60 SYSCONF_LINK_TARGET_SHARED= lib$(TARGET).so.$(VER_MAJ).$(VER_MIN).$(VER_PATCH)
61 SYSCONF_LINK_LIB_SHARED= $(SYSCONF_LINK_SHLIB) -shared -Wl,-soname,lib$(TARGET).so.$(VER_MAJ) \ 61 SYSCONF_LINK_LIB_SHARED= $(SYSCONF_LINK_SHLIB) -shared -Wl,-soname,lib$(TARGET).so.$(VER_MAJ) \
62 $(LFLAGS) -o $(SYSCONF_LINK_TARGET_SHARED) \ 62 $(LFLAGS) -o $(SYSCONF_LINK_TARGET_SHARED) \
63 $(OBJECTS) $(OBJMOC) $(LIBS) && \ 63 $(OBJECTS) $(OBJMOC) $(LIBS) && \
64 mv $(SYSCONF_LINK_TARGET_SHARED) $(DESTDIR); \ 64 mv $(SYSCONF_LINK_TARGET_SHARED) $(DESTDIR); \
65 cd $(DESTDIR) && \ 65 cd $(DESTDIR) && \
66 rm -f lib$(TARGET).so lib$(TARGET).so.$(VER_MAJ) lib$(TARGET).so.$(VER_MAJ).$(VER_MIN); \ 66 rm -f lib$(TARGET).so lib$(TARGET).so.$(VER_MAJ) lib$(TARGET).so.$(VER_MAJ).$(VER_MIN); \
67 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so; \ 67 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so; \
68 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so.$(VER_MAJ); \ 68 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so.$(VER_MAJ); \
69 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so.$(VER_MAJ).$(VER_MIN) 69 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so.$(VER_MAJ).$(VER_MIN)
70 70
71# Linking static libraries 71# Linking static libraries
72# - Build the $(TARGET) library, eg. lib$(TARGET).a 72# - Build the $(TARGET) library, eg. lib$(TARGET).a
73# - Place target in $(DESTDIR) - which has a trailing / 73# - Place target in $(DESTDIR) - which has a trailing /
74# 74#
75 SYSCONF_AR = arm-linux-ar cqs 75 SYSCONF_AR = arm-linux-ar cqs
76SYSCONF_LINK_TARGET_STATIC = lib$(TARGET).a 76SYSCONF_LINK_TARGET_STATIC = lib$(TARGET).a
77 SYSCONF_LINK_LIB_STATIC= rm -f $(DESTDIR)$(SYSCONF_LINK_TARGET_STATIC) ; \ 77 SYSCONF_LINK_LIB_STATIC= rm -f $(DESTDIR)$(SYSCONF_LINK_TARGET_STATIC) ; \
78 $(SYSCONF_AR) $(DESTDIR)$(SYSCONF_LINK_TARGET_STATIC) $(OBJECTS) $(OBJMOC) 78 $(SYSCONF_AR) $(DESTDIR)$(SYSCONF_LINK_TARGET_STATIC) $(OBJECTS) $(OBJMOC)
79# Compiling application source 79# Compiling application source
80 SYSCONF_CXXFLAGS= -pipe -DQT_QWS_EBX -DQT_QWS_CUSTOM -DQWS -fno-exceptions -fno-rtti -O2 -Wall -W 80 SYSCONF_CXXFLAGS= -pipe -DQT_QWS_EBX -DQT_QWS_SHARP -DQWS -fno-exceptions -fno-rtti -O2 -Wall -W
81 SYSCONF_CFLAGS = -pipe -O2 -Wall -W 81 SYSCONF_CFLAGS = -pipe -O2 -Wall -W
82# Default link type (static linking is still be used where required) 82# Default link type (static linking is still be used where required)
83 SYSCONF_LINK_LIB= $(SYSCONF_LINK_LIB_SHARED) 83 SYSCONF_LINK_LIB= $(SYSCONF_LINK_LIB_SHARED)
84 SYSCONF_LINK_TARGET= $(SYSCONF_LINK_TARGET_SHARED) 84 SYSCONF_LINK_TARGET= $(SYSCONF_LINK_TARGET_SHARED)
85# Compiling library source 85# Compiling library source
86 SYSCONF_CXXFLAGS_LIB= -fPIC 86 SYSCONF_CXXFLAGS_LIB= -fPIC
87 SYSCONF_CFLAGS_LIB= -fPIC 87 SYSCONF_CFLAGS_LIB= -fPIC
88# Compiling shared-object source 88# Compiling shared-object source
89 SYSCONF_CXXFLAGS_SHOBJ= -fPIC 89 SYSCONF_CXXFLAGS_SHOBJ= -fPIC
90 SYSCONF_CFLAGS_SHOBJ= -fPIC 90 SYSCONF_CFLAGS_SHOBJ= -fPIC
91# Linking Qt 91# Linking Qt
92 SYSCONF_LIBS_QTLIB= $(SYSCONF_LFLAGS_X11) $(QT_LIBS_MT) $(QT_LIBS_OPT) 92 SYSCONF_LIBS_QTLIB= $(SYSCONF_LFLAGS_X11) $(QT_LIBS_MT) $(QT_LIBS_OPT)
93# Linking Qt applications 93# Linking Qt applications
94 SYSCONF_LIBS_QTAPP= 94 SYSCONF_LIBS_QTAPP=
diff --git a/configs/linux-sharp-g++-shared-debug b/configs/linux-sharp-g++-shared-debug
index 810eef5..5e7819c 100644
--- a/configs/linux-sharp-g++-shared-debug
+++ b/configs/linux-sharp-g++-shared-debug
@@ -1,94 +1,94 @@
1# Compiling 1# Compiling
2 INTERFACE_DECL_PATH = . 2 INTERFACE_DECL_PATH = .
3 SYSCONF_CXX = arm-linux-g++ 3 SYSCONF_CXX = arm-linux-g++
4 SYSCONF_CC = arm-linux-gcc 4 SYSCONF_CC = arm-linux-gcc
5 DASHCROSS = -arm 5 DASHCROSS = -arm
6 6
7# Compiling with support libraries 7# Compiling with support libraries
8 SYSCONF_CXXFLAGS_X11= 8 SYSCONF_CXXFLAGS_X11=
9 SYSCONF_CXXFLAGS_QT= -I$(QTDIR)/include 9 SYSCONF_CXXFLAGS_QT= -I$(QTDIR)/include
10 SYSCONF_CXXFLAGS_OPENGL= -I/usr/X11R6/include 10 SYSCONF_CXXFLAGS_OPENGL= -I/usr/X11R6/include
11 11
12# Compiling YACC output 12# Compiling YACC output
13SYSCONF_CXXFLAGS_YACC = -Wno-unused -Wno-parentheses 13SYSCONF_CXXFLAGS_YACC = -Wno-unused -Wno-parentheses
14 14
15# Linking with support libraries 15# Linking with support libraries
16 SYSCONF_RPATH_X11= 16 SYSCONF_RPATH_X11=
17 SYSCONF_RPATH_QT= -Wl,-rpath,$(QTDIR)/lib 17 SYSCONF_RPATH_QT= -Wl,-rpath,$(QTDIR)/lib
18 SYSCONF_RPATH_OPENGL= -Wl,-rpath,/usr/X11R6/lib 18 SYSCONF_RPATH_OPENGL= -Wl,-rpath,/usr/X11R6/lib
19 19
20# Linking with support libraries 20# Linking with support libraries
21# X11 21# X11
22 SYSCONF_LFLAGS_X11= 22 SYSCONF_LFLAGS_X11=
23 SYSCONF_LIBS_X11= 23 SYSCONF_LIBS_X11=
24# Qt, Qt+OpenGL 24# Qt, Qt+OpenGL
25 SYSCONF_LFLAGS_QT= -L$(QTDIR)/lib 25 SYSCONF_LFLAGS_QT= -L$(QTDIR)/lib
26 SYSCONF_LIBS_QT = -lqte$(QT_THREAD_SUFFIX) 26 SYSCONF_LIBS_QT = -lqte$(QT_THREAD_SUFFIX)
27 SYSCONF_LIBS_QT_OPENGL= 27 SYSCONF_LIBS_QT_OPENGL=
28# OpenGL 28# OpenGL
29 SYSCONF_LFLAGS_OPENGL= -L/usr/X11R6/lib 29 SYSCONF_LFLAGS_OPENGL= -L/usr/X11R6/lib
30 SYSCONF_LIBS_OPENGL= 30 SYSCONF_LIBS_OPENGL=
31# Yacc 31# Yacc
32 SYSCONF_LIBS_YACC= 32 SYSCONF_LIBS_YACC=
33 33
34# Linking applications 34# Linking applications
35 SYSCONF_LINK = arm-linux-gcc 35 SYSCONF_LINK = arm-linux-gcc
36 SYSCONF_LFLAGS = 36 SYSCONF_LFLAGS =
37 SYSCONF_LIBS = 37 SYSCONF_LIBS =
38 38
39# Link flags for shared objects 39# Link flags for shared objects
40 SYSCONF_LFLAGS_SHOBJ= -shared 40 SYSCONF_LFLAGS_SHOBJ= -shared
41 41
42# Flags for threading 42# Flags for threading
43 SYSCONF_CFLAGS_THREAD= -D_REENTRANT 43 SYSCONF_CFLAGS_THREAD= -D_REENTRANT
44 SYSCONF_CXXFLAGS_THREAD= -D_REENTRANT 44 SYSCONF_CXXFLAGS_THREAD= -D_REENTRANT
45 SYSCONF_LFLAGS_THREAD= 45 SYSCONF_LFLAGS_THREAD=
46 SYSCONF_LIBS_THREAD= -lpthread 46 SYSCONF_LIBS_THREAD= -lpthread
47 47
48# Meta-object compiler 48# Meta-object compiler
49 SYSCONF_MOC = $(QTDIR)/bin/moc 49 SYSCONF_MOC = $(QTDIR)/bin/moc
50 50
51# UI compiler 51# UI compiler
52 SYSCONF_UIC = $(QTDIR)/bin/uic 52 SYSCONF_UIC = $(QTDIR)/bin/uic
53 53
54# Linking shared libraries 54# Linking shared libraries
55# - Build the $(TARGET) library, eg. lib$(TARGET).so.2.2.2 55# - Build the $(TARGET) library, eg. lib$(TARGET).so.2.2.2
56# - Place target in $(DESTDIR) - which has a trailing / 56# - Place target in $(DESTDIR) - which has a trailing /
57# - Usually needs to incorporate $(VER_MAJ), $(VER_MIN) and $(VER_PATCH) 57# - Usually needs to incorporate $(VER_MAJ), $(VER_MIN) and $(VER_PATCH)
58# 58#
59 SYSCONF_LINK_SHLIB= arm-linux-gcc 59 SYSCONF_LINK_SHLIB= arm-linux-gcc
60 SYSCONF_LINK_TARGET_SHARED= lib$(TARGET).so.$(VER_MAJ).$(VER_MIN).$(VER_PATCH) 60 SYSCONF_LINK_TARGET_SHARED= lib$(TARGET).so.$(VER_MAJ).$(VER_MIN).$(VER_PATCH)
61 SYSCONF_LINK_LIB_SHARED= $(SYSCONF_LINK_SHLIB) -shared -Wl,-soname,lib$(TARGET).so.$(VER_MAJ) \ 61 SYSCONF_LINK_LIB_SHARED= $(SYSCONF_LINK_SHLIB) -shared -Wl,-soname,lib$(TARGET).so.$(VER_MAJ) \
62 $(LFLAGS) -o $(SYSCONF_LINK_TARGET_SHARED) \ 62 $(LFLAGS) -o $(SYSCONF_LINK_TARGET_SHARED) \
63 $(OBJECTS) $(OBJMOC) $(LIBS) && \ 63 $(OBJECTS) $(OBJMOC) $(LIBS) && \
64 mv $(SYSCONF_LINK_TARGET_SHARED) $(DESTDIR); \ 64 mv $(SYSCONF_LINK_TARGET_SHARED) $(DESTDIR); \
65 cd $(DESTDIR) && \ 65 cd $(DESTDIR) && \
66 rm -f lib$(TARGET).so lib$(TARGET).so.$(VER_MAJ) lib$(TARGET).so.$(VER_MAJ).$(VER_MIN); \ 66 rm -f lib$(TARGET).so lib$(TARGET).so.$(VER_MAJ) lib$(TARGET).so.$(VER_MAJ).$(VER_MIN); \
67 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so; \ 67 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so; \
68 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so.$(VER_MAJ); \ 68 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so.$(VER_MAJ); \
69 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so.$(VER_MAJ).$(VER_MIN) 69 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so.$(VER_MAJ).$(VER_MIN)
70 70
71# Linking static libraries 71# Linking static libraries
72# - Build the $(TARGET) library, eg. lib$(TARGET).a 72# - Build the $(TARGET) library, eg. lib$(TARGET).a
73# - Place target in $(DESTDIR) - which has a trailing / 73# - Place target in $(DESTDIR) - which has a trailing /
74# 74#
75 SYSCONF_AR = arm-linux-ar cqs 75 SYSCONF_AR = arm-linux-ar cqs
76SYSCONF_LINK_TARGET_STATIC = lib$(TARGET).a 76SYSCONF_LINK_TARGET_STATIC = lib$(TARGET).a
77 SYSCONF_LINK_LIB_STATIC= rm -f $(DESTDIR)$(SYSCONF_LINK_TARGET_STATIC) ; \ 77 SYSCONF_LINK_LIB_STATIC= rm -f $(DESTDIR)$(SYSCONF_LINK_TARGET_STATIC) ; \
78 $(SYSCONF_AR) $(DESTDIR)$(SYSCONF_LINK_TARGET_STATIC) $(OBJECTS) $(OBJMOC) 78 $(SYSCONF_AR) $(DESTDIR)$(SYSCONF_LINK_TARGET_STATIC) $(OBJECTS) $(OBJMOC)
79# Compiling application source 79# Compiling application source
80 SYSCONF_CXXFLAGS= -pipe -DQT_QWS_EBX -DQT_QWS_CUSTOM -DQWS -fno-exceptions -fno-rtti -g -Wall -W 80 SYSCONF_CXXFLAGS= -pipe -DQT_QWS_EBX -DQT_QWS_SHARP -DQWS -fno-exceptions -fno-rtti -g -Wall -W
81 SYSCONF_CFLAGS = -pipe -g -Wall -W 81 SYSCONF_CFLAGS = -pipe -g -Wall -W
82# Default link type (static linking is still be used where required) 82# Default link type (static linking is still be used where required)
83 SYSCONF_LINK_LIB= $(SYSCONF_LINK_LIB_SHARED) 83 SYSCONF_LINK_LIB= $(SYSCONF_LINK_LIB_SHARED)
84 SYSCONF_LINK_TARGET= $(SYSCONF_LINK_TARGET_SHARED) 84 SYSCONF_LINK_TARGET= $(SYSCONF_LINK_TARGET_SHARED)
85# Compiling library source 85# Compiling library source
86 SYSCONF_CXXFLAGS_LIB= -fPIC 86 SYSCONF_CXXFLAGS_LIB= -fPIC
87 SYSCONF_CFLAGS_LIB= -fPIC 87 SYSCONF_CFLAGS_LIB= -fPIC
88# Compiling shared-object source 88# Compiling shared-object source
89 SYSCONF_CXXFLAGS_SHOBJ= -fPIC 89 SYSCONF_CXXFLAGS_SHOBJ= -fPIC
90 SYSCONF_CFLAGS_SHOBJ= -fPIC 90 SYSCONF_CFLAGS_SHOBJ= -fPIC
91# Linking Qt 91# Linking Qt
92 SYSCONF_LIBS_QTLIB= $(SYSCONF_LFLAGS_X11) $(QT_LIBS_MT) $(QT_LIBS_OPT) 92 SYSCONF_LIBS_QTLIB= $(SYSCONF_LFLAGS_X11) $(QT_LIBS_MT) $(QT_LIBS_OPT)
93# Linking Qt applications 93# Linking Qt applications
94 SYSCONF_LIBS_QTAPP= 94 SYSCONF_LIBS_QTAPP=
diff --git a/configs/linux-sharp-g++-static b/configs/linux-sharp-g++-static
index 15e4c7f..22d3d04 100644
--- a/configs/linux-sharp-g++-static
+++ b/configs/linux-sharp-g++-static
@@ -1,93 +1,93 @@
1# Compiling 1# Compiling
2 INTERFACE_DECL_PATH = . 2 INTERFACE_DECL_PATH = .
3 SYSCONF_CXX = arm-linux-g++ 3 SYSCONF_CXX = arm-linux-g++
4 SYSCONF_CC = arm-linux-gcc 4 SYSCONF_CC = arm-linux-gcc
5 DASHCROSS = -arm 5 DASHCROSS = -arm
6 6
7# Compiling with support libraries 7# Compiling with support libraries
8 SYSCONF_CXXFLAGS_X11= 8 SYSCONF_CXXFLAGS_X11=
9 SYSCONF_CXXFLAGS_QT= -I$(QTDIR)/include 9 SYSCONF_CXXFLAGS_QT= -I$(QTDIR)/include
10 SYSCONF_CXXFLAGS_OPENGL= -I/usr/X11R6/include 10 SYSCONF_CXXFLAGS_OPENGL= -I/usr/X11R6/include
11 11
12# Compiling YACC output 12# Compiling YACC output
13SYSCONF_CXXFLAGS_YACC = -Wno-unused -Wno-parentheses 13SYSCONF_CXXFLAGS_YACC = -Wno-unused -Wno-parentheses
14 14
15# Linking with support libraries 15# Linking with support libraries
16 SYSCONF_RPATH_X11= 16 SYSCONF_RPATH_X11=
17 SYSCONF_RPATH_QT= -Wl,-rpath,$(QTDIR)/lib 17 SYSCONF_RPATH_QT= -Wl,-rpath,$(QTDIR)/lib
18 SYSCONF_RPATH_OPENGL= -Wl,-rpath,/usr/X11R6/lib 18 SYSCONF_RPATH_OPENGL= -Wl,-rpath,/usr/X11R6/lib
19 19
20# Linking with support libraries 20# Linking with support libraries
21# X11 21# X11
22 SYSCONF_LFLAGS_X11= 22 SYSCONF_LFLAGS_X11=
23 SYSCONF_LIBS_X11= 23 SYSCONF_LIBS_X11=
24# Qt, Qt+OpenGL 24# Qt, Qt+OpenGL
25 SYSCONF_LFLAGS_QT= -L$(QTDIR)/lib 25 SYSCONF_LFLAGS_QT= -L$(QTDIR)/lib
26 SYSCONF_LIBS_QT = -lqte$(QT_THREAD_SUFFIX) 26 SYSCONF_LIBS_QT = -lqte$(QT_THREAD_SUFFIX)
27 SYSCONF_LIBS_QT_OPENGL= 27 SYSCONF_LIBS_QT_OPENGL=
28# OpenGL 28# OpenGL
29 SYSCONF_LFLAGS_OPENGL= -L/usr/X11R6/lib 29 SYSCONF_LFLAGS_OPENGL= -L/usr/X11R6/lib
30 SYSCONF_LIBS_OPENGL= 30 SYSCONF_LIBS_OPENGL=
31# Yacc 31# Yacc
32 SYSCONF_LIBS_YACC= 32 SYSCONF_LIBS_YACC=
33 33
34# Linking applications 34# Linking applications
35 SYSCONF_LINK = arm-linux-gcc 35 SYSCONF_LINK = arm-linux-gcc
36 SYSCONF_LFLAGS = 36 SYSCONF_LFLAGS =
37 SYSCONF_LIBS = 37 SYSCONF_LIBS =
38 38
39# Link flags for shared objects 39# Link flags for shared objects
40 SYSCONF_LFLAGS_SHOBJ= -shared 40 SYSCONF_LFLAGS_SHOBJ= -shared
41 41
42# Flags for threading 42# Flags for threading
43 SYSCONF_CFLAGS_THREAD= -D_REENTRANT 43 SYSCONF_CFLAGS_THREAD= -D_REENTRANT
44 SYSCONF_CXXFLAGS_THREAD= -D_REENTRANT 44 SYSCONF_CXXFLAGS_THREAD= -D_REENTRANT
45 SYSCONF_LFLAGS_THREAD= 45 SYSCONF_LFLAGS_THREAD=
46 SYSCONF_LIBS_THREAD= -lpthread 46 SYSCONF_LIBS_THREAD= -lpthread
47 47
48# Meta-object compiler 48# Meta-object compiler
49 SYSCONF_MOC = $(QTDIR)/bin/moc 49 SYSCONF_MOC = $(QTDIR)/bin/moc
50 50
51# UI compiler 51# UI compiler
52 SYSCONF_UIC = $(QTDIR)/bin/uic 52 SYSCONF_UIC = $(QTDIR)/bin/uic
53 53
54# Linking shared libraries 54# Linking shared libraries
55# - Build the $(TARGET) library, eg. lib$(TARGET).so.2.2.2 55# - Build the $(TARGET) library, eg. lib$(TARGET).so.2.2.2
56# - Place target in $(DESTDIR) - which has a trailing / 56# - Place target in $(DESTDIR) - which has a trailing /
57# - Usually needs to incorporate $(VER_MAJ), $(VER_MIN) and $(VER_PATCH) 57# - Usually needs to incorporate $(VER_MAJ), $(VER_MIN) and $(VER_PATCH)
58# 58#
59 SYSCONF_LINK_SHLIB= arm-linux-gcc 59 SYSCONF_LINK_SHLIB= arm-linux-gcc
60 SYSCONF_LINK_TARGET_SHARED= lib$(TARGET).so.$(VER_MAJ).$(VER_MIN).$(VER_PATCH) 60 SYSCONF_LINK_TARGET_SHARED= lib$(TARGET).so.$(VER_MAJ).$(VER_MIN).$(VER_PATCH)
61 SYSCONF_LINK_LIB_SHARED= $(SYSCONF_LINK_SHLIB) -shared -Wl,-soname,lib$(TARGET).so.$(VER_MAJ) \ 61 SYSCONF_LINK_LIB_SHARED= $(SYSCONF_LINK_SHLIB) -shared -Wl,-soname,lib$(TARGET).so.$(VER_MAJ) \
62 $(LFLAGS) -o $(SYSCONF_LINK_TARGET_SHARED) \ 62 $(LFLAGS) -o $(SYSCONF_LINK_TARGET_SHARED) \
63 $(OBJECTS) $(OBJMOC) $(LIBS) && \ 63 $(OBJECTS) $(OBJMOC) $(LIBS) && \
64 mv $(SYSCONF_LINK_TARGET_SHARED) $(DESTDIR); \ 64 mv $(SYSCONF_LINK_TARGET_SHARED) $(DESTDIR); \
65 cd $(DESTDIR) && \ 65 cd $(DESTDIR) && \
66 rm -f lib$(TARGET).so lib$(TARGET).so.$(VER_MAJ) lib$(TARGET).so.$(VER_MAJ).$(VER_MIN); \ 66 rm -f lib$(TARGET).so lib$(TARGET).so.$(VER_MAJ) lib$(TARGET).so.$(VER_MAJ).$(VER_MIN); \
67 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so; \ 67 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so; \
68 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so.$(VER_MAJ); \ 68 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so.$(VER_MAJ); \
69 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so.$(VER_MAJ).$(VER_MIN) 69 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so.$(VER_MAJ).$(VER_MIN)
70 70
71# Linking static libraries 71# Linking static libraries
72# - Build the $(TARGET) library, eg. lib$(TARGET).a 72# - Build the $(TARGET) library, eg. lib$(TARGET).a
73# - Place target in $(DESTDIR) - which has a trailing / 73# - Place target in $(DESTDIR) - which has a trailing /
74# 74#
75 SYSCONF_AR = arm-linux-ar cqs 75 SYSCONF_AR = arm-linux-ar cqs
76SYSCONF_LINK_TARGET_STATIC = lib$(TARGET).a 76SYSCONF_LINK_TARGET_STATIC = lib$(TARGET).a
77 SYSCONF_LINK_LIB_STATIC= rm -f $(DESTDIR)$(SYSCONF_LINK_TARGET_STATIC) ; \ 77 SYSCONF_LINK_LIB_STATIC= rm -f $(DESTDIR)$(SYSCONF_LINK_TARGET_STATIC) ; \
78 $(SYSCONF_AR) $(DESTDIR)$(SYSCONF_LINK_TARGET_STATIC) $(OBJECTS) $(OBJMOC) 78 $(SYSCONF_AR) $(DESTDIR)$(SYSCONF_LINK_TARGET_STATIC) $(OBJECTS) $(OBJMOC)
79# Compiling application source 79# Compiling application source
80 SYSCONF_CXXFLAGS= -pipe -DQT_QWS_EBX -DQT_QWS_CUSTOM -DQWS -fno-exceptions -fno-rtti -O2 -Wall -W 80 SYSCONF_CXXFLAGS= -pipe -DQT_QWS_EBX -DQT_QWS_SHARP -DQWS -fno-exceptions -fno-rtti -O2 -Wall -W
81 SYSCONF_CFLAGS = -pipe -O2 -Wall -W 81 SYSCONF_CFLAGS = -pipe -O2 -Wall -W
82 SYSCONF_LINK_LIB= $(SYSCONF_LINK_LIB_STATIC) 82 SYSCONF_LINK_LIB= $(SYSCONF_LINK_LIB_STATIC)
83 SYSCONF_LINK_TARGET= $(SYSCONF_LINK_TARGET_STATIC) 83 SYSCONF_LINK_TARGET= $(SYSCONF_LINK_TARGET_STATIC)
84# Compiling library source 84# Compiling library source
85 SYSCONF_CXXFLAGS_LIB= 85 SYSCONF_CXXFLAGS_LIB=
86 SYSCONF_CFLAGS_LIB= 86 SYSCONF_CFLAGS_LIB=
87# Compiling shared-object source 87# Compiling shared-object source
88 SYSCONF_CXXFLAGS_SHOBJ= -fPIC 88 SYSCONF_CXXFLAGS_SHOBJ= -fPIC
89 SYSCONF_CFLAGS_SHOBJ= -fPIC 89 SYSCONF_CFLAGS_SHOBJ= -fPIC
90# Linking Qt 90# Linking Qt
91 SYSCONF_LIBS_QTLIB= $(SYSCONF_CXXFLAGS_X11) $(QT_LIBS_MT) $(QT_LIBS_OPT) 91 SYSCONF_LIBS_QTLIB= $(SYSCONF_CXXFLAGS_X11) $(QT_LIBS_MT) $(QT_LIBS_OPT)
92# Linking Qt applications 92# Linking Qt applications
93 SYSCONF_LIBS_QTAPP= $(SYSCONF_LFLAGS_X11) $(SYSCONF_CXXFLAGS_X11) $(QT_LIBS_MT) $(QT_LIBS_OPT) $(SYSCONF_LIBS_X11) 93 SYSCONF_LIBS_QTAPP= $(SYSCONF_LFLAGS_X11) $(SYSCONF_CXXFLAGS_X11) $(QT_LIBS_MT) $(QT_LIBS_OPT) $(SYSCONF_LIBS_X11)
diff --git a/configs/linux-sharp-g++-static-debug b/configs/linux-sharp-g++-static-debug
index d7715ed..9c1afd3 100644
--- a/configs/linux-sharp-g++-static-debug
+++ b/configs/linux-sharp-g++-static-debug
@@ -1,93 +1,93 @@
1# Compiling 1# Compiling
2 INTERFACE_DECL_PATH = . 2 INTERFACE_DECL_PATH = .
3 SYSCONF_CXX = arm-linux-g++ 3 SYSCONF_CXX = arm-linux-g++
4 SYSCONF_CC = arm-linux-gcc 4 SYSCONF_CC = arm-linux-gcc
5 DASHCROSS = -arm 5 DASHCROSS = -arm
6 6
7# Compiling with support libraries 7# Compiling with support libraries
8 SYSCONF_CXXFLAGS_X11= 8 SYSCONF_CXXFLAGS_X11=
9 SYSCONF_CXXFLAGS_QT= -I$(QTDIR)/include 9 SYSCONF_CXXFLAGS_QT= -I$(QTDIR)/include
10 SYSCONF_CXXFLAGS_OPENGL= -I/usr/X11R6/include 10 SYSCONF_CXXFLAGS_OPENGL= -I/usr/X11R6/include
11 11
12# Compiling YACC output 12# Compiling YACC output
13SYSCONF_CXXFLAGS_YACC = -Wno-unused -Wno-parentheses 13SYSCONF_CXXFLAGS_YACC = -Wno-unused -Wno-parentheses
14 14
15# Linking with support libraries 15# Linking with support libraries
16 SYSCONF_RPATH_X11= 16 SYSCONF_RPATH_X11=
17 SYSCONF_RPATH_QT= -Wl,-rpath,$(QTDIR)/lib 17 SYSCONF_RPATH_QT= -Wl,-rpath,$(QTDIR)/lib
18 SYSCONF_RPATH_OPENGL= -Wl,-rpath,/usr/X11R6/lib 18 SYSCONF_RPATH_OPENGL= -Wl,-rpath,/usr/X11R6/lib
19 19
20# Linking with support libraries 20# Linking with support libraries
21# X11 21# X11
22 SYSCONF_LFLAGS_X11= 22 SYSCONF_LFLAGS_X11=
23 SYSCONF_LIBS_X11= 23 SYSCONF_LIBS_X11=
24# Qt, Qt+OpenGL 24# Qt, Qt+OpenGL
25 SYSCONF_LFLAGS_QT= -L$(QTDIR)/lib 25 SYSCONF_LFLAGS_QT= -L$(QTDIR)/lib
26 SYSCONF_LIBS_QT = -lqte$(QT_THREAD_SUFFIX) 26 SYSCONF_LIBS_QT = -lqte$(QT_THREAD_SUFFIX)
27 SYSCONF_LIBS_QT_OPENGL= 27 SYSCONF_LIBS_QT_OPENGL=
28# OpenGL 28# OpenGL
29 SYSCONF_LFLAGS_OPENGL= -L/usr/X11R6/lib 29 SYSCONF_LFLAGS_OPENGL= -L/usr/X11R6/lib
30 SYSCONF_LIBS_OPENGL= 30 SYSCONF_LIBS_OPENGL=
31# Yacc 31# Yacc
32 SYSCONF_LIBS_YACC= 32 SYSCONF_LIBS_YACC=
33 33
34# Linking applications 34# Linking applications
35 SYSCONF_LINK = arm-linux-gcc 35 SYSCONF_LINK = arm-linux-gcc
36 SYSCONF_LFLAGS = 36 SYSCONF_LFLAGS =
37 SYSCONF_LIBS = 37 SYSCONF_LIBS =
38 38
39# Link flags for shared objects 39# Link flags for shared objects
40 SYSCONF_LFLAGS_SHOBJ= -shared 40 SYSCONF_LFLAGS_SHOBJ= -shared
41 41
42# Flags for threading 42# Flags for threading
43 SYSCONF_CFLAGS_THREAD= -D_REENTRANT 43 SYSCONF_CFLAGS_THREAD= -D_REENTRANT
44 SYSCONF_CXXFLAGS_THREAD= -D_REENTRANT 44 SYSCONF_CXXFLAGS_THREAD= -D_REENTRANT
45 SYSCONF_LFLAGS_THREAD= 45 SYSCONF_LFLAGS_THREAD=
46 SYSCONF_LIBS_THREAD= -lpthread 46 SYSCONF_LIBS_THREAD= -lpthread
47 47
48# Meta-object compiler 48# Meta-object compiler
49 SYSCONF_MOC = $(QTDIR)/bin/moc 49 SYSCONF_MOC = $(QTDIR)/bin/moc
50 50
51# UI compiler 51# UI compiler
52 SYSCONF_UIC = $(QTDIR)/bin/uic 52 SYSCONF_UIC = $(QTDIR)/bin/uic
53 53
54# Linking shared libraries 54# Linking shared libraries
55# - Build the $(TARGET) library, eg. lib$(TARGET).so.2.2.2 55# - Build the $(TARGET) library, eg. lib$(TARGET).so.2.2.2
56# - Place target in $(DESTDIR) - which has a trailing / 56# - Place target in $(DESTDIR) - which has a trailing /
57# - Usually needs to incorporate $(VER_MAJ), $(VER_MIN) and $(VER_PATCH) 57# - Usually needs to incorporate $(VER_MAJ), $(VER_MIN) and $(VER_PATCH)
58# 58#
59 SYSCONF_LINK_SHLIB= arm-linux-gcc 59 SYSCONF_LINK_SHLIB= arm-linux-gcc
60 SYSCONF_LINK_TARGET_SHARED= lib$(TARGET).so.$(VER_MAJ).$(VER_MIN).$(VER_PATCH) 60 SYSCONF_LINK_TARGET_SHARED= lib$(TARGET).so.$(VER_MAJ).$(VER_MIN).$(VER_PATCH)
61 SYSCONF_LINK_LIB_SHARED= $(SYSCONF_LINK_SHLIB) -shared -Wl,-soname,lib$(TARGET).so.$(VER_MAJ) \ 61 SYSCONF_LINK_LIB_SHARED= $(SYSCONF_LINK_SHLIB) -shared -Wl,-soname,lib$(TARGET).so.$(VER_MAJ) \
62 $(LFLAGS) -o $(SYSCONF_LINK_TARGET_SHARED) \ 62 $(LFLAGS) -o $(SYSCONF_LINK_TARGET_SHARED) \
63 $(OBJECTS) $(OBJMOC) $(LIBS) && \ 63 $(OBJECTS) $(OBJMOC) $(LIBS) && \
64 mv $(SYSCONF_LINK_TARGET_SHARED) $(DESTDIR); \ 64 mv $(SYSCONF_LINK_TARGET_SHARED) $(DESTDIR); \
65 cd $(DESTDIR) && \ 65 cd $(DESTDIR) && \
66 rm -f lib$(TARGET).so lib$(TARGET).so.$(VER_MAJ) lib$(TARGET).so.$(VER_MAJ).$(VER_MIN); \ 66 rm -f lib$(TARGET).so lib$(TARGET).so.$(VER_MAJ) lib$(TARGET).so.$(VER_MAJ).$(VER_MIN); \
67 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so; \ 67 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so; \
68 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so.$(VER_MAJ); \ 68 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so.$(VER_MAJ); \
69 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so.$(VER_MAJ).$(VER_MIN) 69 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so.$(VER_MAJ).$(VER_MIN)
70 70
71# Linking static libraries 71# Linking static libraries
72# - Build the $(TARGET) library, eg. lib$(TARGET).a 72# - Build the $(TARGET) library, eg. lib$(TARGET).a
73# - Place target in $(DESTDIR) - which has a trailing / 73# - Place target in $(DESTDIR) - which has a trailing /
74# 74#
75 SYSCONF_AR = arm-linux-ar cqs 75 SYSCONF_AR = arm-linux-ar cqs
76SYSCONF_LINK_TARGET_STATIC = lib$(TARGET).a 76SYSCONF_LINK_TARGET_STATIC = lib$(TARGET).a
77 SYSCONF_LINK_LIB_STATIC= rm -f $(DESTDIR)$(SYSCONF_LINK_TARGET_STATIC) ; \ 77 SYSCONF_LINK_LIB_STATIC= rm -f $(DESTDIR)$(SYSCONF_LINK_TARGET_STATIC) ; \
78 $(SYSCONF_AR) $(DESTDIR)$(SYSCONF_LINK_TARGET_STATIC) $(OBJECTS) $(OBJMOC) 78 $(SYSCONF_AR) $(DESTDIR)$(SYSCONF_LINK_TARGET_STATIC) $(OBJECTS) $(OBJMOC)
79# Compiling application source 79# Compiling application source
80 SYSCONF_CXXFLAGS= -pipe -DQT_QWS_EBX -DQT_QWS_CUSTOM -DQWS -fno-exceptions -fno-rtti -g -Wall -W 80 SYSCONF_CXXFLAGS= -pipe -DQT_QWS_EBX -DQT_QWS_SHARP -DQWS -fno-exceptions -fno-rtti -g -Wall -W
81 SYSCONF_CFLAGS = -pipe -g -Wall -W 81 SYSCONF_CFLAGS = -pipe -g -Wall -W
82 SYSCONF_LINK_LIB= $(SYSCONF_LINK_LIB_STATIC) 82 SYSCONF_LINK_LIB= $(SYSCONF_LINK_LIB_STATIC)
83 SYSCONF_LINK_TARGET= $(SYSCONF_LINK_TARGET_STATIC) 83 SYSCONF_LINK_TARGET= $(SYSCONF_LINK_TARGET_STATIC)
84# Compiling library source 84# Compiling library source
85 SYSCONF_CXXFLAGS_LIB= 85 SYSCONF_CXXFLAGS_LIB=
86 SYSCONF_CFLAGS_LIB= 86 SYSCONF_CFLAGS_LIB=
87# Compiling shared-object source 87# Compiling shared-object source
88 SYSCONF_CXXFLAGS_SHOBJ= -fPIC 88 SYSCONF_CXXFLAGS_SHOBJ= -fPIC
89 SYSCONF_CFLAGS_SHOBJ= -fPIC 89 SYSCONF_CFLAGS_SHOBJ= -fPIC
90# Linking Qt 90# Linking Qt
91 SYSCONF_LIBS_QTLIB= $(SYSCONF_CXXFLAGS_X11) $(QT_LIBS_MT) $(QT_LIBS_OPT) 91 SYSCONF_LIBS_QTLIB= $(SYSCONF_CXXFLAGS_X11) $(QT_LIBS_MT) $(QT_LIBS_OPT)
92# Linking Qt applications 92# Linking Qt applications
93 SYSCONF_LIBS_QTAPP= $(SYSCONF_LFLAGS_X11) $(SYSCONF_CXXFLAGS_X11) $(QT_LIBS_MT) $(QT_LIBS_OPT) $(SYSCONF_LIBS_X11) 93 SYSCONF_LIBS_QTAPP= $(SYSCONF_LFLAGS_X11) $(SYSCONF_CXXFLAGS_X11) $(QT_LIBS_MT) $(QT_LIBS_OPT) $(SYSCONF_LIBS_X11)
diff --git a/core/apps/embeddedkonsole/TEWidget.cpp b/core/apps/embeddedkonsole/TEWidget.cpp
index d6ee6e8..cacc3c4 100644
--- a/core/apps/embeddedkonsole/TEWidget.cpp
+++ b/core/apps/embeddedkonsole/TEWidget.cpp
@@ -916,385 +916,385 @@ void TEWidget::setMouseMarks(bool on)
916 mouse_marks = on; 916 mouse_marks = on;
917 setCursor( mouse_marks ? ibeamCursor : arrowCursor ); 917 setCursor( mouse_marks ? ibeamCursor : arrowCursor );
918} 918}
919 919
920/* ------------------------------------------------------------------------- */ 920/* ------------------------------------------------------------------------- */
921/* */ 921/* */
922/* Clipboard */ 922/* Clipboard */
923/* */ 923/* */
924/* ------------------------------------------------------------------------- */ 924/* ------------------------------------------------------------------------- */
925 925
926#undef KeyPress 926#undef KeyPress
927 927
928void TEWidget::emitSelection() 928void TEWidget::emitSelection()
929// Paste Clipboard by simulating keypress events 929// Paste Clipboard by simulating keypress events
930{ 930{
931#ifndef QT_NO_CLIPBOARD 931#ifndef QT_NO_CLIPBOARD
932 QString text = QApplication::clipboard()->text(); 932 QString text = QApplication::clipboard()->text();
933 if ( ! text.isNull() ) 933 if ( ! text.isNull() )
934 { 934 {
935 text.replace(QRegExp("\n"), "\r"); 935 text.replace(QRegExp("\n"), "\r");
936 QKeyEvent e(QEvent::KeyPress, 0, -1, 0, text); 936 QKeyEvent e(QEvent::KeyPress, 0, -1, 0, text);
937 emit keyPressedSignal(&e); // expose as a big fat keypress event 937 emit keyPressedSignal(&e); // expose as a big fat keypress event
938 emit clearSelectionSignal(); 938 emit clearSelectionSignal();
939 } 939 }
940#endif 940#endif
941} 941}
942 942
943void TEWidget::emitText(QString text) 943void TEWidget::emitText(QString text)
944{ 944{
945 QKeyEvent e(QEvent::KeyPress, 0, -1, 0, text); 945 QKeyEvent e(QEvent::KeyPress, 0, -1, 0, text);
946 emit keyPressedSignal(&e); // expose as a big fat keypress event 946 emit keyPressedSignal(&e); // expose as a big fat keypress event
947} 947}
948 948
949void TEWidget::pasteClipboard( ) 949void TEWidget::pasteClipboard( )
950{ 950{
951 emitSelection(); 951 emitSelection();
952} 952}
953 953
954void TEWidget::setSelection(const QString& t) 954void TEWidget::setSelection(const QString& t)
955{ 955{
956#ifndef QT_NO_CLIPBOARD 956#ifndef QT_NO_CLIPBOARD
957 // Disconnect signal while WE set the clipboard 957 // Disconnect signal while WE set the clipboard
958 QObject *cb = QApplication::clipboard(); 958 QObject *cb = QApplication::clipboard();
959 QObject::disconnect( cb, SIGNAL(dataChanged()), 959 QObject::disconnect( cb, SIGNAL(dataChanged()),
960 this, SLOT(onClearSelection()) ); 960 this, SLOT(onClearSelection()) );
961 961
962 QApplication::clipboard()->setText(t); 962 QApplication::clipboard()->setText(t);
963 963
964 QObject::connect( cb, SIGNAL(dataChanged()), 964 QObject::connect( cb, SIGNAL(dataChanged()),
965 this, SLOT(onClearSelection()) ); 965 this, SLOT(onClearSelection()) );
966#endif 966#endif
967} 967}
968 968
969void TEWidget::onClearSelection() 969void TEWidget::onClearSelection()
970{ 970{
971 emit clearSelectionSignal(); 971 emit clearSelectionSignal();
972} 972}
973 973
974/* ------------------------------------------------------------------------- */ 974/* ------------------------------------------------------------------------- */
975/* */ 975/* */
976/* Keyboard */ 976/* Keyboard */
977/* */ 977/* */
978/* ------------------------------------------------------------------------- */ 978/* ------------------------------------------------------------------------- */
979 979
980//FIXME: an `eventFilter' has been installed instead of a `keyPressEvent' 980//FIXME: an `eventFilter' has been installed instead of a `keyPressEvent'
981// due to a bug in `QT' or the ignorance of the author to prevent 981// due to a bug in `QT' or the ignorance of the author to prevent
982// repaint events being emitted to the screen whenever one leaves 982// repaint events being emitted to the screen whenever one leaves
983// or reenters the screen to/from another application. 983// or reenters the screen to/from another application.
984// 984//
985// Troll says one needs to change focusInEvent() and focusOutEvent(), 985// Troll says one needs to change focusInEvent() and focusOutEvent(),
986// which would also let you have an in-focus cursor and an out-focus 986// which would also let you have an in-focus cursor and an out-focus
987// cursor like xterm does. 987// cursor like xterm does.
988 988
989// for the auto-hide cursor feature, I added empty focusInEvent() and 989// for the auto-hide cursor feature, I added empty focusInEvent() and
990// focusOutEvent() so that update() isn't called. 990// focusOutEvent() so that update() isn't called.
991// For auto-hide, we need to get keypress-events, but we only get them when 991// For auto-hide, we need to get keypress-events, but we only get them when
992// we have focus. 992// we have focus.
993 993
994void TEWidget::doScroll(int lines) 994void TEWidget::doScroll(int lines)
995{ 995{
996 scrollbar->setValue(scrollbar->value()+lines); 996 scrollbar->setValue(scrollbar->value()+lines);
997} 997}
998 998
999void TEWidget::doHScroll(int lines) { 999void TEWidget::doHScroll(int lines) {
1000 hScrollbar->setValue( hScrollbar->value()+lines); 1000 hScrollbar->setValue( hScrollbar->value()+lines);
1001} 1001}
1002 1002
1003bool TEWidget::eventFilter( QObject *obj, QEvent *e ) 1003bool TEWidget::eventFilter( QObject *obj, QEvent *e )
1004{ 1004{
1005 if ( (e->type() == QEvent::Accel || 1005 if ( (e->type() == QEvent::Accel ||
1006 e->type() == QEvent::AccelAvailable ) && qApp->focusWidget() == this ) { 1006 e->type() == QEvent::AccelAvailable ) && qApp->focusWidget() == this ) {
1007 static_cast<QKeyEvent *>( e )->ignore(); 1007 static_cast<QKeyEvent *>( e )->ignore();
1008 return true; 1008 return true;
1009 } 1009 }
1010 if ( obj != this /* when embedded */ && obj != parent() /* when standalone */ ) 1010 if ( obj != this /* when embedded */ && obj != parent() /* when standalone */ )
1011 return FALSE; // not us 1011 return FALSE; // not us
1012 if ( e->type() == QEvent::Wheel) { 1012 if ( e->type() == QEvent::Wheel) {
1013 QApplication::sendEvent(scrollbar, e); 1013 QApplication::sendEvent(scrollbar, e);
1014 } 1014 }
1015 1015
1016#ifdef FAKE_CTRL_AND_ALT 1016#ifdef FAKE_CTRL_AND_ALT
1017 static bool control = FALSE; 1017 static bool control = FALSE;
1018 static bool alt = FALSE; 1018 static bool alt = FALSE;
1019// qDebug(" Has a keyboard with no CTRL and ALT keys, but we fake it:"); 1019// qDebug(" Has a keyboard with no CTRL and ALT keys, but we fake it:");
1020 bool dele=FALSE; 1020 bool dele=FALSE;
1021 if ( e->type() == QEvent::KeyPress || e->type() == QEvent::KeyRelease ) { 1021 if ( e->type() == QEvent::KeyPress || e->type() == QEvent::KeyRelease ) {
1022 QKeyEvent* ke = (QKeyEvent*)e; 1022 QKeyEvent* ke = (QKeyEvent*)e;
1023 bool keydown = e->type() == QEvent::KeyPress || ke->isAutoRepeat(); 1023 bool keydown = e->type() == QEvent::KeyPress || ke->isAutoRepeat();
1024 switch (ke->key()) { 1024 switch (ke->key()) {
1025 case Key_F9: // let this be "Control" 1025 case Key_F9: // let this be "Control"
1026 control = keydown; 1026 control = keydown;
1027 e = new QKeyEvent(QEvent::KeyPress, Key_Control, 0, ke->state()); 1027 e = new QKeyEvent(QEvent::KeyPress, Key_Control, 0, ke->state());
1028 dele=TRUE; 1028 dele=TRUE;
1029 break; 1029 break;
1030 case Key_F13: // let this be "Alt" 1030 case Key_F13: // let this be "Alt"
1031 alt = keydown; 1031 alt = keydown;
1032 e = new QKeyEvent(QEvent::KeyPress, Key_Alt, 0, ke->state()); 1032 e = new QKeyEvent(QEvent::KeyPress, Key_Alt, 0, ke->state());
1033 dele=TRUE; 1033 dele=TRUE;
1034 break; 1034 break;
1035 default: 1035 default:
1036 if ( control ) { 1036 if ( control ) {
1037 int a = toupper(ke->ascii())-64; 1037 int a = toupper(ke->ascii())-64;
1038 if ( a >= 0 && a < ' ' ) { 1038 if ( a >= 0 && a < ' ' ) {
1039 e = new QKeyEvent(e->type(), ke->key(), 1039 e = new QKeyEvent(e->type(), ke->key(),
1040 a, ke->state()|ControlButton, QChar(a,0)); 1040 a, ke->state()|ControlButton, QChar(a,0));
1041 dele=TRUE; 1041 dele=TRUE;
1042 } 1042 }
1043 } 1043 }
1044 if ( alt ) { 1044 if ( alt ) {
1045 e = new QKeyEvent(e->type(), ke->key(), 1045 e = new QKeyEvent(e->type(), ke->key(),
1046 ke->ascii(), ke->state()|AltButton, ke->text()); 1046 ke->ascii(), ke->state()|AltButton, ke->text());
1047 dele=TRUE; 1047 dele=TRUE;
1048 } 1048 }
1049 } 1049 }
1050 } 1050 }
1051#endif 1051#endif
1052 1052
1053 if ( e->type() == QEvent::KeyPress ) { 1053 if ( e->type() == QEvent::KeyPress ) {
1054 QKeyEvent* ke = (QKeyEvent*)e; 1054 QKeyEvent* ke = (QKeyEvent*)e;
1055 actSel=0; // Key stroke implies a screen update, so TEWidget won't 1055 actSel=0; // Key stroke implies a screen update, so TEWidget won't
1056 // know where the current selection is. 1056 // know where the current selection is.
1057 1057
1058// qDebug("key pressed is 0x%x, ascii is 0x%x, state %d", ke->key(), ke->ascii(), ke->state()); 1058// qDebug("key pressed is 0x%x, ascii is 0x%x, state %d", ke->key(), ke->ascii(), ke->state());
1059 1059
1060 if( ke->state() == ShiftButton && ke->key() == Key_Tab) { 1060 if( ke->state() == ShiftButton && ke->key() == Key_Tab) {
1061 //lets hardcode this sucker 1061 //lets hardcode this sucker
1062 1062
1063// qDebug("key pressed 2 is 0x%x", ke->key()); 1063// qDebug("key pressed 2 is 0x%x", ke->key());
1064 emitText("\\"); // expose 1064 emitText("\\"); // expose
1065 } 1065 }
1066 else if( ke->state() == ControlButton && ke->key() == Key_V) { 1066 else if( ke->state() == ControlButton && ke->key() == Key_V) {
1067 pasteClipboard(); 1067 pasteClipboard();
1068 } 1068 }
1069 else 1069 else
1070 emit keyPressedSignal(ke); // expose 1070 emit keyPressedSignal(ke); // expose
1071 ke->accept(); 1071 ke->accept();
1072#ifdef FAKE_CTRL_AND_ALT 1072#ifdef FAKE_CTRL_AND_ALT
1073 if ( dele ) delete e; 1073 if ( dele ) delete e;
1074#endif 1074#endif
1075 return true; // stop the event 1075 return true; // stop the event
1076 } 1076 }
1077 if ( e->type() == QEvent::Enter ) { 1077 if ( e->type() == QEvent::Enter ) {
1078 QObject::disconnect( (QObject*)cb, SIGNAL(dataChanged()), 1078 QObject::disconnect( (QObject*)cb, SIGNAL(dataChanged()),
1079 this, SLOT(onClearSelection()) ); 1079 this, SLOT(onClearSelection()) );
1080 } 1080 }
1081 if ( e->type() == QEvent::Leave ) { 1081 if ( e->type() == QEvent::Leave ) {
1082 QObject::connect( (QObject*)cb, SIGNAL(dataChanged()), 1082 QObject::connect( (QObject*)cb, SIGNAL(dataChanged()),
1083 this, SLOT(onClearSelection()) ); 1083 this, SLOT(onClearSelection()) );
1084 } 1084 }
1085 return QFrame::eventFilter( obj, e ); 1085 return QFrame::eventFilter( obj, e );
1086} 1086}
1087 1087
1088/* ------------------------------------------------------------------------- */ 1088/* ------------------------------------------------------------------------- */
1089/* */ 1089/* */
1090/* Frame */ 1090/* Frame */
1091/* */ 1091/* */
1092/* ------------------------------------------------------------------------- */ 1092/* ------------------------------------------------------------------------- */
1093 1093
1094void TEWidget::frameChanged() 1094void TEWidget::frameChanged()
1095{ 1095{
1096 propagateSize(); 1096 propagateSize();
1097 update(); 1097 update();
1098} 1098}
1099 1099
1100/* ------------------------------------------------------------------------- */ 1100/* ------------------------------------------------------------------------- */
1101/* */ 1101/* */
1102/* Sound */ 1102/* Sound */
1103/* */ 1103/* */
1104/* ------------------------------------------------------------------------- */ 1104/* ------------------------------------------------------------------------- */
1105 1105
1106void TEWidget::Bell() 1106void TEWidget::Bell()
1107{ 1107{
1108//#ifdef QT_QWS_CUSTOM 1108//#ifdef QT_QWS_SHARP
1109//# ifndef QT_NO_COP 1109//# ifndef QT_NO_COP
1110 QCopEnvelope( "QPE/TaskBar", "soundAlarm()" ); 1110 QCopEnvelope( "QPE/TaskBar", "soundAlarm()" );
1111//# endif 1111//# endif
1112//#else 1112//#else
1113//# ifndef QT_NO_SOUND 1113//# ifndef QT_NO_SOUND
1114// QSound::play(Resource::findSound("alarm")); 1114// QSound::play(Resource::findSound("alarm"));
1115//# endif 1115//# endif
1116//#endif 1116//#endif
1117 1117
1118// QApplication::beep(); 1118// QApplication::beep();
1119} 1119}
1120 1120
1121/* ------------------------------------------------------------------------- */ 1121/* ------------------------------------------------------------------------- */
1122/* */ 1122/* */
1123/* Auxiluary */ 1123/* Auxiluary */
1124/* */ 1124/* */
1125/* ------------------------------------------------------------------------- */ 1125/* ------------------------------------------------------------------------- */
1126 1126
1127void TEWidget::clearImage() 1127void TEWidget::clearImage()
1128// initialize the image 1128// initialize the image
1129// for internal use only 1129// for internal use only
1130{ 1130{
1131 for (int y = 0; y < lines; y++) 1131 for (int y = 0; y < lines; y++)
1132 for (int x = 0; x < columns; x++) 1132 for (int x = 0; x < columns; x++)
1133 { 1133 {
1134 image[loc(x,y)].c = 0xff; //' '; 1134 image[loc(x,y)].c = 0xff; //' ';
1135 image[loc(x,y)].f = 0xff; //DEFAULT_FORE_COLOR; 1135 image[loc(x,y)].f = 0xff; //DEFAULT_FORE_COLOR;
1136 image[loc(x,y)].b = 0xff; //DEFAULT_BACK_COLOR; 1136 image[loc(x,y)].b = 0xff; //DEFAULT_BACK_COLOR;
1137 image[loc(x,y)].r = 0xff; //DEFAULT_RENDITION; 1137 image[loc(x,y)].r = 0xff; //DEFAULT_RENDITION;
1138 } 1138 }
1139} 1139}
1140 1140
1141// Create Image /////////////////////////////////////////////////////// 1141// Create Image ///////////////////////////////////////////////////////
1142 1142
1143void TEWidget::calcGeometry() 1143void TEWidget::calcGeometry()
1144{ 1144{
1145 int showhscrollbar = 1; 1145 int showhscrollbar = 1;
1146 int hwidth = 0; 1146 int hwidth = 0;
1147 int dcolumns; 1147 int dcolumns;
1148 Config cfg("Konsole"); 1148 Config cfg("Konsole");
1149 cfg.setGroup("ScrollBar"); 1149 cfg.setGroup("ScrollBar");
1150 useHorzScroll=cfg.readBoolEntry("HorzScroll",0); 1150 useHorzScroll=cfg.readBoolEntry("HorzScroll",0);
1151 1151
1152 if(vcolumns == 0) showhscrollbar = 0; 1152 if(vcolumns == 0) showhscrollbar = 0;
1153 if(showhscrollbar == 1) hwidth = QApplication::style().scrollBarExtent().width(); 1153 if(showhscrollbar == 1) hwidth = QApplication::style().scrollBarExtent().width();
1154 1154
1155 scrollbar->resize(QApplication::style().scrollBarExtent().width(), 1155 scrollbar->resize(QApplication::style().scrollBarExtent().width(),
1156 contentsRect().height() - hwidth); 1156 contentsRect().height() - hwidth);
1157 1157
1158 switch(scrollLoc) { 1158 switch(scrollLoc) {
1159 case SCRNONE : 1159 case SCRNONE :
1160 columns = ( contentsRect().width() - 2 * rimX ) / font_w; 1160 columns = ( contentsRect().width() - 2 * rimX ) / font_w;
1161 dcolumns = columns; 1161 dcolumns = columns;
1162 if(vcolumns) columns = vcolumns; 1162 if(vcolumns) columns = vcolumns;
1163 blX = (contentsRect().width() - (columns*font_w) ) / 2; 1163 blX = (contentsRect().width() - (columns*font_w) ) / 2;
1164 if(showhscrollbar) 1164 if(showhscrollbar)
1165 blX = -hposition * font_w; 1165 blX = -hposition * font_w;
1166 brX = blX; 1166 brX = blX;
1167 scrollbar->hide(); 1167 scrollbar->hide();
1168 break; 1168 break;
1169 case SCRLEFT : 1169 case SCRLEFT :
1170 columns = ( contentsRect().width() - 2 * rimX - scrollbar->width()) / font_w; 1170 columns = ( contentsRect().width() - 2 * rimX - scrollbar->width()) / font_w;
1171 dcolumns = columns; 1171 dcolumns = columns;
1172 if(vcolumns) columns = vcolumns; 1172 if(vcolumns) columns = vcolumns;
1173 brX = (contentsRect().width() - (columns*font_w) - scrollbar->width() ) / 2; 1173 brX = (contentsRect().width() - (columns*font_w) - scrollbar->width() ) / 2;
1174 if(showhscrollbar) 1174 if(showhscrollbar)
1175 brX = -hposition * font_w; 1175 brX = -hposition * font_w;
1176 blX = brX + scrollbar->width(); 1176 blX = brX + scrollbar->width();
1177 scrollbar->move(contentsRect().topLeft()); 1177 scrollbar->move(contentsRect().topLeft());
1178 scrollbar->show(); 1178 scrollbar->show();
1179 break; 1179 break;
1180 case SCRRIGHT: 1180 case SCRRIGHT:
1181 columns = ( contentsRect().width() - 2 * rimX - scrollbar->width()) / font_w; 1181 columns = ( contentsRect().width() - 2 * rimX - scrollbar->width()) / font_w;
1182 dcolumns = columns; 1182 dcolumns = columns;
1183 if(vcolumns) columns = vcolumns; 1183 if(vcolumns) columns = vcolumns;
1184 blX = (contentsRect().width() - (columns*font_w) - scrollbar->width() ) / 2; 1184 blX = (contentsRect().width() - (columns*font_w) - scrollbar->width() ) / 2;
1185 if(showhscrollbar) 1185 if(showhscrollbar)
1186 blX = -hposition * font_w; 1186 blX = -hposition * font_w;
1187 brX = blX; 1187 brX = blX;
1188 scrollbar->move(contentsRect().topRight() - QPoint(scrollbar->width()-1,0)); 1188 scrollbar->move(contentsRect().topRight() - QPoint(scrollbar->width()-1,0));
1189 scrollbar->show(); 1189 scrollbar->show();
1190 break; 1190 break;
1191 } 1191 }
1192 //FIXME: support 'rounding' styles 1192 //FIXME: support 'rounding' styles
1193 lines = ( contentsRect().height() - 2 * rimY ) / font_h; 1193 lines = ( contentsRect().height() - 2 * rimY ) / font_h;
1194 bY = (contentsRect().height() - (lines *font_h)) / 2; 1194 bY = (contentsRect().height() - (lines *font_h)) / 2;
1195 1195
1196 if(showhscrollbar == 1) { 1196 if(showhscrollbar == 1) {
1197 hScrollbar->resize(contentsRect().width() - hwidth, hwidth); 1197 hScrollbar->resize(contentsRect().width() - hwidth, hwidth);
1198 hScrollbar->setRange(0, vcolumns - dcolumns); 1198 hScrollbar->setRange(0, vcolumns - dcolumns);
1199 1199
1200 QPoint p = contentsRect().bottomLeft(); 1200 QPoint p = contentsRect().bottomLeft();
1201 hScrollbar->move(QPoint(p.x(), p.y() - hwidth)); 1201 hScrollbar->move(QPoint(p.x(), p.y() - hwidth));
1202 hScrollbar->show(); 1202 hScrollbar->show();
1203 } 1203 }
1204 else hScrollbar->hide(); 1204 else hScrollbar->hide();
1205 1205
1206 if(showhscrollbar == 1) { 1206 if(showhscrollbar == 1) {
1207 lines = lines - (hwidth / font_h) - 1; 1207 lines = lines - (hwidth / font_h) - 1;
1208 if(lines < 1) lines = 1; 1208 if(lines < 1) lines = 1;
1209 } 1209 }
1210 //FIXME: support 'rounding' styles 1210 //FIXME: support 'rounding' styles
1211} 1211}
1212 1212
1213void TEWidget::makeImage() 1213void TEWidget::makeImage()
1214//FIXME: rename 'calcGeometry? 1214//FIXME: rename 'calcGeometry?
1215{ 1215{
1216 calcGeometry(); 1216 calcGeometry();
1217 image = (ca*) malloc(lines*columns*sizeof(ca)); 1217 image = (ca*) malloc(lines*columns*sizeof(ca));
1218 clearImage(); 1218 clearImage();
1219} 1219}
1220 1220
1221// calculate the needed size 1221// calculate the needed size
1222QSize TEWidget::calcSize(int cols, int lins) const 1222QSize TEWidget::calcSize(int cols, int lins) const
1223{ 1223{
1224 int frw = width() - contentsRect().width(); 1224 int frw = width() - contentsRect().width();
1225 int frh = height() - contentsRect().height(); 1225 int frh = height() - contentsRect().height();
1226 int scw = (scrollLoc==SCRNONE?0:scrollbar->width()); 1226 int scw = (scrollLoc==SCRNONE?0:scrollbar->width());
1227 return QSize( font_w*cols + 2*rimX + frw + scw, font_h*lins + 2*rimY + frh ); 1227 return QSize( font_w*cols + 2*rimX + frw + scw, font_h*lins + 2*rimY + frh );
1228} 1228}
1229 1229
1230QSize TEWidget::sizeHint() const 1230QSize TEWidget::sizeHint() const
1231{ 1231{
1232 return size(); 1232 return size();
1233} 1233}
1234 1234
1235void TEWidget::styleChange(QStyle &) 1235void TEWidget::styleChange(QStyle &)
1236{ 1236{
1237 propagateSize(); 1237 propagateSize();
1238} 1238}
1239 1239
1240#ifndef QT_NO_DRAGANDDROP 1240#ifndef QT_NO_DRAGANDDROP
1241 1241
1242/* --------------------------------------------------------------------- */ 1242/* --------------------------------------------------------------------- */
1243/* */ 1243/* */
1244/* Drag & Drop */ 1244/* Drag & Drop */
1245/* */ 1245/* */
1246/* --------------------------------------------------------------------- */ 1246/* --------------------------------------------------------------------- */
1247 1247
1248 1248
1249void TEWidget::dragEnterEvent(QDragEnterEvent* e) 1249void TEWidget::dragEnterEvent(QDragEnterEvent* e)
1250{ 1250{
1251 e->accept(QTextDrag::canDecode(e) || 1251 e->accept(QTextDrag::canDecode(e) ||
1252 QUriDrag::canDecode(e)); 1252 QUriDrag::canDecode(e));
1253} 1253}
1254 1254
1255void TEWidget::dropEvent(QDropEvent* event) 1255void TEWidget::dropEvent(QDropEvent* event)
1256{ 1256{
1257 // The current behaviour when url(s) are dropped is 1257 // The current behaviour when url(s) are dropped is
1258 // * if there is only ONE url and if it's a LOCAL one, ask for paste or cd 1258 // * if there is only ONE url and if it's a LOCAL one, ask for paste or cd
1259 // * in all other cases, just paste 1259 // * in all other cases, just paste
1260 // (for non-local ones, or for a list of URLs, 'cd' is nonsense) 1260 // (for non-local ones, or for a list of URLs, 'cd' is nonsense)
1261 QStrList strlist; 1261 QStrList strlist;
1262 int file_count = 0; 1262 int file_count = 0;
1263 dropText = ""; 1263 dropText = "";
1264 bool bPopup = true; 1264 bool bPopup = true;
1265 1265
1266 if(QUriDrag::decode(event, strlist)) { 1266 if(QUriDrag::decode(event, strlist)) {
1267 if (strlist.count()) { 1267 if (strlist.count()) {
1268 for(const char* p = strlist.first(); p; p = strlist.next()) { 1268 for(const char* p = strlist.first(); p; p = strlist.next()) {
1269 if(file_count++ > 0) { 1269 if(file_count++ > 0) {
1270 dropText += " "; 1270 dropText += " ";
1271 bPopup = false; // more than one file, don't popup 1271 bPopup = false; // more than one file, don't popup
1272 } 1272 }
1273 1273
1274/* 1274/*
1275 KURL url(p); 1275 KURL url(p);
1276 if (url.isLocalFile()) { 1276 if (url.isLocalFile()) {
1277 dropText += url.path(); // local URL : remove protocol 1277 dropText += url.path(); // local URL : remove protocol
1278 } 1278 }
1279 else { 1279 else {
1280 dropText += url.prettyURL(); 1280 dropText += url.prettyURL();
1281 bPopup = false; // a non-local file, don't popup 1281 bPopup = false; // a non-local file, don't popup
1282 } 1282 }
1283*/ 1283*/
1284 1284
1285 } 1285 }
1286 1286
1287 if (bPopup) 1287 if (bPopup)
1288 // m_drop->popup(pos() + event->pos()); 1288 // m_drop->popup(pos() + event->pos());
1289 m_drop->popup(mapToGlobal(event->pos())); 1289 m_drop->popup(mapToGlobal(event->pos()));
1290 else 1290 else
1291 { 1291 {
1292 if (currentSession) { 1292 if (currentSession) {
1293 currentSession->getEmulation()->sendString(dropText.local8Bit()); 1293 currentSession->getEmulation()->sendString(dropText.local8Bit());
1294 } 1294 }
1295// kdDebug() << "Drop:" << dropText.local8Bit() << "\n"; 1295// kdDebug() << "Drop:" << dropText.local8Bit() << "\n";
1296 } 1296 }
1297 } 1297 }
1298 } 1298 }
1299 else if(QTextDrag::decode(event, dropText)) { 1299 else if(QTextDrag::decode(event, dropText)) {
1300// kdDebug() << "Drop:" << dropText.local8Bit() << "\n"; 1300// kdDebug() << "Drop:" << dropText.local8Bit() << "\n";
diff --git a/core/launcher/desktop.cpp b/core/launcher/desktop.cpp
index f2e00d8..3e8c731 100644
--- a/core/launcher/desktop.cpp
+++ b/core/launcher/desktop.cpp
@@ -1,235 +1,235 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qtopia Environment. 4** This file is part of 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 20
21#include "desktop.h" 21#include "desktop.h"
22#include "info.h" 22#include "info.h"
23#include "launcher.h" 23#include "launcher.h"
24#include "qcopbridge.h" 24#include "qcopbridge.h"
25#include "shutdownimpl.h" 25#include "shutdownimpl.h"
26#include "startmenu.h" 26#include "startmenu.h"
27#include "taskbar.h" 27#include "taskbar.h"
28#include "transferserver.h" 28#include "transferserver.h"
29#include "irserver.h" 29#include "irserver.h"
30#include "packageslave.h" 30#include "packageslave.h"
31#include "screensaver.h" 31#include "screensaver.h"
32 32
33#include <qpe/applnk.h> 33#include <qpe/applnk.h>
34#include <qpe/mimetype.h> 34#include <qpe/mimetype.h>
35#include <qpe/password.h> 35#include <qpe/password.h>
36#include <qpe/config.h> 36#include <qpe/config.h>
37#include <qpe/power.h> 37#include <qpe/power.h>
38#include <qpe/timeconversion.h> 38#include <qpe/timeconversion.h>
39#include <qpe/qcopenvelope_qws.h> 39#include <qpe/qcopenvelope_qws.h>
40#include <qpe/network.h> 40#include <qpe/network.h>
41#include <qpe/global.h> 41#include <qpe/global.h>
42 42
43#if defined( QT_QWS_CUSTOM ) || defined( QT_QWS_IPAQ ) 43#if defined( QT_QWS_SHARP ) || defined( QT_QWS_IPAQ )
44#include <qpe/custom.h> 44#include <qpe/custom.h>
45#endif 45#endif
46 46
47#include <opie/odevice.h> 47#include <opie/odevice.h>
48 48
49#include <qgfx_qws.h> 49#include <qgfx_qws.h>
50#include <qmainwindow.h> 50#include <qmainwindow.h>
51#include <qmessagebox.h> 51#include <qmessagebox.h>
52#include <qtimer.h> 52#include <qtimer.h>
53#include <qwindowsystem_qws.h> 53#include <qwindowsystem_qws.h>
54 54
55#include <qvaluelist.h> 55#include <qvaluelist.h>
56 56
57#include <stdlib.h> 57#include <stdlib.h>
58#include <unistd.h> 58#include <unistd.h>
59#include <fcntl.h> 59#include <fcntl.h>
60 60
61using namespace Opie; 61using namespace Opie;
62 62
63class QCopKeyRegister 63class QCopKeyRegister
64{ 64{
65public: 65public:
66 QCopKeyRegister() : keyCode( 0 ) 66 QCopKeyRegister() : keyCode( 0 )
67 { } 67 { }
68 QCopKeyRegister( int k, const QString &c, const QString &m ) 68 QCopKeyRegister( int k, const QString &c, const QString &m )
69 : keyCode( k ), channel( c ), message( m ) 69 : keyCode( k ), channel( c ), message( m )
70 { } 70 { }
71 71
72 int getKeyCode() const 72 int getKeyCode() const
73 { 73 {
74 return keyCode; 74 return keyCode;
75 } 75 }
76 QString getChannel() const 76 QString getChannel() const
77 { 77 {
78 return channel; 78 return channel;
79 } 79 }
80 QString getMessage() const 80 QString getMessage() const
81 { 81 {
82 return message; 82 return message;
83 } 83 }
84 84
85private: 85private:
86 int keyCode; 86 int keyCode;
87 QString channel, message; 87 QString channel, message;
88}; 88};
89 89
90typedef QValueList<QCopKeyRegister> KeyRegisterList; 90typedef QValueList<QCopKeyRegister> KeyRegisterList;
91KeyRegisterList keyRegisterList; 91KeyRegisterList keyRegisterList;
92 92
93static Desktop* qpedesktop = 0; 93static Desktop* qpedesktop = 0;
94static int loggedin = 0; 94static int loggedin = 0;
95static void login( bool at_poweron ) 95static void login( bool at_poweron )
96{ 96{
97 if ( !loggedin ) { 97 if ( !loggedin ) {
98 Global::terminateBuiltin( "calibrate" ); 98 Global::terminateBuiltin( "calibrate" );
99 Password::authenticate( at_poweron ); 99 Password::authenticate( at_poweron );
100 loggedin = 1; 100 loggedin = 1;
101 QCopEnvelope e( "QPE/Desktop", "unlocked()" ); 101 QCopEnvelope e( "QPE/Desktop", "unlocked()" );
102 } 102 }
103} 103}
104 104
105bool Desktop::screenLocked() 105bool Desktop::screenLocked()
106{ 106{
107 return loggedin == 0; 107 return loggedin == 0;
108} 108}
109 109
110/* 110/*
111 Priority is number of alerts that are needed to pop up 111 Priority is number of alerts that are needed to pop up
112 alert. 112 alert.
113 */ 113 */
114class DesktopPowerAlerter : public QMessageBox 114class DesktopPowerAlerter : public QMessageBox
115{ 115{
116public: 116public:
117 DesktopPowerAlerter( QWidget *parent, const char *name = 0 ) 117 DesktopPowerAlerter( QWidget *parent, const char *name = 0 )
118 : QMessageBox( tr( "Battery Status" ), "Low Battery", 118 : QMessageBox( tr( "Battery Status" ), "Low Battery",
119 QMessageBox::Critical, 119 QMessageBox::Critical,
120 QMessageBox::Ok | QMessageBox::Default, 120 QMessageBox::Ok | QMessageBox::Default,
121 QMessageBox::NoButton, QMessageBox::NoButton, 121 QMessageBox::NoButton, QMessageBox::NoButton,
122 parent, name, FALSE ) 122 parent, name, FALSE )
123 { 123 {
124 currentPriority = INT_MAX; 124 currentPriority = INT_MAX;
125 alertCount = 0; 125 alertCount = 0;
126 } 126 }
127 127
128 void alert( const QString &text, int priority ); 128 void alert( const QString &text, int priority );
129 void hideEvent( QHideEvent * ); 129 void hideEvent( QHideEvent * );
130private: 130private:
131 int currentPriority; 131 int currentPriority;
132 int alertCount; 132 int alertCount;
133}; 133};
134 134
135void DesktopPowerAlerter::alert( const QString &text, int priority ) 135void DesktopPowerAlerter::alert( const QString &text, int priority )
136{ 136{
137 alertCount++; 137 alertCount++;
138 if ( alertCount < priority ) 138 if ( alertCount < priority )
139 return ; 139 return ;
140 if ( priority > currentPriority ) 140 if ( priority > currentPriority )
141 return ; 141 return ;
142 currentPriority = priority; 142 currentPriority = priority;
143 setText( text ); 143 setText( text );
144 show(); 144 show();
145} 145}
146 146
147 147
148void DesktopPowerAlerter::hideEvent( QHideEvent *e ) 148void DesktopPowerAlerter::hideEvent( QHideEvent *e )
149{ 149{
150 QMessageBox::hideEvent( e ); 150 QMessageBox::hideEvent( e );
151 alertCount = 0; 151 alertCount = 0;
152 currentPriority = INT_MAX; 152 currentPriority = INT_MAX;
153} 153}
154 154
155 155
156void DesktopApplication::switchLCD ( bool on ) 156void DesktopApplication::switchLCD ( bool on )
157{ 157{
158 if ( qApp ) { 158 if ( qApp ) {
159 DesktopApplication *dapp = (DesktopApplication *) qApp; 159 DesktopApplication *dapp = (DesktopApplication *) qApp;
160 160
161 if ( dapp-> m_screensaver ) { 161 if ( dapp-> m_screensaver ) {
162 if ( on ) { 162 if ( on ) {
163 dapp-> m_screensaver-> setDisplayState ( true ); 163 dapp-> m_screensaver-> setDisplayState ( true );
164 dapp-> m_screensaver-> setBacklight ( -3 ); 164 dapp-> m_screensaver-> setBacklight ( -3 );
165 } 165 }
166 else { 166 else {
167 dapp-> m_screensaver-> setDisplayState ( false ); 167 dapp-> m_screensaver-> setDisplayState ( false );
168 } 168 }
169 } 169 }
170 } 170 }
171} 171}
172 172
173 173
174DesktopApplication::DesktopApplication( int& argc, char **argv, Type appType ) 174DesktopApplication::DesktopApplication( int& argc, char **argv, Type appType )
175 : QPEApplication( argc, argv, appType ) 175 : QPEApplication( argc, argv, appType )
176{ 176{
177 177
178 Config cfg( "apm" ); 178 Config cfg( "apm" );
179 cfg.setGroup( "Warnings" ); 179 cfg.setGroup( "Warnings" );
180 //cfg.readNumEntry( "checkinterval", 10000 ) 180 //cfg.readNumEntry( "checkinterval", 10000 )
181 m_powerVeryLow = cfg.readNumEntry( "powerverylow", 10 ); 181 m_powerVeryLow = cfg.readNumEntry( "powerverylow", 10 );
182 m_powerCritical = cfg.readNumEntry( "powercritical", 5 ); 182 m_powerCritical = cfg.readNumEntry( "powercritical", 5 );
183 183
184 m_ps = new PowerStatus; 184 m_ps = new PowerStatus;
185 m_ps_last = new PowerStatus; 185 m_ps_last = new PowerStatus;
186 pa = new DesktopPowerAlerter( 0 ); 186 pa = new DesktopPowerAlerter( 0 );
187 187
188 m_timer = new QTimer( this ); 188 m_timer = new QTimer( this );
189 connect( m_timer, SIGNAL( timeout() ), this, SLOT( apmTimeout() ) ); 189 connect( m_timer, SIGNAL( timeout() ), this, SLOT( apmTimeout() ) );
190 m_timer->start( 5000 ); 190 m_timer->start( 5000 );
191 191
192 channel = new QCopChannel( "QPE/Desktop", this ); 192 channel = new QCopChannel( "QPE/Desktop", this );
193 connect( channel, SIGNAL( received( const QCString&, const QByteArray& ) ), 193 connect( channel, SIGNAL( received( const QCString&, const QByteArray& ) ),
194 this, SLOT( desktopMessage( const QCString&, const QByteArray& ) ) ); 194 this, SLOT( desktopMessage( const QCString&, const QByteArray& ) ) );
195 195
196 channel = new QCopChannel( "QPE/System", this ); 196 channel = new QCopChannel( "QPE/System", this );
197 connect( channel, SIGNAL( received( const QCString&, const QByteArray& ) ), 197 connect( channel, SIGNAL( received( const QCString&, const QByteArray& ) ),
198 this, SLOT( systemMessage( const QCString&, const QByteArray& ) ) ); 198 this, SLOT( systemMessage( const QCString&, const QByteArray& ) ) );
199 199
200 m_screensaver = new OpieScreenSaver ( ); 200 m_screensaver = new OpieScreenSaver ( );
201 m_screensaver-> setInterval ( -1 ); 201 m_screensaver-> setInterval ( -1 );
202 QWSServer::setScreenSaver( m_screensaver ); 202 QWSServer::setScreenSaver( m_screensaver );
203 203
204 apmTimeout ( ); 204 apmTimeout ( );
205} 205}
206 206
207 207
208DesktopApplication::~DesktopApplication() 208DesktopApplication::~DesktopApplication()
209{ 209{
210 delete m_ps; 210 delete m_ps;
211 delete m_ps_last; 211 delete m_ps_last;
212 delete pa; 212 delete pa;
213} 213}
214 214
215void DesktopApplication::apmTimeout() 215void DesktopApplication::apmTimeout()
216{ 216{
217 qpedesktop->checkMemory(); // in case no events are being generated 217 qpedesktop->checkMemory(); // in case no events are being generated
218 218
219 *m_ps_last = *m_ps; 219 *m_ps_last = *m_ps;
220 *m_ps = PowerStatusManager::readStatus(); 220 *m_ps = PowerStatusManager::readStatus();
221 221
222 if ( m_ps-> acStatus ( ) != m_ps_last-> acStatus ( )) 222 if ( m_ps-> acStatus ( ) != m_ps_last-> acStatus ( ))
223 m_screensaver-> powerStatusChanged ( *m_ps ); 223 m_screensaver-> powerStatusChanged ( *m_ps );
224 224
225 if ( m_ps-> acStatus ( ) != PowerStatus::Online ) { 225 if ( m_ps-> acStatus ( ) != PowerStatus::Online ) {
226 int bat = m_ps-> batteryPercentRemaining ( ); 226 int bat = m_ps-> batteryPercentRemaining ( );
227 227
228 if ( bat < m_ps_last-> batteryPercentRemaining ( )) { 228 if ( bat < m_ps_last-> batteryPercentRemaining ( )) {
229 if ( bat <= m_powerCritical ) 229 if ( bat <= m_powerCritical )
230 pa->alert( tr( "Battery level is critical!\nKeep power off until power restored!" ), 1 ); 230 pa->alert( tr( "Battery level is critical!\nKeep power off until power restored!" ), 1 );
231 else if ( bat <= m_powerVeryLow ) 231 else if ( bat <= m_powerVeryLow )
232 pa->alert( tr( "Battery is running very low." ), 2 ); 232 pa->alert( tr( "Battery is running very low." ), 2 );
233 } 233 }
234 if ( m_ps-> backupBatteryStatus ( ) == PowerStatus::VeryLow ) 234 if ( m_ps-> backupBatteryStatus ( ) == PowerStatus::VeryLow )
235 pa->alert( tr( "The Back-up battery is very low.\nPlease charge the back-up battery." ), 2 ); 235 pa->alert( tr( "The Back-up battery is very low.\nPlease charge the back-up battery." ), 2 );
diff --git a/core/launcher/main.cpp b/core/launcher/main.cpp
index b517c7d..8b91f5d 100644
--- a/core/launcher/main.cpp
+++ b/core/launcher/main.cpp
@@ -1,182 +1,182 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qtopia Environment. 4** This file is part of 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 20
21#include "desktop.h" 21#include "desktop.h"
22#include "taskbar.h" 22#include "taskbar.h"
23#include "stabmon.h" 23#include "stabmon.h"
24 24
25#include <qpe/qpeapplication.h> 25#include <qpe/qpeapplication.h>
26#include <qpe/network.h> 26#include <qpe/network.h>
27#include <qpe/config.h> 27#include <qpe/config.h>
28#if defined( QT_QWS_CUSTOM ) || defined( QT_QWS_IPAQ ) 28#if defined( QT_QWS_SHARP ) || defined( QT_QWS_IPAQ )
29#include <qpe/custom.h> 29#include <qpe/custom.h>
30#endif 30#endif
31 31
32#include <opie/odevice.h> 32#include <opie/odevice.h>
33 33
34#include <qmessagebox.h> 34#include <qmessagebox.h>
35#include <qfile.h> 35#include <qfile.h>
36#include <qimage.h> 36#include <qimage.h>
37#include <qwindowsystem_qws.h> 37#include <qwindowsystem_qws.h>
38#include <qpe/qcopenvelope_qws.h> 38#include <qpe/qcopenvelope_qws.h>
39#include <qpe/alarmserver.h> 39#include <qpe/alarmserver.h>
40 40
41#include <stdlib.h> 41#include <stdlib.h>
42#include <stdio.h> 42#include <stdio.h>
43#include <signal.h> 43#include <signal.h>
44#include <unistd.h> 44#include <unistd.h>
45 45
46#if defined(QT_QWS_IPAQ) || defined(QT_QWS_EBX) 46#if defined(QT_QWS_IPAQ) || defined(QT_QWS_EBX)
47#include "../calibrate/calibrate.h" 47#include "../calibrate/calibrate.h"
48#endif 48#endif
49 49
50using namespace Opie; 50using namespace Opie;
51 51
52void initEnvironment() 52void initEnvironment()
53{ 53{
54 Config config("locale"); 54 Config config("locale");
55 config.setGroup( "Location" ); 55 config.setGroup( "Location" );
56 QString tz = config.readEntry( "Timezone", getenv("TZ") ); 56 QString tz = config.readEntry( "Timezone", getenv("TZ") );
57 57
58 // if not timezone set, pick New York 58 // if not timezone set, pick New York
59 if (tz.isNull()) 59 if (tz.isNull())
60 tz = "America/New_York"; 60 tz = "America/New_York";
61 61
62 setenv( "TZ", tz, 1 ); 62 setenv( "TZ", tz, 1 );
63 config.writeEntry( "Timezone", tz); 63 config.writeEntry( "Timezone", tz);
64 64
65 config.setGroup( "Language" ); 65 config.setGroup( "Language" );
66 QString lang = config.readEntry( "Language", getenv("LANG") ); 66 QString lang = config.readEntry( "Language", getenv("LANG") );
67 if ( !lang.isNull() ) 67 if ( !lang.isNull() )
68 setenv( "LANG", lang, 1 ); 68 setenv( "LANG", lang, 1 );
69} 69}
70 70
71 71
72int initApplication( int argc, char ** argv ) 72int initApplication( int argc, char ** argv )
73{ 73{
74 initEnvironment(); 74 initEnvironment();
75 75
76#if !defined(QT_QWS_CASSIOPEIA) && !defined(QT_QWS_IPAQ) && !defined(QT_QWS_EBX) 76#if !defined(QT_QWS_CASSIOPEIA) && !defined(QT_QWS_IPAQ) && !defined(QT_QWS_EBX)
77 setenv( "QWS_SIZE", "240x320", 0 ); 77 setenv( "QWS_SIZE", "240x320", 0 );
78#endif 78#endif
79 79
80 //Don't flicker at startup: 80 //Don't flicker at startup:
81 QWSServer::setDesktopBackground( QImage() ); 81 QWSServer::setDesktopBackground( QImage() );
82 DesktopApplication a( argc, argv, QApplication::GuiServer ); 82 DesktopApplication a( argc, argv, QApplication::GuiServer );
83 83
84 ODevice::inst ( )-> setSoftSuspend ( true ); 84 ODevice::inst ( )-> setSoftSuspend ( true );
85 85
86 { // init backlight 86 { // init backlight
87 QCopEnvelope e("QPE/System", "setBacklight(int)" ); 87 QCopEnvelope e("QPE/System", "setBacklight(int)" );
88 e << -3; // Forced on 88 e << -3; // Forced on
89 } 89 }
90 90
91 AlarmServer::initialize(); 91 AlarmServer::initialize();
92 92
93 Desktop *d = new Desktop(); 93 Desktop *d = new Desktop();
94 94
95 QObject::connect( &a, SIGNAL(menu()), d, SLOT(raiseMenu()) ); 95 QObject::connect( &a, SIGNAL(menu()), d, SLOT(raiseMenu()) );
96 QObject::connect( &a, SIGNAL(datebook()), d, SLOT(raiseDatebook()) ); 96 QObject::connect( &a, SIGNAL(datebook()), d, SLOT(raiseDatebook()) );
97 QObject::connect( &a, SIGNAL(contacts()), d, SLOT(raiseContacts()) ); 97 QObject::connect( &a, SIGNAL(contacts()), d, SLOT(raiseContacts()) );
98 QObject::connect( &a, SIGNAL(launch()), d, SLOT(raiseLauncher()) ); 98 QObject::connect( &a, SIGNAL(launch()), d, SLOT(raiseLauncher()) );
99 QObject::connect( &a, SIGNAL(email()), d, SLOT(raiseEmail()) ); 99 QObject::connect( &a, SIGNAL(email()), d, SLOT(raiseEmail()) );
100 QObject::connect( &a, SIGNAL(power()), d, SLOT(togglePower()) ); 100 QObject::connect( &a, SIGNAL(power()), d, SLOT(togglePower()) );
101 QObject::connect( &a, SIGNAL(backlight()), d, SLOT(toggleLight()) ); 101 QObject::connect( &a, SIGNAL(backlight()), d, SLOT(toggleLight()) );
102 QObject::connect( &a, SIGNAL(symbol()), d, SLOT(toggleSymbolInput()) ); 102 QObject::connect( &a, SIGNAL(symbol()), d, SLOT(toggleSymbolInput()) );
103 QObject::connect( &a, SIGNAL(numLockStateToggle()), d, SLOT(toggleNumLockState()) ); 103 QObject::connect( &a, SIGNAL(numLockStateToggle()), d, SLOT(toggleNumLockState()) );
104 QObject::connect( &a, SIGNAL(capsLockStateToggle()), d, SLOT(toggleCapsLockState()) ); 104 QObject::connect( &a, SIGNAL(capsLockStateToggle()), d, SLOT(toggleCapsLockState()) );
105 QObject::connect( &a, SIGNAL(prepareForRestart()), d, SLOT(terminateServers()) ); 105 QObject::connect( &a, SIGNAL(prepareForRestart()), d, SLOT(terminateServers()) );
106 106
107 (void)new SysFileMonitor(d); 107 (void)new SysFileMonitor(d);
108 Network::createServer(d); 108 Network::createServer(d);
109 109
110#if defined(QT_QWS_CASSIOPEIA) || defined(QT_QWS_IPAQ) || defined(QT_QWS_EBX) 110#if defined(QT_QWS_CASSIOPEIA) || defined(QT_QWS_IPAQ) || defined(QT_QWS_EBX)
111 if ( !QFile::exists( "/etc/pointercal" ) ) { 111 if ( !QFile::exists( "/etc/pointercal" ) ) {
112 // Make sure calibration widget starts on top. 112 // Make sure calibration widget starts on top.
113 Calibrate *cal = new Calibrate; 113 Calibrate *cal = new Calibrate;
114 cal->exec(); 114 cal->exec();
115 delete cal; 115 delete cal;
116 } 116 }
117#endif 117#endif
118 118
119 d->show(); 119 d->show();
120 120
121 if ( QDate::currentDate ( ). year ( ) < 2000 ) { 121 if ( QDate::currentDate ( ). year ( ) < 2000 ) {
122 if ( QMessageBox::information ( 0, DesktopApplication::tr( "Information" ), DesktopApplication::tr( "<p>The system date doesn't seem to be valid.\n(%1)</p><p>Do you want to correct the clock ?</p>" ). arg( TimeString::dateString ( QDate::currentDate ( ))), QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes ) { 122 if ( QMessageBox::information ( 0, DesktopApplication::tr( "Information" ), DesktopApplication::tr( "<p>The system date doesn't seem to be valid.\n(%1)</p><p>Do you want to correct the clock ?</p>" ). arg( TimeString::dateString ( QDate::currentDate ( ))), QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes ) {
123 QCopEnvelope e ( "QPE/Application/systemtime", "setDocument(QString)" ); 123 QCopEnvelope e ( "QPE/Application/systemtime", "setDocument(QString)" );
124 e << QString ( ); 124 e << QString ( );
125 } 125 }
126 } 126 }
127 127
128 int rv = a.exec(); 128 int rv = a.exec();
129 129
130 delete d; 130 delete d;
131 131
132 ODevice::inst ( )-> setSoftSuspend ( false ); 132 ODevice::inst ( )-> setSoftSuspend ( false );
133 133
134 return rv; 134 return rv;
135} 135}
136 136
137static const char *pidfile_path = "/var/run/opie.pid"; 137static const char *pidfile_path = "/var/run/opie.pid";
138 138
139void create_pidfile ( ) 139void create_pidfile ( )
140{ 140{
141 FILE *f; 141 FILE *f;
142 142
143 if (( f = ::fopen ( pidfile_path, "w" ))) { 143 if (( f = ::fopen ( pidfile_path, "w" ))) {
144 ::fprintf ( f, "%d", getpid ( )); 144 ::fprintf ( f, "%d", getpid ( ));
145 ::fclose ( f ); 145 ::fclose ( f );
146 } 146 }
147} 147}
148 148
149void remove_pidfile ( ) 149void remove_pidfile ( )
150{ 150{
151 ::unlink ( pidfile_path ); 151 ::unlink ( pidfile_path );
152} 152}
153 153
154void handle_sigterm ( int /* sig */ ) 154void handle_sigterm ( int /* sig */ )
155{ 155{
156 if ( qApp ) 156 if ( qApp )
157 qApp-> quit ( ); 157 qApp-> quit ( );
158} 158}
159 159
160int main( int argc, char ** argv ) 160int main( int argc, char ** argv )
161{ 161{
162 ::signal ( SIGCHLD, SIG_IGN ); 162 ::signal ( SIGCHLD, SIG_IGN );
163 163
164 ::signal ( SIGTERM, handle_sigterm ); 164 ::signal ( SIGTERM, handle_sigterm );
165 ::signal ( SIGINT, handle_sigterm ); 165 ::signal ( SIGINT, handle_sigterm );
166 166
167 ::setsid ( ); 167 ::setsid ( );
168 ::setpgid ( 0, 0 ); 168 ::setpgid ( 0, 0 );
169 169
170 ::atexit ( remove_pidfile ); 170 ::atexit ( remove_pidfile );
171 create_pidfile ( ); 171 create_pidfile ( );
172 172
173 int retVal = initApplication ( argc, argv ); 173 int retVal = initApplication ( argc, argv );
174 174
175 // Kill them. Kill them all. 175 // Kill them. Kill them all.
176 ::kill ( 0, SIGTERM ); 176 ::kill ( 0, SIGTERM );
177 ::sleep ( 1 ); 177 ::sleep ( 1 );
178 ::kill ( 0, SIGKILL ); 178 ::kill ( 0, SIGKILL );
179 179
180 return retVal; 180 return retVal;
181} 181}
182 182
diff --git a/core/launcher/shutdownimpl.cpp b/core/launcher/shutdownimpl.cpp
index 9292bb8..a202b7b 100644
--- a/core/launcher/shutdownimpl.cpp
+++ b/core/launcher/shutdownimpl.cpp
@@ -1,179 +1,179 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qtopia Environment. 4** This file is part of 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 20
21#include "shutdownimpl.h" 21#include "shutdownimpl.h"
22 22
23#include <qpe/global.h> 23#include <qpe/global.h>
24#include <qpe/qcopenvelope_qws.h> 24#include <qpe/qcopenvelope_qws.h>
25 25
26#include <qtimer.h> 26#include <qtimer.h>
27#include <qprogressbar.h> 27#include <qprogressbar.h>
28#include <qpushbutton.h> 28#include <qpushbutton.h>
29#include <qbuttongroup.h> 29#include <qbuttongroup.h>
30#include <qlabel.h> 30#include <qlabel.h>
31#include <qlayout.h> 31#include <qlayout.h>
32#include <qpalette.h> 32#include <qpalette.h>
33 33
34 34
35static void changeButtonColor ( QPushButton *btn, const QColor &col ) 35static void changeButtonColor ( QPushButton *btn, const QColor &col )
36{ 36{
37 QPalette pal = btn-> palette ( ); 37 QPalette pal = btn-> palette ( );
38 38
39 pal. setColor ( QPalette::Active, QColorGroup::Button, col ); 39 pal. setColor ( QPalette::Active, QColorGroup::Button, col );
40 pal. setColor ( QPalette::Disabled, QColorGroup::Button, col ); 40 pal. setColor ( QPalette::Disabled, QColorGroup::Button, col );
41 pal. setColor ( QPalette::Inactive, QColorGroup::Button, col ); 41 pal. setColor ( QPalette::Inactive, QColorGroup::Button, col );
42 42
43 btn-> setPalette ( pal ); 43 btn-> setPalette ( pal );
44} 44}
45 45
46 46
47ShutdownImpl::ShutdownImpl( QWidget* parent, const char *name, WFlags fl ) 47ShutdownImpl::ShutdownImpl( QWidget* parent, const char *name, WFlags fl )
48 : QWidget ( parent, name, fl ) 48 : QWidget ( parent, name, fl )
49{ 49{
50 setCaption ( tr( "Shut down..." ) ); 50 setCaption ( tr( "Shut down..." ) );
51 51
52 QVBoxLayout *vbox = new QVBoxLayout ( this ); 52 QVBoxLayout *vbox = new QVBoxLayout ( this );
53 vbox-> setSpacing ( 3 ); 53 vbox-> setSpacing ( 3 );
54 vbox-> setMargin ( 6 ); 54 vbox-> setMargin ( 6 );
55 55
56 QButtonGroup *btngrp = new QButtonGroup ( this ); 56 QButtonGroup *btngrp = new QButtonGroup ( this );
57 57
58 btngrp-> setTitle ( tr( "Terminate" ) ); 58 btngrp-> setTitle ( tr( "Terminate" ) );
59 btngrp-> setColumnLayout ( 0, Qt::Vertical ); 59 btngrp-> setColumnLayout ( 0, Qt::Vertical );
60 btngrp-> layout ( ) -> setSpacing ( 0 ); 60 btngrp-> layout ( ) -> setSpacing ( 0 );
61 btngrp-> layout ( ) -> setMargin ( 0 ); 61 btngrp-> layout ( ) -> setMargin ( 0 );
62 62
63 QGridLayout *grid = new QGridLayout ( btngrp-> layout ( ) ); 63 QGridLayout *grid = new QGridLayout ( btngrp-> layout ( ) );
64 grid-> setAlignment ( Qt::AlignTop ); 64 grid-> setAlignment ( Qt::AlignTop );
65 grid-> setSpacing ( 3 ); 65 grid-> setSpacing ( 3 );
66 grid-> setMargin ( 7 ); 66 grid-> setMargin ( 7 );
67 67
68 QPushButton *quit = new QPushButton ( tr( "Terminate Opie" ), btngrp, "quit" ); 68 QPushButton *quit = new QPushButton ( tr( "Terminate Opie" ), btngrp, "quit" );
69 changeButtonColor ( quit, QColor ( 236, 236, 179 ) ); 69 changeButtonColor ( quit, QColor ( 236, 236, 179 ) );
70 btngrp-> insert ( quit, 4 ); 70 btngrp-> insert ( quit, 4 );
71 grid-> addWidget ( quit, 1, 1 ); 71 grid-> addWidget ( quit, 1, 1 );
72 72
73 QPushButton *reboot = new QPushButton ( tr( "Reboot" ), btngrp, "reboot" ); 73 QPushButton *reboot = new QPushButton ( tr( "Reboot" ), btngrp, "reboot" );
74 changeButtonColor ( reboot, QColor( 236, 183, 181 ) ); 74 changeButtonColor ( reboot, QColor( 236, 183, 181 ) );
75 btngrp-> insert ( reboot, 2 ); 75 btngrp-> insert ( reboot, 2 );
76 grid-> addWidget( reboot, 1, 0 ); 76 grid-> addWidget( reboot, 1, 0 );
77 77
78 QPushButton *restart = new QPushButton ( tr( "Restart Opie" ), btngrp, "restart" ); 78 QPushButton *restart = new QPushButton ( tr( "Restart Opie" ), btngrp, "restart" );
79 changeButtonColor ( restart, QColor( 236, 236, 179 ) ); 79 changeButtonColor ( restart, QColor( 236, 236, 179 ) );
80 btngrp-> insert ( restart, 3 ); 80 btngrp-> insert ( restart, 3 );
81 grid-> addWidget ( restart, 0, 1 ); 81 grid-> addWidget ( restart, 0, 1 );
82 82
83 QPushButton *shutdown = new QPushButton( tr( "Shutdown" ), btngrp, "shutdown" ); 83 QPushButton *shutdown = new QPushButton( tr( "Shutdown" ), btngrp, "shutdown" );
84 changeButtonColor ( shutdown, QColor( 236, 183, 181 ) ); 84 changeButtonColor ( shutdown, QColor( 236, 183, 181 ) );
85 btngrp-> insert ( shutdown, 1 ); 85 btngrp-> insert ( shutdown, 1 );
86 grid-> addWidget ( shutdown, 0, 0 ); 86 grid-> addWidget ( shutdown, 0, 0 );
87 87
88 vbox-> addWidget ( btngrp ); 88 vbox-> addWidget ( btngrp );
89 89
90 m_info = new QLabel ( this, "info" ); 90 m_info = new QLabel ( this, "info" );
91 m_info-> setText( tr( "<p>\n" "These termination options are provided primarily for use while developing and testing the Opie system. In a normal environment, these concepts are unnecessary." ) ); 91 m_info-> setText( tr( "<p>\n" "These termination options are provided primarily for use while developing and testing the Opie system. In a normal environment, these concepts are unnecessary." ) );
92 vbox-> addWidget ( m_info ); 92 vbox-> addWidget ( m_info );
93 93
94 m_progress = new QProgressBar ( this, "progressBar" ); 94 m_progress = new QProgressBar ( this, "progressBar" );
95 m_progress-> setFrameShape ( QProgressBar::Panel ); 95 m_progress-> setFrameShape ( QProgressBar::Panel );
96 m_progress-> setFrameShadow ( QProgressBar::Sunken ); 96 m_progress-> setFrameShadow ( QProgressBar::Sunken );
97 m_progress-> setTotalSteps ( 20 ); 97 m_progress-> setTotalSteps ( 20 );
98 m_progress-> setIndicatorFollowsStyle ( false ); 98 m_progress-> setIndicatorFollowsStyle ( false );
99 vbox-> addWidget ( m_progress ); 99 vbox-> addWidget ( m_progress );
100 100
101 vbox-> addItem ( new QSpacerItem ( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding ) ); 101 vbox-> addItem ( new QSpacerItem ( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding ) );
102 102
103 QPushButton *cancel = new QPushButton ( tr( "Cancel" ), this, "cancel" ); 103 QPushButton *cancel = new QPushButton ( tr( "Cancel" ), this, "cancel" );
104 changeButtonColor ( cancel, QColor( 181, 222, 178 ) ); 104 changeButtonColor ( cancel, QColor( 181, 222, 178 ) );
105 cancel-> setDefault ( true ); 105 cancel-> setDefault ( true );
106 cancel-> setSizePolicy ( QSizePolicy ( QSizePolicy::Minimum, QSizePolicy::Expanding, cancel-> sizePolicy ( ). hasHeightForWidth ( ) ) ); 106 cancel-> setSizePolicy ( QSizePolicy ( QSizePolicy::Minimum, QSizePolicy::Expanding, cancel-> sizePolicy ( ). hasHeightForWidth ( ) ) );
107 vbox-> addWidget ( cancel ); 107 vbox-> addWidget ( cancel );
108 108
109 m_timer = new QTimer ( this ); 109 m_timer = new QTimer ( this );
110 connect ( m_timer, SIGNAL( timeout ( ) ), this, SLOT( timeout ( ) ) ); 110 connect ( m_timer, SIGNAL( timeout ( ) ), this, SLOT( timeout ( ) ) );
111 111
112 connect ( btngrp, SIGNAL( clicked ( int ) ), this, SLOT( buttonClicked ( int ) ) ); 112 connect ( btngrp, SIGNAL( clicked ( int ) ), this, SLOT( buttonClicked ( int ) ) );
113 connect ( cancel, SIGNAL( clicked ( ) ), this, SLOT( cancelClicked ( ) ) ); 113 connect ( cancel, SIGNAL( clicked ( ) ), this, SLOT( cancelClicked ( ) ) );
114 114
115 m_progress-> hide ( ); 115 m_progress-> hide ( );
116 Global::hideInputMethod ( ); 116 Global::hideInputMethod ( );
117 117
118#ifdef QT_QWS_CUSTOM 118#ifdef QT_QWS_SHARP
119 119
120 shutdown-> hide ( ); 120 shutdown-> hide ( );
121#endif 121#endif
122} 122}
123 123
124void ShutdownImpl::buttonClicked ( int b ) 124void ShutdownImpl::buttonClicked ( int b )
125{ 125{
126 m_counter = 0; 126 m_counter = 0;
127 127
128 switch ( b ) { 128 switch ( b ) {
129 case 1: 129 case 1:
130 m_operation = ShutdownSystem; 130 m_operation = ShutdownSystem;
131 break; 131 break;
132 case 2: 132 case 2:
133 m_operation = RebootSystem; 133 m_operation = RebootSystem;
134 break; 134 break;
135 case 3: 135 case 3:
136 m_operation = RestartDesktop; 136 m_operation = RestartDesktop;
137 break; 137 break;
138 case 4: 138 case 4:
139 m_operation = TerminateDesktop; 139 m_operation = TerminateDesktop;
140 break; 140 break;
141 } 141 }
142 m_info-> hide ( ); 142 m_info-> hide ( );
143 m_progress-> show ( ); 143 m_progress-> show ( );
144 m_timer-> start ( 300 ); 144 m_timer-> start ( 300 );
145 timeout ( ); 145 timeout ( );
146} 146}
147 147
148void ShutdownImpl::cancelClicked ( ) 148void ShutdownImpl::cancelClicked ( )
149{ 149{
150 m_progress-> hide ( ); 150 m_progress-> hide ( );
151 m_info-> show ( ); 151 m_info-> show ( );
152 if ( m_timer-> isActive ( ) ) 152 if ( m_timer-> isActive ( ) )
153 m_timer-> stop ( ); 153 m_timer-> stop ( );
154 else 154 else
155 close ( ); 155 close ( );
156} 156}
157 157
158void ShutdownImpl::timeout ( ) 158void ShutdownImpl::timeout ( )
159{ 159{
160 if ( ( m_counter += 2 ) > m_progress-> totalSteps ( ) ) { 160 if ( ( m_counter += 2 ) > m_progress-> totalSteps ( ) ) {
161 m_progress-> hide ( ); 161 m_progress-> hide ( );
162 m_timer-> stop ( ); 162 m_timer-> stop ( );
163 emit shutdown ( m_operation ); 163 emit shutdown ( m_operation );
164 } 164 }
165 else 165 else
166 m_progress-> setProgress ( m_counter ); 166 m_progress-> setProgress ( m_counter );
167} 167}
168 168
169void ShutdownImpl::hide ( ) 169void ShutdownImpl::hide ( )
170{ 170{
171 if ( isVisible ( )) { 171 if ( isVisible ( )) {
172 // hack - shutdown is a launcher dialog, but treated like a standalone app 172 // hack - shutdown is a launcher dialog, but treated like a standalone app
173 QCopEnvelope e( "QPE/System", "closing(QString)" ); 173 QCopEnvelope e( "QPE/System", "closing(QString)" );
174 e << QString ( "shutdown" ); 174 e << QString ( "shutdown" );
175 175
176 } 176 }
177 QWidget::hide ( ); 177 QWidget::hide ( );
178} 178}
179 179
diff --git a/core/launcher/taskbar.cpp b/core/launcher/taskbar.cpp
index 7d1aaf1..1e6b74e 100644
--- a/core/launcher/taskbar.cpp
+++ b/core/launcher/taskbar.cpp
@@ -1,338 +1,338 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qtopia Environment. 4** This file is part of 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 20
21#include "startmenu.h" 21#include "startmenu.h"
22#include "inputmethods.h" 22#include "inputmethods.h"
23#include "runningappbar.h" 23#include "runningappbar.h"
24#include "systray.h" 24#include "systray.h"
25#include "calibrate.h" 25#include "calibrate.h"
26#include "wait.h" 26#include "wait.h"
27#include "appicons.h" 27#include "appicons.h"
28 28
29#include "taskbar.h" 29#include "taskbar.h"
30#include "desktop.h" 30#include "desktop.h"
31 31
32#include <qpe/qpeapplication.h> 32#include <qpe/qpeapplication.h>
33#include <qpe/qcopenvelope_qws.h> 33#include <qpe/qcopenvelope_qws.h>
34#include <qpe/global.h> 34#include <qpe/global.h>
35 35
36#if defined( QT_QWS_CUSTOM ) || defined( QT_QWS_IPAQ ) 36#if defined( QT_QWS_SHARP ) || defined( QT_QWS_IPAQ )
37#include <qpe/custom.h> 37#include <qpe/custom.h>
38#endif 38#endif
39 39
40#include <opie/odevice.h> 40#include <opie/odevice.h>
41 41
42#include <qlabel.h> 42#include <qlabel.h>
43#include <qlayout.h> 43#include <qlayout.h>
44#include <qtimer.h> 44#include <qtimer.h>
45#include <qwindowsystem_qws.h> 45#include <qwindowsystem_qws.h>
46#include <qwidgetstack.h> 46#include <qwidgetstack.h>
47 47
48#if defined( Q_WS_QWS ) 48#if defined( Q_WS_QWS )
49#include <qwsdisplay_qws.h> 49#include <qwsdisplay_qws.h>
50#include <qgfx_qws.h> 50#include <qgfx_qws.h>
51#endif 51#endif
52 52
53 53
54using namespace Opie; 54using namespace Opie;
55 55
56#define FACTORY(T) \ 56#define FACTORY(T) \
57 static QWidget *new##T( bool maximized ) { \ 57 static QWidget *new##T( bool maximized ) { \
58 QWidget *w = new T( 0, "test", QWidget::WDestructiveClose | QWidget::WGroupLeader ); \ 58 QWidget *w = new T( 0, "test", QWidget::WDestructiveClose | QWidget::WGroupLeader ); \
59 if ( maximized ) { \ 59 if ( maximized ) { \
60 if ( qApp->desktop()->width() <= 350 ) { \ 60 if ( qApp->desktop()->width() <= 350 ) { \
61 w->showMaximized(); \ 61 w->showMaximized(); \
62 } else { \ 62 } else { \
63 w->resize( QSize( 300, 300 ) ); \ 63 w->resize( QSize( 300, 300 ) ); \
64 } \ 64 } \
65 } \ 65 } \
66 w->show(); \ 66 w->show(); \
67 return w; \ 67 return w; \
68 } 68 }
69 69
70 70
71#ifdef SINGLE_APP 71#ifdef SINGLE_APP
72#define APP(a,b,c,d) FACTORY(b) 72#define APP(a,b,c,d) FACTORY(b)
73#include "../launcher/apps.h" 73#include "../launcher/apps.h"
74#undef APP 74#undef APP
75#endif // SINGLE_APP 75#endif // SINGLE_APP
76 76
77static Global::Command builtins[] = { 77static Global::Command builtins[] = {
78 78
79#ifdef SINGLE_APP 79#ifdef SINGLE_APP
80#define APP(a,b,c,d) { a, new##b, c }, 80#define APP(a,b,c,d) { a, new##b, c },
81#include "../launcher/apps.h" 81#include "../launcher/apps.h"
82#undef APP 82#undef APP
83#endif 83#endif
84 84
85#if defined(QT_QWS_IPAQ) || defined(QT_QWS_CASSIOPEIA) || defined(QT_QWS_EBX) 85#if defined(QT_QWS_IPAQ) || defined(QT_QWS_CASSIOPEIA) || defined(QT_QWS_EBX)
86 { "calibrate", TaskBar::calibrate, 1, 0 }, 86 { "calibrate", TaskBar::calibrate, 1, 0 },
87#endif 87#endif
88#if !defined(QT_QWS_CASSIOPEIA) 88#if !defined(QT_QWS_CASSIOPEIA)
89 { "shutdown", Global::shutdown, 1, 0 }, 89 { "shutdown", Global::shutdown, 1, 0 },
90// { "run", run, 1, 0 }, 90// { "run", run, 1, 0 },
91#endif 91#endif
92 92
93 { 0, TaskBar::calibrate, 0, 0 }, 93 { 0, TaskBar::calibrate, 0, 0 },
94}; 94};
95 95
96static bool initNumLock() 96static bool initNumLock()
97{ 97{
98#ifdef QPE_INITIAL_NUMLOCK_STATE 98#ifdef QPE_INITIAL_NUMLOCK_STATE
99 QPE_INITIAL_NUMLOCK_STATE 99 QPE_INITIAL_NUMLOCK_STATE
100#endif 100#endif
101 return FALSE; 101 return FALSE;
102} 102}
103 103
104class LockKeyState : public QWidget 104class LockKeyState : public QWidget
105{ 105{
106public: 106public:
107 LockKeyState( QWidget *parent ) : 107 LockKeyState( QWidget *parent ) :
108 QWidget(parent), 108 QWidget(parent),
109 nl(initNumLock()), cl(FALSE) 109 nl(initNumLock()), cl(FALSE)
110 { 110 {
111 nl_pm = Resource::loadPixmap("numlock"); 111 nl_pm = Resource::loadPixmap("numlock");
112 cl_pm = Resource::loadPixmap("capslock"); 112 cl_pm = Resource::loadPixmap("capslock");
113 } 113 }
114 QSize sizeHint() const 114 QSize sizeHint() const
115 { 115 {
116 return QSize(nl_pm.width()+2,nl_pm.width()+nl_pm.height()+1); 116 return QSize(nl_pm.width()+2,nl_pm.width()+nl_pm.height()+1);
117 } 117 }
118 void toggleNumLockState() 118 void toggleNumLockState()
119 { 119 {
120 nl = !nl; repaint(); 120 nl = !nl; repaint();
121 } 121 }
122 void toggleCapsLockState() 122 void toggleCapsLockState()
123 { 123 {
124 cl = !cl; repaint(); 124 cl = !cl; repaint();
125 } 125 }
126 void paintEvent( QPaintEvent * ) 126 void paintEvent( QPaintEvent * )
127 { 127 {
128 int y = (height()-sizeHint().height())/2; 128 int y = (height()-sizeHint().height())/2;
129 QPainter p(this); 129 QPainter p(this);
130 if ( nl ) 130 if ( nl )
131 p.drawPixmap(1,y,nl_pm); 131 p.drawPixmap(1,y,nl_pm);
132 if ( cl ) 132 if ( cl )
133 p.drawPixmap(1,y+nl_pm.height()+1,cl_pm); 133 p.drawPixmap(1,y+nl_pm.height()+1,cl_pm);
134 } 134 }
135private: 135private:
136 QPixmap nl_pm, cl_pm; 136 QPixmap nl_pm, cl_pm;
137 bool nl, cl; 137 bool nl, cl;
138}; 138};
139 139
140TaskBar::~TaskBar() 140TaskBar::~TaskBar()
141{ 141{
142} 142}
143 143
144 144
145TaskBar::TaskBar() : QHBox(0, 0, WStyle_Customize | WStyle_Tool | WStyle_StaysOnTop | WGroupLeader) 145TaskBar::TaskBar() : QHBox(0, 0, WStyle_Customize | WStyle_Tool | WStyle_StaysOnTop | WGroupLeader)
146{ 146{
147 Global::setBuiltinCommands(builtins); 147 Global::setBuiltinCommands(builtins);
148 148
149 sm = new StartMenu( this ); 149 sm = new StartMenu( this );
150 150
151 inputMethods = new InputMethods( this ); 151 inputMethods = new InputMethods( this );
152 connect( inputMethods, SIGNAL(inputToggled(bool)), 152 connect( inputMethods, SIGNAL(inputToggled(bool)),
153 this, SLOT(calcMaxWindowRect()) ); 153 this, SLOT(calcMaxWindowRect()) );
154 //new QuickLauncher( this ); 154 //new QuickLauncher( this );
155 155
156 stack = new QWidgetStack( this ); 156 stack = new QWidgetStack( this );
157 stack->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Minimum ) ); 157 stack->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Minimum ) );
158 label = new QLabel(stack); 158 label = new QLabel(stack);
159 159
160 //mru = new MRUList( stack ); 160 //mru = new MRUList( stack );
161 //stack->raiseWidget( mru ); 161 //stack->raiseWidget( mru );
162 162
163 runningAppBar = new RunningAppBar(stack); 163 runningAppBar = new RunningAppBar(stack);
164 stack->raiseWidget(runningAppBar); 164 stack->raiseWidget(runningAppBar);
165 165
166 waitIcon = new Wait( this ); 166 waitIcon = new Wait( this );
167 (void) new AppIcons( this ); 167 (void) new AppIcons( this );
168 168
169 sysTray = new SysTray( this ); 169 sysTray = new SysTray( this );
170 170
171 // ## make customizable in some way? 171 // ## make customizable in some way?
172#ifdef QT_QWS_CUSTOM 172#ifdef QT_QWS_SHARP
173 lockState = new LockKeyState( this ); 173 lockState = new LockKeyState( this );
174#else 174#else
175 lockState = 0; 175 lockState = 0;
176#endif 176#endif
177 177
178#if defined(Q_WS_QWS) 178#if defined(Q_WS_QWS)
179#if !defined(QT_NO_COP) 179#if !defined(QT_NO_COP)
180 QCopChannel *channel = new QCopChannel( "QPE/TaskBar", this ); 180 QCopChannel *channel = new QCopChannel( "QPE/TaskBar", this );
181 connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), 181 connect( channel, SIGNAL(received(const QCString&, const QByteArray&)),
182 this, SLOT(receive(const QCString&, const QByteArray&)) ); 182 this, SLOT(receive(const QCString&, const QByteArray&)) );
183#endif 183#endif
184#endif 184#endif
185 waitTimer = new QTimer( this ); 185 waitTimer = new QTimer( this );
186 connect( waitTimer, SIGNAL( timeout() ), this, SLOT( stopWait() ) ); 186 connect( waitTimer, SIGNAL( timeout() ), this, SLOT( stopWait() ) );
187 clearer = new QTimer( this ); 187 clearer = new QTimer( this );
188 QObject::connect(clearer, SIGNAL(timeout()), SLOT(clearStatusBar())); 188 QObject::connect(clearer, SIGNAL(timeout()), SLOT(clearStatusBar()));
189 QObject::connect(clearer, SIGNAL(timeout()), sysTray, SLOT(show())); 189 QObject::connect(clearer, SIGNAL(timeout()), sysTray, SLOT(show()));
190} 190}
191 191
192void TaskBar::setStatusMessage( const QString &text ) 192void TaskBar::setStatusMessage( const QString &text )
193{ 193{
194 if ( !text.isEmpty() ) { 194 if ( !text.isEmpty() ) {
195 label->setText( text ); 195 label->setText( text );
196 stack->raiseWidget( label ); 196 stack->raiseWidget( label );
197 if ( sysTray && ( label->fontMetrics().width( text ) > label->width() ) ) 197 if ( sysTray && ( label->fontMetrics().width( text ) > label->width() ) )
198 sysTray->hide(); 198 sysTray->hide();
199 clearer->start( 3000, TRUE ); 199 clearer->start( 3000, TRUE );
200 } else { 200 } else {
201 clearStatusBar(); 201 clearStatusBar();
202 } 202 }
203} 203}
204 204
205void TaskBar::clearStatusBar() 205void TaskBar::clearStatusBar()
206{ 206{
207 label->clear(); 207 label->clear();
208 stack->raiseWidget(runningAppBar); 208 stack->raiseWidget(runningAppBar);
209 // stack->raiseWidget( mru ); 209 // stack->raiseWidget( mru );
210} 210}
211 211
212void TaskBar::startWait() 212void TaskBar::startWait()
213{ 213{
214 waitIcon->setWaiting( true ); 214 waitIcon->setWaiting( true );
215 // a catchall stop after 10 seconds... 215 // a catchall stop after 10 seconds...
216 waitTimer->start( 10 * 1000, true ); 216 waitTimer->start( 10 * 1000, true );
217} 217}
218 218
219void TaskBar::stopWait(const QString& /*app*/) 219void TaskBar::stopWait(const QString& /*app*/)
220{ 220{
221 waitTimer->stop(); 221 waitTimer->stop();
222 //mru->addTask(sm->execToLink(app)); 222 //mru->addTask(sm->execToLink(app));
223 waitIcon->setWaiting( false ); 223 waitIcon->setWaiting( false );
224} 224}
225 225
226void TaskBar::stopWait() 226void TaskBar::stopWait()
227{ 227{
228 waitTimer->stop(); 228 waitTimer->stop();
229 229
230 waitIcon->setWaiting( false ); 230 waitIcon->setWaiting( false );
231} 231}
232 232
233void TaskBar::resizeEvent( QResizeEvent *e ) 233void TaskBar::resizeEvent( QResizeEvent *e )
234{ 234{
235 QHBox::resizeEvent( e ); 235 QHBox::resizeEvent( e );
236 calcMaxWindowRect(); 236 calcMaxWindowRect();
237} 237}
238 238
239void TaskBar::styleChange( QStyle &s ) 239void TaskBar::styleChange( QStyle &s )
240{ 240{
241 QHBox::styleChange( s ); 241 QHBox::styleChange( s );
242 calcMaxWindowRect(); 242 calcMaxWindowRect();
243} 243}
244 244
245void TaskBar::calcMaxWindowRect() 245void TaskBar::calcMaxWindowRect()
246{ 246{
247#ifdef Q_WS_QWS 247#ifdef Q_WS_QWS
248 QRect wr; 248 QRect wr;
249 int displayWidth = qApp->desktop()->width(); 249 int displayWidth = qApp->desktop()->width();
250 QRect ir = inputMethods->inputRect(); 250 QRect ir = inputMethods->inputRect();
251 if ( ir.isValid() ) { 251 if ( ir.isValid() ) {
252 wr.setCoords( 0, 0, displayWidth-1, ir.top()-1 ); 252 wr.setCoords( 0, 0, displayWidth-1, ir.top()-1 );
253 } else { 253 } else {
254 wr.setCoords( 0, 0, displayWidth-1, y()-1 ); 254 wr.setCoords( 0, 0, displayWidth-1, y()-1 );
255 } 255 }
256 256
257#if QT_VERSION < 300 257#if QT_VERSION < 300
258 QWSServer::setMaxWindowRect( qt_screen->mapToDevice(wr, 258 QWSServer::setMaxWindowRect( qt_screen->mapToDevice(wr,
259 QSize(qt_screen->width(),qt_screen->height())) 259 QSize(qt_screen->width(),qt_screen->height()))
260 ); 260 );
261#else 261#else
262 QWSServer::setMaxWindowRect( wr ); 262 QWSServer::setMaxWindowRect( wr );
263#endif 263#endif
264#endif 264#endif
265} 265}
266 266
267void TaskBar::receive( const QCString &msg, const QByteArray &data ) 267void TaskBar::receive( const QCString &msg, const QByteArray &data )
268{ 268{
269 QDataStream stream( data, IO_ReadOnly ); 269 QDataStream stream( data, IO_ReadOnly );
270 if ( msg == "message(QString)" ) { 270 if ( msg == "message(QString)" ) {
271 QString text; 271 QString text;
272 stream >> text; 272 stream >> text;
273 setStatusMessage( text ); 273 setStatusMessage( text );
274 } else if ( msg == "hideInputMethod()" ) { 274 } else if ( msg == "hideInputMethod()" ) {
275 inputMethods->hideInputMethod(); 275 inputMethods->hideInputMethod();
276 } else if ( msg == "showInputMethod()" ) { 276 } else if ( msg == "showInputMethod()" ) {
277 inputMethods->showInputMethod(); 277 inputMethods->showInputMethod();
278 } else if ( msg == "reloadInputMethods()" ) { 278 } else if ( msg == "reloadInputMethods()" ) {
279 inputMethods->loadInputMethods(); 279 inputMethods->loadInputMethods();
280 } else if ( msg == "reloadApps()" ) { 280 } else if ( msg == "reloadApps()" ) {
281 sm->reloadApps(); 281 sm->reloadApps();
282 } else if ( msg == "reloadApplets()" ) { 282 } else if ( msg == "reloadApplets()" ) {
283 sysTray->clearApplets(); 283 sysTray->clearApplets();
284 sysTray->addApplets(); 284 sysTray->addApplets();
285 sm->reloadApplets(); 285 sm->reloadApplets();
286 } else if ( msg == "soundAlarm()" ) { 286 } else if ( msg == "soundAlarm()" ) {
287 Desktop::soundAlarm(); 287 Desktop::soundAlarm();
288 } 288 }
289 else if ( msg == "setLed(int,bool)" ) { 289 else if ( msg == "setLed(int,bool)" ) {
290 int led, status; 290 int led, status;
291 stream >> led >> status; 291 stream >> led >> status;
292 292
293 QValueList <OLed> ll = ODevice::inst ( )-> ledList ( ); 293 QValueList <OLed> ll = ODevice::inst ( )-> ledList ( );
294 if ( ll. count ( )){ 294 if ( ll. count ( )){
295 OLed l = ll. contains ( Led_Mail ) ? Led_Mail : ll [0]; 295 OLed l = ll. contains ( Led_Mail ) ? Led_Mail : ll [0];
296 bool canblink = ODevice::inst ( )-> ledStateList ( l ). contains ( Led_BlinkSlow ); 296 bool canblink = ODevice::inst ( )-> ledStateList ( l ). contains ( Led_BlinkSlow );
297 297
298 ODevice::inst ( )-> setLedState ( l, status ? ( canblink ? Led_BlinkSlow : Led_On ) : Led_Off ); 298 ODevice::inst ( )-> setLedState ( l, status ? ( canblink ? Led_BlinkSlow : Led_On ) : Led_Off );
299 } 299 }
300 } 300 }
301} 301}
302 302
303QWidget *TaskBar::calibrate(bool) 303QWidget *TaskBar::calibrate(bool)
304{ 304{
305#ifdef Q_WS_QWS 305#ifdef Q_WS_QWS
306 Calibrate *c = new Calibrate; 306 Calibrate *c = new Calibrate;
307 c->show(); 307 c->show();
308 return c; 308 return c;
309#else 309#else
310 return 0; 310 return 0;
311#endif 311#endif
312} 312}
313 313
314void TaskBar::toggleNumLockState() 314void TaskBar::toggleNumLockState()
315{ 315{
316 if ( lockState ) lockState->toggleNumLockState(); 316 if ( lockState ) lockState->toggleNumLockState();
317} 317}
318 318
319void TaskBar::toggleCapsLockState() 319void TaskBar::toggleCapsLockState()
320{ 320{
321 if ( lockState ) lockState->toggleCapsLockState(); 321 if ( lockState ) lockState->toggleCapsLockState();
322} 322}
323 323
324void TaskBar::toggleSymbolInput() 324void TaskBar::toggleSymbolInput()
325{ 325{
326 if ( inputMethods->currentShown() == "Unicode" ) { 326 if ( inputMethods->currentShown() == "Unicode" ) {
327 inputMethods->hideInputMethod(); 327 inputMethods->hideInputMethod();
328 } else { 328 } else {
329 inputMethods->showInputMethod("Unicode"); 329 inputMethods->showInputMethod("Unicode");
330 } 330 }
331} 331}
332 332
333bool TaskBar::recoverMemory() 333bool TaskBar::recoverMemory()
334{ 334{
335 //eturn mru->quitOldApps(); 335 //eturn mru->quitOldApps();
336 return true; 336 return true;
337} 337}
338 338
diff --git a/core/multimedia/opieplayer/loopcontrol_threaded.cpp b/core/multimedia/opieplayer/loopcontrol_threaded.cpp
index c7dc7a8..1b89bc8 100644
--- a/core/multimedia/opieplayer/loopcontrol_threaded.cpp
+++ b/core/multimedia/opieplayer/loopcontrol_threaded.cpp
@@ -1,234 +1,234 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qtopia Environment. 4** This file is part of 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 _REENTRANT 20#define _REENTRANT
21 21
22#include <qpe/qpeapplication.h> 22#include <qpe/qpeapplication.h>
23#include <qimage.h> 23#include <qimage.h>
24#include <qpainter.h> 24#include <qpainter.h>
25#ifdef Q_WS_QWS 25#ifdef Q_WS_QWS
26#include <qpe/qcopenvelope_qws.h> 26#include <qpe/qcopenvelope_qws.h>
27#endif 27#endif
28#include "mediaplayerplugininterface.h" 28#include "mediaplayerplugininterface.h"
29#include <stdio.h> 29#include <stdio.h>
30#include <stdlib.h> 30#include <stdlib.h>
31#include <string.h> 31#include <string.h>
32#include <time.h> 32#include <time.h>
33#include <unistd.h> 33#include <unistd.h>
34#include <pthread.h> 34#include <pthread.h>
35#include "loopcontrol.h" 35#include "loopcontrol.h"
36#include "audiodevice.h" 36#include "audiodevice.h"
37#include "videowidget.h" 37#include "videowidget.h"
38#include "audiowidget.h" 38#include "audiowidget.h"
39#include "mediaplayerstate.h" 39#include "mediaplayerstate.h"
40 40
41 41
42#if defined(QT_QWS_CUSTOM) || defined(QT_QWS_IPAQ) 42#if defined(QT_QWS_SHARP) || defined(QT_QWS_IPAQ)
43#define USE_REALTIME_AUDIO_THREAD 43#define USE_REALTIME_AUDIO_THREAD
44#endif 44#endif
45 45
46 46
47extern VideoWidget *videoUI; // now only needed to tell it to play a frame 47extern VideoWidget *videoUI; // now only needed to tell it to play a frame
48extern MediaPlayerState *mediaPlayerState; 48extern MediaPlayerState *mediaPlayerState;
49 49
50 50
51#define DecodeLoopDebug(x) qDebug x 51#define DecodeLoopDebug(x) qDebug x
52//#define DecodeLoopDebug(x) 52//#define DecodeLoopDebug(x)
53 53
54 54
55 static char *audioBuffer = NULL; 55 static char *audioBuffer = NULL;
56static AudioDevice *audioDevice = NULL; 56static AudioDevice *audioDevice = NULL;
57 static bool disabledSuspendScreenSaver = FALSE; 57 static bool disabledSuspendScreenSaver = FALSE;
58 58
59 59
60 pthread_tvideo_tid; 60 pthread_tvideo_tid;
61pthread_attr_t video_attr; 61pthread_attr_t video_attr;
62 pthread_taudio_tid; 62 pthread_taudio_tid;
63pthread_attr_t audio_attr; 63pthread_attr_t audio_attr;
64 64
65 65
66bool emitPlayFinished = FALSE; 66bool emitPlayFinished = FALSE;
67bool emitChangePos = FALSE; 67bool emitChangePos = FALSE;
68 68
69 69
70class Mutex { 70class Mutex {
71public: 71public:
72 Mutex() { 72 Mutex() {
73 pthread_mutexattr_t attr; 73 pthread_mutexattr_t attr;
74 pthread_mutexattr_init( &attr ); 74 pthread_mutexattr_init( &attr );
75 pthread_mutex_init( &mutex, &attr ); 75 pthread_mutex_init( &mutex, &attr );
76 pthread_mutexattr_destroy( &attr ); 76 pthread_mutexattr_destroy( &attr );
77 } 77 }
78 78
79 ~Mutex() { 79 ~Mutex() {
80 pthread_mutex_destroy( &mutex ); 80 pthread_mutex_destroy( &mutex );
81 } 81 }
82 82
83 void lock() { 83 void lock() {
84 pthread_mutex_lock( &mutex ); 84 pthread_mutex_lock( &mutex );
85 } 85 }
86 86
87 void unlock() { 87 void unlock() {
88 pthread_mutex_unlock( &mutex ); 88 pthread_mutex_unlock( &mutex );
89 } 89 }
90/* 90/*
91 bool locked() { 91 bool locked() {
92 switch ( pthread_mutex_trylock( &mutex ) ) { 92 switch ( pthread_mutex_trylock( &mutex ) ) {
93 case EBUSY: 93 case EBUSY:
94 return TRUE; 94 return TRUE;
95 case 0: 95 case 0:
96 pthread_mutex_unlock( &mutex ); 96 pthread_mutex_unlock( &mutex );
97 default: 97 default:
98 return FALSE; 98 return FALSE;
99 } 99 }
100 } 100 }
101*/ 101*/
102private: 102private:
103 pthread_mutex_t mutex; 103 pthread_mutex_t mutex;
104}; 104};
105 105
106 106
107class currentFrameObj { 107class currentFrameObj {
108public: 108public:
109 currentFrameObj() : value( 0 ) { } 109 currentFrameObj() : value( 0 ) { }
110 void set( long f ) { 110 void set( long f ) {
111 mutex.lock(); 111 mutex.lock();
112 value = f; 112 value = f;
113 mediaPlayerState->curDecoder()->videoSetFrame( f, 0 ); 113 mediaPlayerState->curDecoder()->videoSetFrame( f, 0 );
114 mutex.unlock(); 114 mutex.unlock();
115 } 115 }
116 long get() { 116 long get() {
117 return value; 117 return value;
118 } 118 }
119private: 119private:
120 long value; 120 long value;
121 Mutex mutex; 121 Mutex mutex;
122}; 122};
123 123
124 124
125Mutex *videoMutex; 125Mutex *videoMutex;
126Mutex *audioMutex; 126Mutex *audioMutex;
127Mutex *globalMutex; 127Mutex *globalMutex;
128 128
129 129
130 clock_tbegin; 130 clock_tbegin;
131 131
132 132
133LoopControl::LoopControl( QObject *parent, const char *name ) 133LoopControl::LoopControl( QObject *parent, const char *name )
134 : QObject( parent, name ) { 134 : QObject( parent, name ) {
135 isMuted = FALSE; 135 isMuted = FALSE;
136 connect( qApp, SIGNAL( volumeChanged(bool) ), this, SLOT( setMute(bool) ) ); 136 connect( qApp, SIGNAL( volumeChanged(bool) ), this, SLOT( setMute(bool) ) );
137 timerid = startTimer( 200 ); 137 timerid = startTimer( 200 );
138 videoMutex = new Mutex; 138 videoMutex = new Mutex;
139 audioMutex = new Mutex; 139 audioMutex = new Mutex;
140 globalMutex = new Mutex; 140 globalMutex = new Mutex;
141 //begin = clock(); 141 //begin = clock();
142} 142}
143 143
144 144
145LoopControl::~LoopControl() { 145LoopControl::~LoopControl() {
146 stop(); 146 stop();
147 killTimer( timerid ); 147 killTimer( timerid );
148} 148}
149 149
150 150
151static bool sendingNewPos = FALSE; 151static bool sendingNewPos = FALSE;
152static long prev_frame = 0; 152static long prev_frame = 0;
153static int currentSample = 0; 153static int currentSample = 0;
154 154
155 155
156void LoopControl::timerEvent( QTimerEvent* ) { 156void LoopControl::timerEvent( QTimerEvent* ) {
157 // We need to emit playFinished from the main thread, not one of the 157 // We need to emit playFinished from the main thread, not one of the
158 // decoding threads else we'll have all kinds of yucky things happen (reentrance). 158 // decoding threads else we'll have all kinds of yucky things happen (reentrance).
159 // playFinished will eventually call stop() which stops these threads. 159 // playFinished will eventually call stop() which stops these threads.
160 if ( emitPlayFinished ) { 160 if ( emitPlayFinished ) {
161 emitPlayFinished = FALSE; 161 emitPlayFinished = FALSE;
162 mediaPlayerState->setPlaying( FALSE ); 162 mediaPlayerState->setPlaying( FALSE );
163 } 163 }
164 164
165 if ( emitChangePos ) { 165 if ( emitChangePos ) {
166 166
167 emitChangePos = FALSE; 167 emitChangePos = FALSE;
168 168
169 if ( hasVideoChannel && hasAudioChannel ) { 169 if ( hasVideoChannel && hasAudioChannel ) {
170 sendingNewPos = TRUE; 170 sendingNewPos = TRUE;
171 mediaPlayerState->setPosition( current_frame ); 171 mediaPlayerState->setPosition( current_frame );
172 } else if ( hasVideoChannel ) { 172 } else if ( hasVideoChannel ) {
173 sendingNewPos = TRUE; 173 sendingNewPos = TRUE;
174 mediaPlayerState->setPosition( current_frame ); 174 mediaPlayerState->setPosition( current_frame );
175 } else if ( hasAudioChannel ) { 175 } else if ( hasAudioChannel ) {
176 sendingNewPos = TRUE; 176 sendingNewPos = TRUE;
177 mediaPlayerState->setPosition( audioSampleCounter ); 177 mediaPlayerState->setPosition( audioSampleCounter );
178 } 178 }
179 179
180 } 180 }
181} 181}
182 182
183 183
184 184
185 185
186void LoopControl::setPosition( long pos ) { 186void LoopControl::setPosition( long pos ) {
187 if ( sendingNewPos ) { 187 if ( sendingNewPos ) {
188 sendingNewPos = FALSE; 188 sendingNewPos = FALSE;
189 return; 189 return;
190 } 190 }
191 191
192 if ( hasVideoChannel && hasAudioChannel ) { 192 if ( hasVideoChannel && hasAudioChannel ) {
193 videoMutex->lock(); 193 videoMutex->lock();
194 audioMutex->lock(); 194 audioMutex->lock();
195qDebug("setting position"); 195qDebug("setting position");
196 playtime.restart(); 196 playtime.restart();
197 playtime = playtime.addMSecs( -pos * 1000 / framerate ); 197 playtime = playtime.addMSecs( -pos * 1000 / framerate );
198 //begin = clock() - (double)pos * CLOCKS_PER_SEC / framerate; 198 //begin = clock() - (double)pos * CLOCKS_PER_SEC / framerate;
199 current_frame = pos + 1; 199 current_frame = pos + 1;
200 mediaPlayerState->curDecoder()->videoSetFrame( current_frame, stream ); 200 mediaPlayerState->curDecoder()->videoSetFrame( current_frame, stream );
201 prev_frame = current_frame - 1; 201 prev_frame = current_frame - 1;
202 currentSample = (int)( current_frame * freq / framerate ); 202 currentSample = (int)( current_frame * freq / framerate );
203 mediaPlayerState->curDecoder()->audioSetSample( currentSample, stream ); 203 mediaPlayerState->curDecoder()->audioSetSample( currentSample, stream );
204 audioSampleCounter = currentSample - 1; 204 audioSampleCounter = currentSample - 1;
205 audioMutex->unlock(); 205 audioMutex->unlock();
206 videoMutex->unlock(); 206 videoMutex->unlock();
207 } else if ( hasVideoChannel ) { 207 } else if ( hasVideoChannel ) {
208 videoMutex->lock(); 208 videoMutex->lock();
209 playtime.restart(); 209 playtime.restart();
210 playtime = playtime.addMSecs( -pos * 1000 / framerate ); 210 playtime = playtime.addMSecs( -pos * 1000 / framerate );
211 //begin = clock() - (double)pos * CLOCKS_PER_SEC / framerate; 211 //begin = clock() - (double)pos * CLOCKS_PER_SEC / framerate;
212 current_frame = pos + 1; 212 current_frame = pos + 1;
213 mediaPlayerState->curDecoder()->videoSetFrame( current_frame, stream ); 213 mediaPlayerState->curDecoder()->videoSetFrame( current_frame, stream );
214 videoMutex->unlock(); 214 videoMutex->unlock();
215 prev_frame = current_frame - 1; 215 prev_frame = current_frame - 1;
216 } else if ( hasAudioChannel ) { 216 } else if ( hasAudioChannel ) {
217 audioMutex->lock(); 217 audioMutex->lock();
218 playtime.restart(); 218 playtime.restart();
219 playtime = playtime.addMSecs( -pos * 1000 / freq ); 219 playtime = playtime.addMSecs( -pos * 1000 / freq );
220 //begin = clock() - (double)pos * CLOCKS_PER_SEC / freq; 220 //begin = clock() - (double)pos * CLOCKS_PER_SEC / freq;
221 currentSample = pos + 1; // (int)( current_frame * freq / framerate ); 221 currentSample = pos + 1; // (int)( current_frame * freq / framerate );
222 mediaPlayerState->curDecoder()->audioSetSample( currentSample, stream ); 222 mediaPlayerState->curDecoder()->audioSetSample( currentSample, stream );
223 audioSampleCounter = currentSample - 1; 223 audioSampleCounter = currentSample - 1;
224 audioMutex->unlock(); 224 audioMutex->unlock();
225 } 225 }
226} 226}
227 227
228 228
229void *startVideoThread( void *ptr ) { 229void *startVideoThread( void *ptr ) {
230 LoopControl *mpegView = (LoopControl *)ptr; 230 LoopControl *mpegView = (LoopControl *)ptr;
231 mpegView->startVideo(); 231 mpegView->startVideo();
232 return 0; 232 return 0;
233} 233}
234 234
diff --git a/library/alarmserver.cpp b/library/alarmserver.cpp
index 02bca3d..7e6e515 100644
--- a/library/alarmserver.cpp
+++ b/library/alarmserver.cpp
@@ -1,353 +1,353 @@
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 20
21#include <qdir.h> 21#include <qdir.h>
22#include <qfile.h> 22#include <qfile.h>
23#include <qmessagebox.h> 23#include <qmessagebox.h>
24#include <qtextstream.h> 24#include <qtextstream.h>
25 25
26 26
27#include <qpe/qpeapplication.h> 27#include <qpe/qpeapplication.h>
28#include "global.h" 28#include "global.h"
29#include "resource.h" 29#include "resource.h"
30 30
31#include <qpe/qcopenvelope_qws.h> 31#include <qpe/qcopenvelope_qws.h>
32#include "alarmserver.h" 32#include "alarmserver.h"
33#include <qpe/timeconversion.h> 33#include <qpe/timeconversion.h>
34 34
35#include <sys/types.h> 35#include <sys/types.h>
36#include <sys/stat.h> 36#include <sys/stat.h>
37 37
38#include <stdlib.h> 38#include <stdlib.h>
39#include <unistd.h> 39#include <unistd.h>
40 40
41struct timerEventItem { 41struct timerEventItem {
42 time_t UTCtime; 42 time_t UTCtime;
43 QCString channel, message; 43 QCString channel, message;
44 int data; 44 int data;
45 bool operator==( const timerEventItem &right ) const 45 bool operator==( const timerEventItem &right ) const
46 { 46 {
47 return ( UTCtime == right.UTCtime 47 return ( UTCtime == right.UTCtime
48 && channel == right.channel 48 && channel == right.channel
49 && message == right.message 49 && message == right.message
50 && data == right.data ); 50 && data == right.data );
51 } 51 }
52}; 52};
53 53
54class TimerReceiverObject : public QObject 54class TimerReceiverObject : public QObject
55{ 55{
56public: 56public:
57 TimerReceiverObject() { } 57 TimerReceiverObject() { }
58 ~TimerReceiverObject() { } 58 ~TimerReceiverObject() { }
59 void resetTimer(); 59 void resetTimer();
60 void setTimerEventItem(); 60 void setTimerEventItem();
61 void deleteTimer(); 61 void deleteTimer();
62protected: 62protected:
63 void timerEvent( QTimerEvent *te ); 63 void timerEvent( QTimerEvent *te );
64private: 64private:
65 QString atfilename; 65 QString atfilename;
66}; 66};
67 67
68TimerReceiverObject *timerEventReceiver = NULL; 68TimerReceiverObject *timerEventReceiver = NULL;
69QList<timerEventItem> timerEventList; 69QList<timerEventItem> timerEventList;
70timerEventItem *nearestTimerEvent = NULL; 70timerEventItem *nearestTimerEvent = NULL;
71 71
72 72
73// set the timer to go off on the next event in the list 73// set the timer to go off on the next event in the list
74void setNearestTimerEvent() 74void setNearestTimerEvent()
75{ 75{
76 nearestTimerEvent = NULL; 76 nearestTimerEvent = NULL;
77 QListIterator<timerEventItem> it( timerEventList ); 77 QListIterator<timerEventItem> it( timerEventList );
78 if ( *it ) 78 if ( *it )
79 nearestTimerEvent = *it; 79 nearestTimerEvent = *it;
80 for ( ; *it; ++it ) 80 for ( ; *it; ++it )
81 if ( (*it)->UTCtime < nearestTimerEvent->UTCtime ) 81 if ( (*it)->UTCtime < nearestTimerEvent->UTCtime )
82 nearestTimerEvent = *it; 82 nearestTimerEvent = *it;
83 if (nearestTimerEvent) 83 if (nearestTimerEvent)
84 timerEventReceiver->resetTimer(); 84 timerEventReceiver->resetTimer();
85 else 85 else
86 timerEventReceiver->deleteTimer(); 86 timerEventReceiver->deleteTimer();
87} 87}
88 88
89 89
90//store current state to file 90//store current state to file
91//Simple implementation. Should run on a timer. 91//Simple implementation. Should run on a timer.
92 92
93static void saveState() 93static void saveState()
94{ 94{
95 QString savefilename = Global::applicationFileName( "AlarmServer", "saveFile" ); 95 QString savefilename = Global::applicationFileName( "AlarmServer", "saveFile" );
96 if ( timerEventList.isEmpty() ) { 96 if ( timerEventList.isEmpty() ) {
97 unlink( savefilename ); 97 unlink( savefilename );
98 return; 98 return;
99 } 99 }
100 100
101 QFile savefile(savefilename+".new"); 101 QFile savefile(savefilename+".new");
102 if ( savefile.open(IO_WriteOnly) ) { 102 if ( savefile.open(IO_WriteOnly) ) {
103 QDataStream ds( &savefile ); 103 QDataStream ds( &savefile );
104 104
105 //save 105 //save
106 106
107 QListIterator<timerEventItem> it( timerEventList ); 107 QListIterator<timerEventItem> it( timerEventList );
108 for ( ; *it; ++it ) { 108 for ( ; *it; ++it ) {
109 ds << it.current()->UTCtime; 109 ds << it.current()->UTCtime;
110 ds << it.current()->channel; 110 ds << it.current()->channel;
111 ds << it.current()->message; 111 ds << it.current()->message;
112 ds << it.current()->data; 112 ds << it.current()->data;
113 } 113 }
114 114
115 115
116 savefile.close(); 116 savefile.close();
117 unlink( savefilename ); 117 unlink( savefilename );
118 QDir d; d.rename(savefilename+".new",savefilename); 118 QDir d; d.rename(savefilename+".new",savefilename);
119 119
120 } 120 }
121} 121}
122 122
123/*! 123/*!
124 Sets up the alarm server. Restoring to previous state (session management). 124 Sets up the alarm server. Restoring to previous state (session management).
125 */ 125 */
126void AlarmServer::initialize() 126void AlarmServer::initialize()
127{ 127{
128 //read autosave file and put events in timerEventList 128 //read autosave file and put events in timerEventList
129 129
130 QString savefilename = Global::applicationFileName( "AlarmServer", "saveFile" ); 130 QString savefilename = Global::applicationFileName( "AlarmServer", "saveFile" );
131 131
132 QFile savefile(savefilename); 132 QFile savefile(savefilename);
133 if ( savefile.open(IO_ReadOnly) ) { 133 if ( savefile.open(IO_ReadOnly) ) {
134 QDataStream ds( &savefile ); 134 QDataStream ds( &savefile );
135 while ( !ds.atEnd() ) { 135 while ( !ds.atEnd() ) {
136 timerEventItem *newTimerEventItem = new timerEventItem; 136 timerEventItem *newTimerEventItem = new timerEventItem;
137 ds >> newTimerEventItem->UTCtime; 137 ds >> newTimerEventItem->UTCtime;
138 ds >> newTimerEventItem->channel; 138 ds >> newTimerEventItem->channel;
139 ds >> newTimerEventItem->message; 139 ds >> newTimerEventItem->message;
140 ds >> newTimerEventItem->data; 140 ds >> newTimerEventItem->data;
141 timerEventList.append( newTimerEventItem ); 141 timerEventList.append( newTimerEventItem );
142 } 142 }
143 savefile.close(); 143 savefile.close();
144 if (!timerEventReceiver) 144 if (!timerEventReceiver)
145 timerEventReceiver = new TimerReceiverObject; 145 timerEventReceiver = new TimerReceiverObject;
146 setNearestTimerEvent(); 146 setNearestTimerEvent();
147 } 147 }
148} 148}
149 149
150 150
151 151
152 152
153static const char* atdir = "/var/spool/at/"; 153static const char* atdir = "/var/spool/at/";
154 154
155static bool triggerAtd( bool writeHWClock = FALSE ) 155static bool triggerAtd( bool writeHWClock = FALSE )
156{ 156{
157 QFile trigger(QString(atdir) + "trigger"); 157 QFile trigger(QString(atdir) + "trigger");
158 if ( trigger.open(IO_WriteOnly|IO_Raw) ) { 158 if ( trigger.open(IO_WriteOnly|IO_Raw) ) {
159 159
160 const char* data = 160 const char* data =
161#ifdef QT_QWS_CUSTOM 161#ifdef QT_QWS_SHARP
162 //custom atd only writes HW Clock if we write a 'W' 162 //custom atd only writes HW Clock if we write a 'W'
163 ( writeHWClock ) ? "W\n" : 163 ( writeHWClock ) ? "W\n" :
164#endif 164#endif
165 data = "\n"; 165 data = "\n";
166 int len = strlen(data); 166 int len = strlen(data);
167 int total_written = trigger.writeBlock(data,len); 167 int total_written = trigger.writeBlock(data,len);
168 if ( total_written != len ) { 168 if ( total_written != len ) {
169 QMessageBox::critical( 0, QObject::tr( "Out of Space" ), 169 QMessageBox::critical( 0, QObject::tr( "Out of Space" ),
170 QObject::tr( "Unable to schedule alarm.\nFree some memory and try again." ) ); 170 QObject::tr( "Unable to schedule alarm.\nFree some memory and try again." ) );
171 trigger.close(); 171 trigger.close();
172 QFile::remove( trigger.name() ); 172 QFile::remove( trigger.name() );
173 return FALSE; 173 return FALSE;
174 } 174 }
175 return TRUE; 175 return TRUE;
176 } 176 }
177 return FALSE; 177 return FALSE;
178} 178}
179 179
180void TimerReceiverObject::deleteTimer() 180void TimerReceiverObject::deleteTimer()
181{ 181{
182 if ( !atfilename.isEmpty() ) { 182 if ( !atfilename.isEmpty() ) {
183 unlink( atfilename ); 183 unlink( atfilename );
184 atfilename = QString::null; 184 atfilename = QString::null;
185 triggerAtd( FALSE ); 185 triggerAtd( FALSE );
186 } 186 }
187} 187}
188 188
189void TimerReceiverObject::resetTimer() 189void TimerReceiverObject::resetTimer()
190{ 190{
191 const int maxsecs = 2147000; 191 const int maxsecs = 2147000;
192 int total_written; 192 int total_written;
193 QDateTime nearest = TimeConversion::fromUTC(nearestTimerEvent->UTCtime); 193 QDateTime nearest = TimeConversion::fromUTC(nearestTimerEvent->UTCtime);
194 QDateTime now = QDateTime::currentDateTime(); 194 QDateTime now = QDateTime::currentDateTime();
195 if ( nearest < now ) 195 if ( nearest < now )
196 nearest = now; 196 nearest = now;
197 int secs = TimeConversion::secsTo( now, nearest ); 197 int secs = TimeConversion::secsTo( now, nearest );
198 if ( secs > maxsecs ) { 198 if ( secs > maxsecs ) {
199 // too far for millisecond timing 199 // too far for millisecond timing
200 secs = maxsecs; 200 secs = maxsecs;
201 } 201 }
202 202
203 // System timer (needed so that we wake from deep sleep), 203 // System timer (needed so that we wake from deep sleep),
204 // from the Epoch in seconds. 204 // from the Epoch in seconds.
205 // 205 //
206 int at_secs = TimeConversion::toUTC(nearest); 206 int at_secs = TimeConversion::toUTC(nearest);
207 // qDebug("reset timer to %d seconds from Epoch",at_secs); 207 // qDebug("reset timer to %d seconds from Epoch",at_secs);
208 QString fn = atdir + QString::number(at_secs) + "." 208 QString fn = atdir + QString::number(at_secs) + "."
209 + QString::number(getpid()); 209 + QString::number(getpid());
210 if ( fn != atfilename ) { 210 if ( fn != atfilename ) {
211 QFile atfile(fn+".new"); 211 QFile atfile(fn+".new");
212 if ( atfile.open(IO_WriteOnly|IO_Raw) ) { 212 if ( atfile.open(IO_WriteOnly|IO_Raw) ) {
213 // just wake up and delete the at file 213 // just wake up and delete the at file
214 QString cmd = "#!/bin/sh\nrm " + fn; 214 QString cmd = "#!/bin/sh\nrm " + fn;
215 total_written = atfile.writeBlock(cmd.latin1(),cmd.length()); 215 total_written = atfile.writeBlock(cmd.latin1(),cmd.length());
216 if ( total_written != int(cmd.length()) ) { 216 if ( total_written != int(cmd.length()) ) {
217 QMessageBox::critical( 0, tr("Out of Space"), 217 QMessageBox::critical( 0, tr("Out of Space"),
218 tr("Unable to schedule alarm.\n" 218 tr("Unable to schedule alarm.\n"
219 "Please free up space and try again") ); 219 "Please free up space and try again") );
220 atfile.close(); 220 atfile.close();
221 QFile::remove( atfile.name() ); 221 QFile::remove( atfile.name() );
222 return; 222 return;
223 } 223 }
224 atfile.close(); 224 atfile.close();
225 unlink( atfilename ); 225 unlink( atfilename );
226 QDir d; d.rename(fn+".new",fn); 226 QDir d; d.rename(fn+".new",fn);
227 chmod(fn.latin1(),0755); 227 chmod(fn.latin1(),0755);
228 atfilename = fn; 228 atfilename = fn;
229 triggerAtd( FALSE ); 229 triggerAtd( FALSE );
230 } else { 230 } else {
231 qWarning("Cannot open atd file %s",fn.latin1()); 231 qWarning("Cannot open atd file %s",fn.latin1());
232 } 232 }
233 } 233 }
234 // Qt timers (does the actual alarm) 234 // Qt timers (does the actual alarm)
235 // from now in milliseconds 235 // from now in milliseconds
236 // 236 //
237 qDebug("AlarmServer waiting %d seconds",secs); 237 qDebug("AlarmServer waiting %d seconds",secs);
238 startTimer( 1000 * secs + 500 ); 238 startTimer( 1000 * secs + 500 );
239} 239}
240 240
241void TimerReceiverObject::timerEvent( QTimerEvent * ) 241void TimerReceiverObject::timerEvent( QTimerEvent * )
242{ 242{
243 bool needSave = FALSE; 243 bool needSave = FALSE;
244 killTimers(); 244 killTimers();
245 if (nearestTimerEvent) { 245 if (nearestTimerEvent) {
246 if ( nearestTimerEvent->UTCtime 246 if ( nearestTimerEvent->UTCtime
247 <= TimeConversion::toUTC(QDateTime::currentDateTime()) ) { 247 <= TimeConversion::toUTC(QDateTime::currentDateTime()) ) {
248#ifndef QT_NO_COP 248#ifndef QT_NO_COP
249 QCopEnvelope e( nearestTimerEvent->channel, 249 QCopEnvelope e( nearestTimerEvent->channel,
250 nearestTimerEvent->message ); 250 nearestTimerEvent->message );
251 e << TimeConversion::fromUTC( nearestTimerEvent->UTCtime ) 251 e << TimeConversion::fromUTC( nearestTimerEvent->UTCtime )
252 << nearestTimerEvent->data; 252 << nearestTimerEvent->data;
253#endif 253#endif
254 timerEventList.remove( nearestTimerEvent ); 254 timerEventList.remove( nearestTimerEvent );
255 needSave = TRUE; 255 needSave = TRUE;
256 } 256 }
257 setNearestTimerEvent(); 257 setNearestTimerEvent();
258 } else { 258 } else {
259 resetTimer(); 259 resetTimer();
260 } 260 }
261 if ( needSave ) 261 if ( needSave )
262 saveState(); 262 saveState();
263} 263}
264 264
265/*! 265/*!
266 \class AlarmServer alarmserver.h 266 \class AlarmServer alarmserver.h
267 \brief The AlarmServer class allows alarms to be scheduled and unscheduled. 267 \brief The AlarmServer class allows alarms to be scheduled and unscheduled.
268 268
269 Applications can schedule alarms with addAlarm() and can 269 Applications can schedule alarms with addAlarm() and can
270 unschedule alarms with deleteAlarm(). When the time for an alarm 270 unschedule alarms with deleteAlarm(). When the time for an alarm
271 to go off is reached the specified \link qcop.html QCop\endlink 271 to go off is reached the specified \link qcop.html QCop\endlink
272 message is sent on the specified channel (optionally with 272 message is sent on the specified channel (optionally with
273 additional data). 273 additional data).
274 274
275 Scheduling an alarm using this class is important (rather just using 275 Scheduling an alarm using this class is important (rather just using
276 a QTimer) since the machine may be asleep and needs to get woken up using 276 a QTimer) since the machine may be asleep and needs to get woken up using
277 the Linux kernel which implements this at the kernel level to minimize 277 the Linux kernel which implements this at the kernel level to minimize
278 battery usage while asleep. 278 battery usage while asleep.
279 279
280 \ingroup qtopiaemb 280 \ingroup qtopiaemb
281 \sa QCopEnvelope 281 \sa QCopEnvelope
282*/ 282*/
283 283
284/*! 284/*!
285 Schedules an alarm to go off at (or soon after) time \a when. When 285 Schedules an alarm to go off at (or soon after) time \a when. When
286 the alarm goes off, the \link qcop.html QCop\endlink \a message will 286 the alarm goes off, the \link qcop.html QCop\endlink \a message will
287 be sent to \a channel, with \a data as a parameter. 287 be sent to \a channel, with \a data as a parameter.
288 288
289 If this function is called with exactly the same data as a previous 289 If this function is called with exactly the same data as a previous
290 call the subsequent call is ignored, so there is only ever one alarm 290 call the subsequent call is ignored, so there is only ever one alarm
291 with a given set of parameters. 291 with a given set of parameters.
292 292
293 \sa deleteAlarm() 293 \sa deleteAlarm()
294*/ 294*/
295void AlarmServer::addAlarm ( QDateTime when, const QCString& channel, 295void AlarmServer::addAlarm ( QDateTime when, const QCString& channel,
296 const QCString& message, int data) 296 const QCString& message, int data)
297{ 297{
298 if ( qApp->type() == QApplication::GuiServer ) { 298 if ( qApp->type() == QApplication::GuiServer ) {
299 bool needSave = FALSE; 299 bool needSave = FALSE;
300 // Here we are the server so either it has been directly called from 300 // Here we are the server so either it has been directly called from
301 // within the server or it has been sent to us from a client via QCop 301 // within the server or it has been sent to us from a client via QCop
302 if (!timerEventReceiver) 302 if (!timerEventReceiver)
303 timerEventReceiver = new TimerReceiverObject; 303 timerEventReceiver = new TimerReceiverObject;
304 304
305 timerEventItem *newTimerEventItem = new timerEventItem; 305 timerEventItem *newTimerEventItem = new timerEventItem;
306 newTimerEventItem->UTCtime = TimeConversion::toUTC( when ); 306 newTimerEventItem->UTCtime = TimeConversion::toUTC( when );
307 newTimerEventItem->channel = channel; 307 newTimerEventItem->channel = channel;
308 newTimerEventItem->message = message; 308 newTimerEventItem->message = message;
309 newTimerEventItem->data = data; 309 newTimerEventItem->data = data;
310 // explore the case of already having the event in here... 310 // explore the case of already having the event in here...
311 QListIterator<timerEventItem> it( timerEventList ); 311 QListIterator<timerEventItem> it( timerEventList );
312 for ( ; *it; ++it ) 312 for ( ; *it; ++it )
313 if ( *(*it) == *newTimerEventItem ) 313 if ( *(*it) == *newTimerEventItem )
314 return; 314 return;
315 // if we made it here, it is okay to add the item... 315 // if we made it here, it is okay to add the item...
316 timerEventList.append( newTimerEventItem ); 316 timerEventList.append( newTimerEventItem );
317 needSave = TRUE; 317 needSave = TRUE;
318 // quicker than using setNearestTimerEvent() 318 // quicker than using setNearestTimerEvent()
319 if ( nearestTimerEvent ) { 319 if ( nearestTimerEvent ) {
320 if (newTimerEventItem->UTCtime < nearestTimerEvent->UTCtime) { 320 if (newTimerEventItem->UTCtime < nearestTimerEvent->UTCtime) {
321 nearestTimerEvent = newTimerEventItem; 321 nearestTimerEvent = newTimerEventItem;
322 timerEventReceiver->killTimers(); 322 timerEventReceiver->killTimers();
323 timerEventReceiver->resetTimer(); 323 timerEventReceiver->resetTimer();
324 } 324 }
325 } else { 325 } else {
326 nearestTimerEvent = newTimerEventItem; 326 nearestTimerEvent = newTimerEventItem;
327 timerEventReceiver->resetTimer(); 327 timerEventReceiver->resetTimer();
328 } 328 }
329 if ( needSave ) 329 if ( needSave )
330 saveState(); 330 saveState();
331 } else { 331 } else {
332#ifndef QT_NO_COP 332#ifndef QT_NO_COP
333 QCopEnvelope e( "QPE/System", "addAlarm(QDateTime,QCString,QCString,int)" ); 333 QCopEnvelope e( "QPE/System", "addAlarm(QDateTime,QCString,QCString,int)" );
334 e << when << channel << message << data; 334 e << when << channel << message << data;
335#endif 335#endif
336 } 336 }
337} 337}
338 338
339/*! 339/*!
340 Deletes previously scheduled alarms which match \a when, \a channel, 340 Deletes previously scheduled alarms which match \a when, \a channel,
341 \a message, and \a data. 341 \a message, and \a data.
342 342
343 Passing null values for \a when, \a channel, or for the \link 343 Passing null values for \a when, \a channel, or for the \link
344 qcop.html QCop\endlink \a message, acts as a wildcard meaning "any". 344 qcop.html QCop\endlink \a message, acts as a wildcard meaning "any".
345 Similarly, passing -1 for \a data indicates "any". 345 Similarly, passing -1 for \a data indicates "any".
346 346
347 If there is no matching alarm, nothing happens. 347 If there is no matching alarm, nothing happens.
348 348
349 \sa addAlarm() 349 \sa addAlarm()
350 350
351*/ 351*/
352void AlarmServer::deleteAlarm (QDateTime when, const QCString& channel, const QCString& message, int data) 352void AlarmServer::deleteAlarm (QDateTime when, const QCString& channel, const QCString& message, int data)
353{ 353{
diff --git a/library/power.cpp b/library/power.cpp
index d53ecfe..ec5b309 100644
--- a/library/power.cpp
+++ b/library/power.cpp
@@ -1,228 +1,228 @@
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 20
21#include "power.h" 21#include "power.h"
22 22
23#ifdef QT_QWS_CUSTOM 23#ifdef QT_QWS_SHARP
24#include "custom.h" 24#include "custom.h"
25#endif 25#endif
26 26
27#include <unistd.h> 27#include <unistd.h>
28#include <stdlib.h> 28#include <stdlib.h>
29#include <stdio.h> 29#include <stdio.h>
30#include <fcntl.h> 30#include <fcntl.h>
31#include <sys/ioctl.h> 31#include <sys/ioctl.h>
32 32
33#ifdef QT_QWS_IPAQ_NO_APM 33#ifdef QT_QWS_IPAQ_NO_APM
34#include <linux/h3600_ts.h> 34#include <linux/h3600_ts.h>
35#endif 35#endif
36 36
37PowerStatusManager *PowerStatusManager::powerManager = 0; 37PowerStatusManager *PowerStatusManager::powerManager = 0;
38PowerStatus *PowerStatusManager::ps = 0; 38PowerStatus *PowerStatusManager::ps = 0;
39 39
40static bool haveProcApm = false; 40static bool haveProcApm = false;
41 41
42PowerStatusManager::PowerStatusManager() 42PowerStatusManager::PowerStatusManager()
43{ 43{
44 powerManager = this; 44 powerManager = this;
45 ps = new PowerStatus; 45 ps = new PowerStatus;
46 FILE *f = fopen("/proc/apm", "r"); 46 FILE *f = fopen("/proc/apm", "r");
47 if ( f ) { 47 if ( f ) {
48 fclose(f); 48 fclose(f);
49 haveProcApm = TRUE; 49 haveProcApm = TRUE;
50 } 50 }
51} 51}
52 52
53const PowerStatus &PowerStatusManager::readStatus() 53const PowerStatus &PowerStatusManager::readStatus()
54{ 54{
55 if ( !powerManager ) 55 if ( !powerManager )
56 (void)new PowerStatusManager; 56 (void)new PowerStatusManager;
57 57
58 powerManager->getStatus(); 58 powerManager->getStatus();
59 59
60 return *ps; 60 return *ps;
61} 61}
62 62
63// Standard /proc/apm reader 63// Standard /proc/apm reader
64bool PowerStatusManager::getProcApmStatus( int &ac, int &bs, int &bf, int &pc, int &sec ) 64bool PowerStatusManager::getProcApmStatus( int &ac, int &bs, int &bf, int &pc, int &sec )
65{ 65{
66 bool ok = false; 66 bool ok = false;
67 67
68 ac = 0xff; 68 ac = 0xff;
69 bs = 0xff; 69 bs = 0xff;
70 bf = 0xff; 70 bf = 0xff;
71 pc = -1; 71 pc = -1;
72 sec = -1; 72 sec = -1;
73 73
74 FILE *f = fopen("/proc/apm", "r"); 74 FILE *f = fopen("/proc/apm", "r");
75 if ( f ) { 75 if ( f ) {
76 //I 1.13 1.2 0x02 0x00 0xff 0xff 49% 147 sec 76 //I 1.13 1.2 0x02 0x00 0xff 0xff 49% 147 sec
77 char u; 77 char u;
78 fscanf(f, "%*[^ ] %*d.%*d 0x%*x 0x%x 0x%x 0x%x %d%% %i %c", 78 fscanf(f, "%*[^ ] %*d.%*d 0x%*x 0x%x 0x%x 0x%x %d%% %i %c",
79 &ac, &bs, &bf, &pc, &sec, &u); 79 &ac, &bs, &bf, &pc, &sec, &u);
80 fclose(f); 80 fclose(f);
81 switch ( u ) { 81 switch ( u ) {
82 case 'm': sec *= 60; 82 case 'm': sec *= 60;
83 case 's': break; // ok 83 case 's': break; // ok
84 default: sec = -1; // unknown 84 default: sec = -1; // unknown
85 } 85 }
86 86
87 // extract data 87 // extract data
88 switch ( bs ) { 88 switch ( bs ) {
89 case 0x00: 89 case 0x00:
90 ps->bs = PowerStatus::High; 90 ps->bs = PowerStatus::High;
91 break; 91 break;
92 case 0x01: 92 case 0x01:
93 ps->bs = PowerStatus::Low; 93 ps->bs = PowerStatus::Low;
94 break; 94 break;
95 case 0x7f: 95 case 0x7f:
96 ps->bs = PowerStatus::VeryLow; 96 ps->bs = PowerStatus::VeryLow;
97 break; 97 break;
98 case 0x02: 98 case 0x02:
99 ps->bs = PowerStatus::Critical; 99 ps->bs = PowerStatus::Critical;
100 break; 100 break;
101 case 0x03: 101 case 0x03:
102 ps->bs = PowerStatus::Charging; 102 ps->bs = PowerStatus::Charging;
103 break; 103 break;
104 case 0x04: 104 case 0x04:
105 case 0xff: // 0xff is Unknown but we map to NotPresent 105 case 0xff: // 0xff is Unknown but we map to NotPresent
106 default: 106 default:
107 ps->bs = PowerStatus::NotPresent; 107 ps->bs = PowerStatus::NotPresent;
108 break; 108 break;
109 } 109 }
110 110
111 switch ( ac ) { 111 switch ( ac ) {
112 case 0x00: 112 case 0x00:
113 ps->ac = PowerStatus::Offline; 113 ps->ac = PowerStatus::Offline;
114 break; 114 break;
115 case 0x01: 115 case 0x01:
116 ps->ac = PowerStatus::Online; 116 ps->ac = PowerStatus::Online;
117 break; 117 break;
118 case 0x02: 118 case 0x02:
119 ps->ac = PowerStatus::Backup; 119 ps->ac = PowerStatus::Backup;
120 break; 120 break;
121 } 121 }
122 122
123 if ( pc > 100 ) 123 if ( pc > 100 )
124 pc = -1; 124 pc = -1;
125 125
126 ps->percentRemain = pc; 126 ps->percentRemain = pc;
127 ps->secsRemain = sec; 127 ps->secsRemain = sec;
128 128
129 ok = true; 129 ok = true;
130 } 130 }
131 131
132 return ok; 132 return ok;
133} 133}
134 134
135#ifdef QT_QWS_CUSTOM 135#ifdef QT_QWS_SHARP
136 136
137void PowerStatusManager::getStatus() 137void PowerStatusManager::getStatus()
138{ 138{
139 int ac, bs, bf, pc, sec; 139 int ac, bs, bf, pc, sec;
140 ps->percentAccurate = TRUE; // not for long... 140 ps->percentAccurate = TRUE; // not for long...
141 141
142 if ( haveProcApm && getProcApmStatus( ac, bs, bf, pc, sec ) ) { 142 if ( haveProcApm && getProcApmStatus( ac, bs, bf, pc, sec ) ) {
143 // special case 143 // special case
144 if ( bs == 0x7f ) 144 if ( bs == 0x7f )
145 ps->bs = PowerStatus::VeryLow; 145 ps->bs = PowerStatus::VeryLow;
146 pc = -1; // fake percentage 146 pc = -1; // fake percentage
147 if ( pc < 0 ) { 147 if ( pc < 0 ) {
148 switch ( bs ) { 148 switch ( bs ) {
149 case 0x00: ps->percentRemain = 100; break; // High 149 case 0x00: ps->percentRemain = 100; break; // High
150 case 0x01: ps->percentRemain = 30; break; // Low 150 case 0x01: ps->percentRemain = 30; break; // Low
151 case 0x7f: ps->percentRemain = 10; break; // Very Low 151 case 0x7f: ps->percentRemain = 10; break; // Very Low
152 case 0x02: ps->percentRemain = 5; break; // Critical 152 case 0x02: ps->percentRemain = 5; break; // Critical
153 case 0x03: ps->percentRemain = -1; break; // Charging 153 case 0x03: ps->percentRemain = -1; break; // Charging
154 } 154 }
155 ps->percentAccurate = FALSE; 155 ps->percentAccurate = FALSE;
156 } 156 }
157 } 157 }
158 158
159 char *device = "/dev/apm_bios"; 159 char *device = "/dev/apm_bios";
160 int fd = ::open (device, O_WRONLY); 160 int fd = ::open (device, O_WRONLY);
161 if ( fd >= 0 ) { 161 if ( fd >= 0 ) {
162 int bbat_status = ioctl( fd, APM_IOC_BATTERY_BACK_CHK, 0 ); 162 int bbat_status = ioctl( fd, APM_IOC_BATTERY_BACK_CHK, 0 );
163 switch ( bbat_status ) { 163 switch ( bbat_status ) {
164 case 0x00: 164 case 0x00:
165 ps->bbs = PowerStatus::High; 165 ps->bbs = PowerStatus::High;
166 break; 166 break;
167 case 0x01: 167 case 0x01:
168 ps->bbs = PowerStatus::Low; 168 ps->bbs = PowerStatus::Low;
169 break; 169 break;
170 case 0x7f: 170 case 0x7f:
171 ps->bbs = PowerStatus::VeryLow; 171 ps->bbs = PowerStatus::VeryLow;
172 break; 172 break;
173 case 0x02: 173 case 0x02:
174 ps->bbs = PowerStatus::Critical; 174 ps->bbs = PowerStatus::Critical;
175 break; 175 break;
176 case 0x03: 176 case 0x03:
177 ps->bbs = PowerStatus::Charging; 177 ps->bbs = PowerStatus::Charging;
178 break; 178 break;
179 case 0x04: 179 case 0x04:
180 ps->bbs = PowerStatus::NotPresent; 180 ps->bbs = PowerStatus::NotPresent;
181 break; 181 break;
182 } 182 }
183 ::close(fd); 183 ::close(fd);
184 } 184 }
185} 185}
186 186
187#else 187#else
188 188
189void PowerStatusManager::getStatus() 189void PowerStatusManager::getStatus()
190{ 190{
191 bool usedApm = FALSE; 191 bool usedApm = FALSE;
192 192
193 ps->percentAccurate = TRUE; 193 ps->percentAccurate = TRUE;
194 194
195 // Some iPAQ kernel builds don't have APM. If this is not the case we 195 // Some iPAQ kernel builds don't have APM. If this is not the case we
196 // save ourselves an ioctl by testing if /proc/apm exists in the 196 // save ourselves an ioctl by testing if /proc/apm exists in the
197 // constructor and we use /proc/apm instead 197 // constructor and we use /proc/apm instead
198 int ac, bs, bf, pc, sec; 198 int ac, bs, bf, pc, sec;
199 if ( haveProcApm ) 199 if ( haveProcApm )
200 usedApm = getProcApmStatus( ac, bs, bf, pc, sec ); 200 usedApm = getProcApmStatus( ac, bs, bf, pc, sec );
201 201
202 if ( !usedApm ) { 202 if ( !usedApm ) {
203#ifdef QT_QWS_IPAQ_NO_APM 203#ifdef QT_QWS_IPAQ_NO_APM
204 int fd; 204 int fd;
205 int err; 205 int err;
206 struct bat_dev batt_info; 206 struct bat_dev batt_info;
207 207
208 memset(&batt_info, 0, sizeof(batt_info)); 208 memset(&batt_info, 0, sizeof(batt_info));
209 209
210 fd = ::open("/dev/ts",O_RDONLY); 210 fd = ::open("/dev/ts",O_RDONLY);
211 if( fd < 0 ) 211 if( fd < 0 )
212 return; 212 return;
213 213
214 ioctl(fd, GET_BATTERY_STATUS, &batt_info); 214 ioctl(fd, GET_BATTERY_STATUS, &batt_info);
215 ac_status = batt_info.ac_status; 215 ac_status = batt_info.ac_status;
216 ps->percentRemain = ( 425 * batt_info.batt1_voltage ) / 1000 - 298; // from h3600_ts.c 216 ps->percentRemain = ( 425 * batt_info.batt1_voltage ) / 1000 - 298; // from h3600_ts.c
217 ps->secsRemain = -1; // seconds is bogus on iPAQ 217 ps->secsRemain = -1; // seconds is bogus on iPAQ
218 ::close (fd); 218 ::close (fd);
219#else 219#else
220 ps->percentRemain = 100; 220 ps->percentRemain = 100;
221 ps->secsRemain = -1; 221 ps->secsRemain = -1;
222 ps->percentAccurate = FALSE; 222 ps->percentAccurate = FALSE;
223#endif 223#endif
224 } 224 }
225} 225}
226 226
227#endif 227#endif
228 228
diff --git a/library/storage.cpp b/library/storage.cpp
index 937908d..3668d29 100644
--- a/library/storage.cpp
+++ b/library/storage.cpp
@@ -1,200 +1,200 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) Holger 'zecke' Freyther <freyther@kde.org> 2** Copyright (C) Holger 'zecke' Freyther <freyther@kde.org>
3** Copyright (C) 2000 Trolltech AS. All rights reserved. 3** Copyright (C) 2000 Trolltech AS. All rights reserved.
4** 4**
5** This file is part of Qtopia Environment. 5** This file is part of Qtopia Environment.
6** 6**
7** This file may be distributed and/or modified under the terms of the 7** This file may be distributed and/or modified under the terms of the
8** GNU General Public License version 2 as published by the Free Software 8** GNU General Public License version 2 as published by the Free Software
9** Foundation and appearing in the file LICENSE.GPL included in the 9** Foundation and appearing in the file LICENSE.GPL included in the
10** packaging of this file. 10** packaging of this file.
11** 11**
12** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 12** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
13** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 13** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
14** 14**
15** See http://www.trolltech.com/gpl/ for GPL licensing information. 15** See http://www.trolltech.com/gpl/ for GPL licensing information.
16** 16**
17** Contact info@trolltech.com if any conditions of this licensing are 17** Contact info@trolltech.com if any conditions of this licensing are
18** not clear to you. 18** not clear to you.
19** 19**
20**********************************************************************/ 20**********************************************************************/
21 21
22#include <qpe/storage.h> 22#include <qpe/storage.h>
23#ifdef QT_QWS_CUSTOM 23#ifdef QT_QWS_SHARP
24#include <qpe/custom.h> 24#include <qpe/custom.h>
25#endif 25#endif
26 26
27#include <qfile.h> 27#include <qfile.h>
28#include <qtimer.h> 28#include <qtimer.h>
29#include <qcopchannel_qws.h> 29#include <qcopchannel_qws.h>
30 30
31#include <stdio.h> 31#include <stdio.h>
32 32
33#if defined(_OS_LINUX_) || defined(Q_OS_LINUX) 33#if defined(_OS_LINUX_) || defined(Q_OS_LINUX)
34#include <sys/vfs.h> 34#include <sys/vfs.h>
35#include <mntent.h> 35#include <mntent.h>
36#endif 36#endif
37 37
38#include <qstringlist.h> 38#include <qstringlist.h>
39 39
40static bool isCF(const QString& m) 40static bool isCF(const QString& m)
41{ 41{
42 FILE* f = fopen("/var/run/stab", "r"); 42 FILE* f = fopen("/var/run/stab", "r");
43 if (!f) f = fopen("/var/state/pcmcia/stab", "r"); 43 if (!f) f = fopen("/var/state/pcmcia/stab", "r");
44 if (!f) f = fopen("/var/lib/pcmcia/stab", "r"); 44 if (!f) f = fopen("/var/lib/pcmcia/stab", "r");
45 if ( f ) { 45 if ( f ) {
46 char line[1024]; 46 char line[1024];
47 char devtype[80]; 47 char devtype[80];
48 char devname[80]; 48 char devname[80];
49 while ( fgets( line, 1024, f ) ) { 49 while ( fgets( line, 1024, f ) ) {
50 // 0 ide ide-cs 0 hda 3 0 50 // 0 ide ide-cs 0 hda 3 0
51 if ( sscanf(line,"%*d %s %*s %*s %s", devtype, devname )==2 ) 51 if ( sscanf(line,"%*d %s %*s %*s %s", devtype, devname )==2 )
52 { 52 {
53 if ( QString(devtype) == "ide" && m.find(devname)>0 ) { 53 if ( QString(devtype) == "ide" && m.find(devname)>0 ) {
54 fclose(f); 54 fclose(f);
55 return TRUE; 55 return TRUE;
56 } 56 }
57 } 57 }
58 } 58 }
59 fclose(f); 59 fclose(f);
60 } 60 }
61 return FALSE; 61 return FALSE;
62} 62}
63 63
64StorageInfo::StorageInfo( QObject *parent ) 64StorageInfo::StorageInfo( QObject *parent )
65 : QObject( parent ) 65 : QObject( parent )
66{ 66{
67 mFileSystems.setAutoDelete( TRUE ); 67 mFileSystems.setAutoDelete( TRUE );
68 channel = new QCopChannel( "QPE/Card", this ); 68 channel = new QCopChannel( "QPE/Card", this );
69 connect( channel, SIGNAL(received(const QCString &, const QByteArray &)), 69 connect( channel, SIGNAL(received(const QCString &, const QByteArray &)),
70 this, SLOT(cardMessage( const QCString &, const QByteArray &)) ); 70 this, SLOT(cardMessage( const QCString &, const QByteArray &)) );
71 update(); 71 update();
72} 72}
73 73
74const FileSystem *StorageInfo::fileSystemOf( const QString &filename ) 74const FileSystem *StorageInfo::fileSystemOf( const QString &filename )
75{ 75{
76 for (QListIterator<FileSystem> i(mFileSystems); i.current(); ++i) { 76 for (QListIterator<FileSystem> i(mFileSystems); i.current(); ++i) {
77 if ( filename.startsWith( (*i)->path() ) ) 77 if ( filename.startsWith( (*i)->path() ) )
78 return (*i); 78 return (*i);
79 } 79 }
80 return 0; 80 return 0;
81} 81}
82 82
83 83
84void StorageInfo::cardMessage( const QCString& msg, const QByteArray& ) 84void StorageInfo::cardMessage( const QCString& msg, const QByteArray& )
85{ 85{
86 if ( msg == "mtabChanged()" ) 86 if ( msg == "mtabChanged()" )
87 update(); 87 update();
88} 88}
89// cause of the lack of a d pointer we need 89// cause of the lack of a d pointer we need
90// to store informations in a config file :( 90// to store informations in a config file :(
91void StorageInfo::update() 91void StorageInfo::update()
92{ 92{
93 //qDebug("StorageInfo::updating"); 93 //qDebug("StorageInfo::updating");
94#if defined(_OS_LINUX_) || defined(Q_OS_LINUX) 94#if defined(_OS_LINUX_) || defined(Q_OS_LINUX)
95 struct mntent *me; 95 struct mntent *me;
96 FILE *mntfp = setmntent( "/etc/mtab", "r" ); 96 FILE *mntfp = setmntent( "/etc/mtab", "r" );
97 97
98 QStringList curdisks; 98 QStringList curdisks;
99 QStringList curopts; 99 QStringList curopts;
100 QStringList curfs; 100 QStringList curfs;
101 bool rebuild = FALSE; 101 bool rebuild = FALSE;
102 int n=0; 102 int n=0;
103 if ( mntfp ) { 103 if ( mntfp ) {
104 while ( (me = getmntent( mntfp )) != 0 ) { 104 while ( (me = getmntent( mntfp )) != 0 ) {
105 QString fs = me->mnt_fsname; 105 QString fs = me->mnt_fsname;
106 if ( fs.left(7)=="/dev/hd" || fs.left(7)=="/dev/sd" 106 if ( fs.left(7)=="/dev/hd" || fs.left(7)=="/dev/sd"
107 || fs.left(8)=="/dev/mtd" || fs.left(9) == "/dev/mmcd" 107 || fs.left(8)=="/dev/mtd" || fs.left(9) == "/dev/mmcd"
108 || fs.left( 14 ) == "/dev/mmc/part1" 108 || fs.left( 14 ) == "/dev/mmc/part1"
109 || fs.left(5)=="tmpfs" ) 109 || fs.left(5)=="tmpfs" )
110 { 110 {
111 n++; 111 n++;
112 curdisks.append(fs); 112 curdisks.append(fs);
113 curopts.append( me->mnt_opts ); 113 curopts.append( me->mnt_opts );
114 //qDebug("-->fs %s opts %s", fs.latin1(), me->mnt_opts ); 114 //qDebug("-->fs %s opts %s", fs.latin1(), me->mnt_opts );
115 curfs.append( me->mnt_dir ); 115 curfs.append( me->mnt_dir );
116 bool found = FALSE; 116 bool found = FALSE;
117 for (QListIterator<FileSystem> i(mFileSystems); i.current(); ++i) { 117 for (QListIterator<FileSystem> i(mFileSystems); i.current(); ++i) {
118 if ( (*i)->disk() == fs ) { 118 if ( (*i)->disk() == fs ) {
119 found = TRUE; 119 found = TRUE;
120 break; 120 break;
121 } 121 }
122 } 122 }
123 if ( !found ) 123 if ( !found )
124 rebuild = TRUE; 124 rebuild = TRUE;
125 } 125 }
126 } 126 }
127 endmntent( mntfp ); 127 endmntent( mntfp );
128 } 128 }
129 if ( rebuild || n != (int)mFileSystems.count() ) { 129 if ( rebuild || n != (int)mFileSystems.count() ) {
130 mFileSystems.clear(); 130 mFileSystems.clear();
131 QStringList::ConstIterator it=curdisks.begin(); 131 QStringList::ConstIterator it=curdisks.begin();
132 QStringList::ConstIterator fsit=curfs.begin(); 132 QStringList::ConstIterator fsit=curfs.begin();
133 QStringList::ConstIterator optsIt=curopts.begin(); 133 QStringList::ConstIterator optsIt=curopts.begin();
134 for (; it!=curdisks.end(); ++it, ++fsit, ++optsIt) { 134 for (; it!=curdisks.end(); ++it, ++fsit, ++optsIt) {
135 QString opts = *optsIt; 135 QString opts = *optsIt;
136 136
137 QString disk = *it; 137 QString disk = *it;
138 QString humanname; 138 QString humanname;
139 bool removable = FALSE; 139 bool removable = FALSE;
140 if ( isCF(disk) ) { 140 if ( isCF(disk) ) {
141 humanname = tr("CF Card"); 141 humanname = tr("CF Card");
142 removable = TRUE; 142 removable = TRUE;
143 } else if ( disk == "/dev/hda1" ) { 143 } else if ( disk == "/dev/hda1" ) {
144 humanname = tr("Hard Disk"); 144 humanname = tr("Hard Disk");
145 } else if ( disk.left(9) == "/dev/mmcd" ) { 145 } else if ( disk.left(9) == "/dev/mmcd" ) {
146 humanname = tr("SD Card"); 146 humanname = tr("SD Card");
147 removable = TRUE; 147 removable = TRUE;
148 } else if ( disk.left( 14 ) == "/dev/mmc/part1" ) { 148 } else if ( disk.left( 14 ) == "/dev/mmc/part1" ) {
149 humanname = tr("MMC Card"); 149 humanname = tr("MMC Card");
150 removable = TRUE; 150 removable = TRUE;
151 } else if ( disk.left(7) == "/dev/hd" ) 151 } else if ( disk.left(7) == "/dev/hd" )
152 humanname = tr("Hard Disk") + " " + disk; 152 humanname = tr("Hard Disk") + " " + disk;
153 else if ( disk.left(7) == "/dev/sd" ) 153 else if ( disk.left(7) == "/dev/sd" )
154 humanname = tr("SCSI Hard Disk") + " " + disk; 154 humanname = tr("SCSI Hard Disk") + " " + disk;
155 else if ( disk.left(14) == "/dev/mtdblock6" ) //openzaurus ramfs 155 else if ( disk.left(14) == "/dev/mtdblock6" ) //openzaurus ramfs
156 humanname = tr("Internal Memory"); 156 humanname = tr("Internal Memory");
157 else if ( disk == "/dev/mtdblock1" || humanname == "/dev/mtdblock/1" ) 157 else if ( disk == "/dev/mtdblock1" || humanname == "/dev/mtdblock/1" )
158 humanname = tr("Internal Storage"); 158 humanname = tr("Internal Storage");
159 else if ( disk.left(14) == "/dev/mtdblock/" ) 159 else if ( disk.left(14) == "/dev/mtdblock/" )
160 humanname = tr("Internal Storage") + " " + disk; 160 humanname = tr("Internal Storage") + " " + disk;
161 else if ( disk.left(13) == "/dev/mtdblock" ) 161 else if ( disk.left(13) == "/dev/mtdblock" )
162 humanname = tr("Internal Storage") + " " + disk; 162 humanname = tr("Internal Storage") + " " + disk;
163 else if ( disk.left(5) == "tmpfs" ) //ipaqs /mnt/ramfs 163 else if ( disk.left(5) == "tmpfs" ) //ipaqs /mnt/ramfs
164 humanname = tr("Internal Memory"); 164 humanname = tr("Internal Memory");
165 FileSystem *fs = new FileSystem( disk, *fsit, humanname, removable, opts ); 165 FileSystem *fs = new FileSystem( disk, *fsit, humanname, removable, opts );
166 mFileSystems.append( fs ); 166 mFileSystems.append( fs );
167 } 167 }
168 emit disksChanged(); 168 emit disksChanged();
169 } else { 169 } else {
170 // just update them 170 // just update them
171 for (QListIterator<FileSystem> i(mFileSystems); i.current(); ++i) 171 for (QListIterator<FileSystem> i(mFileSystems); i.current(); ++i)
172 i.current()->update(); 172 i.current()->update();
173 } 173 }
174#endif 174#endif
175} 175}
176 176
177//--------------------------------------------------------------------------- 177//---------------------------------------------------------------------------
178 178
179FileSystem::FileSystem( const QString &disk, const QString &path, const QString &name, bool rem, const QString &o ) 179FileSystem::FileSystem( const QString &disk, const QString &path, const QString &name, bool rem, const QString &o )
180 : fsdisk( disk ), fspath( path ), humanname( name ), blkSize(512), totalBlks(0), availBlks(0), removable( rem ), opts( o ) 180 : fsdisk( disk ), fspath( path ), humanname( name ), blkSize(512), totalBlks(0), availBlks(0), removable( rem ), opts( o )
181{ 181{
182 update(); 182 update();
183} 183}
184 184
185void FileSystem::update() 185void FileSystem::update()
186{ 186{
187#if defined(_OS_LINUX_) || defined(Q_OS_LINUX) 187#if defined(_OS_LINUX_) || defined(Q_OS_LINUX)
188 struct statfs fs; 188 struct statfs fs;
189 if ( !statfs( fspath.latin1(), &fs ) ) { 189 if ( !statfs( fspath.latin1(), &fs ) ) {
190 blkSize = fs.f_bsize; 190 blkSize = fs.f_bsize;
191 totalBlks = fs.f_blocks; 191 totalBlks = fs.f_blocks;
192 availBlks = fs.f_bavail; 192 availBlks = fs.f_bavail;
193 } else { 193 } else {
194 blkSize = 0; 194 blkSize = 0;
195 totalBlks = 0; 195 totalBlks = 0;
196 availBlks = 0; 196 availBlks = 0;
197 } 197 }
198#endif 198#endif
199} 199}
200 200
diff --git a/qt/qte233-for-opie091-keyboard.patch b/qt/qte233-for-opie091-keyboard.patch
index 9d76a64..c1b85b6 100644
--- a/qt/qte233-for-opie091-keyboard.patch
+++ b/qt/qte233-for-opie091-keyboard.patch
@@ -1,145 +1,145 @@
1 --- src.orig/kernel/qkeyboard_qws.cppMon Mar 18 02:11:25 2002 1 --- src.orig/kernel/qkeyboard_qws.cppMon Mar 18 02:11:25 2002
2 +++ src/kernel/qkeyboard_qws.cppFri Aug 30 04:28:39 2002 2 +++ src/kernel/qkeyboard_qws.cppFri Aug 30 04:28:39 2002
3@@ -269,7 +269,7 @@ 3@@ -269,7 +269,7 @@
4 { Qt::Key_O, 'o' , 'O' , 'O'-64 }, 4 { Qt::Key_O, 'o' , 'O' , 'O'-64 },
5 { Qt::Key_P, 'p' , 'P' , 'P'-64 }, 5 { Qt::Key_P, 'p' , 'P' , 'P'-64 },
6 { Qt::Key_BraceLeft, '[' , '{' , 0xffff }, 6 { Qt::Key_BraceLeft, '[' , '{' , 0xffff },
7- { Qt::Key_Escape, ']' , '}' , 0xffff }, 7- { Qt::Key_Escape, ']' , '}' , 0xffff },
8+ { Qt::Key_BraceRight, ']' , '}' , 0xffff }, 8+ { Qt::Key_BraceRight, ']' , '}' , 0xffff },
9 { Qt::Key_Return, 13 , 13 , 0xffff }, 9 { Qt::Key_Return, 13 , 13 , 0xffff },
10 { Qt::Key_Control, 0xffff , 0xffff , 0xffff }, 10 { Qt::Key_Control, 0xffff , 0xffff , 0xffff },
11 { Qt::Key_A, 'a' , 'A' , 'A'-64 }, // 30 11 { Qt::Key_A, 'a' , 'A' , 'A'-64 }, // 30
12@@ -394,7 +394,7 @@ 12@@ -394,7 +394,7 @@
13 bool numLock; 13 bool numLock;
14 #endif 14 #endif
15 bool caps; 15 bool caps;
16- bool extended; 16- bool extended;
17+ int extended; 17+ int extended;
18 int modifiers; 18 int modifiers;
19 int prevuni; 19 int prevuni;
20 int prevkey; 20 int prevkey;
21@@ -524,7 +524,7 @@ 21@@ -524,7 +524,7 @@
22 shift = false; 22 shift = false;
23 alt = false; 23 alt = false;
24 ctrl = false; 24 ctrl = false;
25- extended = false; 25- extended = false;
26+ extended = 0; 26+ extended = 0;
27 prevuni = 0; 27 prevuni = 0;
28 prevkey = 0; 28 prevkey = 0;
29 caps = FALSE; 29 caps = FALSE;
30@@ -561,10 +561,24 @@ 30@@ -561,10 +561,24 @@
31 int keyCode = Qt::Key_unknown; 31 int keyCode = Qt::Key_unknown;
32 bool release = false; 32 bool release = false;
33 int keypad = 0; 33 int keypad = 0;
34+#if defined(QT_QWS_IPAQ) 34+#if defined(QT_QWS_IPAQ)
35+ static int ipaq_return_pressed = false; // iPAQ Action Key has ScanCode 0x60: 0x60|0x80 = 0xe0 == extended mode 1 ! 35+ static int ipaq_return_pressed = false; // iPAQ Action Key has ScanCode 0x60: 0x60|0x80 = 0xe0 == extended mode 1 !
36+#endif 36+#endif
37+ 37+
38 #if !defined(QT_QWS_CUSTOM) 38 #if !defined(QT_QWS_SHARP)
39- if (code == 224) { 39- if (code == 224) {
40+ if ((code == 224) 40+ if ((code == 224)
41+#if defined(QT_QWS_IPAQ) 41+#if defined(QT_QWS_IPAQ)
42+ && !ipaq_return_pressed 42+ && !ipaq_return_pressed
43+#endif 43+#endif
44+ ) 44+ )
45+ { 45+ {
46 // extended 46 // extended
47 -extended = true; 47 -extended = true;
48 +extended = 1; 48 +extended = 1;
49 +return; 49 +return;
50+ } 50+ }
51+ else if (code == 225) { 51+ else if (code == 225) {
52 + // extended 2 52 + // extended 2
53 + extended = 2; 53 + extended = 2;
54 return; 54 return;
55 } 55 }
56 #endif 56 #endif
57@@ -574,7 +588,7 @@ 57@@ -574,7 +588,7 @@
58 code &= 0x7f; 58 code &= 0x7f;
59 } 59 }
60 60
61- if (extended) { 61- if (extended) {
62+ if (extended == 1) { 62+ if (extended == 1) {
63 switch (code) { 63 switch (code) {
64 case 72: 64 case 72:
65 keyCode = Qt::Key_Up; 65 keyCode = Qt::Key_Up;
66@@ -612,6 +626,32 @@ 66@@ -612,6 +626,32 @@
67 case 53: 67 case 53:
68 keyCode = Qt::Key_Slash; 68 keyCode = Qt::Key_Slash;
69 break; 69 break;
70 +case 0x1d: 70 +case 0x1d:
71 + keyCode = Qt::Key_Control; 71 + keyCode = Qt::Key_Control;
72 + break; 72 + break;
73 +case 0x2a: 73 +case 0x2a:
74 + keyCode = Qt::Key_SysReq; 74 + keyCode = Qt::Key_SysReq;
75 + break; 75 + break;
76 +case 0x38: 76 +case 0x38:
77 + keyCode = Qt::Key_Alt; 77 + keyCode = Qt::Key_Alt;
78 + break; 78 + break;
79 +case 0x5b: 79 +case 0x5b:
80 + keyCode = Qt::Key_Super_L; 80 + keyCode = Qt::Key_Super_L;
81 + break; 81 + break;
82 +case 0x5c: 82 +case 0x5c:
83 + keyCode = Qt::Key_Super_R; 83 + keyCode = Qt::Key_Super_R;
84 + break; 84 + break;
85 +case 0x5d: 85 +case 0x5d:
86 + keyCode = Qt::Key_Menu; 86 + keyCode = Qt::Key_Menu;
87 + break; 87 + break;
88 +} 88 +}
89+ } else if (extended == 2) { 89+ } else if (extended == 2) {
90 +switch (code) { 90 +switch (code) {
91 +case 0x1d: 91 +case 0x1d:
92 + return; 92 + return;
93 +case 0x45: 93 +case 0x45:
94 + keyCode = Qt::Key_Pause; 94 + keyCode = Qt::Key_Pause;
95 + break; 95 + break;
96 } 96 }
97 } else { 97 } else {
98 #if defined(QT_QWS_CUSTOM) 98 #if defined(QT_QWS_SHARP)
99@@ -650,6 +690,7 @@ 99@@ -650,6 +690,7 @@
100 repeatable = FALSE; 100 repeatable = FALSE;
101 break; 101 break;
102 case 0x60: 102 case 0x60:
103 + ipaq_return_pressed = !release; 103 + ipaq_return_pressed = !release;
104 keyCode = Key_Return; 104 keyCode = Key_Return;
105 break; 105 break;
106 case 0x67: 106 case 0x67:
107@@ -687,13 +728,19 @@ 107@@ -687,13 +728,19 @@
108 else 108 else
109 repeater->stop(); 109 repeater->stop();
110 #endif 110 #endif
111+ 111+
112 +/* 112 +/*
113 + Translate shift+Key_Tab to Key_Backtab 113 + Translate shift+Key_Tab to Key_Backtab
114 +*/ 114 +*/
115 +if (( keyCode == Key_Tab ) && shift ) 115 +if (( keyCode == Key_Tab ) && shift )
116 + keyCode = Key_Backtab; 116 + keyCode = Key_Backtab;
117 } 117 }
118 118
119 /* 119 /*
120 Keypad consists of extended keys 53 and 28, 120 Keypad consists of extended keys 53 and 28,
121 and non-extended keys 55 and 71 through 83. 121 and non-extended keys 55 and 71 through 83.
122 */ 122 */
123- if ( extended ? (code == 53 || code == 28) : 123- if ( extended ? (code == 53 || code == 28) :
124+ if ((extended == 1) ? (code == 53 || code == 28) : 124+ if ((extended == 1) ? (code == 53 || code == 28) :
125 (code == 55 || ( code >= 71 && code <= 83 )) ) 125 (code == 55 || ( code >= 71 && code <= 83 )) )
126 keypad = Qt::Keypad; 126 keypad = Qt::Keypad;
127 127
128@@ -803,7 +850,7 @@ 128@@ -803,7 +850,7 @@
129 unicode = QWSServer::keyMap()[code].shift_unicode ? QWSServer::keyMap()[code].shift_unicode : 0xffff; 129 unicode = QWSServer::keyMap()[code].shift_unicode ? QWSServer::keyMap()[code].shift_unicode : 0xffff;
130 else 130 else
131 unicode = QWSServer::keyMap()[code].unicode ? QWSServer::keyMap()[code].unicode : 0xffff; 131 unicode = QWSServer::keyMap()[code].unicode ? QWSServer::keyMap()[code].unicode : 0xffff;
132 - } else { 132 - } else {
133 + } else if (extended == 1) { 133 + } else if (extended == 1) {
134 if ( code == 53 ) 134 if ( code == 53 )
135 unicode = '/'; 135 unicode = '/';
136 } 136 }
137@@ -829,7 +876,7 @@ 137@@ -829,7 +876,7 @@
138 prevkey = prevuni = 0; 138 prevkey = prevuni = 0;
139 } 139 }
140 } 140 }
141- extended = false; 141- extended = false;
142+ extended = 0; 142+ extended = 0;
143 } 143 }
144 144
145 145