summaryrefslogtreecommitdiff
path: root/library
Side-by-side diff
Diffstat (limited to 'library') (more/less context) (ignore whitespace changes)
-rw-r--r--library/Makefile.in26
-rw-r--r--library/global.cpp2
-rw-r--r--library/library.pro4
-rw-r--r--library/qpeapplication.cpp4
4 files changed, 17 insertions, 19 deletions
diff --git a/library/Makefile.in b/library/Makefile.in
index c89390f..b74b818 100644
--- a/library/Makefile.in
+++ b/library/Makefile.in
@@ -1,905 +1,903 @@
#############################################################################
####### Compiler, tools and options
CXX = $(SYSCONF_CXX) $(QT_CXX_MT)
CXXFLAGS= $(SYSCONF_CXXFLAGS_QT) $(SYSCONF_CXXFLAGS) $(SYSCONF_CXXFLAGS_LIB)
CC = $(SYSCONF_CC) $(QT_C_MT)
CFLAGS = $(SYSCONF_CFLAGS) $(SYSCONF_CFLAGS_LIB)
-INCPATH = -I$(QPEDIR)/include -Ibackend
+INCPATH = -I$(OPIEDIR)/include -Ibackend
LFLAGS = $(SYSCONF_LFLAGS_QT) $(SYSCONF_RPATH_QT) $(SYSCONF_LFLAGS) $(QT_LFLAGS_MT)
LIBS = $(SUBLIBS) -ldl -lcrypt -lm $(SYSCONF_LIBS_QT) $(SYSCONF_LIBS_QTAPP)
MOC = $(SYSCONF_MOC)
UIC = $(SYSCONF_UIC)
####### Target
DESTDIR = $(QTDIR)/lib$(PROJMAK)/
VER_MAJ = 1
VER_MIN = 5
VER_PATCH = 0
TARGET = qpe
TARGET1 = lib$(TARGET).so.$(VER_MAJ)
####### Files
HEADERS = calendar.h \
global.h \
resource.h \
xmlreader.h \
mimetype.h \
menubutton.h \
network.h \
networkinterface.h \
proxies.h \
filemanager.h \
fontmanager.h \
qdawg.h \
datebookmonth.h \
fileselector.h \
imageedit.h \
qcopenvelope_qws.h \
qpedecoration_qws.h \
qpeapplication.h \
qpestyle.h \
qpedialog.h \
lightstyle.h \
config.h \
applnk.h \
sound.h \
tzselect.h \
qmath.h \
datebookdb.h \
alarmserver.h \
process.h \
password.h \
timestring.h \
fontfactoryinterface.h \
fontdatabase.h \
power.h \
storage.h \
qpemessagebox.h \
backend/timeconversion.h \
qpedebug.h \
qpemenubar.h \
qpetoolbar.h \
backend/categories.h \
backend/stringutil.h \
backend/palmtopuid.h \
backend/palmtoprecord.h \
backend/task.h \
backend/event.h \
backend/contact.h \
categorymenu.h \
categoryedit_p.h \
categoryselect.h \
categorywidget.h \
ir.h \
backend/vobject_p.h \
findwidget_p.h \
finddialog.h \
lnkproperties.h \
quuid.h \
qcom.h \
qlibrary.h \
qlibrary_p.h \
qprocess.h
SOURCES = calendar.cpp \
global.cpp \
xmlreader.cpp \
mimetype.cpp \
menubutton.cpp \
network.cpp \
networkinterface.cpp \
proxies.cpp \
filemanager.cpp \
fontmanager.cpp \
qdawg.cpp \
datebookmonth.cpp \
fileselector.cpp \
imageedit.cpp \
resource.cpp \
qpedecoration_qws.cpp \
qcopenvelope_qws.cpp \
qpeapplication.cpp \
qpestyle.cpp \
qpedialog.cpp \
lightstyle.cpp \
config.cpp \
applnk.cpp \
sound.cpp \
tzselect.cpp \
qmath.c \
datebookdb.cpp \
alarmserver.cpp \
password.cpp \
process.cpp \
process_unix.cpp \
timestring.cpp \
fontdatabase.cpp \
power.cpp \
storage.cpp \
qpemessagebox.cpp \
backend/timeconversion.cpp \
qpedebug.cpp \
qpemenubar.cpp \
qpetoolbar.cpp \
backend/categories.cpp \
backend/stringutil.cpp \
backend/palmtoprecord.cpp \
backend/task.cpp \
backend/event.cpp \
backend/contact.cpp \
categorymenu.cpp \
categoryedit_p.cpp \
categoryselect.cpp \
categorywidget.cpp \
ir.cpp \
backend/vcc_yacc.cpp \
backend/vobject.cpp \
findwidget_p.cpp \
finddialog.cpp \
lnkproperties.cpp \
quuid.cpp \
qlibrary.cpp \
qlibrary_unix.cpp \
qprocess.cpp \
qprocess_unix.cpp
OBJECTS = calendar.o \
global.o \
xmlreader.o \
mimetype.o \
menubutton.o \
network.o \
networkinterface.o \
proxies.o \
filemanager.o \
fontmanager.o \
qdawg.o \
datebookmonth.o \
fileselector.o \
imageedit.o \
resource.o \
qpedecoration_qws.o \
qcopenvelope_qws.o \
qpeapplication.o \
qpestyle.o \
qpedialog.o \
lightstyle.o \
config.o \
applnk.o \
sound.o \
tzselect.o \
qmath.o \
datebookdb.o \
alarmserver.o \
password.o \
process.o \
process_unix.o \
timestring.o \
fontdatabase.o \
power.o \
storage.o \
qpemessagebox.o \
backend/timeconversion.o \
qpedebug.o \
qpemenubar.o \
qpetoolbar.o \
backend/categories.o \
backend/stringutil.o \
backend/palmtoprecord.o \
backend/task.o \
backend/event.o \
backend/contact.o \
categorymenu.o \
categoryedit_p.o \
categoryselect.o \
categorywidget.o \
ir.o \
backend/vcc_yacc.o \
backend/vobject.o \
findwidget_p.o \
finddialog.o \
lnkproperties.o \
quuid.o \
qlibrary.o \
qlibrary_unix.o \
qprocess.o \
qprocess_unix.o \
passwordbase_p.o \
proxiesbase_p.o \
categoryeditbase_p.o \
findwidgetbase_p.o \
lnkpropertiesbase_p.o
INTERFACES = passwordbase_p.ui \
proxiesbase_p.ui \
categoryeditbase_p.ui \
findwidgetbase_p.ui \
lnkpropertiesbase_p.ui
UICDECLS = passwordbase_p.h \
proxiesbase_p.h \
categoryeditbase_p.h \
findwidgetbase_p.h \
lnkpropertiesbase_p.h
UICIMPLS = passwordbase_p.cpp \
proxiesbase_p.cpp \
categoryeditbase_p.cpp \
findwidgetbase_p.cpp \
lnkpropertiesbase_p.cpp
SRCMOC = moc_menubutton.cpp \
moc_proxies.cpp \
moc_datebookmonth.cpp \
moc_fileselector.cpp \
moc_imageedit.cpp \
moc_qpedecoration_qws.cpp \
moc_qpeapplication.cpp \
moc_qpedialog.cpp \
moc_tzselect.cpp \
moc_process.cpp \
moc_storage.cpp \
moc_qpemenubar.cpp \
moc_qpetoolbar.cpp \
backend/moc_categories.cpp \
moc_categorymenu.cpp \
moc_categoryedit_p.cpp \
moc_categoryselect.cpp \
moc_ir.cpp \
moc_findwidget_p.cpp \
moc_finddialog.cpp \
moc_lnkproperties.cpp \
moc_qlibrary_p.cpp \
moc_qprocess.cpp \
global.moc \
network.moc \
password.moc \
process_unix.moc \
timestring.moc \
qprocess_unix.moc \
moc_passwordbase_p.cpp \
moc_proxiesbase_p.cpp \
moc_categoryeditbase_p.cpp \
moc_findwidgetbase_p.cpp \
moc_lnkpropertiesbase_p.cpp
OBJMOC = moc_menubutton.o \
moc_proxies.o \
moc_datebookmonth.o \
moc_fileselector.o \
moc_imageedit.o \
moc_qpedecoration_qws.o \
moc_qpeapplication.o \
moc_qpedialog.o \
moc_tzselect.o \
moc_process.o \
moc_storage.o \
moc_qpemenubar.o \
moc_qpetoolbar.o \
backend/moc_categories.o \
moc_categorymenu.o \
moc_categoryedit_p.o \
moc_categoryselect.o \
moc_ir.o \
moc_findwidget_p.o \
moc_finddialog.o \
moc_lnkproperties.o \
moc_qlibrary_p.o \
moc_qprocess.o \
moc_passwordbase_p.o \
moc_proxiesbase_p.o \
moc_categoryeditbase_p.o \
moc_findwidgetbase_p.o \
moc_lnkpropertiesbase_p.o
####### Implicit rules
.SUFFIXES: .cpp .cxx .cc .C .c
.cpp.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
.cxx.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
.cc.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
.C.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
.c.o:
$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<
####### Build rules
all: $(DESTDIR)$(SYSCONF_LINK_TARGET)
$(DESTDIR)$(SYSCONF_LINK_TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC) $(SUBLIBS)
$(SYSCONF_LINK_LIB)
moc: $(SRCMOC)
tmake:
tmake library.pro
clean:
-rm -f $(OBJECTS) $(OBJMOC) $(SRCMOC) $(UICIMPLS) $(UICDECLS)
-rm -f *~ core
-rm -f allmoc.cpp
####### Extension Modules
listpromodules:
@echo
listallmodules:
@echo
listaddonpromodules:
@echo
listaddonentmodules:
@echo
REQUIRES=
####### Sub-libraries
###### Combined headers
####### Compile
calendar.o: calendar.cpp \
calendar.h
global.o: global.cpp \
global.moc
xmlreader.o: xmlreader.cpp \
xmlreader.h
mimetype.o: mimetype.cpp \
mimetype.h \
applnk.h \
resource.h \
qpeapplication.h \
qpedecoration_qws.h \
timestring.h
menubutton.o: menubutton.cpp \
menubutton.h
network.o: network.cpp \
network.moc
networkinterface.o: networkinterface.cpp \
networkinterface.h \
network.h \
config.h
proxies.o: proxies.cpp \
proxies.h \
config.h \
proxiesbase_p.h
filemanager.o: filemanager.cpp \
filemanager.h \
applnk.h
fontmanager.o: fontmanager.cpp \
fontmanager.h
qdawg.o: qdawg.cpp \
qdawg.h
datebookmonth.o: datebookmonth.cpp \
config.h \
datebookmonth.h \
calendar.h \
timestring.h \
datebookdb.h \
resource.h \
qpeapplication.h \
qpedecoration_qws.h
fileselector.o: fileselector.cpp \
fileselector.h \
filemanager.h \
applnk.h \
global.h \
resource.h \
config.h \
storage.h \
qpemenubar.h \
lnkproperties.h \
qpeapplication.h \
qpedecoration_qws.h \
timestring.h \
categorymenu.h
imageedit.o: imageedit.cpp \
imageedit.h
resource.o: resource.cpp \
qpeapplication.h \
qpedecoration_qws.h \
timestring.h \
resource.h \
inlinepics_p.h
qpedecoration_qws.o: qpedecoration_qws.cpp \
qcopenvelope_qws.h \
qpedecoration_qws.h \
qpeapplication.h \
timestring.h \
resource.h \
global.h
qcopenvelope_qws.o: qcopenvelope_qws.cpp \
qcopenvelope_qws.h \
global.h
qpeapplication.o: qpeapplication.cpp \
qcopenvelope_qws.h \
qpeapplication.h \
qpedecoration_qws.h \
timestring.h \
qpestyle.h \
lightstyle.h \
global.h \
resource.h \
config.h \
network.h \
fontmanager.h \
power.h \
alarmserver.h \
- applnk.h
+ applnk.h \
+ qpemenubar.h
qpestyle.o: qpestyle.cpp \
qpestyle.h \
qpeapplication.h \
qpedecoration_qws.h \
timestring.h
qpedialog.o: qpedialog.cpp \
qpedialog.h \
qpeapplication.h \
qpedecoration_qws.h \
timestring.h
lightstyle.o: lightstyle.cpp \
lightstyle.h
config.o: config.cpp \
config.h
applnk.o: applnk.cpp \
applnk.h
sound.o: sound.cpp
tzselect.o: tzselect.cpp \
tzselect.h \
resource.h \
global.h \
config.h
qmath.o: qmath.c \
qmath.h
datebookdb.o: datebookdb.cpp \
datebookdb.h
alarmserver.o: alarmserver.cpp \
qpeapplication.h \
qpedecoration_qws.h \
timestring.h \
global.h \
resource.h \
qcopenvelope_qws.h \
alarmserver.h
password.o: password.cpp \
password.moc \
password.h \
config.h \
global.h \
backend/contact.h \
passwordbase_p.h
process.o: process.cpp \
process.h
process_unix.o: process_unix.cpp \
process_unix.moc \
process.h
timestring.o: timestring.cpp \
timestring.moc \
timestring.h \
qpeapplication.h \
qpedecoration_qws.h \
config.h
fontdatabase.o: fontdatabase.cpp \
qpeapplication.h \
qpedecoration_qws.h \
timestring.h \
fontfactoryinterface.h \
fontdatabase.h
power.o: power.cpp \
- power.h
+ power.h \
+ custom.h
storage.o: storage.cpp
qpemessagebox.o: qpemessagebox.cpp \
qpemessagebox.h
backend/timeconversion.o: backend/timeconversion.cpp \
backend/timeconversion.h
qpedebug.o: qpedebug.cpp \
qpedebug.h
qpemenubar.o: qpemenubar.cpp \
qpemenubar.h
qpetoolbar.o: qpetoolbar.cpp \
qpetoolbar.h \
qpemenubar.h
backend/categories.o: backend/categories.cpp \
backend/categories.h \
backend/qpcglobal.h \
backend/palmtopuidgen.h \
backend/stringutil.h
backend/stringutil.o: backend/stringutil.cpp \
backend/stringutil.h \
backend/qpcglobal.h
backend/palmtoprecord.o: backend/palmtoprecord.cpp \
backend/palmtoprecord.h \
backend/qpcglobal.h \
backend/palmtopuidgen.h \
backend/stringutil.h
backend/task.o: backend/task.cpp \
backend/vobject_p.h \
backend/timeconversion.h \
backend/qfiledirect_p.h
backend/event.o: backend/event.cpp \
backend/event.h \
backend/qfiledirect_p.h \
backend/vobject_p.h
backend/contact.o: backend/contact.cpp \
backend/contact.h \
backend/vobject_p.h \
backend/qfiledirect_p.h
categorymenu.o: categorymenu.cpp \
categorymenu.h \
backend/categories.h \
backend/qpcglobal.h \
backend/palmtopuidgen.h \
categoryselect.h
categoryedit_p.o: categoryedit_p.cpp \
categoryedit_p.h \
categoryeditbase_p.h
categoryselect.o: categoryselect.cpp \
categorywidget.h \
categoryselect.h
categorywidget.o: categorywidget.cpp \
categoryedit_p.h \
categoryeditbase_p.h \
categorywidget.h
ir.o: ir.cpp \
ir.h \
qcopenvelope_qws.h \
applnk.h
backend/vcc_yacc.o: backend/vcc_yacc.cpp \
- backend/vobject_p.h
+ backend/vobject_p.h \
+ backend/qfiledirect_p.h
backend/vobject.o: backend/vobject.cpp \
backend/vobject_p.h \
backend/qfiledirect_p.h
findwidget_p.o: findwidget_p.cpp \
findwidget_p.h \
findwidgetbase_p.h
finddialog.o: finddialog.cpp \
finddialog.h \
findwidget_p.h \
findwidgetbase_p.h
lnkproperties.o: lnkproperties.cpp \
lnkproperties.h \
lnkpropertiesbase_p.h \
ir.h
quuid.o: quuid.cpp \
quuid.h
qlibrary.o: qlibrary.cpp \
qlibrary_p.h \
qlibrary.h
qlibrary_unix.o: qlibrary_unix.cpp \
qlibrary_p.h \
qlibrary.h
qprocess.o: qprocess.cpp \
qprocess.h
qprocess_unix.o: qprocess_unix.cpp \
qprocess_unix.moc \
qprocess.h \
qcleanuphandler_p.h
passwordbase_p.h: passwordbase_p.ui
$(UIC) passwordbase_p.ui -o $(INTERFACE_DECL_PATH)/passwordbase_p.h
passwordbase_p.cpp: passwordbase_p.ui
$(UIC) passwordbase_p.ui -i passwordbase_p.h -o passwordbase_p.cpp
proxiesbase_p.h: proxiesbase_p.ui
$(UIC) proxiesbase_p.ui -o $(INTERFACE_DECL_PATH)/proxiesbase_p.h
proxiesbase_p.cpp: proxiesbase_p.ui
$(UIC) proxiesbase_p.ui -i proxiesbase_p.h -o proxiesbase_p.cpp
categoryeditbase_p.h: categoryeditbase_p.ui
$(UIC) categoryeditbase_p.ui -o $(INTERFACE_DECL_PATH)/categoryeditbase_p.h
categoryeditbase_p.cpp: categoryeditbase_p.ui
$(UIC) categoryeditbase_p.ui -i categoryeditbase_p.h -o categoryeditbase_p.cpp
findwidgetbase_p.h: findwidgetbase_p.ui
$(UIC) findwidgetbase_p.ui -o $(INTERFACE_DECL_PATH)/findwidgetbase_p.h
findwidgetbase_p.cpp: findwidgetbase_p.ui
$(UIC) findwidgetbase_p.ui -i findwidgetbase_p.h -o findwidgetbase_p.cpp
lnkpropertiesbase_p.h: lnkpropertiesbase_p.ui
$(UIC) lnkpropertiesbase_p.ui -o $(INTERFACE_DECL_PATH)/lnkpropertiesbase_p.h
lnkpropertiesbase_p.cpp: lnkpropertiesbase_p.ui
$(UIC) lnkpropertiesbase_p.ui -i lnkpropertiesbase_p.h -o lnkpropertiesbase_p.cpp
-passwordbase_p.o: passwordbase_p.cpp \
- passwordbase_p.h
+passwordbase_p.o: passwordbase_p.cpp
-proxiesbase_p.o: proxiesbase_p.cpp \
- proxiesbase_p.h
+proxiesbase_p.o: proxiesbase_p.cpp
-categoryeditbase_p.o: categoryeditbase_p.cpp \
- categoryeditbase_p.h
+categoryeditbase_p.o: categoryeditbase_p.cpp
-findwidgetbase_p.o: findwidgetbase_p.cpp \
- findwidgetbase_p.h
+findwidgetbase_p.o: findwidgetbase_p.cpp
-lnkpropertiesbase_p.o: lnkpropertiesbase_p.cpp \
- lnkpropertiesbase_p.h
+lnkpropertiesbase_p.o: lnkpropertiesbase_p.cpp
moc_menubutton.o: moc_menubutton.cpp \
menubutton.h
moc_proxies.o: moc_proxies.cpp \
proxies.h \
config.h
moc_datebookmonth.o: moc_datebookmonth.cpp \
datebookmonth.h \
calendar.h \
timestring.h
moc_fileselector.o: moc_fileselector.cpp \
fileselector.h \
filemanager.h \
applnk.h
moc_imageedit.o: moc_imageedit.cpp \
imageedit.h
moc_qpedecoration_qws.o: moc_qpedecoration_qws.cpp \
qpedecoration_qws.h
moc_qpeapplication.o: moc_qpeapplication.cpp \
qpeapplication.h \
qpedecoration_qws.h \
timestring.h
moc_qpedialog.o: moc_qpedialog.cpp \
qpedialog.h
moc_tzselect.o: moc_tzselect.cpp \
tzselect.h
moc_process.o: moc_process.cpp \
process.h
moc_storage.o: moc_storage.cpp \
storage.h
moc_qpemenubar.o: moc_qpemenubar.cpp \
qpemenubar.h
moc_qpetoolbar.o: moc_qpetoolbar.cpp \
qpetoolbar.h
backend/moc_categories.o: backend/moc_categories.cpp \
backend/categories.h \
backend/qpcglobal.h \
backend/palmtopuidgen.h
moc_categorymenu.o: moc_categorymenu.cpp \
categorymenu.h
moc_categoryedit_p.o: moc_categoryedit_p.cpp \
categoryedit_p.h \
categoryeditbase_p.h
moc_categoryselect.o: moc_categoryselect.cpp \
categoryselect.h
moc_ir.o: moc_ir.cpp \
ir.h
moc_findwidget_p.o: moc_findwidget_p.cpp \
findwidget_p.h \
findwidgetbase_p.h
moc_finddialog.o: moc_finddialog.cpp \
finddialog.h
moc_lnkproperties.o: moc_lnkproperties.cpp \
lnkproperties.h
moc_qlibrary_p.o: moc_qlibrary_p.cpp \
qlibrary_p.h \
qlibrary.h
moc_qprocess.o: moc_qprocess.cpp \
qprocess.h
moc_passwordbase_p.o: global.moc \
global.cpp
moc_proxiesbase_p.o: network.moc \
network.cpp
moc_categoryeditbase_p.o: password.moc \
password.cpp \
password.h \
config.h \
global.h \
backend/contact.h \
passwordbase_p.h
moc_findwidgetbase_p.o: process_unix.moc \
process_unix.cpp \
process.h
moc_lnkpropertiesbase_p.o: timestring.moc \
timestring.cpp \
timestring.h \
qpeapplication.h \
qpedecoration_qws.h \
config.h
moc_menubutton.cpp: menubutton.h
$(MOC) menubutton.h -o moc_menubutton.cpp
moc_proxies.cpp: proxies.h
$(MOC) proxies.h -o moc_proxies.cpp
moc_datebookmonth.cpp: datebookmonth.h
$(MOC) datebookmonth.h -o moc_datebookmonth.cpp
moc_fileselector.cpp: fileselector.h
$(MOC) fileselector.h -o moc_fileselector.cpp
moc_imageedit.cpp: imageedit.h
$(MOC) imageedit.h -o moc_imageedit.cpp
moc_qpedecoration_qws.cpp: qpedecoration_qws.h
$(MOC) qpedecoration_qws.h -o moc_qpedecoration_qws.cpp
moc_qpeapplication.cpp: qpeapplication.h
$(MOC) qpeapplication.h -o moc_qpeapplication.cpp
moc_qpedialog.cpp: qpedialog.h
$(MOC) qpedialog.h -o moc_qpedialog.cpp
moc_tzselect.cpp: tzselect.h
$(MOC) tzselect.h -o moc_tzselect.cpp
moc_process.cpp: process.h
$(MOC) process.h -o moc_process.cpp
moc_storage.cpp: storage.h
$(MOC) storage.h -o moc_storage.cpp
moc_qpemenubar.cpp: qpemenubar.h
$(MOC) qpemenubar.h -o moc_qpemenubar.cpp
moc_qpetoolbar.cpp: qpetoolbar.h
$(MOC) qpetoolbar.h -o moc_qpetoolbar.cpp
backend/moc_categories.cpp: backend/categories.h
$(MOC) backend/categories.h -o backend/moc_categories.cpp
moc_categorymenu.cpp: categorymenu.h
$(MOC) categorymenu.h -o moc_categorymenu.cpp
moc_categoryedit_p.cpp: categoryedit_p.h
$(MOC) categoryedit_p.h -o moc_categoryedit_p.cpp
moc_categoryselect.cpp: categoryselect.h
$(MOC) categoryselect.h -o moc_categoryselect.cpp
moc_ir.cpp: ir.h
$(MOC) ir.h -o moc_ir.cpp
moc_findwidget_p.cpp: findwidget_p.h
$(MOC) findwidget_p.h -o moc_findwidget_p.cpp
moc_finddialog.cpp: finddialog.h
$(MOC) finddialog.h -o moc_finddialog.cpp
moc_lnkproperties.cpp: lnkproperties.h
$(MOC) lnkproperties.h -o moc_lnkproperties.cpp
moc_qlibrary_p.cpp: qlibrary_p.h
$(MOC) qlibrary_p.h -o moc_qlibrary_p.cpp
moc_qprocess.cpp: qprocess.h
$(MOC) qprocess.h -o moc_qprocess.cpp
global.moc: global.cpp
$(MOC) global.cpp -o global.moc
network.moc: network.cpp
$(MOC) network.cpp -o network.moc
password.moc: password.cpp
$(MOC) password.cpp -o password.moc
process_unix.moc: process_unix.cpp
$(MOC) process_unix.cpp -o process_unix.moc
timestring.moc: timestring.cpp
$(MOC) timestring.cpp -o timestring.moc
qprocess_unix.moc: qprocess_unix.cpp
$(MOC) qprocess_unix.cpp -o qprocess_unix.moc
moc_passwordbase_p.cpp: passwordbase_p.h
$(MOC) passwordbase_p.h -o moc_passwordbase_p.cpp
moc_proxiesbase_p.cpp: proxiesbase_p.h
$(MOC) proxiesbase_p.h -o moc_proxiesbase_p.cpp
moc_categoryeditbase_p.cpp: categoryeditbase_p.h
$(MOC) categoryeditbase_p.h -o moc_categoryeditbase_p.cpp
moc_findwidgetbase_p.cpp: findwidgetbase_p.h
$(MOC) findwidgetbase_p.h -o moc_findwidgetbase_p.cpp
moc_lnkpropertiesbase_p.cpp: lnkpropertiesbase_p.h
$(MOC) lnkpropertiesbase_p.h -o moc_lnkpropertiesbase_p.cpp
diff --git a/library/global.cpp b/library/global.cpp
index e1bbf3e..e5fc2b3 100644
--- a/library/global.cpp
+++ b/library/global.cpp
@@ -1,521 +1,521 @@
/**********************************************************************
** Copyright (C) 2000 Trolltech AS. All rights reserved.
**
** This file is part of Qtopia Environment.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#include <qpe/qpedebug.h>
#include <qpe/global.h>
#include <qpe/qdawg.h>
#include <qpe/qpeapplication.h>
#include <qpe/resource.h>
#include <qpe/storage.h>
#include <qpe/applnk.h>
#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
#include "qpe/qcopenvelope_qws.h"
#endif
#include <qfile.h>
#include <qlabel.h>
#include <qtimer.h>
#include <qmap.h>
#include <qdict.h>
#include <qdir.h>
#include <qmessagebox.h>
#include <qregexp.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <qwindowsystem_qws.h> // for qwsServer
#include <qdatetime.h>
//#include "quickexec_p.h"
class Emitter : public QObject {
Q_OBJECT
public:
Emitter( QWidget* receiver, const QString& document )
{
connect(this, SIGNAL(setDocument(const QString&)),
receiver, SLOT(setDocument(const QString&)));
emit setDocument(document);
disconnect(this, SIGNAL(setDocument(const QString&)),
receiver, SLOT(setDocument(const QString&)));
}
signals:
void setDocument(const QString&);
};
class StartingAppList : public QObject {
Q_OBJECT
public:
static void add( const QString& name );
static bool isStarting( const QString name );
private slots:
void handleNewChannel( const QString &);
private:
StartingAppList( QObject *parent=0, const char* name=0 ) ;
QDict<QTime> dict;
static StartingAppList *appl;
};
StartingAppList* StartingAppList::appl = 0;
StartingAppList::StartingAppList( QObject *parent, const char* name )
:QObject( parent, name )
{
#if QT_VERSION >= 232 && !defined(QT_NO_COP)
connect( qwsServer, SIGNAL( newChannel(const QString&)),
this, SLOT( handleNewChannel(const QString&)) );
dict.setAutoDelete( TRUE );
#endif
}
void StartingAppList::add( const QString& name )
{
#if QT_VERSION >= 232 && !defined(QT_NO_COP)
if ( !appl )
appl = new StartingAppList;
QTime *t = new QTime;
t->start();
appl->dict.insert( "QPE/Application/" + name, t );
#endif
}
bool StartingAppList::isStarting( const QString name )
{
#if QT_VERSION >= 232 && !defined(QT_NO_COP)
if ( appl ) {
QTime *t = appl->dict.find( "QPE/Application/" + name );
if ( !t )
return FALSE;
if ( t->elapsed() > 10000 ) {
// timeout in case of crash or something
appl->dict.remove( "QPE/Application/" + name );
return FALSE;
}
return TRUE;
}
#endif
return FALSE;
}
void StartingAppList::handleNewChannel( const QString & name )
{
#if QT_VERSION >= 232 && !defined(QT_NO_COP)
dict.remove( name );
#endif
}
static bool docDirCreated = FALSE;
static QDawg* fixed_dawg = 0;
static QDict<QDawg> *named_dawg = 0;
static QString qpeDir()
{
- QString dir = getenv("QPEDIR");
+ QString dir = getenv("OPIEDIR");
if ( dir.isEmpty() ) dir = "..";
return dir;
}
static QString dictDir()
{
return qpeDir() + "/etc/dict";
}
/*!
\class Global global.h
\brief The Global class collects application-wide global functions.
*/
/*!
\internal
*/
Global::Global()
{
}
/*!
Returns the unchangeable QDawg that contains general
words for the current locale.
\sa addedDawg()
*/
const QDawg& Global::fixedDawg()
{
if ( !fixed_dawg ) {
if ( !docDirCreated )
createDocDir();
fixed_dawg = new QDawg;
QString dawgfilename = dictDir() + "/dawg";
QString lang = getenv( "LANG" );
QString dawgfilename_lang = dawgfilename + "." + lang;
QString words_lang = dictDir() + "/words." + lang;
if ( QFile::exists(dawgfilename_lang) ||
QFile::exists(words_lang) )
dawgfilename = dawgfilename_lang;
QFile dawgfile(dawgfilename);
if ( !dawgfile.exists() ) {
QString fn = dictDir() + "/words";
if ( QFile::exists(words_lang) )
fn = words_lang;
QFile in(fn);
if ( in.open(IO_ReadOnly) ) {
fixed_dawg->createFromWords(&in);
dawgfile.open(IO_WriteOnly);
fixed_dawg->write(&dawgfile);
dawgfile.close();
}
} else {
fixed_dawg->readFile(dawgfilename);
}
}
return *fixed_dawg;
}
/*!
Returns the changeable QDawg that contains general
words for the current locale.
\sa fixedDawg()
*/
const QDawg& Global::addedDawg()
{
return dawg("local");
}
/*!
Returns the QDawg with the given \a name.
This is an application-specific word list.
\a name should not contain "/".
*/
const QDawg& Global::dawg(const QString& name)
{
createDocDir();
if ( !named_dawg )
named_dawg = new QDict<QDawg>;
QDawg* r = named_dawg->find(name);
if ( !r ) {
r = new QDawg;
named_dawg->insert(name,r);
QString dawgfilename = dictDir() + "/" + name + ".dawg";
QFile dawgfile(dawgfilename);
if ( dawgfile.open(IO_ReadOnly) )
r->readFile(dawgfilename);
}
return *r;
}
/*!
Adds \a wordlist to the addedDawg().
*/
void Global::addWords(const QStringList& wordlist)
{
addWords("local",wordlist);
}
/*!
Adds \a wordlist to the dawg() named \a dictname.
*/
void Global::addWords(const QString& dictname, const QStringList& wordlist)
{
QDawg& d = (QDawg&)dawg(dictname);
QStringList all = d.allWords() + wordlist;
d.createFromWords(all);
QString dawgfilename = dictDir() + "/" + dictname + ".dawg";
QFile dawgfile(dawgfilename);
if ( dawgfile.open(IO_WriteOnly) ) {
d.write(&dawgfile);
dawgfile.close();
}
// #### Re-read the dawg here if we use mmap().
// #### Signal other processes to re-read.
}
/*!
Returns a full path for the application named \a appname, with the
given \a filename or QString::null if there was a problem creating
the directory tree for \a appname.
If \a filename contains "/", it is the caller's responsibility to
ensure those directories exist.
*/
QString Global::applicationFileName(const QString& appname, const QString& filename)
{
QDir d;
QString r = getenv("HOME");
r += "/Applications/";
if ( !QFile::exists( r ) )
if ( d.mkdir(r) == false )
return QString::null;
r += appname;
if ( !QFile::exists( r ) )
if ( d.mkdir(r) == false )
return QString::null;
r += "/"; r += filename;
return r;
}
/*!
\internal
*/
void Global::createDocDir()
{
if ( !docDirCreated ) {
docDirCreated = TRUE;
mkdir( QPEApplication::documentDir().latin1(), 0755 );
}
}
/*!
Displays a status \a message to the user. This generally appears
in the taskbar for some amount of time, then disappears.
*/
void Global::statusMessage(const QString& message)
{
#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
QCopEnvelope e( "QPE/TaskBar", "message(QString)" );
e << message;
#endif
}
/*!
\internal
*/
void Global::applyStyle()
{
#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
QCopChannel::send( "QPE/System", "applyStyle()" );
#else
((QPEApplication *)qApp)->applyStyle(); // apply without needing QCop for floppy version
#endif
}
/*!
\internal
*/
QWidget *Global::shutdown( bool )
{
#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
QCopChannel::send( "QPE/System", "shutdown()" );
#endif
return 0;
}
/*!
\internal
*/
QWidget *Global::restart( bool )
{
#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
QCopChannel::send( "QPE/System", "restart()" );
#endif
return 0;
}
/*!
Explicitly show the current input method.
*/
void Global::showInputMethod()
{
#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
QCopChannel::send( "QPE/TaskBar", "showInputMethod()" );
#endif
}
/*!
Explicitly hide the current input method.
*/
void Global::hideInputMethod()
{
#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
QCopChannel::send( "QPE/TaskBar", "hideInputMethod()" );
#endif
}
/*!
\internal
*/
bool Global::isBuiltinCommand( const QString &name )
{
if(!builtin)
return FALSE; // yes, it can happen
for (int i = 0; builtin[i].file; i++) {
if ( builtin[i].file == name ) {
return TRUE;
}
}
return FALSE;
}
Global::Command* Global::builtin=0;
QGuardedPtr<QWidget> *Global::running=0;
/*!
\class Global::Command
\brief The Global::Command class is internal.
\internal
*/
/*!
\internal
*/
void Global::setBuiltinCommands( Command* list )
{
if ( running )
delete [] running;
builtin = list;
int count = 0;
if (!builtin)
return;
while ( builtin[count].file )
count++;
running = new QGuardedPtr<QWidget> [ count ];
}
/*!
\internal
*/
void Global::setDocument( QWidget* receiver, const QString& document )
{
Emitter emitter(receiver,document);
}
/*!
\internal
*/
bool Global::terminateBuiltin( const QString& n )
{
if (!builtin)
return FALSE;
for (int i = 0; builtin[i].file; i++) {
if ( builtin[i].file == n ) {
delete running[i];
return TRUE;
}
}
return FALSE;
}
/*!
\internal
*/
void Global::terminate( const AppLnk* app )
{
//if ( terminateBuiltin(app->exec()) ) return; // maybe? haven't tried this
QCString channel = "QPE/Application/" + app->exec().utf8();
if ( QCopChannel::isRegistered(channel) ) {
QCopEnvelope e(channel, "quit()");
}
}
/*!
Low-level function to run command \a c. Not recommended.
*/
void Global::invoke(const QString &c)
{
// Convert the command line in to a list of arguments
QStringList list = QStringList::split(QRegExp(" *"),c);
#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
QString ap=list[0];
// see if the application is already running
// XXX should lock file /tmp/qcop-msg-ap
if ( QCopChannel::isRegistered( ("QPE/Application/" + ap).latin1() ) ) {
QCopEnvelope e("QPE/System", "notBusy(QString)" );
e << ap;
return;
}
// XXX should unlock file /tmp/qcop-msg-ap
//see if it is being started
if ( StartingAppList::isStarting( ap ) ) {
QCopEnvelope e("QPE/System", "notBusy(QString)" );
e << ap;
return;
}
#endif
#ifdef QT_NO_QWS_MULTIPROCESS
QMessageBox::warning( 0, "Error", "Could not find the application " + c, "Ok", 0, 0, 0, 1 );
#else
QStrList slist;
unsigned int j;
for ( j = 0; j < list.count(); j++ )
slist.append( list[j].utf8() );
const char **args = new (const char *)[slist.count() + 1];
for ( j = 0; j < slist.count(); j++ )
args[j] = slist.at(j);
args[j] = NULL;
#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
// an attempt to show a wait...
// more logic should be used, but this will be fine for the moment...
QCopEnvelope ( "QPE/System", "busy()" );
#endif
#ifdef HAVE_QUICKEXEC
QString libexe = qpeDir()+"/binlib/lib"+args[0] + ".so";
qDebug("libfile = %s", libexe.latin1() );
if ( QFile::exists( libexe ) ) {
qDebug("calling quickexec %s", libexe.latin1() );
quickexecv( libexe.utf8().data(), (const char **)args );
} else
#endif
{
if ( !::vfork() ) {
for ( int fd = 3; fd < 100; fd++ )
::close( fd );
::setpgid( ::getpid(), ::getppid() );
// Try bindir first, so that foo/bar works too
::execv( qpeDir()+"/bin/"+args[0], (char * const *)args );
::execvp( args[0], (char * const *)args );
exit( -1 );
}
}
StartingAppList::add( list[0] );
#endif //QT_NO_QWS_MULTIPROCESS
}
/*!
Executes application identfied by \a c, passing \a document.
Note that you might be better off sending a QCop message to
the application's QPE/Application/<i>appname</i> channel.
*/
void Global::execute( const QString &c, const QString& document )
diff --git a/library/library.pro b/library/library.pro
index 06dfc8f..058d216 100644
--- a/library/library.pro
+++ b/library/library.pro
@@ -1,132 +1,132 @@
TEMPLATE = lib
CONFIG += qt warn_on release
HEADERS = calendar.h \
global.h \
resource.h \
xmlreader.h \
mimetype.h \
menubutton.h \
network.h \
networkinterface.h \
proxies.h \
filemanager.h \
fontmanager.h \
qdawg.h \
datebookmonth.h \
fileselector.h \
imageedit.h \
qcopenvelope_qws.h \
qpedecoration_qws.h \
qpeapplication.h \
qpestyle.h \
qpedialog.h \
lightstyle.h \
config.h \
applnk.h \
sound.h \
tzselect.h \
qmath.h \
datebookdb.h \
alarmserver.h \
process.h \
password.h \
timestring.h \
fontfactoryinterface.h \
fontdatabase.h \
power.h \
storage.h \
qpemessagebox.h \
backend/timeconversion.h \
qpedebug.h \
qpemenubar.h \
qpetoolbar.h \
backend/categories.h \
backend/stringutil.h \
backend/palmtopuid.h \
backend/palmtoprecord.h \
backend/task.h \
backend/event.h \
backend/contact.h\
categorymenu.h \
categoryedit_p.h \
categoryselect.h \
categorywidget.h \
ir.h \
backend/vobject_p.h \
findwidget_p.h \
finddialog.h \
lnkproperties.h
SOURCES = calendar.cpp \
global.cpp \
xmlreader.cpp \
mimetype.cpp \
menubutton.cpp \
network.cpp \
networkinterface.cpp \
proxies.cpp \
filemanager.cpp \
fontmanager.cpp \
qdawg.cpp \
datebookmonth.cpp \
fileselector.cpp \
imageedit.cpp \
resource.cpp \
qpedecoration_qws.cpp \
qcopenvelope_qws.cpp \
qpeapplication.cpp \
qpestyle.cpp \
qpedialog.cpp \
lightstyle.cpp \
config.cpp \
applnk.cpp \
sound.cpp \
tzselect.cpp \
qmath.c \
datebookdb.cpp \
alarmserver.cpp \
password.cpp \
process.cpp \
process_unix.cpp \
timestring.cpp \
fontdatabase.cpp \
power.cpp \
storage.cpp \
qpemessagebox.cpp \
backend/timeconversion.cpp \
qpedebug.cpp \
qpemenubar.cpp \
qpetoolbar.cpp \
backend/categories.cpp \
backend/stringutil.cpp \
backend/palmtoprecord.cpp \
backend/task.cpp \
backend/event.cpp \
backend/contact.cpp \
categorymenu.cpp \
categoryedit_p.cpp \
categoryselect.cpp \
categorywidget.cpp \
ir.cpp \
backend/vcc_yacc.cpp \
backend/vobject.cpp \
findwidget_p.cpp \
finddialog.cpp \
lnkproperties.cpp
# Qt 3 compatibility
qt2:HEADERS += quuid.h qcom.h qlibrary.h qlibrary_p.h qprocess.h
qt2:SOURCES += quuid.cpp qlibrary.cpp qlibrary_unix.cpp qprocess.cpp \
qprocess_unix.cpp
-INCLUDEPATH += $(QPEDIR)/include backend
+INCLUDEPATH += $(OPIEDIR)/include backend
LIBS += -ldl -lcrypt -lm
INTERFACES = passwordbase_p.ui proxiesbase_p.ui categoryeditbase_p.ui findwidgetbase_p.ui lnkpropertiesbase_p.ui
TARGET = qpe
DESTDIR = $(QTDIR)/lib$(PROJMAK)
-# This is set by configure$(QPEDIR).
+# This is set by configure$(OPIEDIR).
VERSION = 1.5.0
TRANSLATIONS = ../i18n/de/libqpe.ts
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp
index f0a68cf..70ffec1 100644
--- a/library/qpeapplication.cpp
+++ b/library/qpeapplication.cpp
@@ -409,773 +409,773 @@ static void setScreenSaverInterval(int interval)
application becomes a Qtopia application. It automatically follows
style changes, quits and raises, and in the
case of \link docwidget.html document-oriented\endlink applications,
changes the current displayed document in response to the environment.
*/
/*!
\fn void QPEApplication::clientMoused()
\internal
*/
/*!
\fn void QPEApplication::timeChanged();
This signal is emitted when the time jumps forward or backwards
by more than the normal passage of time.
*/
/*!
\fn void QPEApplication::clockChanged( bool ampm );
This signal is emitted when the user changes the style
of clock. If \a ampm is TRUE, the user wants a 12-hour
AM/PM close, otherwise, they want a 24-hour clock.
*/
/*!
\fn void QPEApplication::appMessage( const QCString& msg, const QByteArray& data )
This signal is emitted when a message is received on the
QPE/Application/<i>appname</i> QCop channel for this application.
The slot to which you connect this signal uses \a msg and \a data
in the following way:
\code
void MyWidget::receive( const QCString& msg, const QByteArray& data )
{
QDataStream stream( data, IO_ReadOnly );
if ( msg == "someMessage(int,int,int)" ) {
int a,b,c;
stream >> a >> b >> c;
...
} else if ( msg == "otherMessage(QString)" ) {
...
}
}
\endcode
\sa qcop.html
*/
/*!
Constructs a QPEApplication just as you would construct
a QApplication, passing \a argc, \a argv, and \a t.
*/
QPEApplication::QPEApplication( int& argc, char **argv, Type t )
: QApplication( hack(argc), argv, t )
{
int dw = desktop()->width();
if ( dw < 200 ) {
setFont( QFont( "helvetica", 8 ) );
AppLnk::setSmallIconSize(10);
AppLnk::setBigIconSize(28);
}
d = new QPEApplicationData;
QMimeSourceFactory::setDefaultFactory(new ResourceMimeFactory);
connect(this, SIGNAL(lastWindowClosed()), this, SLOT(hideOrQuit()));
#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
QString qcopfn("/tmp/qcop-msg-");
qcopfn += QString(argv[0]); // append command name
QFile f(qcopfn);
if ( f.open(IO_ReadOnly) ) {
flock(f.handle(), LOCK_EX);
}
sysChannel = new QCopChannel( "QPE/System", this );
connect( sysChannel, SIGNAL(received(const QCString &, const QByteArray &)),
this, SLOT(systemMessage( const QCString &, const QByteArray &)) );
QCString channel = QCString(argv[0]);
channel.replace(QRegExp(".*/"),"");
d->appName = channel;
channel = "QPE/Application/" + channel;
pidChannel = new QCopChannel( channel, this);
connect( pidChannel, SIGNAL(received(const QCString &, const QByteArray &)),
this, SLOT(pidMessage(const QCString &, const QByteArray &)));
if ( f.isOpen() ) {
d->keep_running = FALSE;
QDataStream ds(&f);
QCString channel, message;
QByteArray data;
while(!ds.atEnd()) {
ds >> channel >> message >> data;
d->enqueueQCop(channel,message,data);
}
flock(f.handle(), LOCK_UN);
f.close();
f.remove();
}
for (int a=0; a<argc; a++) {
if ( qstrcmp(argv[a],"-preload")==0 ) {
argv[a] = argv[a+1];
a++;
d->preloaded = TRUE;
argc-=1;
} else if ( qstrcmp(argv[a],"-preload-show")==0 ) {
argv[a] = argv[a+1];
a++;
d->preloaded = TRUE;
d->forceshow = TRUE;
argc-=1;
}
}
/* overide stored arguments */
setArgs(argc, argv);
#endif
qwsSetDecoration( new QPEDecoration() );
#ifndef QT_NO_TRANSLATION
char *l = getenv( "LANG" );
QString lang;
if ( l ) {
lang = l;
/*
Config config("qpe");
config.setGroup( "Appearance" );
lang = config.readEntry( "Language", lang );
*/
QTranslator * trans = new QTranslator(this);
QString tfn = qpeDir()+"/i18n/"+lang+"/"+d->appName+".qm";
if ( trans->load( tfn ))
installTranslator( trans );
else
delete trans;
trans = new QTranslator(this);
tfn = qpeDir()+"/i18n/"+lang+"/libqpe.qm";
if ( trans->load( tfn ))
installTranslator( trans );
else
delete trans;
//###language/font hack; should look it up somewhere
if ( lang == "ja" || lang == "zh_CN" || lang == "zh_TW" || lang == "ko" ) {
QFont fn = FontManager::unicodeFont( FontManager::Proportional );
setFont( fn );
}
}
#endif
applyStyle();
if ( type() == GuiServer ) {
setScreenSaverInterval(-1);
setVolume();
QWSServer::setScreenSaver(new QPEScreenSaver);
}
installEventFilter( this );
QPEMenuToolFocusManager::initialize();
#ifdef QT_NO_QWS_CURSOR
// if we have no cursor, probably don't want tooltips
QToolTip::setEnabled( FALSE );
#endif
}
static QPtrDict<void>* inputMethodDict=0;
static void createInputMethodDict()
{
if ( !inputMethodDict )
inputMethodDict = new QPtrDict<void>;
}
/*!
Returns the currently set hint to the system as to whether
\a w has any use for text input methods.
\sa setInputMethodHint()
*/
QPEApplication::InputMethodHint QPEApplication::inputMethodHint( QWidget* w )
{
if ( inputMethodDict && w )
return (InputMethodHint)(int)inputMethodDict->find(w);
return Normal;
}
/*!
\enum QPEApplication::InputMethodHint
\value Normal the application sometimes needs text input (the default).
\value AlwaysOff the application never needs text input.
\value AlwaysOn the application always needs text input.
*/
/*!
Hints to the system that \a w has use for text input methods
as specified by \a mode.
\sa inputMethodHint()
*/
void QPEApplication::setInputMethodHint( QWidget* w, InputMethodHint mode )
{
createInputMethodDict();
if ( mode == Normal ) {
inputMethodDict->remove(w);
} else {
inputMethodDict->insert(w,(void*)mode);
}
}
class HackDialog : public QDialog
{
public:
void acceptIt() { accept(); }
void rejectIt() { reject(); }
};
void QPEApplication::mapToDefaultAction( QWSKeyEvent *ke, int key )
{
// specialised actions for certain widgets. May want to
// add more stuff here.
if ( activePopupWidget() && activePopupWidget()->inherits( "QListBox" )
&& activePopupWidget()->parentWidget()
&& activePopupWidget()->parentWidget()->inherits( "QComboBox" ) )
key = Qt::Key_Return;
if ( activePopupWidget() && activePopupWidget()->inherits( "QPopupMenu" ) )
key = Qt::Key_Return;
ke->simpleData.keycode = key;
}
class HackWidget : public QWidget
{
public:
bool needsOk()
{ return (getWState() & WState_Reserved1 ); }
};
/*!
\internal
*/
bool QPEApplication::qwsEventFilter( QWSEvent *e )
{
if ( !d->notbusysent && e->type == QWSEvent::Focus ) {
if ( qApp->type() != QApplication::GuiServer ) {
QCopEnvelope e("QPE/System", "notBusy(QString)" );
e << d->appName;
}
d->notbusysent=TRUE;
}
if ( type() == GuiServer ) {
switch ( e->type ) {
case QWSEvent::Mouse:
if ( e->asMouse()->simpleData.state && !QWidget::find(e->window()) )
emit clientMoused();
}
}
if ( e->type == QWSEvent::Key ) {
if ( d->kbgrabber == 1 )
return TRUE;
QWSKeyEvent *ke = (QWSKeyEvent *)e;
if ( ke->simpleData.keycode == Qt::Key_F33 ) {
// Use special "OK" key to press "OK" on top level widgets
QWidget *active = activeWindow();
QWidget *popup = 0;
if ( active && active->isPopup() ) {
popup = active;
active = active->parentWidget();
}
if ( active && (int)active->winId() == ke->simpleData.window &&
!active->testWFlags( WStyle_Customize|WType_Popup|WType_Desktop )) {
if ( ke->simpleData.is_press ) {
if ( popup )
popup->close();
if ( active->inherits( "QDialog" ) ) {
HackDialog *d = (HackDialog *)active;
d->acceptIt();
return TRUE;
} else if ( ((HackWidget *)active)->needsOk() ) {
QSignal s;
s.connect( active, SLOT( accept() ) );
s.activate();
} else {
// do the same as with the select key: Map to the default action of the widget:
mapToDefaultAction( ke, Qt::Key_Return );
}
}
}
} else if ( ke->simpleData.keycode == Qt::Key_F30 ) {
// Use special "select" key to do whatever default action a widget has
mapToDefaultAction( ke, Qt::Key_Space );
} else if ( ke->simpleData.keycode == Qt::Key_Escape &&
ke->simpleData.is_press ) {
// Escape key closes app if focus on toplevel
QWidget *active = activeWindow();
if ( active && active->testWFlags( WType_TopLevel ) &&
(int)active->winId() == ke->simpleData.window &&
!active->testWFlags( WStyle_Dialog|WStyle_Customize|WType_Popup|WType_Desktop )) {
if ( active->inherits( "QDialog" ) ) {
HackDialog *d = (HackDialog *)active;
d->rejectIt();
return TRUE;
} else if ( strcmp( argv()[0], "embeddedkonsole") != 0 ) {
active->close();
}
}
}
#if QT_VERSION < 231
// Filter out the F4/Launcher key from apps
// ### The launcher key may not always be F4 on all devices
if ( ((QWSKeyEvent *)e)->simpleData.keycode == Qt::Key_F4 )
return TRUE;
#endif
}
if ( e->type == QWSEvent::Focus ) {
QWSFocusEvent *fe = (QWSFocusEvent*)e;
QWidget* nfw = QWidget::find(e->window());
if ( !fe->simpleData.get_focus ) {
QWidget *active = activeWindow();
while ( active && active->isPopup() ) {
active->close();
active = activeWindow();
}
if ( !nfw && d->kbgrabber == 2 ) {
ungrabKeyboard();
d->kbregrab = TRUE; // want kb back when we're active
}
} else {
// make sure our modal widget is ALWAYS on top
QWidget *topm = activeModalWidget();
if ( topm ) {
topm->raise();
}
if ( d->kbregrab ) {
grabKeyboard();
d->kbregrab = FALSE;
}
}
if ( fe->simpleData.get_focus && inputMethodDict ) {
InputMethodHint m = inputMethodHint( QWidget::find(e->window()) );
if ( m == AlwaysOff )
Global::hideInputMethod();
if ( m == AlwaysOn )
Global::showInputMethod();
}
}
return QApplication::qwsEventFilter( e );
}
/*!
Destroys the QPEApplication.
*/
QPEApplication::~QPEApplication()
{
ungrabKeyboard();
#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
// Need to delete QCopChannels early, since the display will
// be gone by the time we get to ~QObject().
delete sysChannel;
delete pidChannel;
#endif
delete d;
}
/*!
- Returns <tt>$QPEDIR/</tt>.
+ Returns <tt>$OPIEDIR/</tt>.
*/
QString QPEApplication::qpeDir()
{
- const char *base = getenv( "QPEDIR" );
+ const char *base = getenv( "OPIEDIR" );
if ( base )
return QString( base ) + "/";
return QString( "../" );
}
/*!
Returns the user's current Document directory. There is a trailing "/".
*/
QString QPEApplication::documentDir()
{
const char *base = getenv( "HOME" );
if ( base )
return QString( base ) + "/Documents/";
return QString( "../Documents/" );
}
static int deforient=-1;
/*!
\internal
*/
int QPEApplication::defaultRotation()
{
if ( deforient < 0 ) {
QString d = getenv("QWS_DISPLAY");
if ( d.contains("Rot90") ) {
deforient = 90;
} else if ( d.contains("Rot180") ) {
deforient = 180;
} else if ( d.contains("Rot270") ) {
deforient = 270;
} else {
deforient=0;
}
}
return deforient;
}
/*!
\internal
*/
void QPEApplication::setDefaultRotation(int r)
{
if ( qApp->type() == GuiServer ) {
deforient = r;
setenv("QWS_DISPLAY", QString("Transformed:Rot%1:0").arg(r).latin1(), 1);
} else {
QCopEnvelope("QPE/System", "setDefaultRotation(int)") << r;
}
}
/*!
\internal
*/
void QPEApplication::applyStyle()
{
Config config( "qpe" );
config.setGroup( "Appearance" );
// Widget style
QString style = config.readEntry( "Style", "Light" );
internalSetStyle( style );
// Colors
QColor bgcolor( config.readEntry( "Background", "#E5E1D5" ) );
QColor btncolor( config.readEntry( "Button", "#D6CDBB" ) );
QPalette pal( btncolor, bgcolor );
QString color = config.readEntry( "Highlight", "#800000" );
pal.setColor( QColorGroup::Highlight, QColor(color) );
color = config.readEntry( "HighlightedText", "#FFFFFF" );
pal.setColor( QColorGroup::HighlightedText, QColor(color) );
color = config.readEntry( "Text", "#000000" );
pal.setColor( QColorGroup::Text, QColor(color) );
color = config.readEntry( "ButtonText", "#000000" );
pal.setColor( QPalette::Active, QColorGroup::ButtonText, QColor(color) );
color = config.readEntry( "Base", "#FFFFFF" );
pal.setColor( QColorGroup::Base, QColor(color) );
pal.setColor( QPalette::Disabled, QColorGroup::Text,
pal.color(QPalette::Active, QColorGroup::Background).dark() );
setPalette( pal, TRUE );
}
void QPEApplication::systemMessage( const QCString &msg, const QByteArray &data)
{
#ifdef Q_WS_QWS
QDataStream stream( data, IO_ReadOnly );
if ( msg == "applyStyle()" ) {
applyStyle();
} else if ( msg == "setScreenSaverInterval(int)" ) {
if ( type() == GuiServer ) {
int time;
stream >> time;
setScreenSaverInterval(time);
}
} else if ( msg == "setScreenSaverIntervals(int,int,int)" ) {
if ( type() == GuiServer ) {
int t1,t2,t3;
stream >> t1 >> t2 >> t3;
setScreenSaverIntervals(t1,t2,t3);
}
} else if ( msg == "setBacklight(int)" ) {
if ( type() == GuiServer ) {
int bright;
stream >> bright;
setBacklight(bright);
}
} else if ( msg == "setDefaultRotation(int)" ) {
if ( type() == GuiServer ) {
int r;
stream >> r;
setDefaultRotation(r);
}
} else if ( msg == "shutdown()" ) {
if ( type() == GuiServer )
shutdown();
} else if ( msg == "quit()" ) {
if ( type() != GuiServer )
tryQuit();
} else if ( msg == "forceQuit()" ) {
if ( type() != GuiServer )
quit();
} else if ( msg == "restart()" ) {
if ( type() == GuiServer )
restart();
} else if ( msg == "grabKeyboard(QString)" ) {
QString who;
stream >> who;
if ( who.isEmpty() )
d->kbgrabber = 0;
else if ( who != d->appName )
d->kbgrabber = 1;
else
d->kbgrabber = 2;
} else if ( msg == "language(QString)" ) {
if ( type() == GuiServer ) {
QString l;
stream >> l;
QString cl = getenv("LANG");
if ( cl != l ) {
if ( l.isNull() )
unsetenv( "LANG" );
else
setenv( "LANG", l.latin1(), 1 );
restart();
}
}
} else if ( msg == "timeChange(QString)" ) {
QString t;
stream >> t;
if ( t.isNull() )
unsetenv( "TZ" );
else
setenv( "TZ", t.latin1(), 1 );
// emit the signal so everyone else knows...
emit timeChanged();
} else if ( msg == "execute(QString)" ) {
if ( type() == GuiServer ) {
QString t;
stream >> t;
Global::execute( t );
}
} else if ( msg == "execute(QString,QString)" ) {
if ( type() == GuiServer ) {
QString t,d;
stream >> t >> d;
Global::execute( t, d );
}
} else if ( msg == "addAlarm(QDateTime,QCString,QCString,int)" ) {
if ( type() == GuiServer ) {
QDateTime when;
QCString channel, message;
int data;
stream >> when >> channel >> message >> data;
AlarmServer::addAlarm( when, channel, message, data );
}
} else if ( msg == "deleteAlarm(QDateTime,QCString,QCString,int)" ) {
if ( type() == GuiServer ) {
QDateTime when;
QCString channel, message;
int data;
stream >> when >> channel >> message >> data;
AlarmServer::deleteAlarm( when, channel, message, data );
}
} else if ( msg == "clockChange(bool)" ) {
int tmp;
stream >> tmp;
emit clockChanged( tmp );
} else if ( msg == "weekChange(bool)" ) {
int tmp;
stream >> tmp;
emit weekChanged( tmp );
} else if ( msg == "setDateFormat(DateFormat)" ) {
DateFormat tmp;
stream >> tmp;
emit dateFormatChanged( tmp );
} else if ( msg == "setVolume(int,int)" ) {
int t,v;
stream >> t >> v;
setVolume(t,v);
emit volumeChanged( muted );
} else if ( msg == "volumeChange(bool)" ) {
stream >> muted;
setVolume();
emit volumeChanged( muted );
} else if ( msg == "setScreenSaverMode(int)" ) {
if ( type() == GuiServer ) {
int old = disable_suspend;
stream >> disable_suspend;
//qDebug("setScreenSaverMode(%d)", disable_suspend );
if ( disable_suspend > old )
setScreenSaverInterval( -1 );
}
}
#endif
}
/*!
\internal
*/
bool QPEApplication::raiseAppropriateWindow()
{
bool r=FALSE;
// ########## raise()ing main window should raise and set active
// ########## it and then all childen. This belongs in Qt/Embedded
QWidget *top = d->qpe_main_widget;
if ( !top ) top =mainWidget();
if ( top && d->keep_running ) {
if ( top->isVisible() )
r = TRUE;
#ifdef Q_WS_QWS
if ( !d->nomaximize )
top->showMaximized();
else
#endif
top->show();
top->raise();
top->setActiveWindow();
}
QWidget *topm = activeModalWidget();
if ( topm && topm != top ) {
topm->show();
topm->raise();
topm->setActiveWindow();
r = FALSE;
}
return r;
}
void QPEApplication::pidMessage( const QCString &msg, const QByteArray & data)
{
#ifdef Q_WS_QWS
if ( msg == "quit()" ) {
tryQuit();
} else if ( msg == "quitIfInvisible()" ) {
if ( d->qpe_main_widget && !d->qpe_main_widget->isVisible() )
quit();
} else if ( msg == "close()" ) {
hideOrQuit();
} else if ( msg == "disablePreload()" ) {
d->preloaded = FALSE;
d->keep_running = TRUE;
/* so that quit will quit */
} else if ( msg == "enablePreload()" ) {
d->preloaded = TRUE;
d->keep_running = TRUE;
/* so next quit won't quit */
} else if ( msg == "raise()" ) {
d->keep_running = TRUE;
d->notbusysent = FALSE;
raiseAppropriateWindow();
} else if ( msg == "flush()" ) {
emit flush();
// we need to tell the desktop
QCopEnvelope e( "QPE/Desktop", "flushDone(QString)" );
e << d->appName;
} else if ( msg == "reload()" ) {
emit reload();
} else if ( msg == "setDocument(QString)" ) {
d->keep_running = TRUE;
QDataStream stream( data, IO_ReadOnly );
QString doc;
stream >> doc;
QWidget *mw = mainWidget();
if ( !mw )
mw = d->qpe_main_widget;
if ( mw )
Global::setDocument( mw, doc );
} else if ( msg == "nextView()" ) {
if ( raiseAppropriateWindow() )
emit appMessage( msg, data);
} else {
emit appMessage( msg, data);
}
#endif
}
static bool setWidgetCaptionFromAppName( QWidget* /*mw*/, const QString& /*appName*/, const QString& /*appsPath*/ )
{
/*
// This works but disable it for now until it is safe to apply
// What is does is scan the .desktop files of all the apps for
// the applnk that has the corresponding argv[0] as this program
// then it uses the name stored in the .desktop file as the caption
// for the main widget. This saves duplicating translations for
// the app name in the program and in the .desktop files.
AppLnkSet apps( appsPath );
QList<AppLnk> appsList = apps.children();
for ( QListIterator<AppLnk> it(appsList); it.current(); ++it ) {
if ( (*it)->exec() == appName ) {
mw->setCaption( (*it)->name() );
return TRUE;
}
}
*/
return FALSE;
}
/*!
Sets \a mw as the mainWidget() and shows it. For small windows,
consider passing TRUE for \a nomaximize rather than the default FALSE.
\sa showMainDocumentWidget()
*/
void QPEApplication::showMainWidget( QWidget* mw, bool nomaximize )
{
setWidgetCaptionFromAppName( mw, d->appName, qpeDir() + "apps" );
d->nomaximize = nomaximize;
d->qpe_main_widget = mw;
d->sendQCopQ();
if ( d->preloaded ) {
if(d->forceshow) {
#ifdef Q_WS_QWS
if ( !nomaximize )
mw->showMaximized();
else
#endif
mw->show();
}
} else if ( d->keep_running ) {
#ifdef Q_WS_QWS
if ( !nomaximize )
mw->showMaximized();
else
#endif
mw->show();
}
}
/*!
Sets \a mw as the mainWidget() and shows it. For small windows,
consider passing TRUE for \a nomaximize rather than the default FALSE.
This calls designates the application as
a \link docwidget.html document-oriented\endlink application.
The \a mw widget must have a slot: setDocument(const QString&).
\sa showMainWidget()
*/
void QPEApplication::showMainDocumentWidget( QWidget* mw, bool nomaximize )
{
setWidgetCaptionFromAppName( mw, d->appName, qpeDir() + "apps" );
if ( mw && argc() == 2 )
Global::setDocument( mw, QString::fromUtf8(argv()[1]) );
d->nomaximize = nomaximize;
d->qpe_main_widget = mw;
d->sendQCopQ();
if ( d->preloaded ) {
if(d->forceshow) {
#ifdef Q_WS_QWS
if ( !nomaximize )
mw->showMaximized();