Fix:graphics_qt_qpainter:Fixed a few compatibility bugs
authormartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Thu, 15 Sep 2011 09:36:28 +0000 (09:36 +0000)
committermartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Thu, 15 Sep 2011 09:36:28 +0000 (09:36 +0000)
git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk@4781 ffa7fe5e-494d-0410-b361-a75ebd5db220

navit/navit/graphics/qt_qpainter/RenderArea.cpp
navit/navit/graphics/qt_qpainter/RenderArea.h
navit/navit/graphics/qt_qpainter/graphics_qt_qpainter.cpp
navit/navit/graphics/qt_qpainter/graphics_qt_qpainter.h

index 327610f..d480b95 100644 (file)
@@ -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)
index cbfa164..e1f6209 100644 (file)
@@ -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
 {
index eb5fb65..61cb8a9 100644 (file)
@@ -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;
index ae6ecf9..e570842 100644 (file)
@@ -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 */