Release Panorama


New job has started nicely, thanks for asking :)


With the help of Sebt3 and Cloudef I finally managed to get panorama cross-compile under the new cmake-based build system this week. This means I can get back to developing it.


This week I've continued work on the download sidebar and tested my pre-cmake-hassle optimizations, which seem to work as expected. I'm currently moving the upgrade functionality from the modal dialog approach of MilkyTest to a task based solution using the download sidebar. This way upgrades can happen in the bakcground while doing other stuff, and can be queued nicely with install tasks.


There's probably some unfinished stuff I've forgotten about along the last few months taht are going to bite me in the butt when I bump into them, but I'll cross that bridge when I come to it. No use worrying about that stuff now.
 
This has been a good morning for Consolidation UI. It's 11:00 here, and I've already moved the status message log and device selection (will not be needed in the final version) to a separate dialog, revamped the bottom bar to contain battery level (also added support for this to panorama's SystemInformation plugin) and time, optimized application/package search so the three character search limit is no longer needed (yay!), and generally have fixed stuff here and there.


Just wanted to share my good mood :)
 
if it isnt already there can you add the option to "delete" apps which then goes on to delete the PND and also give an option to remove its appdata folder too? that way it will be full package management :p
 
also if/when this is choosable as default gui there needs to be a way to enable wifi/network connection from within the gui.
 
Wifi can be enabled the same way as in minimenu, but network selection is a problem (like in minimenu). Not impossilbe by any means, but I have to say I haven't researched how one can interface nicely with network-manager. If it has a nice dbus interface or so, making a basic panorama plugin should be a couple days' work. Making panorama plugins is actually quite easy if you know C++ and some Qt, so if anyone wants to take this I can provide assistance :) . My hands are currently full making Consolidation UI work as well as I can in other aspects.
 
http://ewlan.info/bz...ma-snapshot.pnd


Here's a development snapshot PND of Consolidation UI. It's purely for sneak peek preview purposes, and is not ready to be actually used. If you try this, you do so at your own risk.


You should delete any existing panorama or libmilky appdata directories on the media you install the PND on before trying it out.


Known bugs/missing stuff that pop into mind:

  1. After any PND install/upgrade/remove operation, the UI freezes for some time because libpnd rewrites all the .desktop files and then panorama's Applications-plugin reparses them and rebuilds the enties application model.
  2. Filtering the "launch" view takes longer than it should
  3. The notion of "active device" from MilkyTest UI is still there, it's just hidden (press shift-d to show the device selector). Only the active device's PND's show correct status in the info view. This will become irrelevant in the final version, which sohuld be able to handle things more generally.
  4. Some things can only be done using game controls (like showing application details)
  5. Some things can only be done using touch screen (like canceling a download)
  6. Game controls sometimes register when an application is active (so you end up opening several :p )
  7. Filter dialog should only show stuff relevant to the current mode/view, not every category mentioned on the repo.
  8. "Newest" filter has no sane meaning in applications view. Would like it to show stuff in last modified date order, but that information is sadly not currently available.



Controls:

  • B: ok, install, yes
  • X: cancel, no
  • A: remove
  • Y: upgrade, details
  • R: filter
  • L: mode
  • Start: synchronize
  • Select: upgrade all
  • shift-l: show log
  • shift-d: device selector
  • enter: show previews
  • F11: full screen
  • F12: quit
 
Last edited by a moderator:
Hi,


Thank you very much B-ZaR for this development snaphot :)


EDIT: some quick first impressions:


- Panorama still takes way too long to load (is there a way to improve it ? )


+ Browsing through the applications is really smooth !


+ Launcher mode is a nice addition


Bye, Magic Sam
 
Last edited by a moderator:
A lot of the load time is actually Applications-plugin refreshing the application model. The applications are read from the .desktop files generated by the pnd discovery daemon, and for some reason it takes a lot of time. Will have to look into this. Another factor is that the first launch is always a somewhat longer, since all the interfaces are copied from the PND into appdata. Try launching it again for a little faster experience.
 
I've just measured the loading time (not a first launch): my stopwatch indicates 43 seconds :eek:


That's a big baby we've got there ;)


The PND is 23MB. Would reducing its size improve loading times ?


And there is something else I don't understand: is the PND discovery daemon part of Panorama, or part of the OS ?


EDIT: "top" says Panorama uses 16% of memory, it's 40MB... Baby needs a diet :p


EDIT 2: overclocking to 850MHz reduces loading times to 27 seconds ! You could add a script which: overclocks CPU to xxx MHz, launches Panorama, downclocks CPU to xxx MHz...
 
