> On Aug. 30, 2015, 5:08 a.m., Dennis Nienhüser wrote:
> > What performance impact does this have? It might affect rendering speed.
> > I would rather extend drawLabelPixmap to take another argument isSelected 
> > and then cache two pixmaps, one for the selected case and one for the not 
> > selected. Then return the right one based on the value of m_selected.
> 
> Constantin Mihalache wrote:
>     (Indeed, this would affect rendering performance and what you suggested 
> sounds right, but I don't see how it could work. The problem is that 
> m_selected is not set properly because 
> **VisiblePlacemark::setSelected(bool)** is never called. If **m_selected** 
> stores whether a placemark has focus or not, I don't think it can ever be set 
> right due to the fact that placemark selecting is handled in the 
> AnnotatePlugin (which deals with SceneGrapicItems). It may be something that 
> I don't understand right...
>     
>     What is not working in the first place is that a 
> **PlacemarkTextAnnotation**'s (which is a SceneGraphicItem) *paint()* method 
> (which sets the GeoDataPlacemark's label color based on the focus) is called 
> after all the VisiblePlacemarks are constructed (drawLabelPixmap() is called 
> here) and then "collected" to be drawn on the map inside the PlacemarkLayer.
>     
>     ***problem++: *** I think that changing a GeoDataPlacemark's label style 
> property to highlight it on the map is risky. If an export to .kml (or any 
> other format supported) is called, the selected placemark would be saved with 
> the highlighted color and not its original one.
>     
>     PS: if m_selected can be properly set, this issue can be easily fixed by 
> handling the label highlight solely in the VisiblePlacemark class.

a "hack" fix for this would be to store m_selected in the GeoDataPlacemark 
class.


- Constantin


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/124989/#review84568
-----------------------------------------------------------


On Aug. 30, 2015, 12:02 a.m., Constantin Mihalache wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/124989/
> -----------------------------------------------------------
> 
> (Updated Aug. 30, 2015, 12:02 a.m.)
> 
> 
> Review request for Marble.
> 
> 
> Repository: marble
> 
> 
> Description
> -------
> 
> ** bug: **When a placemark is selected (left mouse click) and then 
> deselected, it's label color does not change accordingly (it stays 
> highlighted). When deselecting, the color changes to the original one only if 
> the placemark is dragged out of the screen and then brought back.
> 
> * the main issue is that each VisiblePlacemark's labelPixmap should be 
> generated exactly before painting.
> * this may not be an elegant fix, but it works
> 
> 
> Diffs
> -----
> 
>   src/lib/marble/VisiblePlacemark.h 805112d 
>   src/lib/marble/VisiblePlacemark.cpp 2fdc8ec 
> 
> Diff: https://git.reviewboard.kde.org/r/124989/diff/
> 
> 
> Testing
> -------
> 
> Created placemarks -> clicked on the icon of the placemark -> label is 
> highlighted -> clicked on the globe -> label is not highlighted.
> 
> 
> Thanks,
> 
> Constantin Mihalache
> 
>

_______________________________________________
Marble-devel mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/marble-devel

Reply via email to