Hi Nyall,

The setAtlasPreviewEnabled(True) still does not work correctly. It works exactly like the python workaround you mentioned: It toggles the atlas button but does not activate the atlas. I mean, the prev and next buttons stay disabled and the map does not display page number 1.

If I then, turn off and on the atlas preview, it works as expected.

Does it need to get some kind of gui redraw/update call?

Regards,
Raymond


On 12-10-18 01:39, Nyall Dawson wrote:
On Fri, 12 Oct 2018 at 02:22, Raymond Nijssen <r.nijs...@terglobo.nl> wrote:

By the way, the fragile code solution does not work for me. It does
toggle the button but it does not activate the atlas preview.

Ok - I've done the proper approach in
https://github.com/qgis/QGIS/pull/8170/files

(I've also exposed an API call to show the item properties for a
particular item)

Let me know if there's anything else you think should be exposed from
the designer to the designer API.


Nyall


# open layout
designer = iface.openLayoutDesigner(layout)

# turn on atlas preview mode
lo_view = designer.view()
lo_window = lo_view.window()
action = lo_window.findChild(QAction, 'mActionAtlasPreview')
action.toggle()


On 11-10-18 16:51, Raymond Nijssen wrote:
Hi Nyall,

It sounded great and I spent some hours on that better approach, but I
didn't succeed. So maybe 3.6 will have it...

Tnx!
Raymond


On 25-09-18 23:57, Nyall Dawson wrote:
On Tue, 25 Sep 2018 at 22:36, Raymond Nijssen <r.nijs...@terglobo.nl>
wrote:

1. Can I open a layout window with a python command?

designer = iface.openLayoutDesigner( layout )

2. Can I turn on "atlas preview" with a python command?

You'd have to do some fragile code to do this. Basically:

- get designer window from designer.view()'s parent window
- find the mActionAtlasPreview child action in the window
- manually toggle it on

This should work, but isn't stable API - so is likely to break ;)

A better approach is to (quickly, before 3.4 final!) file a PR
exposing the toggle atlas preview behavior to
QgsLayoutDesignerInterface. Then you'll be able to just do:

designer = iface.openLayoutDesigner( layout )
designer.toggleAtlasPreview( True )

Nyall


Hope anyone knows!

Kind regards,
Raymond

_______________________________________________
QGIS-Developer mailing list
QGIS-Developer@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer



_______________________________________________
QGIS-Developer mailing list
QGIS-Developer@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

_______________________________________________
QGIS-Developer mailing list
QGIS-Developer@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to