Last edited by a moderator:
Getting Qt (>=4.7, preferably 4.8) out of the PND and into the base system would cut both load time and PND size (planned for Yars). Uncompressed the included Qt libraries take up 29MiB, which is also quite a big a part of what you see in the memory consumption.


The PND discovery daemon is a part of the OS that generates .desktop files based on PNDs available. Those .desktop files are then discovered by panorama's Applications-plugin. It's done like this because otherwise (by using just the libpnd's PND list) preinstalled applications would not show up.


I'd rather find out the actual bottlenecks in the loading process than just raise the clock speed :) . Currently the two big ones are a) PND mounting (because Qt libs make the PND huge) and .desktop discovery, which I haven't really looked into yet, since the plugin is made by dflemstr. It shouldn't take that long. Loading the UI itself is a fraction of the time used to start it up.


EDIT: To be preciese, the Qt libs take up more than the 23MiB I just wrote. Here's the breakdown of panorama PND's contents

Code:
.

├── [ 30K]  icon.png

├── [232K]  imports

│   └── [228K]  Qt

│   	└── [224K]  labs

│       	├── [ 51K]  folderlistmodel

│       	│   ├── [ 47K]  libqmlfolderlistmodelplugin.so

│       	│   └── [  32]  qmldir

│       	├── [ 68K]  gestures

│       	│   ├── [ 64K]  libqmlgesturesplugin.so

│       	│   └── [  25]  qmldir

│       	└── [101K]  particles

│           	├── [ 97K]  libqmlparticlesplugin.so

│           	└── [  26]  qmldir

├── [1.9M]  interfaces_default

│   ├── [727K]  Colors

│   │   ├── [368K]  backgrounds

│   │   │   ├── [187K]  background.png

│   │   │   └── [177K]  background-sidebar.png

│   │   ├── [ 233]  Colors.qmlproject

│   │   ├── [ 67K]  fonts

│   │   │   ├── [ 37K]  beteckna-lower-case.otf

│   │   │   └── [ 26K]  beteckna-small-caps.otf

│   │   ├── [5.8K]  icons

│   │   │   ├── [1.1K]  file.png

│   │   │   └── [ 645]  folder.png

│   │   ├── [ 51K]  overlays

│   │   │   ├── [7.3K]  application-highlight.png

│   │   │   ├── [ 939]  clock.png

│   │   │   ├── [5.9K]  confirm-box.png

│   │   │   ├── [ 276]  cpu.png

│   │   │   ├── [ 102]  empty.png

│   │   │   ├── [ 552]  emulators-active.png

│   │   │   ├── [ 731]  emulators-inactive.png

│   │   │   ├── [ 815]  favorites-active.png

│   │   │   ├── [1.1K]  favorites-inactive.png

│   │   │   ├── [ 744]  games-active.png

│   │   │   ├── [1.1K]  games-inactive.png

│   │   │   ├── [ 18K]  highlight.png

│   │   │   ├── [ 641]  media-active.png

│   │   │   ├── [ 580]  media-inactive.png

│   │   │   ├── [1.6K]  misc-active.png

│   │   │   ├── [1.6K]  misc-inactive.png

│   │   │   ├── [1.8K]  replacement-icon.png

│   │   │   ├── [ 312]  sd1.png

│   │   │   ├── [ 442]  sd2.png

│   │   │   ├── [1.3K]  settings-active.png

│   │   │   └── [1.7K]  settings-inactive.png

│   │   ├── [192K]  preview.bmp

│   │   ├── [8.0K]  qml

│   │   │   ├── [ 893]  parser.js

│   │   │   ├── [ 167]  PositionedImage.qml

│   │   │   ├── [ 663]  PositionedText.qml

│   │   │   ├── [1.2K]  SelectionIcon.qml

│   │   │   └── [1.1K]  TextStyle.qml

│   │   ├── [3.8K]  skin.cfg

│   │   └── [ 27K]  ui.qml

│   ├── [131K]  Consolidation

│   │   ├── [5.3K]  ActionQueue.qml

│   │   ├── [3.3K]  Button.qml

│   │   ├── [1.3K]  Clock.qml

│   │   ├── [ 233]  Consolidation.qmlproject

│   │   ├── [9.2K]  Consolidation.qmlproject.user

│   │   ├── [2.0K]  Consolidation.qmlproject.user.2.1pre1

│   │   ├── [2.3K]  FilterDialog.qml

│   │   ├── [ 34K]  images

│   │   │   └── [ 30K]  application-x-executable.png

│   │   ├── [3.3K]  InstallDialog.qml

│   │   ├── [1.6K]  PackageDelegate.qml

│   │   ├── [ 11K]  PackageDetails.qml

│   │   ├── [2.0K]  PreloadedGridView.qml

│   │   ├── [ 125]  PreloadedListView.qml.autosave

│   │   ├── [4.5K]  RemoveDialog.qml

│   │   ├── [ 42K]  ui.qml

│   │   └── [4.2K]  UpgradeDialog.qml

│   ├── [164K]  Magma

│   │   ├── [ 69K]  images

│   │   │   ├── [ 509]  favorite-disabled.png

│   │   │   ├── [ 770]  favorite-enabled.png

│   │   │   └── [ 64K]  stream.png

│   │   ├── [ 233]  Magma.qmlproject

│   │   ├── [ 55K]  overlays

│   │   │   ├── [ 30K]  fragments.png

│   │   │   └── [ 21K]  mask.png

│   │   ├── [7.0K]  particles

│   │   │   ├── [1.8K]  ash.png

│   │   │   └── [1.2K]  flow.png

│   │   ├── [ 13K]  qml

│   │   │   ├── [7.0K]  ApplicationViewer.qml

│   │   │   └── [1.8K]  ProgressBar.qml

│   │   └── [ 16K]  ui.qml

│   ├── [ 75K]  MilkyTest

│   │   ├── [3.3K]  Button.qml

│   │   ├── [8.1K]  InstallDialog.qml

│   │   ├── [ 233]  MilkyTest.qmlproject

│   │   ├── [7.3K]  PackageDelegate.qml

│   │   ├── [4.4K]  RemoveDialog.qml

│   │   ├── [ 39K]  ui.qml

│   │   └── [8.5K]  UpgradeDialog.qml

│   ├── [190K]  Simplicity

│   │   ├── [179K]  images

│   │   │   └── [175K]  background.png

│   │   ├── [ 233]  Simplicity.qmlproject

│   │   └── [6.5K]  ui.qml

│   ├── [ 53K]  Tabbed

│   │   ├── [ 36K]  images

│   │   │   ├── [ 30K]  application-x-executable.png

│   │   │   └── [2.3K]  search.png

│   │   ├── [ 233]  Tabbed.qmlproject

│   │   └── [ 13K]  ui.qml

│   ├── [617K]  Test

│   │   ├── [587K]  images

│   │   │   ├── [491K]  background.png

│   │   │   ├── [ 44K]  clock

│   │   │   │   ├── [ 765]  center.png

│   │   │   │   ├── [ 20K]  clock-night.png

│   │   │   │   ├── [ 18K]  clock.png

│   │   │   │   ├── [ 625]  hour.png

│   │   │   │   ├── [ 625]  minute.png

│   │   │   │   └── [ 303]  second.png

│   │   │   ├── [5.3K]  emblems

│   │   │   │   ├── [ 691]  arrow-down.png

│   │   │   │   └── [ 650]  arrow-up.png

│   │   │   └── [ 43K]  icons

│   │   │   	├── [ 20K]  applications.png

│   │   │   	├── [7.9K]  home.png

│   │   │   	└── [ 11K]  settings.png

│   │   ├── [ 12K]  pages

│   │   │   └── [8.0K]  Applications.qml

│   │   ├── [ 233]  Test.qmlproject

│   │   ├── [4.8K]  ui.qml

│   │   └── [9.3K]  widgets

│   │   	├── [1.2K]  Book.qml

│   │   	├── [2.4K]  Clock.qml

│   │   	└── [1.7K]  Page.qml

│   └── [ 11K]  TestSuite

│   	├── [ 233]  TestSuite.qmlproject

│   	└── [6.6K]  ui.qml

├── [ 55M]  lib

│   ├── [384K]  libphonon.so.4

│   ├── [156K]  libpnd.so.1

│   ├── [2.9M]  libQt3Support.so.4

│   ├── [2.8M]  libQtCore.so.4

│   ├── [537K]  libQtDBus.so.4

│   ├── [4.0M]  libQtDeclarative.so.4

│   ├── [ 11M]  libQtGui.so.4

│   ├── [180K]  libQtMultimedia.so.4

│   ├── [1.4M]  libQtNetwork.so.4

│   ├── [596K]  libQtOpenGL.so.4

│   ├── [2.6M]  libQtScript.so.4

│   ├── [934K]  libQtScriptTools.so.4

│   ├── [261K]  libQtSql.so.4

│   ├── [393K]  libQtSvg.so.4

│   ├── [161K]  libQtTest.so.4

│   ├── [ 22M]  libQtWebKit.so.4

│   ├── [5.0M]  libQtXmlPatterns.so.4

│   └── [320K]  libQtXml.so.4

├── [ 42K]  panorama

├── [1.5M]  plugins

│   └── [1.5M]  Panorama

│   	├── [444K]  Applications

│   	│   ├── [440K]  libapplications.so

│   	│   └── [  21]  qmldir

│   	├── [713K]  Packages

│   	│   ├── [709K]  libpackages.so

│   	│   └── [  17]  qmldir

│   	├── [ 92K]  Pandora

│   	│   ├── [ 88K]  libpandora.so

│   	│   └── [  16]  qmldir

│   	├── [120K]  Settings

│   	│   ├── [116K]  libsettings.so

│   	│   └── [  16]  qmldir

│   	├── [ 73K]  SystemInformation

│   	│   ├── [ 69K]  libsysteminformation.so

│   	│   └── [  26]  qmldir

│   	├── [ 53K]  TextFile

│   	│   ├── [ 49K]  libtextfile.so

│   	│   └── [  17]  qmldir

│   	└── [ 55K]  UI

│       	├── [ 51K]  libui.so

│       	└── [  10]  qmldir

├── [4.0K]  previews

├── [1.5K]  PXML.xml

├── [1.5K]  PXML.xml~

├── [2.6M]  qt

│   └── [2.6M]  plugins

│   	├── [325K]  accessible

│   	│   ├── [ 56K]  libqtaccessiblecompatwidgets.so

│   	│   └── [266K]  libqtaccessiblewidgets.so

│   	├── [552K]  bearer

│   	│   ├── [262K]  libqconnmanbearer.so

│   	│   ├── [ 61K]  libqgenericbearer.so

│   	│   └── [225K]  libqnmbearer.so

│   	├── [582K]  codecs

│   	│   ├── [151K]  libqcncodecs.so

│   	│   ├── [185K]  libqjpcodecs.so

│   	│   ├── [ 82K]  libqkrcodecs.so

│   	│   └── [160K]  libqtwcodecs.so

│   	├── [ 92K]  graphicssystems

│   	│   ├── [ 11K]  libqglgraphicssystem.so

│   	│   ├── [ 55K]  libqmeegographicssystem.so

│   	│   └── [ 21K]  libqtracegraphicssystem.so

│   	├── [ 51K]  iconengines

│   	│   └── [ 47K]  libqsvgicon.so

│   	├── [495K]  imageformats

│   	│   ├── [ 31K]  libqgif.so

│   	│   ├── [ 30K]  libqico.so

│   	│   ├── [ 30K]  libqjpeg.so

│   	│   ├── [348K]  libqmng.so

│   	│   ├── [ 22K]  libqsvg.so

│   	│   └── [ 29K]  libqtiff.so

│   	├── [ 35K]  inputmethods

│   	│   └── [ 31K]  libqimsw-multi.so

│   	├── [297K]  phonon_backend

│   	│   └── [293K]  libphonon_gstreamer.so

│   	├── [ 18K]  qmltooling

│   	│   └── [ 14K]  libtcpserver.so

│   	├── [ 75K]  script

│   	│   └── [ 71K]  libqtscriptdbus.so

│   	└── [179K]  sqldrivers

│       	├── [ 43K]  libqsqlite2.so

│       	├── [ 53K]  libqsqlite.so

│       	└── [ 79K]  libqsqlpsql.so

├── [4.5K]  scripts

│   └── [ 519]  panorama.sh

└── [8.9K]  share

	└── [4.9K]  libmilky

    	└── [ 902]  milky.conf


  62M used in 60 directories, 167 files
 
Last edited by a moderator:
B-ZaR...magnificant! i thought the video was from a desktop build. just magnificant
 
i notice the new snapshot doesnt like updating PNDs, both the new FF9 and new pcsx rearmed wont give update option, even though it uses the same ID, am i missing something here? update all button doesnt light up either
 
Have you changed to the appropriate media? For now Consolidation still has the concept of active device, so if you have some other device selected, its applications will show like not installed applications. Try changing the device with shift-d. Once I incorporate repo merging this will be needless.
 
Last edited by a moderator:
ok that fixed it. but i notice that consolidation wont show pnds that are in pandora/desktop. looks like it does crawls them as they dont show under install tab as well as launch tab. or is this again something im missing?
 
Sounds weird. The package management side gets its information from file system->libpnd->libmilky->milky-plugin->UI, while the launcher gets it from file system->libpnd->pndnotifyd->.desktop-file->applications-plugin->UI. Perhaps it has something to do with .desktop search paths. I'll look into it.
 
if it helps, look like i can use the update option on desktop pnds using the update all option, even though they wont show in install/launch. although, the documentation for desktop pnds, UAE4ALL in this case, does show in the launch tab, just no pnd
 
Back
Top