author | mickeyl <mickeyl> | 2004-06-25 12:49:30 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2004-06-25 12:49:30 (UTC) |
commit | d3276bd5098fa4418efae6e3f87521f56653872f (patch) (side-by-side diff) | |
tree | 906ff0338c780924e035822ce0629948d8ff2413 | |
parent | 09451308ca73f7b58a8ec0766df01bcb188f4b3f (diff) | |
download | opie-d3276bd5098fa4418efae6e3f87521f56653872f.zip opie-d3276bd5098fa4418efae6e3f87521f56653872f.tar.gz opie-d3276bd5098fa4418efae6e3f87521f56653872f.tar.bz2 |
- get rid of HIGH_RES_LOW_PHYS to allow shipping one libqpe for all devices
- honor FontFamily and FontSize as set in qpe/Appearance
- NOTE to packagers: Remember to ship appropriate qpe.conf files for the different devices!
-rw-r--r-- | Rules.make | 3 | ||||
-rw-r--r-- | config.in | 5 | ||||
-rw-r--r-- | library/qpeapplication.cpp | 55 |
3 files changed, 25 insertions, 38 deletions
@@ -1,170 +1,167 @@ .phony: force force: $(configs) : $(call makecfg,$@) $(TOPDIR)/gen.pro : $(TOPDIR)/.config echo > $@ # added for threaded version ifneq ($(CONFIG_THREADED),) echo CONFIG += thread >> $@ else echo CONFIG -= thread >> $@ endif ifneq ($(CONFIG_DEBUG),) echo CONFIG += debug >> $@ echo CONFIG -= release >> $@ echo DEFINES += "QT_COMPONENT_DEBUG=2" >> $@ echo DEFINES += QT_DEBUG >> $@ else echo CONFIG -= debug >> $@ echo CONFIG += release >> $@ echo DEFINES += "OPIE_NO_DEBUG" >> $@ endif ifeq ($(CONFIG_STATIC),y) echo CONFIG += staticlib >> $@ endif ifeq ($(filter 3.%,$(QTE_VERSION)),) # not qt3 echo CONFIG -= qt3 >> $@ else echo CONFIG += qt3 >> $@ endif ifneq ($(CONFIG_QUICK_LAUNCH),) echo contains\( CONFIG, quick-app \) \{ >> $@ echo CONFIG -= staticlib >> $@ echo CONFIG -= quick-app >> $@ echo CONFIG += quick-app-lib >> $@ echo QUICKLAUNCH_PATH = $(CONFIG_QUICKLAUNCH_PATH) >> $@ echo \} >> $@ else echo contains\( CONFIG, quick-app \) \{ >> $@ echo CONFIG -= quick-app >> $@ echo CONFIG += quick-app-bin >> $@ echo \} >> $@ endif ifeq ($(CONFIG_SQL_PIM_BACKEND),y) echo ENABLE_SQL_PIM_BACKEND=$(CONFIG_SQL_PIM_BACKEND) >> $@ else echo ENABLE_SQL_PIM_BACKEND=n >> $@ endif ifeq ($(CONFIG_OPIE_NO_OVERRIDE_QT),y) echo CONFIG += no-override >> $@ endif ifeq ($(CONFIG_OPIE_NO_ERASERECT_FIX),y) echo DEFINES += OPIE_NO_ERASE_RECT_HACKFIX >> $@ endif ifeq ($(CONFIG_OPIE_NO_BUILTIN_SHUTDOWN),y) echo DEFINES += OPIE_NO_BUILTIN_SHUTDOWN >> $@ endif ifeq ($(CONFIG_OPIE_NO_BUILTIN_CALIBRATE),y) echo DEFINES += OPIE_NO_BUILTIN_CALIBRATE >> $@ endif ifeq ($(CONFIG_USE_REALTIME_AUDIO_THREAD),y) echo DEFINES += USE_REALTIME_AUDIO_THREAD >> $@ endif ifeq ($(CONFIG_USE_FILE_NOTIFICATION),y) echo DEFINES += USE_FILE_NOTIFICATION >> $@ endif ifeq ($(CONFIG_QT_QWS_ALLOW_CLOCK),y) echo DEFINES += QT_QWS_ALLOW_OVERCLOCK >> $@ endif -ifeq ($(CONFIG_OPIE_HIGH_RES_SMALL_PHY),y) - echo DEFINES += OPIE_HIGH_RES_SMALL_PHY >> $@ -endif ifeq ($(CONFIG_OPIE_NEW_ALLOC),y) echo DEFINES += OPIE_NEW_MALLOC >> $@ endif ifeq ($(CONFIG_OPIE_NO_SOUND_PCM_READ_BITS),y) echo DEFINES += OPIE_NO_SOUND_PCM_READ_BITS >> $@ endif echo DEFINES += OPIE_SOUND_FRAGMENT_SHIFT=$(CONFIG_OPIE_SOUND_FRAGMENT_SHIFT) >> $@ ifeq ($(CONFIG_OPIE_WE_VERSION_OVERRIDE),y) echo DEFINES += OPIE_WE_VERSION=$(CONFIG_OPIE_WE_VERSION) >> $@ endif # Write LIB dirs and INC dirs... ifeq ($(CONFIG_LIBETPAN_DEP),y) echo LIBETPAN_LIB_DIR = $(CONFIG_LIBETPAN_LIB_DIR) >> $@ echo LIBETPAN_INC_DIR = $(CONFIG_LIBETPAN_INC_DIR) >> $@ endif ifeq ($(CONFIG_LIBPCAP_DEP),y) echo LIBPCAP_LIB_DIR = $(CONFIG_LIBPCAP_LIB_DIR) >> $@ echo LIBPCAP_INC_DIR = $(CONFIG_LIBPCAP_INC_DIR) >> $@ endif ifeq ($(CONFIG_LIBSQLITE_DEP),y) echo LIBSQLITE_LIB_DIR = $(CONFIG_LIBSQLITE_LIB_DIR) >> $@ echo LIBSQLITE_INC_DIR = $(CONFIG_LIBSQLITE_INC_DIR) >> $@ endif ifeq ($(CONFIG_LIBXINE_DEP),y) echo LIBXINE_LIB_DIR = $(CONFIG_LIBXINE_LIB_DIR) >> $@ echo LIBXINE_INC_DIR = $(CONFIG_LIBXINE_INC_DIR) >> $@ endif ifeq ($(CONFIG_LIBIPK_DEP),y) echo LIBIPK_LIB_DIR = $(CONFIG_LIBIPK_LIB_DIR) >> $@ echo LIBIPK_INC_DIR = $(CONFIG_LIBIPK_INC_DIR) >> $@ endif ifeq ($(CONFIG_LIBSDK_DEP),y) echo LIBSDL_LIB_DIR = $(CONFIG_LIBSDL_LIB_DIR) >> $@ echo LIBSDL_INC_DIR = $(CONFIG_LIBSDL_INC_DIR) >> $@ endif ifeq ($(CONFIG_LIBSWORD_DEP),y) echo LIBSWORD_LIB_DIR = $(CONFIG_LIBSWORD_LIB_DIR) >> $@ echo LIBSWORD_INC_DIR = $(CONFIG_LIBSWORD_INC_DIR) >> $@ endif $(TOPDIR)/.depends : $(shell if [ -e $(TOPDIR)/config.in ]\; then echo $(TOPDIR)/config.in\; fi\;) $(TOPDIR)/.config $(TOPDIR)/packages @echo Generating dependency information... # add to subdir-y, and add descend rules @cat $(TOPDIR)/packages | grep -v '^#' | \ awk '{print \ ".PHONY : " $$2 "\n" \ "subdir-$$(" $$1 ") += " $$2 "\n\n"; \ print $$2 " : " $$2 "/Makefile\n\t$$(call descend,$$@,$(filter-out $$@,$$(filter-out $$@,$$(MAKECMDGOALS))))\n"; }' > $(TOPDIR)/.depends cat $(TOPDIR)/packages | grep -v '^#' | \ perl -ne '($$cfg, $$dir, $$pro) = $$_ =~ /^(\S+)\s+(\S+)\s+(\S+)/; if ( -e "$$dir/$$pro" ) { print "$$dir/Makefile : $$dir/$$pro \$$(QMAKE) \$$(OPIEDIR)/gen.pro \$$(OPIEDIR)/.config\n\t\$$(call makefilegen,\$$@)\n\n"; }' \ >> $(TOPDIR)/.depends # interpackage dependency generation @cat $(TOPDIR)/packages | \ $(TOPDIR)/scripts/deps.pl >> $(TOPDIR)/.depends $(TOPDIR)/.depends.cfgs: # config.in interdependencies @echo $(configs) | sed -e 's,/config.in,,g' | ( for i in `cat`; do echo $$i; done ) > dirs @cat dirs | ( for i in `cat`; do if [ "`cat dirs|grep $$i 2>/dev/null|wc -l`" -ne "1" ]; then deps=`cat dirs|grep $$i| grep -v "^$$i$$"|for i in \`cat|sed -e's,^$(TOPDIR)/,$$(TOPDIR)/,g'\`; do echo $$i/config.in; done`; echo `echo $$i/config.in|sed -e 's,^$(TOPDIR)/,$$(TOPDIR)/,'` : $$deps; fi; done ) >> $@ @-rm -f dirs $(QTDIR)/stamp-headers : @-rm -f $(QTDIR)/stamp-headers* ( cd $(QTDIR)/include; \ $(patsubst %,ln -sf ../src/kernel/%;,qgfx_qws.h qwsmouse_qws.h \ qcopchannel_qws.h qwindowsystem_qws.h \ qfontmanager_qws.h qwsdefaultdecoration_qws.h)) touch $@ $(QTDIR)/stamp-headers-x11 : @-rm -f $(QTDIR)/stamp-headers* cd $(QTDIR)/include; $(patsubst %,ln -sf $(OPIEDIR)/x11/libqpe-x11/qt/%;,qgfx_qws.h qwsmouse_qws.h qcopchannel_qws.h qwindowsystem_qws.h qfontmanager_qws.h qwsdefaultdecoration_qws.h) touch $@ $(OPIEDIR)/stamp-headers : @-rm -f $(OPIEDIR)/stamp-headers* mkdir -p $(TOPDIR)/include/qpe \ $(TOPDIR)/include/qtopia \ $(TOPDIR)/include/opie \ $(TOPDIR)/include/opie2 \ $(TOPDIR)/include/qtopia/private \ $(TOPDIR)/include/sl ( cd include/qpe && rm -f *.h; ln -sf ../../library/*.h .; ln -sf ../../library/backend/*.h .; rm -f *_p.h; ) ( cd include/qtopia && rm -f *.h; ln -sf ../../library/*.h .; ) ( cd include/qtopia/private && rm -f *.h; ln -sf ../../../library/backend/*.h .; ) ifeq ($(CONFIG_LIBOPIE),y) # libopie1 ( cd include/opie && rm -f *.h; ln -sf ../../libopie/*.h .; rm -f *_p.h; ) ( cd include/opie && ln -sf ../../libopie/pim/*.h .; ) ( cd include/opie && ln -sf ../../libopie/big-screen/*.h .; ) endif # libopie2 ( cd include/opie2 && ln -sf ../../libopie2/opiecore/*.h .; ) ( cd include/opie2 && ln -sf ../../libopie2/opiecore/device/*.h .; ) ( cd include/opie2 && ln -sf ../../libopie2/opiemm/*.h .; ) ( cd include/opie2 && ln -sf ../../libopie2/opiedb/*.h .; ) ( cd include/opie2 && ln -sf ../../libopie2/opienet/*.h .; ) @@ -45,197 +45,192 @@ config THREADED config STATIC boolean "Build static libraries" default "n" config DEBUG boolean "Enable debug builds" default n config RELEASE bool default y depends !DEBUG config QUICK_LAUNCH boolean "Enable Quick Launch" default n if TARGET_X86 default y if ! TARGET_X86 config QUICKLAUNCH_PATH string "Path to quicklauncher" default "./quicklauncher" if TARGET_X86 default "/opt/QtPalmtop/bin/quicklauncher" if ! TARGET_X86 config SPECFILE string default "qws/linux-generic-g++" if TARGET_X86 && (! X11) default "linux-g++" if TARGET_X86 && X11 default "qws/linux-sharp-g++" if TARGET_SHARP && (! X11) default "linux-g++" if TARGET_SHARP && X11 default "qws/linux-ipaq-g++" if TARGET_IPAQ && (! X11) default "linux-g++" if TARGET_IPAQ && X11 default "qws/linux-ramses-g++" if TARGET_RAMSES && (! X11) default "linux-g++" if TARGET_RAMSES && X11 default "qws/linux-simpad-g++" if TARGET_SIMPAD && (! X11) default "linux-g++" if TARGET_SIMPAD && X11 default "qws/linux-yopy-g++" if TARGET_YOPY && (! X11) default "qws/macx-generic-g++" if TARGET_MACOSX && (! X11) config CUSTOMFILE string default "custom-ipaq.h" if TARGET_IPAQ default "custom-sharp.h" if TARGET_SHARP default "custom-ramses.h" if TARGET_RAMSES default "custom-ipaq.h" if TARGET_SIMPAD default "custom-yopy.h" if TARGET_YOPY config OPTIMIZATIONS string "Optimization flags" depends OPTIMIZE default "-march=armv4 -mtune=strongarm1100 -mapcs-32 -fexpensive-optimizations -fomit-frame-pointer -O2" if TARGET_IPAQ default "-march=armv4 -mtune=strongarm1100 -mapcs-32 -fexpensive-optimizations -fomit-frame-pointer -O2" if TARGET_YOPY default "-march=armv4 -mtune=strongarm1100 -mapcs-32 -fexpensive-optimizations -fomit-frame-pointer -O2" if TARGET_SHARP default "-march=armv4 -mtune=strongarm1100 -mapcs-32 -fexpensive-optimizations -fomit-frame-pointer -O2" if TARGET_RAMSES default "-march=armv4 -mtune=strongarm1100 -mapcs-32 -fexpensive-optimizations -fomit-frame-pointer -O2" if TARGET_SIMPAD default "-march=armv5te -mtune=xscale -mapcs-32 -fexpensive-optimizations -fomit-frame-pointer -O2" if TARGET_C700 config EXPERIMENTAL bool "Prompt for development and/or incomplete items" default y endmenu menu "Configuration" config OPIE_NO_OVERRIDE_QT boolean "Build Opie against an unpatched version of Qt" default n config OPIE_NO_ERASERECT_FIX boolean "Disable Fixup eraseRect for HancomMobileWord,neocal.. to make libopiecore work on Sharps libqpe" default n config OPIE_NO_BUILTIN_SHUTDOWN boolean "Disable the built in shutdown application" default y config OPIE_NO_BUILTIN_CALIBRATE boolean "Disable the built in calibrate application" default y if TARGET_YOPY default n if ! TARGET_YOPY config OPIE_SOUND_FRAGMENT_SHIFT string "The sound fragment used in Opie Player I" default "14" if TARGET_IPAQ default "16" if ! TARGET_IPAQ config USE_REALTIME_AUDIO_THREAD boolean "Use a realtime thread in Opie Player I" default y if TARGET_IPAQ || TARGET_SIMPAD || TARGET_RAMSES || TARGET_SHARP default n if ! (TARGET_IPAQ || TARGET_SIMPAD || TARGET_RAMSES || TARGET_SHARP) config QT_QWS_ALLOW_OVERCLOCK boolean "Allow the user to overclock the device" depends TARGET_RAMSES default n -config OPIE_HIGH_RES_SMALL_PHY - boolean "Resolution is bigger than physical screen" - default y if TARGET_C700 - default n if ! TARGET_C700 - config USE_FILE_NOTIFICATION boolean "Substitute (some) polling interfaces with OFileNotifier" default y config OPIE_NEW_ALLOC boolean "Use malloc and free for the implementation" default y if TARGET_RAMSES || TARGET_IPAQ || TARGET_SIMPAD || TARGET_SHARP default n if ! (TARGET_IPAQ || TARGET_SIMPAD || TARGET_RAMSES || TARGET_SHARP) config OPIE_NO_SOUND_PCM_READ_BITS boolean "There is not a pcm_read_bits io control" default y if TARGET_SHARP default n if ! TARGET_SHARP endmenu menu "Dependencies" source dependencies.in endmenu menu "Base" choice prompt "Qpe Library Selection" default LIBQPE source library/config.in source x11/config.in endchoice source libopie/config.in source libopie2/config.in source libqtaux/config.in source rsync/config.in source core/opie-login/config.in source core/opiealarm/config.in source core/tools/quicklauncher/config.in source core/launcher/config.in source core/symlinker/config.in endmenu comment "" menu "Applets" source core/applets/config.in source noncore/applets/config.in endmenu menu "Apps" source core/apps/config.in source noncore/apps/config.in endmenu menu "Communications and Networking" source noncore/comm/config.in source noncore/net/config.in endmenu menu "Games" source noncore/games/config.in endmenu menu "Graphics and Multimedia" source freetype/config.in source noncore/graphics/config.in source core/multimedia/config.in source noncore/multimedia/config.in endmenu menu "Input methods" source inputmethods/config.in endmenu menu "Pim" source core/obex/config.in source core/pim/config.in comment "Today Plugins ---" source noncore/todayplugins/config.in source core/pim/today/plugins/config.in endmenu menu "Settings" source core/settings/config.in source noncore/settings/config.in source noncore/securityplugins/config.in endmenu menu "Theming" comment "Decorations ---" source noncore/decorations/config.in comment "Styles ---" source noncore/styles/config.in endmenu menu "Tools" source noncore/tools/config.in endmenu menu "Development" diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp index 26e310a..4bc0c5f 100644 --- a/library/qpeapplication.cpp +++ b/library/qpeapplication.cpp @@ -3,281 +3,290 @@ ** ** This file is part of the 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. ** */ #define QTOPIA_INTERNAL_LANGLIST #include <stdlib.h> #include <unistd.h> #ifndef Q_OS_MACX #include <linux/limits.h> // needed for some toolchains (PATH_MAX) #endif #include <qfile.h> #include <qqueue.h> #ifdef Q_WS_QWS #ifndef QT_NO_COP #if QT_VERSION <= 231 #define private public #define sendLocally processEvent #include "qcopenvelope_qws.h" #undef private #else #include "qcopenvelope_qws.h" #endif #endif #include <qwindowsystem_qws.h> #endif #include <qtextstream.h> #include <qpalette.h> #include <qbuffer.h> #include <qptrdict.h> #include <qregexp.h> #include <qdir.h> #include <qlabel.h> #include <qdialog.h> #include <qdragobject.h> #include <qtextcodec.h> #include <qevent.h> #include <qtooltip.h> #include <qsignal.h> #include <qmainwindow.h> #include <qwidgetlist.h> #include <qpixmapcache.h> #if defined(Q_WS_QWS) && !defined(QT_NO_COP) #define QTOPIA_INTERNAL_INITAPP #include "qpeapplication.h" #include "qpestyle.h" #include "styleinterface.h" #if QT_VERSION >= 300 #include <qstylefactory.h> #else #include <qplatinumstyle.h> #include <qwindowsstyle.h> #include <qmotifstyle.h> #include <qmotifplusstyle.h> #include "lightstyle.h" #include <qpe/qlibrary.h> #endif #include "global.h" #include "resource.h" #if QT_VERSION <= 230 && defined(QT_NO_CODECS) #include "qutfcodec.h" #endif #include "config.h" #include "network.h" #ifdef QWS #include "fontmanager.h" #endif #include "alarmserver.h" #include "applnk.h" #include "qpemenubar.h" #include "textcodecinterface.h" #include "imagecodecinterface.h" #include <unistd.h> #include <sys/file.h> #include <sys/ioctl.h> #ifndef QT_NO_SOUND #include <sys/soundcard.h> #endif #include "qt_override_p.h" +static bool useBigPixmaps = 0; + class HackWidget : public QWidget { public: bool needsOk() { return (getWState() & WState_Reserved1 ); } QRect normalGeometry() { return topData()->normalGeometry; }; }; class QPEApplicationData { public: QPEApplicationData ( ) : presstimer( 0 ), presswidget( 0 ), rightpressed( false ), kbgrabbed( false ), notbusysent( false ), preloaded( false ), forceshow( false ), nomaximize( false ), - keep_running( true ), qcopQok( false ), qpe_main_widget( 0 ) - - {} + keep_running( true ), qcopQok( false ), + fontFamily( "Vera" ), fontSize( 10 ), smallIconSize( 14 ), + bigIconSize( 32 ), qpe_main_widget( 0 ) + { + Config cfg( "qpe" ); + cfg.setGroup( "Appearance" ); + useBigPixmaps = cfg.readBoolEntry( "useBigPixmaps", false ); + fontFamily = cfg.readEntry( "FontFamily", "Vera" ); + fontSize = cfg.readNumEntry( "FontSize", 10 ); + smallIconSize = cfg.readNumEntry( "SmallIconSize", 14 ); + bigIconSize = cfg.readNumEntry( "BigIconSize", 32 ); + } int presstimer; QWidget* presswidget; QPoint presspos; bool rightpressed : 1; bool kbgrabbed : 1; bool notbusysent : 1; bool preloaded : 1; bool forceshow : 1; bool nomaximize : 1; bool keep_running : 1; bool qcopQok : 1; + QCString fontFamily; + int fontSize; + int smallIconSize; + int bigIconSize; QStringList langs; QString appName; struct QCopRec { QCopRec( const QCString &ch, const QCString &msg, const QByteArray &d ) : channel( ch ), message( msg ), data( d ) { } QCString channel; QCString message; QByteArray data; }; QWidget* qpe_main_widget; QGuardedPtr<QWidget> lastraised; QQueue<QCopRec> qcopq; QString styleName; QString decorationName; void enqueueQCop( const QCString &ch, const QCString &msg, const QByteArray &data ) { qcopq.enqueue( new QCopRec( ch, msg, data ) ); } void sendQCopQ() { if (!qcopQok ) return; QCopRec * r; while((r=qcopq.dequeue())) { // remove from queue before sending... // event loop can come around again before getting // back from sendLocally #ifndef QT_NO_COP QCopChannel::sendLocally( r->channel, r->message, r->data ); #endif delete r; } } - static void show_mx(QWidget* mw, bool nomaximize, QString &strName/* = QString::null */) + static void show_mx(QWidget* mw, bool nomaximize, QString &strName) + { + if ( mw->inherits("QMainWindow") || mw->isA("QMainWindow") ) { - // ugly hack, remove that later after finding a sane solution - // Addendum: Only Sharp currently has models with high resolution but (physically) small displays, - // so this is only useful if QT_QWS_SIMPAD is NOT defined. E.g. SIMpad has 800x600 but has - // a (physically) large enough display to use the small icons -#if defined(OPIE_HIGH_RES_SMALL_PHY) - if ( QPEApplication::desktop() ->width() >= 600 && ( mw->inherits("QMainWindow") || mw->isA("QMainWindow") ) ) { - ( ( QMainWindow* ) mw )->setUsesBigPixmaps( true ); + ( ( QMainWindow* ) mw )->setUsesBigPixmaps( useBigPixmaps ); } -#endif - QPoint p; QSize s; bool max; if ( mw->isVisible() ) { if ( read_widget_rect(strName, max, p, s) && validate_widget_size(mw, p, s) ) { mw->resize(s); mw->move(p); } mw->raise(); } else { if ( mw->layout() && mw->inherits("QDialog") ) { if ( read_widget_rect(strName, max, p, s) && validate_widget_size(mw, p, s) ) { mw->resize(s); mw->move(p); if ( max && !nomaximize ) { mw->showMaximized(); } else { mw->show(); } } else { qpe_show_dialog((QDialog*)mw,nomaximize); } } else { if ( read_widget_rect(strName, max, p, s) && validate_widget_size(mw, p, s) ) { mw->resize(s); mw->move(p); } else { //no stored rectangle, make an estimation int x = (qApp->desktop()->width()-mw->frameGeometry().width())/2; int y = (qApp->desktop()->height()-mw->frameGeometry().height())/2; mw->move( QMAX(x,0), QMAX(y,0) ); #ifdef Q_WS_QWS if ( !nomaximize ) mw->showMaximized(); #endif } if ( max && !nomaximize ) mw->showMaximized(); else mw->show(); } } } static void qpe_show_dialog( QDialog* d, bool nomax ) { QSize sh = d->sizeHint(); int w = QMAX(sh.width(),d->width()); int h = QMAX(sh.height(),d->height()); if ( d->parentWidget() && !d->parentWidget()->topLevelWidget()->isMaximized() ) nomax = TRUE; #ifndef Q_WS_QWS QSize s(qApp->desktop()->width(), qApp->desktop()->height() ); #else QSize s(qt_maxWindowRect.width(), qt_maxWindowRect.height() ); #endif int maxX = s.width() - (d->frameGeometry().width() - d->geometry().width()); int maxY = s.height() - (d->frameGeometry().height() - d->geometry().height()); if ( (w >= maxX && h >= maxY) || ( (!nomax) && ( w > s.width()*3/4 || h > s.height()*3/4 ) ) ) { d->showMaximized(); } else { // try centering the dialog around its parent QPoint p(0,0); if ( d->parentWidget() ) { QPoint pp = d->parentWidget()->mapToGlobal( QPoint(0,0) ); p = QPoint( pp.x() + d->parentWidget()->width()/2, pp.y() + d->parentWidget()->height()/ 2 ); } else { p = QPoint( maxX/2, maxY/2 ); } p = QPoint( p.x() - w/2, p.y() - h/2 ); // qDebug("p(x,y) is %d %d", p.x(), p.y() ); if ( w >= maxX ) { if ( p.y() < 0 ) p.setY(0); if ( p.y() + h > maxY ) p.setY( maxY - h); d->resize(maxX, h); d->move(0, p.y() ); } else if ( h >= maxY ) { if ( p.x() < 0 ) p.setX(0); if ( p.x() + w > maxX ) p.setX( maxX - w); d->resize(w, maxY); d->move(p.x(),0); } else { @@ -703,209 +712,195 @@ static void setTreble( int t = 0, int percent = -1 ) \a startOnMonday is FALSE then the first day of the week is Sunday. */ /*! \fn void QPEApplication::dateFormatChanged(DateFormat) This signal is emitted whenever the date format is changed. */ /*! \fn void QPEApplication::flush() ### */ /*! \fn void QPEApplication::reload() */ void QPEApplication::processQCopFile() { QString qcopfn("/tmp/qcop-msg-"); qcopfn += d->appName; // append command name QFile f(qcopfn); if ( f.open(IO_ReadWrite) ) { #ifndef Q_OS_WIN32 flock(f.handle(), LOCK_EX); #endif QDataStream ds(&f); QCString channel, message; QByteArray data; while(!ds.atEnd()) { ds >> channel >> message >> data; d->enqueueQCop(channel,message,data); } ::ftruncate(f.handle(), 0); #ifndef Q_OS_WIN32 f.flush(); flock(f.handle(), LOCK_UN); #endif } #endif } /*! \fn void QPEApplication::appMessage( const QCString& msg, const QByteArray& data ) This signal is emitted when a message is received on this application's QPE/Application/<i>appname</i> \link qcop.html QCop\endlink channel. 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 Note that messages received here may be processed by qpe application and emitted as signals, such as flush() and reload(). */ /*! Constructs a QPEApplication just as you would construct a QApplication, passing \a argc, \a argv, and \a t. For applications, \a t should be the default, GuiClient. Only the Qtopia server passes GuiServer. */ QPEApplication::QPEApplication( int & argc, char **argv, Type t ) : QApplication( hack(argc), argv, t ), pidChannel( 0 ) { QPixmapCache::setCacheLimit(256); // sensible default for smaller devices. d = new QPEApplicationData; d->loadTextCodecs(); d->loadImageCodecs(); int dw = desktop() ->width(); - if ( dw < 200 ) { - setFont( QFont( "vera", 8 ) ); - AppLnk::setSmallIconSize( 10 ); - AppLnk::setBigIconSize( 28 ); - } -#if defined(OPIE_HIGH_RES_SMALL_PHY) - else if ( dw > 600 ) { - setFont( QFont( "vera", 16 ) ); - AppLnk::setSmallIconSize( 24 ); - AppLnk::setBigIconSize( 48 ); - } -#endif - else if ( dw > 200 ) { - setFont( QFont( "vera", 10 ) ); - AppLnk::setSmallIconSize( 14 ); - AppLnk::setBigIconSize( 32 ); - } + setFont( QFont( d->fontFamily, d->fontSize ) ); + AppLnk::setSmallIconSize( d->smallIconSize ); + AppLnk::setBigIconSize( d->bigIconSize ); QMimeSourceFactory::setDefaultFactory( new ResourceMimeFactory ); connect( this, SIGNAL( lastWindowClosed() ), this, SLOT( hideOrQuit() ) ); sysChannel = new QCopChannel( "QPE/System", this ); connect( sysChannel, SIGNAL( received(const QCString&,const QByteArray&) ), this, SLOT( systemMessage(const QCString&,const QByteArray&) ) ); /* COde now in initapp */ #if 0 #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 ); } 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 #else initApp( argc, argv ); #endif // qwsSetDecoration( new QPEDecoration() ); #ifndef QT_NO_TRANSLATION d->langs = Global::languageList(); for ( QStringList::ConstIterator it = d->langs.begin(); it != d->langs.end(); ++it ) { QString lang = *it; installTranslation( lang + "/libopie.qm"); installTranslation( lang + "/libqpe.qm" ); installTranslation( lang + "/" + d->appName + ".qm" ); //###language/font hack; should look it up somewhere #ifdef QWS if ( lang == "ja" || lang == "zh_CN" || lang == "zh_TW" || lang == "ko" ) { QFont fn = FontManager::unicodeFont( FontManager::Proportional ); setFont( fn ); } #endif } #endif applyStyle(); |