Panorama


Hi,

@ B-ZaR and dflemstr: do you think panorama could "officially" make it to HF6 ?

Bye and thanks for your amazing work :)

Magic Sam
 
It does look really nice, and it has some of the features I've suggested for PNDstore, such as being able to read the description, being able to view just "installed" PNDs, and being able to view them by category.

Like PNDstore, it would greatly benefit from being able to check off a number of PNDs, then install or uninstall them all at once while you go and do something else in the meanwhile (browse the internet, for example).

I also suggested a single "install/uninstall" button for PNDstore because often, you see updates of programs with the same name that have been given a different package ID by the developer. So it would be very convenient to check off both the new update and your old version of it, click "install/uninstall", and wait while it does the equivalent of an update. In any case, any particular app can either be installed or uninstalled, not both, so a single button makes sense. (Tempel objected because PNDstore currently also uses the "Install" button to upgrade a package, but I think the need I mentioned is a greater one. Besides, I doubt anyone would use the "Install" button for a single upgrade when the much better "upgrade packages" button is nearby)
 
Magic Sam said:
Hi,

@ B-ZaR and dflemstr: do you think panorama could "officially" make it to HF6 ?

Bye and thanks for your amazing work :)

Magic Sam
No, since Panorama requires Qt 4.7 and Zaxxon only has 4.6. When Yars hits it's a matter of maturity. What would you want it to do at the point it's included? Also thanks :)

Esn said:
It does look really nice, and it has some of the features I've suggested for PNDstore, such as being able to read the description, being able to view just "installed" PNDs, and being able to view them by category.

Like PNDstore, it would greatly benefit from being able to check off a number of PNDs, then install or uninstall them all at once while you go and do something else in the meanwhile (browse the internet, for example).

I also suggested a single "install/uninstall" button for PNDstore because often, you see updates of programs with the same name that have been given a different package ID by the developer. So it would be very convenient to check off both the new update and your old version of it, click "install/uninstall", and wait while it does the equivalent of an update. In any case, any particular app can either be installed or uninstalled, not both, so a single button makes sense. (Tempel objected because PNDstore currently also uses the "Install" button to upgrade a package, but I think the need I mentioned is a greater one. Besides, I doubt anyone would use the "Install" button for a single upgrade when the much better "upgrade packages" button is nearby)

Basically these are up to the UI. The plugin that gives Panorama UIs the ability to do package management (milky-plugin, a wrapper around Cloudef's libmilky package management backend) doesn't limit these things. You can queue operations all you want, mark packages for install/uninstall/update and apply the changes while still being able to use the UI and queue more operations. The MilkyTest UI you see above is my test UI for the plugin, and focuses on simplicity.

I do UIs mostly to test panorama and the plugins at this point. They of course reflect some idea I have of a UI and I tend to add a little extra animation here and there just to show off, but they are primarily ways for me to test panorama and its plugins. If/when I'm ever satisfied with the state of the engine I'll probably spend a little more time on making a polished UI or two, but currently I think my time is better spent on working out the bugs, optimizing stuff, and adding useful features like package management or a system configuration frontend.

We are finite resources, but anyone willing to do UIs is welcome to do so :). QML isn't really hard to understand once you get the basic idea, and any programming required is javascript, though usually the (traditional ["imperative" for you CS people]) code part is either really simple (think a couple of ifs or a single statement), or practically non-existent. The rest is just defining what's in the UI and how they work (declarative). The best way to start is to get QMLViewer from Qt downloads and try out the various QML tutorials offered in Qt documentation. Get to know the basic components, layout stuff and handling input. Then look at how some simpler Panorama UIs are made, like simplicity and go on from there. If specific examples are needed, I think I can squeeze out some time to do some, if I'm told what is wanted :)

A status update: Currently I'm solving a nest of bugs I uncovered while working on milky-plugin (a couple of the ones I've mentioned in previous posts are a part of this). The problem is not in any specific part, but in the way they work together and how they are built. Funny fact: the problems only come out on the pandora build :D. I'll let you know when I'm back to adding features :)
 
