Naali external widgets proposal

6 views
Skip to first unread message

Jonne Nauha

unread,
Oct 4, 2010, 7:41:41 AM10/4/10
to realXtend-dev
Good day,

Just a quick link to my proposal how to implement extenal widget/tools and toolbar/menu area for Naali. This is mostly for the Enne company guys to review and tell me if they want to do the work as I suggest :)
http://wiki.realxtend.org/index.php/Main_Page/Naali_ui_external_windows just a quick wiki page I made as explaining this over IRC might be a bit confusing and hard to follow.

Enne guys please respond here if you are interested or give your proposals and I can help you by checking it out!

Best regards,
Jonne Nauha
realXtend developer

http://www.realxtend.org/
http://www.evocativi.com/

Ryan McDougall

unread,
Oct 4, 2010, 8:28:57 PM10/4/10
to realxt...@googlegroups.com

carlos...@enne.es

unread,
Oct 5, 2010, 3:09:42 AM10/5/10
to realxt...@googlegroups.com

Hello everyone,

Enne is a company based Spain, focused on digital content development (3D animation TV series and Videogames development) and we are very interested in the realXtend project. Over the past months we have been researching about the great architecture you have developed, encouraging our desire to collaborate on the project. Several members of our team have been in contact with the realXtend community in order to learn about the platform and to resolve specific questions about the development that we have started.

Fruits of this, we are about to upload a Text-to-speech module which is on its final test phase, and now as part of our roadmap; one of the requirements that we have is the addition of more world editing features to the naali viewer.

Taking into account a future more featured and complex editor and based on the experience of our team on using virtual worlds development tools, we find the need of a different user interface where the editing windows could be moved outside the world visualization and several menus and toolbars were available. (See attached file)

To avoid any impact on the existing functionality and architecture is a priority for us, as well as share new functionality that we can develop.

 We have been studying different alternatives for the implementation and discussing them with the RealXtend developers in the IRC channel, as a result of this first discussing we have the following ideas:

 

  • The idea of create a new QMainWindow with the actual widget as the Central Widget inside UiModule we think that is a great idea and can make easier to implement and insert new functionality and GUIs.
  • Also we have considered the idea of making a new module to control the adds to the new QMainWindow (QDockWidgets, QMenus, Toolbars) with the idea of separate editing tools from the ones used to navigate through the world, and avoid to fill the scene with new windows/widgets made for edit content that users may not use to “play” in the scenes.

In the wiki this step is done inside the UiModule; we don’t know about the future plans for the user interface that you have in your roadmap, but this way we think that can be easier to add new items/Objects to the main window in a future.

 This are our first ideas that would like to discuss with the community, and any new idea or suggestion will be accepted and considered!

Best regards,

 

Carlos Jiménez

ENNE ENTERTAINMENT STUDIOS

 .................................

T (34) 948 166 297

F (34) 923 100 301

www.enne.es

On Mon, 4 Oct 2010 17:28:57 -0700, Ryan McDougall wrote: > Who are the Enne company guys? > > Cheers, > > On Mon, Oct 4, 2010 at 4:41 AM, Jonne Nauha > wrote: >> Good day, >> Just a quick link to my proposal how to implement extenal widget/tools >> and >> toolbar/menu area for Naali. This is mostly for the Enne company guys to >> review and tell me if they want to do the work as I suggest :) >> http://wiki.realxtend.org/index.php/Main_Page/Naali_ui_external_windows just >> a quick wiki page I made as explaining this over IRC might be a bit >> confusing and hard to follow. >> Enne guys please respond here if you are interested or give your >> proposals >> and I can help you by checking it out! >> Best regards, >> Jonne Nauha >> realXtend developer >> >> http://www.realxtend.org/
MainWindowDesign.jpg

Jonne Nauha

unread,
Oct 5, 2010, 6:26:15 AM10/5/10
to realxt...@googlegroups.com
Well if you agree on the plan just start working with it? :) I think I gave pretty good steps what to do in the wiki. You could notify me when you have a git branch in you github repo that I can check out.

Best regards,
Jonne Nauha
realXtend developer

