From dd7eb241d17063181d8b4a896172ebad5c61c575 Mon Sep 17 00:00:00 2001 From: martin-s Date: Thu, 15 Sep 2011 09:36:28 +0000 Subject: [PATCH] Fix:graphics_qt_qpainter:Fixed a few compatibility bugs git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk@4781 ffa7fe5e-494d-0410-b361-a75ebd5db220 --- navit/navit/graphics/qt_qpainter/RenderArea.cpp | 27 ++++++++++++++++++++-- navit/navit/graphics/qt_qpainter/RenderArea.h | 2 ++ .../graphics/qt_qpainter/graphics_qt_qpainter.cpp | 12 ++++------ .../graphics/qt_qpainter/graphics_qt_qpainter.h | 7 ++++++ 4 files changed, 38 insertions(+), 10 deletions(-) diff --git a/navit/navit/graphics/qt_qpainter/RenderArea.cpp b/navit/navit/graphics/qt_qpainter/RenderArea.cpp index 327610f..d480b95 100644 --- a/navit/navit/graphics/qt_qpainter/RenderArea.cpp +++ b/navit/navit/graphics/qt_qpainter/RenderArea.cpp @@ -72,9 +72,13 @@ RenderArea::RenderArea(struct graphics_priv *priv, QT_QPAINTER_RENDERAREA_PARENT timer_callback=g_hash_table_new(NULL, NULL); watches=g_hash_table_new(NULL, NULL); #ifndef QT_QPAINTER_NO_WIDGET +#if QT_VERSION >= 0x040000 + setAttribute(Qt::WA_OpaquePaintEvent, true); +#else setBackgroundMode(QWidget::NoBackground); #endif #endif +#endif } //############################################################################################################## @@ -225,12 +229,17 @@ void RenderArea::wheelEvent(QWheelEvent *event) event->accept(); } +#define CASE(x) case x: + void RenderArea::keyPressEvent(QKeyEvent *event) { -#if QT_VERSION < 0x040000 QString str=event->text(); +#if QT_VERSION < 0x040000 QCString cstr=str.utf8(); const char *text=cstr; +#else + const char *text=str.toUtf8().constData(); +#endif dbg(0,"enter text='%s' 0x%x (%d) key=%d\n", text, text[0], strlen(text), event->key()); if (!text || !text[0] || text[0] == 0x7f) { dbg(0,"special key\n"); @@ -241,26 +250,41 @@ void RenderArea::keyPressEvent(QKeyEvent *event) } break; case 4101: +#ifdef QT_QPAINTER_CUSTOM_RETURN + QT_QPAINTER_CUSTOM_RETURN +#endif { text=(char []){NAVIT_KEY_RETURN,'\0'}; } break; case 4114: +#ifdef QT_QPAINTER_CUSTOM_LEFT + QT_QPAINTER_CUSTOM_LEFT +#endif { text=(char []){NAVIT_KEY_LEFT,'\0'}; } break; case 4115: +#ifdef QT_QPAINTER_CUSTOM_UP + QT_QPAINTER_CUSTOM_UP +#endif { text=(char []){NAVIT_KEY_UP,'\0'}; } break; case 4116: +#ifdef QT_QPAINTER_CUSTOM_RIGHT + QT_QPAINTER_CUSTOM_RIGHT +#endif { text=(char []){NAVIT_KEY_RIGHT,'\0'}; } break; case 4117: +#ifdef QT_QPAINTER_CUSTOM_DOWN + QT_QPAINTER_CUSTOM_DOWN +#endif { text=(char []){NAVIT_KEY_DOWN,'\0'}; } @@ -269,7 +293,6 @@ void RenderArea::keyPressEvent(QKeyEvent *event) } callback_list_call_attr_1(this->cbl, attr_keypress, (void *)text); event->accept(); -#endif } void RenderArea::watchEvent(int fd) diff --git a/navit/navit/graphics/qt_qpainter/RenderArea.h b/navit/navit/graphics/qt_qpainter/RenderArea.h index cbfa164..e1f6209 100644 --- a/navit/navit/graphics/qt_qpainter/RenderArea.h +++ b/navit/navit/graphics/qt_qpainter/RenderArea.h @@ -19,6 +19,7 @@ #ifndef __RENDERAREA_H #define __RENDERAREA_H +#ifdef QT_QPAINTER_USE_EMBEDDING class EmbeddedWidget : public QX11EmbedWidget { Q_OBJECT @@ -28,6 +29,7 @@ public: protected: void closeEvent(QCloseEvent *event); }; +#endif class RenderArea : public QT_QPAINTER_RENDERAREA_PARENT { diff --git a/navit/navit/graphics/qt_qpainter/graphics_qt_qpainter.cpp b/navit/navit/graphics/qt_qpainter/graphics_qt_qpainter.cpp index eb5fb65..61cb8a9 100644 --- a/navit/navit/graphics/qt_qpainter/graphics_qt_qpainter.cpp +++ b/navit/navit/graphics/qt_qpainter/graphics_qt_qpainter.cpp @@ -829,12 +829,6 @@ static void event_qt_main_loop_quit(void) exit(0); } -struct event_watch { - QSocketNotifier *sn; - struct callback *cb; - void *fd; -}; - static struct event_watch * event_qt_add_watch(void *fd, enum event_watch_cond cond, struct callback *cb) { @@ -867,7 +861,7 @@ event_qt_add_timeout(int timeout, int multi, struct callback *cb) return (struct event_timeout *)id; } -static void +void event_qt_remove_timeout(struct event_timeout *ev) { event_gr->widget->killTimer((int)(long)ev); @@ -943,8 +937,10 @@ static struct graphics_priv * graphics_qt_qpainter_new(struct navit *nav, struct #endif #if QT_QPAINTER_USE_FREETYPE font_freetype_new=(struct font_priv *(*)(void *))plugin_get_font_type("freetype"); - if (!font_freetype_new) + if (!font_freetype_new) { + dbg(0,"no freetype\n"); return NULL; + } #endif ret=g_new0(struct graphics_priv, 1); *meth=graphics_methods; diff --git a/navit/navit/graphics/qt_qpainter/graphics_qt_qpainter.h b/navit/navit/graphics/qt_qpainter/graphics_qt_qpainter.h index ae6ecf9..e570842 100644 --- a/navit/navit/graphics/qt_qpainter/graphics_qt_qpainter.h +++ b/navit/navit/graphics/qt_qpainter/graphics_qt_qpainter.h @@ -145,5 +145,12 @@ struct graphics_priv { }; void qt_qpainter_draw(struct graphics_priv *gr, const QRect *r, int paintev); +struct event_watch { + QSocketNotifier *sn; + struct callback *cb; + void *fd; +}; + +void event_qt_remove_timeout(struct event_timeout *ev); #endif /* __GRAPHICS_QT_QPAINTER_H */ -- 2.7.4