Page 1 of 1

Snapshot4 release

Posted: Wed Aug 31, 2011 20:06
by Kulik
I regard this release "quite" production ready for imagesets and layouts. Property editing might pose some trouble but other than that it should prove to be quite usable even for 0.7 layouts (though I am aware of some property related migration regressions).

Only binaries for Windows this time (due to time constrains). But I learned that using CEED through "wine" on Linux makes it work remarkably well if you don't want to compile PyCEGUI yourself for some reason. ... snapshot4/

Incomplete list of changes:
- 0000559: [General] Changing layout tabs makes the main window "jump around" on MacOSX only (Kulik) - resolved.
- 0000556: [Imageset editing] The imageset editing dock widget is too wide and can't be made smaller (Kulik) - resolved.
- 0000562: [General] Add some sort of a visual cue about which version of file you are working with (Kulik) - resolved.
- 0000577: [Project management] Add file to project picks the wrong path (Kulik) - resolved.
- 0000576: [General] Add "Save file as" action (Kulik) - resolved.
- 0000484: [General] Shortcuts and actions (Kulik) - resolved.
- 0000575: [General] PySide 1.0.6 breaks CEED (Kulik) - resolved.
- 0000554: [General] Name of the application is "python" and the icon is a rocket in the dock on MacOSX (Kulik) - resolved.
- 0000502: [General] About dialog / version info (crond) - resolved.
- 0000481: [General] Error/exception dialog doesn't link to this mantis tracker (crond) - resolved.
- 0000563: [General] Reloading the project (by changing its settings or even closing and opening it again) will cause a segfault if layouts are open (Kulik) - resolved.
- 0000572: [Imageset editing] Performance concerns (QGLWidget viewport works well on Windows and Linux, not so much on OSX) (Kulik) - resolved.
- 0000492: [General] Improve the settings interface (crond) - resolved.
- 0000571: [General] Editor starts under all other applications (OSX) (Kulik) - resolved.
- 0000558: [Project management] When loading the project, the progress dialog won't update (Kulik) - resolved.
- 0000557: [General] Moving the mouse over the splashscreen won't close it (Kulik) - resolved.
- 0000539: [General] Full 0.7 compatibility support (Kulik) - resolved.
- 0000553: [General] When a project is opened, assume that any file opened is for target CEGUI version of that project (Kulik) - resolved.
- 0000561: [General] Creating a new file with a project opened should create it for a version suitable for the target CEGUI version of that project (Kulik) - resolved.
- 0000566: [Project management] When loading a project, any errors should be output in error dialog, not exception window (Kulik) - resolved.
- 0000564: [Project management] Opening a recent project file that doesn't exist (or any project file that doesn't exist) raises exception (Kulik) - resolved.
- 0000565: [Layout editing] Changing snap grid settings is effective immediately but the snap grid texture won't refresh (Kulik) - resolved.
- 0000560: [General] Check PyCEGUIOpenGLRenderer in prerequisites (Kulik) - resolved.
- 0000485: [General] Opening a project, closing it and opening it again might not work (Kulik) - resolved.
- 0000551: [Layout editing] Auto detect layout 4 with the new version attribute (Kulik) - resolved.
- 0000504: [Imageset editing] Loading underlying image sometimes fails without any message (Kulik) - closed.

Plans for snapshot5: ... sion_id=26

Enjoy and please report any problems!

Re: Snapshot4 release

Posted: Sun Sep 04, 2011 08:46
by Mikademus
Just wanted to post cheers and thanks! There's some good work being done there, and the usability of the application just keeps improving!

Re: Snapshot4 release

Posted: Wed Sep 21, 2011 17:35
by jarwulf
Yahh...I now have even more reason to restart my moribund project....

Re: Snapshot4 release

Posted: Fri Sep 30, 2011 00:25
by czuger

First of all, great work on this! Its coming along really well, really looking forward to the next release! I have created a CEED project for all our existing UI Assets and have gotten most of it to (at least for the most part) work. At this point, the imageset editor is superior to the 'old' one. The layout editor very nice, but there are a few crippling bugs. I believe that fixing these few issues will make Layout editing quite workable.
Please note that I did not read through the ~560 Issues assigned to you to figure out if all these things are already on your queue. They are just the things I have run into when trying to use CEED on a real project.

As requested, here is the feedback. I have marked in red what I currently consider to be a serious problem and is preventing me from using the tool effectivley.

