aboutsummaryrefslogtreecommitdiffstats

Prerequisite

Qt >= 5.6 QtIvi Unix system Application Manager

Folder Structure

  • imports - QML modules and assets to be imported (e.g. import controls 1.0)
  • separated into 'shared' (availabe to apps and the system UI) and 'system'
  • (available only to system UI) boards - visual ui tests for easier development
  • apps - container for the different applications used within the system UI
  • plugins - QML and other plugins needed for fully functional UI (e.g. reading
  • the media from database)

Please note that am-dummyimports - the Application Manager dummy imports for running within qmlscene/qmllive - have been moved to the application-manager repository.

Preparation

  • You need to have Source Sans Pro font installed (see assets folder within the modules)

Build

  • Build and install neptune-ui
    $ qmake && make && make install
    

This will build all neptune-ui plugins and installs the complete neptune-ui to /opt/neptune To define the install location of neptune you can use the INSTALL_PREFIX config variable:

    $ qmake INSTALL_PREFIX=$$PWD/install && make && make install

This will install all qml files and plugins into the neptune subfolder of $$PWD/install

  • Run scripts within the plugins/scripts folder to scan the media on the system

Run entire UI with the Application Manager

    $ appman --recreate-database -c am-config.yaml

Run the UI without QtIvi installed

It is possible to run the UI also without having QtIvi build and installed. For bugreports please make sure to have QtIvi installed.

    $ appman --recreate-database -c am-config.yaml -I dummyimports

Style Configuration

Neptune UI supports different styleConfigs which can be used to adapt the style to the needs of the Hardware the UI should be running on. The following configurations are available:

  • no config: The UI will use the original graphics and fonts and uses a resolution of 1280x800
  • Config1920x1080: Same as no config but 1920x1080 will be used as the screen resolution and the UI elements will be scaled
  • auto: The UI will use the current Screen resolution and tries to adapt the UI as much as possible

Which configuration should be used can be controlled using the styleConfig parameter in am-config.yaml. By default the "auto" configuration is used. If the "auto" configuration doesn't work for a specific device a own configuration can be created by copying one of the existing configurations from modules/utils and place it somehwere on the filesystem. The styleConfig parameter in am-config.yaml will be intepreted as file path to a QML file and if available this StyleConfig will be loaded.

Common Terms Used In The Project

Common terms and their meaning is enumerated below:

  • Display - The physical display's real estate

  • Screen - A Screen is a part of the main navigation. For example the HomeScreen, CloudScreen and MusicScreen

  • Control(s) - Controls are elements such as Button, Icon, Label and other primitives

  • Twisted panel - A twisted panel is the indicater for swipe navigation which are found to the left and right hand side of the display

  • Board - A Board is typically a self-hosted QML file which test a signel UI element. For example a ButtonBoard tests and shows the usage for a Button control