Hi Larry

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?

The slot methods need to be declared as slots in the header file, like this:

public slots:

    //! Update frozen label highlights on canvas render finished
    void updateFrozenLabels();
    //! Render rectangles around frozen labels
    void highlightFrozenLabels();

Currently, they are just normal public methods.

Regards,
Marco

Am 16.07.2012 11:35, schrieb Larry Shaffer:
On Mon, Jul 16, 2012 at 2:18 AM, Marco Hugentobler
<marco.hugentob...@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@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.hugentob...@sourcepole.ch http://www.sourcepole.ch
Technical Advisor QGIS Project Steering Committee


_______________________________________________
Qgis-developer mailing list
Qgis-developer@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.hugentob...@sourcepole.ch http://www.sourcepole.ch
Technical Advisor QGIS Project Steering Committee

_______________________________________________
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to