summaryrefslogtreecommitdiff
path: root/navit/graphics/qt_qpainter
diff options
context:
space:
mode:
authormartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>2011-09-15 09:36:28 +0000
committermartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>2011-09-15 09:36:28 +0000
commitbc8ba25439394d689f67455e28347859de75de53 (patch)
tree696a1bdec7f478da7848f8faea6ddee556b200c6 /navit/graphics/qt_qpainter
parent6750ce71e82ad8fccb80bc132be2183c6659f8bd (diff)
downloadnavit-bc8ba25439394d689f67455e28347859de75de53.tar.gz
Fix:graphics_qt_qpainter:Fixed a few compatibility bugs
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@4781 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit/graphics/qt_qpainter')
-rw-r--r--navit/graphics/qt_qpainter/RenderArea.cpp27
-rw-r--r--navit/graphics/qt_qpainter/RenderArea.h2
-rw-r--r--navit/graphics/qt_qpainter/graphics_qt_qpainter.cpp12
-rw-r--r--navit/graphics/qt_qpainter/graphics_qt_qpainter.h7
4 files changed, 38 insertions, 10 deletions
diff --git a/navit/graphics/qt_qpainter/RenderArea.cpp b/navit/graphics/qt_qpainter/RenderArea.cpp
index 327610f05..d480b9508 100644
--- a/navit/graphics/qt_qpainter/RenderArea.cpp
+++ b/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/graphics/qt_qpainter/RenderArea.h b/navit/graphics/qt_qpainter/RenderArea.h
index cbfa164db..e1f620958 100644
--- a/navit/graphics/qt_qpainter/RenderArea.h
+++ b/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/graphics/qt_qpainter/graphics_qt_qpainter.cpp b/navit/graphics/qt_qpainter/graphics_qt_qpainter.cpp
index eb5fb659c..61cb8a976 100644
--- a/navit/graphics/qt_qpainter/graphics_qt_qpainter.cpp
+++ b/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/graphics/qt_qpainter/graphics_qt_qpainter.h b/navit/graphics/qt_qpainter/graphics_qt_qpainter.h
index ae6ecf969..e57084230 100644
--- a/navit/graphics/qt_qpainter/graphics_qt_qpainter.h
+++ b/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 */