Layout editing
  • A lot of properties appear uneditable. Is this because no custom editor exists? Just allowing raw-text editing CELayoutEditor-style is needed here. (Example: 'Size', or 'Image' Property). I realize I can always use the 'code' tab to do this, but its a pain, I reckon it should be very easy to just provide text-editor for properties that do not have a custom edit control -
  • I have custom properties that I would like to edit but can't. See previous issue. Just letting me edit the text is all I need. - same tickets as above
  • Resolution used is not saved in project settings, I have to re-type it every time the app is opened. (which is very often so it can refresh other data) -
  • Due to missing property editors, I have to edit a bunch of stuff using the 'Code' tab. When something is present that CEED does not recognize as valid, it is (silently) removed. This makes it very difficult to say, set TextColors property, since a single typo will just (undoably) remove the line. I think it should just ignore those lines, leave them present, and log them somehow. -
  • When editing layout visually, property values are not updated. I have to click away from the Widget and back to the Widget (To see size/position changes) -
  • 'Selection Properties' Control position&size is tied to the layout being edited, not to the application. This means I have to position it for every layout I am editing. I think tool windows should retain their position/size regardless of what is being edited (Like Photoshop/Visual Studio/Eclipse etc handle their tool windows) -
  • Drag&Drop sub-tree of widget hierarchy into 'empty' part of the Widget hiearchy control (I tried to make it be the last thing in the hiearchy), removes the sub-tree from the widget hierarcy. The app is in a broken state after that (the widget hierarchy thinks those items are deleted, but they are still present in the layout) - I am unable to reproduce this problem, please try to be more specific.
  • Drag&Drop in Widget hierarchy always places the item 'last', instead of in the spot that I have dragged it to.
  • Using slider to Adjust 'alpha' value, it only goes up to 0.99, not 1.0 -
  • Typing in a custom resolution (1280x720 for example), exception is thrown as soon as the 'x' character is not present. Ignoring the exception it appears to work afterwards. -
  • My looknfeel specifies a button animation that modifes property "UnifiedXPosition" when hovered over. When I use live-preview and hover over the button, Exception thrown: "Exception message: CEGUI::UnknownObjectException in file ..\..\..\cegui\src\CEGUIPropertySet.cpp(122) : There is no Property named 'UnifiedXPosition' available in the set. Traceback: File "C:\Users\Admin\Devel\CEGUI\CEED\cegui\", line 157, in drawBackground" -

Project management
  • How do I specify resource-groups that are available? It appears to me that only the 'default' resource group can be used in the editor? I have many assets that live in a Resource group other than the default, and I specify the resource group to use in the XML files. How do I tell CEED about these resource groups (part of project settings?). I don't really know how to deal with this right now, CEED simply refuses to load any asset where I use the 'ResourceGroup' property. -
  • For as-of-yet unknown file-types (.font, .looknfeel, .scheme), it would be nice if it just opended it with a a text editor (like the code view of types it does recognize). Alternativley, it could associate it with an external program to launch&edit (I use notepad2), so that I can keep the those files organized in the project and still edit them easily. -
  • When closing project, if changes are still present it correctly asks to save. It however fails to close the project after saving. -
  • When open/close/open a project which uses lookAndFeel that references animation, an exception is thrown because it attemps to re-create animations. I do not know if the app is in an invalid state after this, but I have to close/reopen CEED if I want to reliably re-open the project. -
  • It would be nice if the save-all button also saves the project file itself. The app still crashes pretty frequently, and I keep loosing changes to the project itself, event though I save frequently. -
  • Delete button when in Project Manager does not delete the selected file. -
  • Adding a file multiple times to the project manager creates duplicate entries. It should ignore duplicates and just log that fact. (This makes adding multiple files much more useful) -

Imageset editing

Feature wishlist
  • Ability to enter custom zoom percentge (like photoshop) -
  • Smaller step size for zoom on mouse-wheel scroll (or user configurable)
  • Keyboard shortcut for pan (hold down alt?) - Hold MMB to pan
  • Remember layout of tool windows. I love the fact that you can break-out the properties panel etc (I put them on 2nd monitor). It would be very nice if the custom layout was stored between sessions. -
  • Refresh button (or file-system monitoring) to detect when imageset/looknfeel/scheme etc have changed. I have to close/reopen the app if I change any of those files for it to pick up the changes. -
  • Grouping widget properties logically in collapsable sub-trees instead of displaying in a big alphabetical list would be great. - Note by Kulik: I am already doing this to a degree
  • Keyboard short-cut to select&start editing the 'filter' box in the 'Selection Properties' tool window for the currrently selected Widget. This allows me to quickly edit properties w/o having to mouse all over the place. -
  • Hide 'grouping' rows in 'Selection Properties' window when filtering, and make tab cycle over the editors. This would allow me to filter & tab to the property and edit
  • Expand-all/Collapse-all right-click options for "Widget Hierarchy" control -
  • Create 'console' type Tool Window that can show output from CEGUI log (at least errors). This will make it much easier to detect when something has gone wrong and CEED is performing operations silently behind your back. -

  • How do I enable the snap-grid? The background is always solid black, and althought I can enable the snap-grid and get widgets to snap to it, I can't see the snap-grid.