Last edited by a moderator:
Looking really good :)

I am glad you took over development, B-Zar, with your knowledge you pushed the project much further I would have ever been able to, keep it up :)
 
Ah man, thanks for the offer, but I don't have the time to currently anyway.

I am following the project on github and will see what I can do in a month or two when spare time is less scarce.
Also my Qt experience is nearly non-existent (I would have (or maybe will) taken this project to get more familiar with it as I quite enjoy GUI development and Qt seems like a very nice library) so I will see what I can do, even if I end up just making a theme or two :p
 
The repo is a mess again, friggin build system... I made a Panorama organization on GitHub, and will switch to CMake there now. All in one place. Then I'll fix that bug that bzar sent me an email about...
 
I'd like to push every once in a while so you could see what I'm doing too, but I'd rather not push something that puts the system in a not-working state. I currently have kinda lot of changes in my local branch that I intend to push after all the UIs start working again :)
 
FINALLY nailed the bug. There was a namespace clash between Qt and applications-plugin, causing weird stuff depending on how the linking went down. Pushed a simple fix to the feature branch.

dflemstr, should I keep developing features in my own fork or start pushing to the organization git? Maybe push them there when I think they're integration ready?
 
dflemstr, roger that. I'll soldier on with the package management meanwhile :)

Here's another video, per request. I started working on a preview pic browser. Didn't have more than two hours to implement support in the backend and start on the UI part, but I think it got off to a nice start.

A couple of things I at least intend to add: placeholder elements for the pictures still loading and some acceleration tuning for the image list. My WLAN was a bit slow when I did the video :)

 
Finished the preview browser today, and tried to enable OpenGL rendering again with the new Qt build provided by sebt3. Didn't work at first, but after a little bit of ldd'ing I found out that something was linking to libGL and libGLU in addition to libGLES. Apparently, some part of the build system adds -lGL -lGLU to the panorama build command when OpenGL is enabled even with the pandora mkspec. Something to look into.

Anyway, got OpenGL enabled (yay!), here's what I found out:
  • Less CPU usage: Eg. Magma showed ~30% CPU @700MHz, which is an improvement from ~100% on SW rendering
  • Smoother animation: Best seen when there's little interactivity involved. For example moving big pictures in the preview browser of MilkyTest was definitely smoother.
  • Text corruption. If stuff moves at high speeds, like when flicking the MilkyTest package list quickly, all text gets corrupted for some reason.
  • Interactivity lag. Dragging stuff was harder. Don't know why.
All in all, mixed feelings. It IS better on the performance side, and probably could be improved more by switching to OpenGL resource handling backend (though the last I heard it was a bit buggy). On the other hand, the graphic bugs are not nice at all. Definitely not a siliver bullet to make everything silky-smooth, but I think it deserves more effort than my quick test today. Not sure what priority I should assign to this.

That's it for today :)
 
Today I added a couple of small things to the backend (like support for multiple install/remove/upgrade operations at once), and worked a bit on MilkyTest. Did a few usability tweaks, like ensuring the details box is visible when a package is selected, worked a bit on the preview browser and added free text search. Video below.

[media]http://www.youtube.c...h?v=_DIEbxzRqIg[/media]
 
Last edited by a moderator:
B-ZaR said:
Today I added a couple of small things to the backend (like support for multiple install/remove/upgrade operations at once), and worked a bit on MilkyTest. Did a few usability tweaks, like ensuring the details box is visible when a package is selected, worked a bit on the preview browser and added free text search. Video below.

[media]http://www.youtube.c...h?v=_DIEbxzRqIg[/media]

Sweet !!! This looks amazing even for a test UI when a final GUI gets created I know it will be crazy good :D

Keep up the good work.
 
Last edited by a moderator:
Today I banged my head to the wall because of this.

Also added upgrade all button and a few other things, but that's what's on my mind right now.
 
Back
Top