http://www.realxtend.org/
http://www.evocativi.com/


Antti Ilomäki

unread,
Oct 5, 2010, 6:40:10 AM10/5/10
to realxt...@googlegroups.com
Great to hear from you again. I understand you already talked about
this yestarday on IRC, so I'll just say I'm excited about the
possibility to work together and I'm looking forward to the results.

2010/10/5 <carlos...@enne.es>:

carlos...@enne.es

unread,
Oct 15, 2010, 9:19:59 AM10/15/10
to realxt...@googlegroups.com

Hello again,

We have done (and implemented) a new design  for Naali giving the possibility to put external windows with the given widgets, to do this we have modified the UiModule as Jonne told, creating a new QMainWindow inside UiModule, wich central Widget is the actual window.

To manage this new Window, we have created a new Optional Module and a new service (we thought that was easier and more modular), and now all modules can create external panels/windows and insert new actions or menus in the MenuBar of the main window in an easy way.  We have used the same architecture of UiModule to create the new Module “UiExternalModule” with  a Menu Manager and a Panel Manager.

As is Optional, each module can choose the service to render his widgets, if the new service is selected, the widget will be placed outside the world view in the QMainWindow; otherwise, if the current ui service is selected (or the new module is not loaded) the widget will be rendered into the scene as is done now.

 

Technical  details are in the wiki http://wiki.realxtend.org/index.php/Main_Page/Naali_ui_external_windows, and the code is in http://github.com/enne/naali/tree/ExternalUi available to everyone who wants to try it and comment. We began develop from the last Release Code of Naali (0.3.2) and the atacched file is a screenshot of the result.

Looking forward for comments and future develop together.


Best regards,


Carlos Jiménez

ENNE ENTERTAINMENT STUDIOS

www.enne.es


On Tue, 5 Oct 2010 13:26:15 +0300, Jonne Nauha 
wrote:
> Well if you agree on the plan just start working with it? :) I think I gave
> pretty good steps what to do in the wiki. You could notify me when you have
> a git branch in you github repo that I can check out.
> 
> Best regards,
> Jonne Nauha
> realXtend developer
> 
> http://www.realxtend.org/
n contact with the realXtend community in order to learn about
>> the platform and to resolve specific questions about the development that
>> we have started.
>>
>> Fruits of this, we are about to upload a Text-to-speech module which is
>> on its final test phase, and now as part of our roadmap; one of the
>> requirements that we have is the addition of more world editing features
>> to the naali viewer.
>>
>> Taking into account a future more featured and complex editor and based
>> on the experience of our team on using virtual worlds development tools,
>> we find the need of a different user interface where the editing windows
>> could be moved outside the world visualization and several menus and
>> toolbars were available. (See attached file)
>>
>> To avoid any impact on the existing functionality and architecture is a
>> priority for us, as well as share new functionality that we can develop.
>>
>>  We have been studying different alternatives for the implementation and
>>  discussing them with the RealXtend developers in the IRC channel, as a
>>  result of this first discussing we have the following ideas:
>>
>>
>>
>>    - The idea of create a new QMainWindow with the actual widget as the
>>    Central Widget inside UiModule we think that is a great idea and can
>>    make easier to implement and insert new functionality and GUIs.
>>
>>
>>    - Also we have considered the idea of making a new module to control
>>    the adds to the new QMainWindow (QDockWidgets, QMenus, Toolbars) with
>>    the idea of separate editing tools from the ones used to navigate
>>    through the world, and avoid to fill the scene with new
>>    windows/widgets made for edit content that users may not use to
>>    “play” in the scenes.
>>
>> In the wiki this step is done inside the UiModule; we don’t know about
>> the future plans for the user interface that you have in your roadmap,
>> but this way we think that can be easier to add new items/Objects to the
>> main window in a future.
>>
>>  This are our first ideas that would like to discuss with the community,
>>  and any new idea or suggestion will be accepted and considered!
>>
>> Best regards,
>>
>>
>>
>> Carlos Jiménez
>>
>> ENNE ENTERTAINMENT STUDIOS
>>
>>  .................................
>>
>> T (34) 948 166 297
>>
>> F (34) 923 100 301
>>
>> www.enne.es
NaaliExternal.jpg

