Panorama


I just had a first second with this today and it was... WOW!!! This is the GUI the pandora needs!!!
Please stick with it!!!
 
Will continue probably next week. It's first of may (Vappu) festivities here in Finland, and this particular holiday is the highlight of the year for tech. students and the like (also retired [read: graduated] tech university students like me). It's actually technically labor day, but it's celebrated differently in different socioeconomic groups. For tech students the festivities last for 1-2 weeks. It's a bit hard to explain, but I'll be (notWorking && sober) next week.
 
Just wanted to report that in the Test UI the descriptiontext overlaps with the name of the next entry if it is too long.
 
scrolling would be a good option for that... not sure if it's already there or not, haven't made time to play with this just yet.
 
Continued work on panorama today. I've been implementing support for displaying PND documentation straight on UIs using WebKit, but I just decided to leave that one for later. The main problem is that the PND has to be mounted for the documentationto become available, and then unmounted after it is no longer needed. As this is very specific to PNDs I found no elegant way of adding it to the application model. I then decided to try and make a plugin that would keep all that nasty PND-specific stuff out of the main application model and only use some data provided by the model to find the PND and mount/unmount it as needed. That plan fell due to needing quite a lot of PND-specific stuff from the model as well. Dflemstr, if you have any musings on this, I'd be glad to hear them :) .

Another thing I've been working on is adding the plugins provided by Qt to the PND so that they may be used in UIs. This works nicely and I should be able to put out a PND with this shortly.

As I decided to let the documentation thingy brew for now, I'll start drafting the configuration plugin system. I'll chime in when I've got something to show and tell.

EDIT: To be a bit more specific, the plugins I'm enabling are the QML plugins like WebKit and Particles elements. The latter makes Magma UI work.
 
I still need to package a PND with it working but yes, I've had a build on my pandora that has it working.
 
Uploading new PND now. Highlights include plugin support for popular QML plugins such as Webkit and particles, working Magma UI and better buttons for Tabbed.

To make magma show in full effects, start Panorama with magma set as the UI from settings.cfg. Then edit said settings file to set the newly appeared "magmaStream" variable to "true". This should get the juices flowing.
 
I would kill for a video of this running on an actual Pandora :-3

Well not literally of course, don't call the FBI!
 
Will have time to work on this again soon. In the meantime, let's stay organized.

I'll enable git flow for my repo (which I've used for all my other repos since the dawn of time - don't worry, it's not one of those corporate tools "you have to use this or else!"; it's legitimately useful and optional), so that releases can be more predictable etc. We'll see what else I'll do later. I really need to catch up on QML for examlpe since they added a ton of stuff since I last tried it.
 
I'm going to have to check on that git flow thingy. Legitimately useful tools are always great to have around.

Foxblock: I can try to find the time to make one later today.
 
Hi :)

Thanks for your hard work on Panorama !

When you set magmaStream variable to true, it uses 100% of CPU time, is it normal ?

There are also issues with the Tabbed UI when launching applications, sometimes it launches two applications at the same time...

Finally, in the Test UI, there is a line about "hardware accelerated drawing"... what kind of acceleration is it ? Would OGL ES 2.0 come in handy for intensive tasks, like magmaStream ? I've had a look at the Qt website, there are modules like OpenVG rendering and QtOpenGL, could it be useful to Panorama ?

Bye, Magic Sam
 
Magic Sam said:
When you set magmaStream variable to true, it uses 100% of CPU time, is it normal ?
Well, it does the same to me. This would probably be fixed if we get the OpenGL ES support working nicely.

Magic Sam said:
There are also issues with the Tabbed UI when launching applications, sometimes it launches two applications at the same time...
Two? And it's not just slow to launch and you don't press the button twice? Is it the same application or different applications?

Magic Sam said:
Finally, in the Test UI, there is a line about "hardware accelerated drawing"... what kind of acceleration is it ? Would OGL ES 2.0 come in handy for intensive tasks, like magmaStream ? I've had a look at the Qt website, there are modules like OpenVG rendering and QtOpenGL, could it be useful to Panorama ?
As stated above, this would probably help magmastream, for one. It would probably do a whole lot more if we get it to work properly. The support is actually already there in the code, it can be enabled with a compile switch. The problem is that it feels a bit buggy. I think I'll try it again some time soon just to narrow down on the problem. The nice thing about Qt is that all this OGL acceleration comes with nearly zero changes to the code. You just set the viewport widget from QWidget to QGLWidget and you're done. Well, mostly done, but that's almost all there is to a basic switch to OpenGL in Qt.
 
