summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--Rules.make3
-rw-r--r--config.in4
-rw-r--r--library/qpeapplication.h2
-rw-r--r--library/qt_override.cpp9
4 files changed, 17 insertions, 1 deletions
diff --git a/Rules.make b/Rules.make
index 7fa0178..568f6cf 100644
--- a/Rules.make
+++ b/Rules.make
@@ -39,24 +39,27 @@ else
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
diff --git a/config.in b/config.in
index 99341e6..124bc2a 100644
--- a/config.in
+++ b/config.in
@@ -97,24 +97,28 @@ config OPTIMIZATIONS
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
diff --git a/library/qpeapplication.h b/library/qpeapplication.h
index 8c85ad0..d2782e4 100644
--- a/library/qpeapplication.h
+++ b/library/qpeapplication.h
@@ -155,27 +155,29 @@ private slots:
void hideOrQuit();
protected:
bool qwsEventFilter( QWSEvent * );
void internalSetStyle( const QString &style );
void prepareForTermination(bool willrestart);
virtual void restart();
virtual void shutdown();
bool eventFilter( QObject *, QEvent * );
void timerEvent( QTimerEvent * );
bool raiseAppropriateWindow();
virtual void tryQuit();
+#ifndef OPIE_NO_ERASE_RECT_HACKFIX
#if QT_VERSION > 233
virtual void polish ( QWidget * ); // this is actually implemented in qt_override.cpp (!)
#endif
+#endif
private:
#ifndef QT_NO_TRANSLATION
void installTranslation( const QString& baseName );
#endif
void mapToDefaultAction( QWSKeyEvent *ke, int defKey );
void processQCopFile();
#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
QCopChannel *sysChannel;
QCopChannel *pidChannel;
#endif
QPEApplicationData *d;
diff --git a/library/qt_override.cpp b/library/qt_override.cpp
index 4d1f475..56f82d7 100644
--- a/library/qt_override.cpp
+++ b/library/qt_override.cpp
@@ -3,41 +3,46 @@
#include <qfontdatabase.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <limits.h>
#include <sys/param.h> // for toolchains with old libc headers
#include "qt_override_p.h"
#if QT_VERSION > 233
+#ifndef OPIE_NO_ERASE_RECT_HACKFIX
struct color_fix_t {
char *m_app;
char *m_class;
char *m_name;
QColorGroup::ColorRole m_set;
QColorGroup::ColorRole m_get;
};
-#ifndef OPIE_NO_OVERRIDE_QT
+
static const color_fix_t apps_that_need_special_colors [] = {
{ "HancomMobileWord", "HTextEdit", 0, QColorGroup::Background, QColorGroup::Base },
{ "neocal", "Display", 0, QColorGroup::Background, QColorGroup::Base },
{ 0, 0, 0, QColorGroup::Base, QColorGroup::Base }
};
+#endif
+
+#ifndef OPIE_NO_OVERRIDE_QT
+
static const char * const apps_that_need_pointsizes_times_10 [] = {
"HancomMobileWord",
"hancomsheet",
"HancomPresenterViewer",
0
};
int Opie::force_appearance = 0;
@@ -80,45 +85,47 @@ int Opie::force_appearance = 0;
extern "C" {
extern void __gmon_start__ ( ) __attribute__(( weak ));
extern void __gmon_start__ ( )
{
}
}
+#ifndef OPIE_NO_ERASE_RECT_HACKFIX
// Fix for apps, that use QPainter::eraseRect() which doesn't work with styles
// that set a background pixmap (it would be easier to fix eraseRect(), but
// TT made it an inline ...)
void QPEApplication::polish ( QWidget *w )
{
#ifndef OPIE_NO_OVERRIDE_QT
// qDebug ( "QPEApplication::polish()" );
for ( const color_fix_t *ptr = apps_that_need_special_colors; ptr-> m_app; ptr++ ) {
if (( ::strcmp ( Opie::binaryName ( ), ptr-> m_app ) == 0 ) &&
( ptr-> m_class ? w-> inherits ( ptr-> m_class ) : true ) &&
( ptr-> m_name ? ( ::strcmp ( w-> name ( ), ptr-> m_name ) == 0 ) : true )) {
QPalette pal = w-> palette ( );
pal. setColor ( ptr-> m_set, pal. color ( QPalette::Active, ptr-> m_get ));
w-> setPalette ( pal );
}
}
#endif
QApplication::polish ( w );
}
+#endif
#ifndef OPIE_NO_OVERRIDE_QT
// Fix for the binary incompatibility that TT introduced in Qt/E 2.3.4 -- point sizes
// were multiplied by 10 (which was incorrect)
QValueList <int> QFontDatabase::pointSizes ( QString const &family, QString const &style, QString const &charset )
{
// qDebug ( "QFontDatabase::pointSizes()" );
QValueList <int> sl = pointSizes_NonWeak ( family, style, charset );