Bill

unread,
Oct 15, 2010, 11:15:59 PM10/15/10
to realxt...@googlegroups.com
Why did this project disappear from github? or is the link incorrect? I can't find reference to this example anywhere?

Carlos Jiménez

unread,
Oct 17, 2010, 10:53:19 AM10/17/10
to realXtend-dev
Sorry for the link, it was incorrect. The code is in
http://github.com/enne/naali/tree/UiExternalModule
The link is fixed in the RealXtend wiki too.

Carlos Jiménez


Carlos Jiménez

unread,
Oct 26, 2010, 3:31:33 AM10/26/10
to realXtend-dev
Hello,

After developing a first version of the UiExternal widgets; we have
shared ideas with the comunity in the irc cannel and we have realized
that modify all the modules that use external windows in order to use
the new optional module is not the best solution :P

Result of this, we have designed a new idea. What we propose is to
extend the functionality of the current Ui module, giving the chance
to put the windows inside the scene or in an external panel
(QMainWindow) in runtime, if the Ui external module is loaded.

The main advantages of this new idea are:
- No module requires no change.
- The UiModule is the only modified project and if the new optional
module (UiExternalModule) is not included, everything works as is
working now.
- More customization: The developer can define each window as in/out/
moveable. If a window is moveable, the user can place it in/out the
scene in runtime with a mouse click; and also to add/remove menus
anytime easily depending of the position of the widget.

Right now we are developing this idea. Although during this week we
will upload the code to github, it would be very useful if the
realxtend developers give us their first impressions about this new
idea and if you think that it could fit in the project.

More information in the RealXtend wiki:
http://wiki.realxtend.org/index.php/Main_Page/Naali_ui_external_windows#Second_Idea:_Optional_Module.2C_dynamic_Window_location_in_runtime

Best Regards,

Carlos Jiménez
www.enne.es

Carlos Jiménez

unread,
Oct 28, 2010, 1:00:41 PM10/28/10
to realXtend-dev
Hello again,

We have upload the code to github of the idea of dynamic widgets :)

It is working now, and widgets can be placed inside the scene or
outside(as dockwidgets) and change their position in runtime with a
mouse click!
(available for all who want to try/test) and more details can be found
in the wiki:
http://wiki.realxtend.org/index.php/Main_Page/Naali_ui_external_windows#Second_Idea:_Optional_Module.2C_dynamic_Window_location_in_runtime

We will continue working in this way until we have your feedback. Your
feedback/opinion will be very apreciated! Thanks in advance for it!

Mark Malewski

unread,
Oct 28, 2010, 1:39:57 PM10/28/10
to realxt...@googlegroups.com
Is there any chance that Naali can be made "skinable", so that users can easily toggle/choose between various skins (in the preferences).  Then possibly have 3 or 4 default "skins" to choose from?

For example maybe create a skin that looks exactly like "Imprudence 1.3" and a skin that looks like "Hippo 0.6.3" and a 'default' skin that looks like the current Naali skin?

That way users can quickly/easily choose between skins.  Similar to how users create "skins" (or "themes") for Linux that look like Windows 7.  It would make the transition from Imprudence or Hippo over to Naali extremely easy for the users, if we had "skins" that resembled Imprudence and/or Hippo.  It would also serve as a great example of how to create "fully-customized" skins for Naali.  

Carlos your work on creating "Dynamic Widgets" is great, and thank-you for contributing to Naali!

          Mark 

On Thu, Oct 28, 2010 at 12:16 PM, Mark Malewski <mark.m...@gmail.com> wrote:
Thank-you Carlos for your work, and contributions to Naali!  It looks great!

            Mark


2010/10/28 Carlos Jiménez <carlos...@enne.es>

Ali Kämäräinen

unread,
Oct 28, 2010, 2:08:33 PM10/28/10
to realxt...@googlegroups.com
Hi Mark,