Last edited by a moderator:
OK, the bugginess I remembered was from when I tried OpenGL rendering with my N900, before I had a pandora dev environment working. I tried to dabble a bit with the OpenGL support and got as far as "QGLShader: could not create shader" followed by a host of errors resulting from that. I'm fairly sure it's a library thingy. Sebt3 compiled th Qt 4.7 I use for GLES1 but for one reason or another it tries to use GLES2. This obviously causes problems especially with shaders. I never managed to get a working cross-compilation of Qt 4.7 done myself, at least in the time I put into it. Hardware acceleration, be it through OpenGL or OpenVG (which the GPU drivers apparently also support), is one thing I'd really like to see working so all help is welcome here. I'm not very experienced in this part of the jungle :)
 
Having very little time atm, but check out these changes:
https://github.com/dflemstr/panorama/tree/feature/input-restructure
I think that they present a better solution for the special Pandora key handling (There were issues with injecting custom keys into the Qt event loop, and I didn't really like that back-dependency on the QML canvas from the PandoraEventSource anyways). Anyways, try to run it on the Pandora to see if it works...

Will have a look at other issues when I find time.
 
Hello,

Tried this out and it has great potential.. I am liking the look of it very much !. One thing I noticed is that in the Magma Interface, it is very dark and hard to see the menu at the bottom.. Is this normal ?
Once this gets to a release stage, I would definitely use it on my Pandora.
Also, will there be a way to change the clock gadget ? or add others ? How customizable is it ?
I have just noticed this so please forgive it there are other threads or info on this project.. I have yet to read more into it.
 
dflemstr said:
Having very little time atm, but check out these changes:
https://github.com/dflemstr/panorama/tree/feature/input-restructure
I think that they present a better solution for the special Pandora key handling (There were issues with injecting custom keys into the Qt event loop, and I didn't really like that back-dependency on the QML canvas from the PandoraEventSource anyways). Anyways, try to run it on the Pandora to see if it works...

Will have a look at other issues when I find time.
Went through the patches, looks good. Definitely a more Qt way of doing it. I'll try this today after work. One thing I didn't fancy was moving key mapping in Tabbed from the centralized spot on top of the file to all over the file. I recognize why you did this (to accommodate the new input system), but I prefer to have "options" like this in one centralized location. No worries though, it's small enough fix for me to do at some point. :)

EDIT: Oh, and I started work on a prototype of the configuration plugin thingy yesterday. I figured I might as well do a proper prototype to show the idea, so I get to try its feasibility in practice and give a better idea to you what I'm thinking about.

Eisner said:
Hello,

Tried this out and it has great potential.. I am liking the look of it very much !. One thing I noticed is that in the Magma Interface, it is very dark and hard to see the menu at the bottom.. Is this normal ?
Once this gets to a release stage, I would definitely use it on my Pandora.
Also, will there be a way to change the clock gadget ? or add others ? How customizable is it ?
I have just noticed this so please forgive it there are other threads or info on this project.. I have yet to read more into it.
Check inside the "interfaces" directory in your panorama appdata. It's exactly as customizable as your skills allow :p . For example, try copying the magma interface directory to a "MyMagma" one, and change its ui.qml line 220 to something like color: "#444". Then change to your new custom MyMagma interface and enjoy your brighter text :)

EDIT: Foxblock, still haven't found the time to make a pandora video. Got a bit lost in making a prototype of the configuration plugin thingy.
 
Last edited by a moderator:
Okay, got the prototype to a reasonably working state so it demostrates the system I'm propsing. I created a new repository for it because as a prototype it's completely separate from panorama to better demostrate the idea. I created three item types: boolean, integer and string with widgets and whatnot and two plugins to demonstrate how it works. The "test" plugin just creates one of each widget and prints out when their status changes. The "kmixvolume" uses D-Bus and KMix to change (and react to) the Mixer0's (first sound card) master volume. The kmixvolume plugin obviously only works on platforms with KMix, but I remember dflemstr using KDE so at least he should be able to test it :p .

The prototype consists of five distinct parts:

QML UI: What the configuration dialog looks like, except for the widgets. Defined by the UI in Panorama
QML widgets: What the widgets look like. These would be overridable by UIs in Panorama.
UI: The view (basically a QDeclarativeView) and ConfigurationWidget, which takes care of displaying the right widget based on what ConfigurationItem it's connected to
Model: Knows the ConfigurationItems and provides them to the QML UI. Instantiates plugins. Also defines ConfigurationItem.
Plugins: Create ConfigurationItems and pass them to the model. Handle the I/O between configured system and ConfigurationItems.

Let me know what you think :)

EDIT: Also in Panorama the model would be more like a tree than a simple list to support categorization.
EDIT2: Note that ConfigurationItems can be specialized through inheritance like the IntegerConfigurationItem. This makes it possible to create something like a select box as well.
 
Back
Top