Looking forward to snapshot 5!


EDITs by Kulik - added ticket links, will add more

Re: Snapshot4 release

Posted: Fri Sep 30, 2011 08:13
by Kulik
Top quality feedback! Thanks!

I will work through it today and edit your post to add links to tickets in mantis. Some of these issues I am aware of (and are already in mantis) but some others are new to me.

The biggest problem is that I've done 95% of CEED or perhaps even more and at this point I need contributors, otherwise the project will overwhelm me as I can only invest 1-2 days a week. Pretty much everything you've raised is polishing which is boring work to me so I usually postpone that - when I code for free I want to at least have fun doing that... :D

Re: Snapshot4 release

Posted: Fri Sep 30, 2011 10:53
by Kulik
czuger wrote:Ability to enter custom zoom percentge (like photoshop)
Smaller step size for zoom on mouse-wheel scroll (or user configurable)

The problem with this is that you get split pixels and things stop lining up. Though I admit I could do 1x, 2x, 3x, 4x, 5x,... instead of 1x, 2x, 4x, 8x, ...

czuger wrote:How do I enable the snap-grid? The background is always solid black, and althought I can enable the snap-grid and get widgets to snap to it, I can't see the snap-grid. [/list]

Snap grid always displays the grid in the parent widget of currently moved/resized widget. It is activated/deactivated by pressing the spacebar by default. If you are moving/resizing the topmost widget it "snaps to itself" and no snap grid is shown.

Re: Snapshot4 release

Posted: Fri Sep 30, 2011 20:33
by czuger
Thanks for you quick replies.
I can now see the SnapGrid, this was pure user error.

The most important issue at this point is the ResourceGroup problem, its a bit of a show-stopper for us. To give some background:
Before attempting to use CEED, we were using the old CELayoutEditor and mostly hand-crafting the XML files for any other CEGUI resource. Our asset management system does not deal with 'ResourceGroups' like CEGUI/Ogre does, rather every asset is specified using a fully qualified path from some root asset folder. For example, MainMenu.layout of the game project, in our asset system would be: "game/gui/layouts/MainMenu.layout". This is done because it is unambigious where a specific asset is coming from, there are no silent default resource groups, auto-search, file conflicts etc. In order to get this to work (at runtime), I set all CEGUI resource groups to the 'root' asset path, and everything is happy. The CEGUI tools however are *very* unhappy with this strategy (because the path I set in the tool doesn't actually contain CEGUI resources, the tool does not know where to look for .scheme files, for example). I conviced CELayoutEditor to work, but I could not get CEED to work using this. So, instead of fighting CEGUI and its tools, I converted everything to how it wants to manage assets (simple file names and ResourceGroups), which now looks like this:

So loading a 'game' asset would be:
'MainMenu.layout', 'game-layouts'
and loading a screen that is part of the engine would be:
'LuaConsole.layout', 'mt-layouts'
This is, to my understanding, how CEGUI resource groups are intended to be used.

The folder layout looks like this:

project/engine/gui/assets/engine.project (CEED project)

project/game/assets/gui/game.project (CEED project)

Since I can not specify ResourceGroups that should be defined for a CEED project, I can't really do this however. As soon as it sees something like <Font Name="somefont" Filename="somefont.font" ResourceGroup="mt-fonts" /> it fails to load this, because it has no idea what the 'mt-fonts' resource group is.
The only work-around available to me at this point is to only use default resource groups, and merge all UI assets from all projects (in the example above, engine and game) into a single directory structure during our 'install' step. that becomes the 'default resource group'. The down-side to this is that duplicate file names are an issue. So what I am really looking for is to be able to define, on a per CEED project basis, ResourceGroups that should be initalized and known to the CEGUI gui instance in CEED, so that resources like the <font> example can be dealt with.

I am attempting to get CEED running from Mercurial to see if there is something I can do (This is going pretty poorly so far), but it would be massivley appreciated if you could bump up the priority of the ResourceGroup problem :)


Re: Snapshot4 release

Posted: Sat Oct 01, 2011 15:22
by Kulik
The only "right" solution is to use CEGUI resource providers to load all data. This has a huge caveat however. Resource providers only allow reading files, they won't allow me to write to them.

I have a couple of ideas how to solve this, however none of them is a pure win and none of them is clean.

1) Have "resource provider setup" and "resource I/O "script snippets in python that would be set per project
- This is super powerful but too hard to use and too hard to setup in a project. Also the resource provider would have to have python bindings and allow writing to files to make this feasible.

2) Only support what DefaultResourceProvider does but offer more options, custom resource groups, custom folders.
- Not generic enough and involves a lot of work.

3) Implement writing in CEGUI resource provider interface, default implementation throws UnimplementedException
- Resource provider should provide resources, not write to them. However other than that it's the most sane solution I think, probably won't get CrazyEddies approval though.