Naali supports themes by using Qt stylesheets. You can change the stylesheet from (top-right corner) Settings -> Themes tab. IIRC there are couple of different ones (Qt default styles IIRC) already which you can choose from. I assume that by "skin" you also mean the UI element layouts also? This is bit more trickier but could be doable with e.g. scripting with Python or Javascript which both have access to the Naali UI code.

Grey skies,
Ali

Enne R&D

unread,
Nov 3, 2010, 8:09:47 AM11/3/10
to realXtend-dev
Hello,

We have generated an installer for our UiExternal version of Naali to
make it easier to perform tests without having to compile. We have
uploaded the executable to our account of Google Docs; you can
download the file here:

https://docs.google.com/leaf?id=0B9DsRDvX1dXSNDJkNTRkMDQtZWUyYS00MWIxLTk4Y2YtMDhkNjA3ZDQ3YTdi&hl=en

Best Regards,

Daniel Ventura



ENNE ENTERTAINMENT STUDIOS
www.enne.es

Daniel Ventura

unread,
Nov 16, 2010, 5:29:29 AM11/16/10
to realXtend-dev
Hello,

We have developed a new version of External widget. You can download
the installer here:

https://github.com/downloads/enne/naali/Naali-0.3.2-UiExternal-0.2.exe

In this new version we have include the following:

- Save the UI configuration: Naali is able to remember the last
UI configuration of the user. The UI saves the state of each widget
(internal or external) and the position in the QMainWindow when they
are externals. Besides, we have also implemented a new panel called
Settings. This panel shows all widgets and gives the possibility to
switch from external or internal position.
- Build: In the current Naali 0.3.3 version, the user can build
the scene through the button “Build”, which open a new scene with
Editing, Inventory, Components and Propierties windows inside the
scene. If the developer include the UiexternalModule, this button
disappear and the user can get the same four windows (Editing,
Inventory, Components and Properties) through the create object option
in the menu. We have include also a new Toolbar with new shortcuts to
edit object options (move, scale, rotate, new objetct ) and to show
panels (Asset, Properties, Components and Inventory). The Edit Bar is
controlled by the Edit Mode of Control Bar. When the Edit Mode is
enabled you can select and asset and you can modify it faster (move,
rotate, scale…).

You can download the code here:

https://github.com/enne/naali

Carlos Jiménez

unread,
Nov 19, 2010, 9:10:49 AM11/19/10
to realXtend-dev
Hello everyone,

It seems that UiExternal functionality is going to be added to Naali
develop-branch :)

After that we will have widgets outside/inside the viewer and we can
place them in other monitor or organize them in tabs in the
QMainWindow.

To see how we (Enne) can do this update, we have made a proposal in
the wiki; detailing neccesary changes and details. All the info is
here: http://wiki.realxtend.org/index.php/UiExternalProposal and also
screenshots and links to the code and to the installer of the current
version (from release 0.3.2)

If you could have a look at the wiki to see the changes , next week we
can talk and decide the way to go to extend Naali with UiExternal
functionality :)

Of course if someone has any doubt/question just let us know changing
the wiki page, by IRC channel or email list.

Antti Ilomäki

unread,
Nov 19, 2010, 10:17:29 AM11/19/10
to realxt...@googlegroups.com
Hi

Thanks again for the contribution, hopefully our working together will
encourage furrther growth of the community. I think it would be great
to have the UiExternal features in the next release already.

2010/11/19 Carlos Jiménez <carlos...@enne.es>:

Jonne Nauha

unread,
Nov 19, 2010, 11:14:33 AM11/19/10
to realxt...@googlegroups.com
Yeah very good job enne guys, this was a great effort from you and will help make naali even better!

Best regards,
Jonne Nauha
realXtend developer

http://www.realxtend.org/
http://www.evocativi.com/


2010/11/19 Antti Ilomäki <antti....@gmail.com>

Carlos Jiménez

unread,
Nov 30, 2010, 12:06:14 PM11/30/10
to realXtend-dev
Hello again,

Finally UiExternal functionality is in his last phase of his
integration :)

We have merged the community code (develop branch from github) with
our code and we have placed it in enne's github page:
https://github.com/enne/naali/tree/NaaliUiExternalv2

We also have created an instaler to test new Naali, is placed also in
github and is easy to install. https://github.com/downloads/enne/naali/Naali-0.3.4.1-UiExternal-0.1.exe

In this versión, all the “Edit” widgets are placed outside, and a new
menu and toolbars are available to manage the application.

Take a look at the new Naali and if you have any doubt/question le tus
know by mail/irc channel,

Toni Alatalo

unread,
Dec 1, 2010, 4:37:50 AM12/1/10
to realxt...@googlegroups.com
On ti, 2010-11-30 at 09:06 -0800, Carlos Jiménez wrote:
> We have merged the community code (develop branch from github) with
> our code and we have placed it in enne's github page:
> https://github.com/enne/naali/tree/NaaliUiExternalv2

GitHub compare view nowadays supports comparing across different clones
of the repository:
https://github.com/enne/naali/compare/realXtend:develop...enne:NaaliUiExternalv2

So that's one way to read the code changes, I'll be doing that now.

As Ali noted yesterday on IRC, the changes are also nicely tagged by
Enne in the code so can read just by getting a checkout too.

> We also have created an instaler to test new Naali, is placed also in
> github and is easy to install. https://github.com/downloads/enne/naali/Naali-0.3.4.1-UiExternal-0.1.exe

A modeller/artist guy here is testing that now, I did a bit too and
showed to others who have been designing Naali UI earlier.

> In this versión, all the “Edit” widgets are placed outside, and a new
> menu and toolbars are available to manage the application.

Do you have a plan / suggestion already how this would be finally?

What I was thinking earlier was to start so that the new menu and panel
would be hidden by default, and the tools would be in the old / fancy
Naali menu like before, but just so that they all open as external by
default so taking them outside works.

Then at least have options to open the new / normal menu and panel too.

Something to consider is disabling the old menu and using the new panel
+ menu only instead. Doesn't seem like a good idea to have both enabled
by default.

But I'll focus on the code now first, other things are largely about
configuration.

> Carlos Jiménez

~Toni


Toni Alatalo

unread,
Dec 1, 2010, 5:03:48 AM12/1/10
to realxt...@googlegroups.com
On ke, 2010-12-01 at 11:37 +0200, Toni Alatalo wrote:
> What I was thinking earlier was to start so that the new menu and panel
> would be hidden by default, and the tools would be in the old / fancy
> Naali menu like before, but just so that they all open as external by

ah we just learned with Carlos on irc that on the box where we are
testing that here we were not actually seeing the intended behaviour,
'cause a config xml from a previous test build interfered .. made some
widgets show as internal, which made the old top-left menu show etc.

just for info that my previous mail was misinformed in that respect.

~Toni


Toni Alatalo

unread,
Dec 2, 2010, 2:36:01 AM12/2/10
to realxt...@googlegroups.com
On Nov 30, 2010, at 7:06 PM, Carlos Jiménez wrote:

> Finally UiExternal functionality is in his last phase of his
> integration :)

Just a quick update of the status here -- we talked with Carlos on IRC yesterday, while I was testing and thinking about things with Antti, and we basically decided to merge now and target getting these functionalities to the 0.4.0 release next week somehow. It is a bit difficult with the times, as I'm off mostly today and tomorrow, and today on Thursday is the last day the Enne guys are working before some Spanish holiday which lasts till late next week (till after release basically).

There are two mostly separate things here:
a) code
b) configuration

The code is mostly in a new optional module (UiExternalModule), and the changes outside that module seemed like ok steps.

The configuration for next release is up to us here in Oulu while we prepare for release, latest early next week. I can spend time on this on Tuesday at least, unless Jonne or Ali or someone else who is familiar with UI stuff from before has the chance already today or tomorrow, or then on next week.

There are many options for the config -- for example when the uiexternal module is disabled (not loaded), the current uimodule does what it used to, adds menu entries to the round top-left menu etc. But yesterday with Antti we figured to give a shot for the Enne approach, to have the normal menu instead and that buttonbar etc. The bar is with temp graphics etc., but it is also configurable also from gui, whether it's visible at all etc. The mismatch with having buttons in two places, the new/normal button bar and the internal on-top-of-ogre buttons like settings, we suggested to solve so that also settings are put to the normal menu.

The Enne rationale for having some of the buttons like they were in Naali before, and others in the normal menu/buttonbar, was that the menu+buttonbar are for content creators, whereas the buttons on top of the ogre view are for end users of some application as well. That makes sense, but I think is the wrong solution for Naali releases where we should have a clean unified UI for end users who are also builders.

Related to that, Enne has also added a compile time option to build a 'Naali player', a end user version where creation menu entries etc. are disabled by IFDEFfing. This seemed ok to me for now. So for example the Environment module is there, and IIRC it is what handles the terrain etc. so it's needed also when not creating, but when in Player mode it doesn't add menu entries for creation tools. Later if we switch to MVVM or other such more configurable UI programming way, can perhaps remove that.

If Carlos gets to do the things we talked about yesterday, like adding a button to enable buildmode with the internal widgets, I think he could push to the central develop today. At least then the bot will show if this compiles on Linux etc. BTW about buildmode, there is an alternative editmode button in the toolbar which doesn't do UI layout changes, which seemed handy for quick edits. For the buildmode style of showing a preconfigured ui panel setup, there is a 'modify objects' menu entry, but it's not currently complete 'cause is missing the 3d object focus view. This is why we currently need the button for the old buildmode impl too. Hopefully can make it so in the GUI that is not too confusing. Certainly there will be all sorts of things to improve in later releases, but it seems like a good idea to get started now anyway, because thanks for the Enne work we can!

And again, code != configuration here -- i.e. for Enne it is useful anyway to have the code in, so that it doesn't break in a separate repo when Naali internals change etc. No matter what we end up configuring to use for next release. So let's test and think and see. One thing is that all the tools are in two submenus in the Enne branch, 'Panel' and 'Create', instead of the 'Developer tools' etc which we have in develop now .. but we figured with Antti that can configure those how we want ourselves.

I did some github maintenance now: created a new branch "before-uiexternal", just in case that me and Enne missed something critical, we have current develop there to work with. A branch instead of a tag so that we can push bugfixes and new feats etc. there if need to use it for release. I also removed all the old feature branches, these have all been in develop for long now: no_pyentity, terraintexturepaint, NaaliCore.

Added 'enne' to Naali collaborators now, so Carlos et. al. should be able to push today if they get things to good enough shape .. so we can continue.

sorry for the longish post, didn't have time to write briefly.
~Toni

> We have merged the community code (develop branch from github) with
> our code and we have placed it in enne's github page:
> https://github.com/enne/naali/tree/NaaliUiExternalv2
>
> We also have created an instaler to test new Naali, is placed also in
> github and is easy to install. https://github.com/downloads/enne/naali/Naali-0.3.4.1-UiExternal-0.1.exe
>
> In this versión, all the “Edit” widgets are placed outside, and a new
> menu and toolbars are available to manage the application.
>
> Take a look at the new Naali and if you have any doubt/question le tus
> know by mail/irc channel,
>
> Best Regards,
> Carlos Jiménez
> www.enne.es
>

Carlos Jiménez

unread,
Dec 2, 2010, 12:40:00 PM12/2/10
to realXtend-dev
Hello,

We have update our settings to be like Toni has said in the previous
email:
- We have created a new Toolbar with the "Build" button that switch to
"BuildScene".
- We have placed Settings as a external widget, and they are available
from Panels->Naali Settings and from settings button in top-right
corner.

By default all the widgets are placed outside, and configuration is
saved in a xml file when Naali is closed.

There are a couple of bugs in building mode, but in Spain now we have
holidays and we would like to have at least the functionality in next
Release, so as Toni said before, we have upload the code to our github
(https://github.com/enne/naali/tree/NaaliUiExternalv2) and also to
yours (develop branch).

Some of us will work next week on Thursday, until then feel free to
test it, configure in another way and feedback bugs, oppinions,
etc. :)
Reply all
Reply to author
Forward
0 new messages