Hi Olivier,
Regarding HTML editor:
I very briefly discussed this with Nyall (and got an offer to do it)). I
proposed to embed a Javascript based HTML editor (like TinyMCE (LGPL)).
However, Nyall is probably now busy with composer/report builder. So it
would probably be ok, if someone else works on this. I would also like
to see this HTML editor in a text area widget - so people could write
rich text in an attribute form. Maybe there is also a qt-based rich text
widget we could use?
Regarding live templates:
I was hoping for a global live template that I could link into many
projects. Otherwise it wouldn't help me much. On the other hand I don't
need the overrides (maybe only the map title). I would only put fixed
content in the live templates that needs to be on every print out (like
company logo, print date, disclaimer, contact information, etc.).
However, maybe one day I would need the overrides - one never knows ;-)
Andreas
On 11.11.2014 12:46, Olivier Dalang wrote:
Hi,
Another thing which deserves some work IMO is the text boxes : either
you have to write HTML, or you're limited to 1 font/color/size per
text box. Even if it's not really linked to the global structure of
the composer, an improvement on this would have great impact on usability.
There must be some lightweight wysiwyg html editor library hat we
could use ? Ideally it should implement styles that you can apply
throughout a project (probably through css classes, but I have the
feeling someone already talked about this idea ?).
And more about the live templates idea (if it's too much of a thread
hijacking please start another one) :
Maybe to avoid confusion between templates and live templates, we
could call the live templates "masters" ? That's how they are called
in Adobe Indesign (which is probably the most polished layouting
software around).
http://helpx.adobe.com/indesign/using/master-pages.html
The thing Indesign isn't not doing well IMO is overrides : it involves
an awkward keyboard shortcut and it's hard to know what exactly is
overridden and what's not (what element, and what part of the element).
The property system you're mentioning would probably be an excellent
thing to manage inheritance.
And then, there's a question about whether the masters are global or
per-project.
The problem with global masters is that you can have effects on other
files without knowing it, and also that projects may display
differently on different setups. I think we should only have
per-project masters.
And updating a project's layouts only involves reimporting the main
master once (that may be a bit tricky though if we want to keep
overrides, but using composer's items UUIDs we may make it work for
some simple cases).
Thanks a lot for those bigger refactoring initiatives !
Olivier
2014-11-11 10:52 GMT+01:00 Andreas Neumann <[email protected]
<mailto:[email protected]>>:
Hi,
It would be very awesome to have live-linked templates! I would
very much need them. I have a lot of operational projects and it
is my fear that some day some details would change and I need to
go into all of the projects and adopt things like logo, fonts,
headers, etc. It would either require a script to process the .qgs
files or a lot of manual work.
So +1 for having live templates. Nyall, maybe you can plan the
redesign in a way to make it possible? I would also participate in
financing the development of these live templates.
Andreas
On 07.11.2014 20:10, Olivier Dalang wrote:
Hi,
I don't get the point in keeping the old classes if we upgrade
the composers to layouts at opening ? Doesn't migration happen at
XML level ?
Maybe while thinking about reworking the composer, we could think
about a new feature : real templates (aka "masters" in Indesign).
All elements added to a "master" appear on all the page that
apply it. This is very handy: you can always edit the master
(move some elements, change the fonts/colors, etc.), and the
changes are reflected on all the layouts. The challenging part
from an UI point of view is the required ability to override the
content of templates elements (for instance the extent of a map,
the text of a textbox, etc.)
I thought of making a plugin for this, but got discouraged
because of the problem you exposed... So it would be a good test
case to see if the future API for the layouts allows to implement
this easily ;)
Thanks !
Olivier
2014-11-07 16:26 GMT+01:00 Andreas Neumann <[email protected]
<mailto:[email protected]>>:
Hi Nyall,
I also think that option 2 would work best. Option one would
be very confusing (I remember the days when we had two
labeling versions, 2 symbology versions, etc. - awful!).
Thanks,
Andreas
On 07.11.2014 16:16, G. Allegri wrote:
Hi Nyall,
as I already told you privately, I agree with the second
approach: remove the current Composer and guarantee
transparent auto-upgrade of existing layouts in projects.
The improvements to the composer worth the effort, and the
consequent visual impact for users. The important thing is
to guarantee old projects to provide the same results
(layouts) though, without re-designing them from the ground.
Having both the old Composer and the new GUI tools would be
misleading and confusing to the users, and I imagine it
would double the effort to mantain both the tools.
giovanni
2014-11-07 12:37 GMT+01:00 Nyall Dawson
<[email protected] <mailto:[email protected]>>:
Hi all,
I'm seeking feedback about the best way to move forward
with QGIS' map
composer. I'm currently running up against some large
issues with the
current design and API of composer which are holding
back important
features and fixes. Some of these issues include:
- there's too much composer logic tied up in app and
gui. This makes
it very difficult for plugins to manipulate and export
compositions
without duplicating large blocks of code
- there's too much item-specific logic and handling
scattered through
QgsComposition, QgsComposerView and QgsComposer. This
makes it
impossible to have features like plugin generated item
types, and
makes maintenance difficult.
- everything is coded to expect measurements and sizes
in mm. I can't
(nicely) add support for other units without breaking
api or resorting
to a lot of hacks
- same for mixed page sizes and orientations within a single
composition, this requires an api break to implement cleanly
- I need to totally break composer api in order to fix
the instability
in undo/redo commands (see http://hub.qgis.org/issues/11371)
- QgsComposition should not require a
QgsMapSettings/QgsMapRenderer.
This should instead be set individually for map items.
Doing so would
pave the way for features such as reprojection support
for individual
map items.
- the composer is full is deprecated methods and legacy api
I've slowly come to the conclusion that the way forward
is to move to
a bunch of new classes, much like what was done with
symbologyV2. If
https://github.com/qgis/QGIS-Enhancement-Proposals/pull/9 passes
then
these would be named QgsLayout, QgsLayoutDesigner, etc.
If not, well,
I'll have to resort to QgsCompositionV2, etc.
The potential problem with this approach is how to
handle the GUI and
existing projects. As far as I can see, there's a few
options:
1. Expose both the existing composer and the new layout
designer to
users. Composers aren't automatically upgraded to
layouts. This
approach means that existing PyQgis code and plugins
will still
function for existing projects, but at the expense of a
confusing
experience for users.
2. Add all the new layout classes and keep the existing
composer
classes. Composer would NOT be exposed in the GUI and
compositions are
upgraded to layouts when projects are opened. This
approach means that
standalone python code would still operate, but plugins
or code which
are designed to be run from within QGIS would no longer
function.
3. Move totally to the new layout classes and remove all
composer
classes (unlikely)
I'm leaning toward option 2, but what are you thoughts?
What's the
best approach to move forward? Obviously I'll submit all
this as a QEP
when the plans are finalised, but for now I'm just after
advice on the
preferred approach.
Nyall
_______________________________________________
Qgis-developer mailing list
[email protected]
<mailto:[email protected]>
http://lists.osgeo.org/mailman/listinfo/qgis-developer
--
Giovanni Allegri
http://about.me/giovanniallegri
Twitter: https://twitter.com/_giohappy_
blog: http://blog.spaziogis.it
GEO+ geomatica in Italia http://bit.ly/GEOplus
_______________________________________________
Qgis-developer mailing list
[email protected] <mailto:[email protected]>
http://lists.osgeo.org/mailman/listinfo/qgis-developer
_______________________________________________
Qgis-developer mailing list
[email protected]
<mailto:[email protected]>
http://lists.osgeo.org/mailman/listinfo/qgis-developer
_______________________________________________
Qgis-developer mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/qgis-developer