[Qgis-developer] New adv labeling freeze-thaw tools

Larry Shaffer larrys at dakotacarto.com
Mon Jul 16 02:35:37 PDT 2012


On Mon, Jul 16, 2012 at 2:18 AM, Marco Hugentobler
<marco.hugentobler at sourcepole.ch> wrote:
> Hi Larry
>
> Excellent work, thank you!
> The freeze/thaw tool will be a great addition to the label tool bar.
>
> I wonder if the tool could also be active if x/y is data defined and
> rotation not (currently, x/y/rotation need to be data defined to use the
> tool).

Yes, that is an unnecessary restriction. I'll make the rotation field optional.

> On a detail level, in QgsMapToolFreezeLabels::highlightLabel you could
> probably use QgsMapRenderer::mapToLayerCoordinates to transform the
> rectangle (instead of mCoordTransform ).

Will make the change. Thanks.

If you have the time to look at the constructor for
QgsMapToolFreezeLabels (the FIXME), you'll notice I could not find a
way to make the signal/slot connections from there. Currently they are
in qgisapp.cpp, but I would prefer to not pollute that core file with
any more of my tool's code than necessary. What's the simplest way to
create the connections from inside my QObject-inherited tool instead?

Regards,
Larry



> Am 16.07.2012 05:31, schrieb Larry Shaffer:
>
> Hi,
>
> The current large-format project I'm working on requires me to layout,
> for print, thousands of labels. So I spent the last couple of days
> making two new tools for the advanced labeling toolbar that allow the
> user to interactively 'freeze' (write coords and rotation info to
> attribute table) and 'thaw' (revert from data-defined to dynamic) any
> rendered labels.
>
> *Show Frozen Labels*
>
> This tool highlights frozen labels for all visible layers. Blue
> highlighted labels are frozen, green are frozen and editable (parent
> layer's in edit mode).
>
> *Freeze/Thaw Labels*
>
> This tool allows the user to interactively choose, by single or
> marquee selection, labels to freeze or thaw. The in-memory attribute
> table is immediately updated and results shown to user. This tool
> allows the user to interactively manipulate the PAL labeling engine to
> find the best solutions for their frozen labels.
>
> Since the topic and how the tool interacts with the labeling engine is
> more complicated, I made an intro video. (Note: I haven't had much
> sleep recently, so it's a bit rough.)
>
> http://vimeo.com/dakotacarto/freezethawlabels
>
>
> This is my first C++ project, so I'd be really happy if someone
> audited the code before I squash the commits and send a pull request:
>
> https://github.com/dakcarto/Quantum-GIS/tree/feature_freeze-thaw-labels
>
> Only tested on Mac, as of now. Nothing platform-specific about it though.
>
> Regards,
>
> Larry Shaffer
> Dakota Cartography
> Black Hills, South Dakota
>
>
>
> _______________________________________________
> Qgis-developer mailing list
> Qgis-developer at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-developer
>
>
>
> --
> Dr. Marco Hugentobler
> Sourcepole -  Linux & Open Source Solutions
> Weberstrasse 5, CH-8004 Zürich, Switzerland
> marco.hugentobler at sourcepole.ch http://www.sourcepole.ch
> Technical Advisor QGIS Project Steering Committee
>
>
> _______________________________________________
> Qgis-developer mailing list
> Qgis-developer at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-developer
>


More information about the Qgis-developer mailing list