Re: Snapshot4 release

Posted: Sat Oct 01, 2011 21:20
by Kulik
I think I have written majority of the issues into mantis (thanks goes to Alfisko, who helped me with this) - next time you might want to actually search for the issues in mantis and report the bugs yourself if they are not there already, would save a lot of effort on my side.

I will think about the resource issue and fix some of the 5 minute bugs tomorrow.

Re: Snapshot4 release

Posted: Mon Oct 03, 2011 19:42
by czuger
Thanks for entering all those issues.
I was unsure how stringent you are about entering an issue for everything, no matter how minor. I will enter issues for any further bugs I find.

In regards to this:

Drag&Drop sub-tree of widget hierarchy into 'empty' part of the Widget hiearchy control (I tried to make it be the last thing in the hiearchy), removes the sub-tree from the widget hierarcy. The app is in a broken state after that (the widget hierarchy thinks those items are deleted, but they are still present in the layout) - I am unable to reproduce this problem, please try to be more specific.

I have created issue:
I attached a screenshot & steps to reproduce.


Re: Snapshot4 release

Posted: Tue Oct 04, 2011 19:19
by czuger
A couple more feature requests:
I'll enter them into Mantis once you have confirmed that they are not outta whack :)

  • When switching between tabs (Visual/Code/Live Preview), attempt to preserve the 'state' of the other tabs. Example: I am closely zoomed in to a widget for precision aligning in 'visual' tab. I keep switching over to 'live preview' tab to see what this looks like. When I come back to the 'visual' tab, it goes back to a default view (zoomed out). It would be nice if it preserved that tab exactly how it was when I left it. Same applies for the 'code' tab. Switching between it and the 'visual' tab, the caret in the 'code' tab always goes back to the beginning of the document (I assume this is because it gets regenerated when I switch to the visual tab). Even if it just returned the caret to the same line number (if it can), even if its not exactly where it was before would be a big help.
  • Ability to 'nudge' widgets using the keyboard. Ability to select a widget in the widget hierarchy and use keyboard short cuts exclusivley to nudge it around.
    It would be great if the following was supported:
    • Nudge entire widget by grid-spacing (default, using arrow keys)
    • Nudge entire widget by 1 pixel (alt + arrow keys)
    • Nudge top/left/bottom/right edge of widget by grid spacing (a,s,d,w + arrow keys) or similar (so for example, to nudge the right edge, you would hold down 'd' and use the left/right arrow keys to nudge it)
    • Nudge top/left/bottom/right edge of widget by one pixel (alt + a,s,d,w + arrow keys) or similar (so to nudge top edge by 1-pixel, you hold down alt+w and use up/down arrow keys to nudge)


*Edit to add issue links

Re: Snapshot4 release

Posted: Tue Oct 04, 2011 19:22
by Kulik
Both of these are definitely reasonable, so go ahead :)

Re: Snapshot4 release

Posted: Thu Oct 06, 2011 21:44
by czuger
Hello again,

I am having some problems with 'rotation' properties. I am not sure if this problem is related to the 'UnifiedXPosition' animation problem I have reported earlier. It could very well be user error as well.
I am trying to use the 'ZRotation' property (or 'Rotation', outcome is the same) on a Falagard skinned 'StaticImage' widget.

- ZRotation is a 'default' property of CEGUI:Window, so I should not have to add it as a <PropertyDefinition> to the .looknfeel (in fact, if I do, CEGUI throws an AlreadyExistsException, which I'd expect)
- If I manually add the property to the .layout for ZRotation, it works fine at runtime (using a text editor instead of CEED)

in CEED however:

- If ZRotation is absent from the .looknfeel, it just deletes the property on any modification to the .layout
- If ZRotation is present as a <PropertyDefinition> in the .looknfeel, CEED does not automatically delete it anymore (but this is no good, since CEGUI will throw an exception at runtime)
- Regardless of the above, any rotation property is not reflected visually (either in the 'visual' or the 'live preview' tab)

Any hints as to what's going on?

Edit: Mantis issue


Re: Snapshot4 release

Posted: Thu Oct 06, 2011 23:02
by Kulik
CEGUI 0.8 uses quaternions for rotation to prevent gimbal locks and allow nicer animations, CEGUI 0.7 uses euler angles. Please report this to mantis, this is another oversight in the compatibility layer.

Re: Snapshot4 release

Posted: Sun Oct 09, 2011 15:16
by Mikademus
Czuger, just wanted to say that you gave some sterling feedback! One of the most valuable and most rare information one gets as a developer is real-life user stories. Therefore, your usage experiences are invaluable and so is you sharing of them with us! Are you still having issues with getting Git up and running or have you a working CEED repo on your side? There are serious credits in the CEGUI docs waiting for you as an bribe to entice you into submitting CEED patches! :rofl: