[Marble-bugs] [marble] [Bug 341253] New: Declarative marble craches when you try to change the map
Oleg Lyubimov
lyubimov.o.e at gmail.com
Tue Nov 25 14:31:37 UTC 2014
https://bugs.kde.org/show_bug.cgi?id=341253
Bug ID: 341253
Summary: Declarative marble craches when you try to change the
map
Product: marble
Version: 1.9 (KDE 4.14)
Platform: Debian stable
OS: Linux
Status: UNCONFIRMED
Severity: crash
Priority: NOR
Component: general
Assignee: marble-bugs at kde.org
Reporter: lyubimov.o.e at gmail.com
QML application based on MarbleWidget crashes after you change the map theme in
the MapThemeModel. The bug is reproduced, when you have no the opening map in
path "~/.local/share/marble/maps". The application crashes during tile
rendering process. In marble-qt all work OK.
System config:
Kubuntu 12.04 x64 LTS, Qt 4.8.1 and 4.8.6, cmake 2.8.7, gcc 4.6.3
Program Code for bug reproducing:
import QtQuick 1.1
import org.kde.edu.marble 0.11
Rectangle {
id: screen
width: 1200
height: 800
MarbleSettings {
id: settings
}
MapThemeModel{
id: mapThemeModel
}
MarbleWidget {
id: map
width: 600
height: screen.height
property bool initialized: false
workOffline: settings.workOffline
mapThemeId: settings.mapTheme
radius: settings.quitRadius
//projection: "Equirectangular"
activeFloatItems: [ "compass", "scalebar", "progress" ]
activeRenderPlugins: settings.activeRenderPlugins
}
// View for declarative MapThemeModel
ListView {
id: mapListView
anchors.left: map.right
anchors.right: screen.right
height: screen.height
highlightFollowsCurrentItem: true
model: mapThemeModel
// Delegate that displays a preview image and the name of the map
theme.
delegate:
Rectangle {
id: themeItem
width: mapListView.width
height: mapImage.height + 5
// Highlight current map theme with a blue background.
color: mapThemeId === settings.mapTheme ? "lightsteelblue" :
"white"
Row {
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
anchors.leftMargin: 15
// Preview image of the map theme.
Image {
id: mapImage
source: "image://maptheme/" + mapThemeId
}
// Label with the name of the map theme.
Text {
id: themeLabel
text: display
color: "black"
anchors.verticalCenter: parent.verticalCenter
}
}
// If the user clicks on a theme, use it for the map.
MouseArea {
anchors.fill: parent
onClicked: {
mapListView.currentIndex = index
console.debug(mapThemeId)
map.mapThemeId = mapThemeId
}
}
}
}
}
Reproducible: Always
Steps to Reproduce:
1. Build marble for QTONLY
2. Remove any maps from "~/.local/share/marble/maps" path
3. Create a default QML application width the code, deskribed on field
"Details"
4. Run the application, and select another map theme from map theme list in the
right part of the application's screen.
Actual Results:
Map theme is changed, tiles for this theme are successfully created.
Expected Results:
Map theme is changed, application craches during the tile creation process.
Application crashes only when you open the map at the first time. If you open
this map again, the application works OK.
The backtrace from gdb:
Program received signal SIGSEGV, Segmentation fault.
QDeclarativeError::isValid (this=0xa8) at qml/qdeclarativeerror.cpp:138
138 qml/qdeclarativeerror.cpp: Нет такого файла или каталога (No such file
or directory).
(gdb) bt
#0 QDeclarativeError::isValid (this=0xa8) at qml/qdeclarativeerror.cpp:138
#1 0x00007ffff7a2e0ef in QDeclarativeBoundSignal::qt_metacall (this=0xf9db20,
c=<optimized out>, id=<optimized out>, a=0x7fffffffc0a0)
at qml/qdeclarativeboundsignal.cpp:187
#2 0x00007ffff681d489 in QMetaObject::activate (sender=0xf9d790, m=<optimized
out>, local_signal_index=<optimized out>, argv=0x7fffffffc0a0)
at kernel/qobject.cpp:3566
#3 0x00007ffff7ae82d2 in QDeclarativeMouseArea::clicked (this=<optimized out>,
_t1=0x7fffffffc0e0)
at .moc/release-shared/moc_qdeclarativemousearea_p.cpp:523
#4 0x00007ffff7993f01 in QDeclarativeMouseArea::setPressed (this=0xf9d790,
p=<optimized out>) at graphicsitems/qdeclarativemousearea.cpp:935
#5 0x00007ffff7994005 in QDeclarativeMouseArea::mouseReleaseEvent
(this=0xf9d790, event=0x7fffffffc990) at
graphicsitems/qdeclarativemousearea.cpp:587
#6 0x00007ffff7311493 in QGraphicsItem::sceneEvent (this=0xf9d7a0,
event=0x7fffffffc990) at graphicsview/qgraphicsitem.cpp:6741
#7 0x00007ffff7986cf2 in QDeclarativeItem::sceneEvent (this=0xf9d790,
event=0x7fffffffc990) at graphicsitems/qdeclarativeitem.cpp:3047
#8 0x00007ffff7993529 in QDeclarativeMouseArea::sceneEvent (this=0xf9d790,
event=0x7fffffffc990) at graphicsitems/qdeclarativemousearea.cpp:682
#9 0x00007ffff7339c8a in QGraphicsScenePrivate::sendMouseEvent (this=0x71b8e0,
mouseEvent=0x7fffffffc990) at graphicsview/qgraphicsscene.cpp:1295
#10 0x00007ffff733a675 in QGraphicsScene::mouseReleaseEvent (this=<optimized
out>, mouseEvent=0x7fffffffc990) at graphicsview/qgraphicsscene.cpp:4128
#11 0x00007ffff73487df in QGraphicsScene::event (this=0x719940,
event=0x7fffffffc990) at graphicsview/qgraphicsscene.cpp:3458
#12 0x00007ffff6d2b894 in notify_helper (e=0x7fffffffc990, receiver=0x719940,
this=0x60c5b0) at kernel/qapplication.cpp:4559
#13 QApplicationPrivate::notify_helper (this=0x60c5b0, receiver=0x719940,
e=0x7fffffffc990) at kernel/qapplication.cpp:4531
#14 0x00007ffff6d30713 in QApplication::notify (this=0x60c590,
receiver=0x719940, e=0x7fffffffc990) at kernel/qapplication.cpp:4420
#15 0x00007ffff6808e9c in QCoreApplication::notifyInternal (this=0x60c590,
receiver=0x719940, event=0x7fffffffc990) at kernel/qcoreapplication.cpp:876
#16 0x00007ffff7363e16 in QGraphicsView::mouseReleaseEvent
(this=0x7fffffffdfc0, event=0x7fffffffd300) at
graphicsview/qgraphicsview.cpp:3338
#17 0x00007ffff6d7c144 in QWidget::event (this=0x7fffffffdfc0,
event=0x7fffffffd300) at kernel/qwidget.cpp:8362
#18 0x00007ffff713c3f6 in QFrame::event (this=0x7fffffffdfc0, e=0x7fffffffd300)
at widgets/qframe.cpp:557
#19 0x00007ffff7366b6b in QGraphicsView::viewportEvent (this=0x7fffffffdfc0,
event=0x7fffffffd300) at graphicsview/qgraphicsview.cpp:2866
#20 0x00007ffff6809028 in
QCoreApplicationPrivate::sendThroughObjectEventFilters (this=<optimized out>,
receiver=0x6b46d0, event=0x7fffffffd300)
at kernel/qcoreapplication.cpp:986
#21 0x00007ffff6d2b85f in notify_helper (e=0x7fffffffd300, receiver=0x6b46d0,
this=0x60c5b0) at kernel/qapplication.cpp:4555
#22 QApplicationPrivate::notify_helper (this=0x60c5b0, receiver=0x6b46d0,
e=0x7fffffffd300) at kernel/qapplication.cpp:4531
#23 0x00007ffff6d310bf in QApplication::notify (this=<optimized out>,
receiver=0x6b46d0, e=0x7fffffffd300) at kernel/qapplication.cpp:4102
#24 0x00007ffff6808e9c in QCoreApplication::notifyInternal (this=0x60c590,
receiver=0x6b46d0, event=0x7fffffffd300) at kernel/qcoreapplication.cpp:876
#25 0x00007ffff6d2c862 in sendEvent (event=<optimized out>, receiver=<optimized
out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#26 QApplicationPrivate::sendMouseEvent (receiver=0x6b46d0,
event=0x7fffffffd300, alienWidget=0x6b46d0, nativeWidget=0x7fffffffdfc0,
buttonDown=0x6b46d0,
lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:3170
#27 0x00007ffff6dabc35 in QETWidget::translateMouseEvent (this=0x7fffffffdfc0,
event=<optimized out>) at kernel/qapplication_x11.cpp:4619
#28 0x00007ffff6daabee in QApplication::x11ProcessEvent (this=0x60c590,
event=0x7fffffffdbd0) at kernel/qapplication_x11.cpp:3734
#29 0x00007ffff6dd4112 in x11EventSourceDispatch (s=0x610120, callback=0,
user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#30 0x00007ffff3f26d13 in g_main_context_dispatch () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007ffff3f27060 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#32 0x00007ffff3f27124 in g_main_context_iteration () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#33 0x00007ffff68383bf in QEventDispatcherGlib::processEvents (this=0x60d920,
flags=...) at kernel/qeventdispatcher_glib.cpp:424
#34 0x00007ffff6dd3d9e in QGuiEventDispatcherGlib::processEvents
(this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#35 0x00007ffff6807c82 in QEventLoop::processEvents (this=<optimized out>,
flags=...) at kernel/qeventloop.cpp:149
#36 0x00007ffff6807ed7 in QEventLoop::exec (this=0x7fffffffdf70, flags=...) at
kernel/qeventloop.cpp:204
#37 0x00007ffff680cf67 in QCoreApplication::exec () at
kernel/qcoreapplication.cpp:1148
#38 0x0000000000402efb in main (argc=1, argv=0x7fffffffe118) at
../marble-test/main.cpp:14
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the Marble-bugs
mailing list