summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWildemann Stefan <stefan.wildemann@corpuls.com>2019-01-29 15:11:06 +0100
committerWildemann Stefan <stefan.wildemann@corpuls.com>2019-01-29 15:32:11 +0100
commit28f488ac3facea3103decfae79081697d4772870 (patch)
tree63d64f9d77f3385bfe2c22ca4e0ac881675e9d86
parent02aa1898a263b901ebd85b33efda6e272df7aef5 (diff)
downloadnavit-28f488ac3facea3103decfae79081697d4772870.tar.gz
Fix:graphics_qt5:Correctly disable single overlay.
Only disable "all" overlays, if root pane got disabled.
-rw-r--r--navit/graphics/qt5/QNavitQuick.cpp5
-rw-r--r--navit/graphics/qt5/QNavitWidget.cpp274
-rw-r--r--navit/graphics/qt5/graphics_qt5.cpp11
3 files changed, 145 insertions, 145 deletions
diff --git a/navit/graphics/qt5/QNavitQuick.cpp b/navit/graphics/qt5/QNavitQuick.cpp
index 4884e6f27..dcd0d2aa5 100644
--- a/navit/graphics/qt5/QNavitQuick.cpp
+++ b/navit/graphics/qt5/QNavitQuick.cpp
@@ -90,7 +90,10 @@ void QNavitQuick::paint(QPainter* painter) {
painter->drawPixmap(graphics_priv->scroll_x, graphics_priv->scroll_y, *graphics_priv->pixmap,
boundingRect().x(), boundingRect().y(),
boundingRect().width(), boundingRect().height());
- paintOverlays(painter, graphics_priv, &event);
+ /* disable on root pane disables ALL overlays (for drag of background) */
+ if(!(graphics_priv->disable)) {
+ paintOverlays(painter, graphics_priv, &event);
+ }
}
void QNavitQuick::keyPressEvent(QKeyEvent* event) {
diff --git a/navit/graphics/qt5/QNavitWidget.cpp b/navit/graphics/qt5/QNavitWidget.cpp
index cebaed9a1..355187b49 100644
--- a/navit/graphics/qt5/QNavitWidget.cpp
+++ b/navit/graphics/qt5/QNavitWidget.cpp
@@ -88,7 +88,10 @@ void QNavitWidget::paintEvent(QPaintEvent* event) {
painter.drawPixmap(event->rect().x(), event->rect().y(), *graphics_priv->pixmap,
event->rect().x() - graphics_priv->scroll_x, event->rect().y() - graphics_priv->scroll_y,
event->rect().width(), event->rect().height());
- paintOverlays(&painter, graphics_priv, event);
+ /* disable on root pane disables ALL overlays (for drag of background) */
+ if(!(graphics_priv->disable)) {
+ paintOverlays(&painter, graphics_priv, event);
+ };
}
void QNavitWidget::resizeEvent(QResizeEvent* event) {
@@ -98,148 +101,149 @@ void QNavitWidget::resizeEvent(QResizeEvent* event) {
delete graphics_priv->pixmap;
graphics_priv->pixmap = NULL;
}
- if (graphics_priv->pixmap == NULL) {
- graphics_priv->pixmap = new QPixmap(size());
- }
- painter = new QPainter(graphics_priv->pixmap);
- if (painter != NULL) {
- QBrush brush;
- painter->fillRect(0, 0, width(), height(), brush);
- delete painter;
- }
- dbg(lvl_debug, "size %dx%d", width(), height());
- dbg(lvl_debug, "pixmap %p %dx%d", graphics_priv->pixmap, graphics_priv->pixmap->width(),
- graphics_priv->pixmap->height());
- /* if the root window got resized, tell navit about it */
- if (graphics_priv->root)
- resize_callback(graphics_priv, width(), height());
}
-
- void QNavitWidget::mouseEvent(int pressed, QMouseEvent* event) {
- struct point p;
- // dbg(lvl_debug,"enter");
- p.x = event->x();
- p.y = event->y();
- switch (event->button()) {
- case Qt::LeftButton:
- callback_list_call_attr_3(graphics_priv->callbacks, attr_button, GINT_TO_POINTER(pressed), GINT_TO_POINTER(1),
- GINT_TO_POINTER(&p));
- break;
- case Qt::MidButton:
- callback_list_call_attr_3(graphics_priv->callbacks, attr_button, GINT_TO_POINTER(pressed), GINT_TO_POINTER(2),
- GINT_TO_POINTER(&p));
- break;
- case Qt::RightButton:
- callback_list_call_attr_3(graphics_priv->callbacks, attr_button, GINT_TO_POINTER(pressed), GINT_TO_POINTER(3),
- GINT_TO_POINTER(&p));
- break;
- default:
- break;
- }
+ if (graphics_priv->pixmap == NULL) {
+ graphics_priv->pixmap = new QPixmap(size());
}
-
- void QNavitWidget::keyPressEvent(QKeyEvent* event) {
- dbg(lvl_debug, "enter");
- char key[2];
- int keycode;
- char* text = NULL;
-
- keycode = event->key();
- key[0] = '\0';
- key[1] = '\0';
- switch (keycode) {
- case Qt::Key_Up:
- key[0] = NAVIT_KEY_UP;
- break;
- case Qt::Key_Down:
- key[0] = NAVIT_KEY_DOWN;
- break;
- case Qt::Key_Left:
- key[0] = NAVIT_KEY_LEFT;
- break;
- case Qt::Key_Right:
- key[0] = NAVIT_KEY_RIGHT;
- break;
- case Qt::Key_Backspace:
- key[0] = NAVIT_KEY_BACKSPACE;
- break;
- case Qt::Key_Tab:
- key[0] = NAVIT_KEY_TAB;
- break;
- case Qt::Key_Delete:
- key[0] = NAVIT_KEY_DELETE;
- break;
- case Qt::Key_Escape:
- key[0] = NAVIT_KEY_BACK;
- break;
- case Qt::Key_Return:
- case Qt::Key_Enter:
- key[0] = NAVIT_KEY_RETURN;
- break;
- case Qt::Key_ZoomIn:
- key[0] = NAVIT_KEY_ZOOM_IN;
- break;
- case Qt::Key_ZoomOut:
- key[0] = NAVIT_KEY_ZOOM_OUT;
- break;
- case Qt::Key_PageUp:
- key[0] = NAVIT_KEY_PAGE_UP;
- break;
- case Qt::Key_PageDown:
- key[0] = NAVIT_KEY_PAGE_DOWN;
- break;
- default:
- QString str = event->text();
- if ((str != NULL) && (str.size() != 0)) {
- text = str.toUtf8().data();
- }
- }
- if (text != NULL)
- callback_list_call_attr_1(graphics_priv->callbacks, attr_keypress, (void*)text);
- else if (key[0])
- callback_list_call_attr_1(graphics_priv->callbacks, attr_keypress, (void*)key);
- else
- dbg(lvl_debug, "keyval 0x%x", keycode);
+ painter = new QPainter(graphics_priv->pixmap);
+ if (painter != NULL) {
+ QBrush brush;
+ painter->fillRect(0, 0, width(), height(), brush);
+ delete painter;
}
+ dbg(lvl_debug, "size %dx%d", width(), height());
+ dbg(lvl_debug, "pixmap %p %dx%d", graphics_priv->pixmap, graphics_priv->pixmap->width(),
+ graphics_priv->pixmap->height());
+ /* if the root window got resized, tell navit about it */
+ if (graphics_priv->root)
+ resize_callback(graphics_priv, width(), height());
+}
- void QNavitWidget::mousePressEvent(QMouseEvent* event) {
- // dbg(lvl_debug,"enter");
- mouseEvent(1, event);
+void QNavitWidget::mouseEvent(int pressed, QMouseEvent* event) {
+ struct point p;
+ // dbg(lvl_debug,"enter");
+ p.x = event->x();
+ p.y = event->y();
+ switch (event->button()) {
+ case Qt::LeftButton:
+ callback_list_call_attr_3(graphics_priv->callbacks, attr_button, GINT_TO_POINTER(pressed), GINT_TO_POINTER(1),
+ GINT_TO_POINTER(&p));
+ break;
+ case Qt::MidButton:
+ callback_list_call_attr_3(graphics_priv->callbacks, attr_button, GINT_TO_POINTER(pressed), GINT_TO_POINTER(2),
+ GINT_TO_POINTER(&p));
+ break;
+ case Qt::RightButton:
+ callback_list_call_attr_3(graphics_priv->callbacks, attr_button, GINT_TO_POINTER(pressed), GINT_TO_POINTER(3),
+ GINT_TO_POINTER(&p));
+ break;
+ default:
+ break;
}
+}
- void QNavitWidget::mouseReleaseEvent(QMouseEvent* event) {
- // dbg(lvl_debug,"enter");
- mouseEvent(0, event);
+void QNavitWidget::keyPressEvent(QKeyEvent* event) {
+ dbg(lvl_debug, "enter");
+ char key[2];
+ int keycode;
+ char* text = NULL;
+
+ keycode = event->key();
+ key[0] = '\0';
+ key[1] = '\0';
+ switch (keycode) {
+ case Qt::Key_Up:
+ key[0] = NAVIT_KEY_UP;
+ break;
+ case Qt::Key_Down:
+ key[0] = NAVIT_KEY_DOWN;
+ break;
+ case Qt::Key_Left:
+ key[0] = NAVIT_KEY_LEFT;
+ break;
+ case Qt::Key_Right:
+ key[0] = NAVIT_KEY_RIGHT;
+ break;
+ case Qt::Key_Backspace:
+ key[0] = NAVIT_KEY_BACKSPACE;
+ break;
+ case Qt::Key_Tab:
+ key[0] = NAVIT_KEY_TAB;
+ break;
+ case Qt::Key_Delete:
+ key[0] = NAVIT_KEY_DELETE;
+ break;
+ case Qt::Key_Escape:
+ key[0] = NAVIT_KEY_BACK;
+ break;
+ case Qt::Key_Return:
+ case Qt::Key_Enter:
+ key[0] = NAVIT_KEY_RETURN;
+ break;
+ case Qt::Key_ZoomIn:
+ key[0] = NAVIT_KEY_ZOOM_IN;
+ break;
+ case Qt::Key_ZoomOut:
+ key[0] = NAVIT_KEY_ZOOM_OUT;
+ break;
+ case Qt::Key_PageUp:
+ key[0] = NAVIT_KEY_PAGE_UP;
+ break;
+ case Qt::Key_PageDown:
+ key[0] = NAVIT_KEY_PAGE_DOWN;
+ break;
+ default:
+ QString str = event->text();
+ if ((str != NULL) && (str.size() != 0)) {
+ text = str.toUtf8().data();
+ }
}
+ if (text != NULL)
+ callback_list_call_attr_1(graphics_priv->callbacks, attr_keypress, (void*)text);
+ else if (key[0])
+ callback_list_call_attr_1(graphics_priv->callbacks, attr_keypress, (void*)key);
+ else
+ dbg(lvl_debug, "keyval 0x%x", keycode);
+}
- void QNavitWidget::mouseMoveEvent(QMouseEvent* event) {
- struct point p;
- // dbg(lvl_debug,"enter");
- p.x = event->x();
- p.y = event->y();
- callback_list_call_attr_1(graphics_priv->callbacks, attr_motion, (void*)&p);
- }
+void QNavitWidget::mousePressEvent(QMouseEvent* event) {
+ // dbg(lvl_debug,"enter");
+ mouseEvent(1, event);
+}
- void QNavitWidget::wheelEvent(QWheelEvent* event) {
- struct point p;
- int button;
- dbg(lvl_debug, "enter");
- p.x = event->x(); // xy-coordinates of the mouse pointer
- p.y = event->y();
-
- if (event->delta() > 0) // wheel movement away from the person
- button = 4;
- else if (event->delta() < 0) // wheel movement towards the person
- button = 5;
- else
- button = -1;
-
- if (button != -1) {
- callback_list_call_attr_3(graphics_priv->callbacks, attr_button, GINT_TO_POINTER(1), GINT_TO_POINTER(button),
- GINT_TO_POINTER(&p));
- callback_list_call_attr_3(graphics_priv->callbacks, attr_button, GINT_TO_POINTER(0), GINT_TO_POINTER(button),
- GINT_TO_POINTER(&p));
- }
+void QNavitWidget::mouseReleaseEvent(QMouseEvent* event) {
+ // dbg(lvl_debug,"enter");
+ mouseEvent(0, event);
+}
- event->accept();
+void QNavitWidget::mouseMoveEvent(QMouseEvent* event) {
+ struct point p;
+ // dbg(lvl_debug,"enter");
+ p.x = event->x();
+ p.y = event->y();
+ callback_list_call_attr_1(graphics_priv->callbacks, attr_motion, (void*)&p);
+}
+
+void QNavitWidget::wheelEvent(QWheelEvent* event) {
+ struct point p;
+ int button;
+ dbg(lvl_debug, "enter");
+ p.x = event->x(); // xy-coordinates of the mouse pointer
+ p.y = event->y();
+
+ if (event->delta() > 0) // wheel movement away from the person
+ button = 4;
+ else if (event->delta() < 0) // wheel movement towards the person
+ button = 5;
+ else
+ button = -1;
+
+ if (button != -1) {
+ callback_list_call_attr_3(graphics_priv->callbacks, attr_button, GINT_TO_POINTER(1), GINT_TO_POINTER(button),
+ GINT_TO_POINTER(&p));
+ callback_list_call_attr_3(graphics_priv->callbacks, attr_button, GINT_TO_POINTER(0), GINT_TO_POINTER(button),
+ GINT_TO_POINTER(&p));
}
+
+ event->accept();
+}
diff --git a/navit/graphics/qt5/graphics_qt5.cpp b/navit/graphics/qt5/graphics_qt5.cpp
index 6a17bd68e..502cd18e2 100644
--- a/navit/graphics/qt5/graphics_qt5.cpp
+++ b/navit/graphics/qt5/graphics_qt5.cpp
@@ -768,15 +768,8 @@ static void get_text_bbox(struct graphics_priv* gr, struct graphics_font_priv* f
}
static void overlay_disable(struct graphics_priv* gr, int disable) {
- GHashTableIter iter;
- struct graphics_priv *key, *value;
- // dbg(lvl_debug,"enter gr=%p, %d", gr, disable);
-
- g_hash_table_iter_init(&iter, gr->overlays);
- while (g_hash_table_iter_next(&iter, (void**)&key, (void**)&value)) {
- /* disable or enable all overlays of this pane */
- value->disable = disable;
- }
+ //dbg(lvl_error,"enter gr=%p, %d", gr, disable);
+ gr->disable = disable;
}
static void overlay_resize(struct graphics_priv* gr, struct point* p, int w, int h, int wraparound) {