Skip to content
This repository has been archived by the owner on Mar 27, 2021. It is now read-only.

ubports/ubuntu-ui-toolkit

Repository files navigation

Ubuntu UI Toolkit

Introduction

This project consists of a set of QML components to ease the creation of beautiful applications in QML for Ubuntu.

QML alone lacks built-in components for basic widgets like Button, Slider, Scrollbar, etc, meaning a developer has to build them from scratch. This toolkit aims to stop this duplication of work, supplying beautiful components ready-made and with a clear and consistent API.

These components are fully themeable so the look and feel can be easily customized. Resolution independence technology is built in so UIs are scaled to best suit the display.

Other features:

  • localisation through gettext

This project supports QML2 and above on Qt 5.9 and above.

Building & Setup

You need Qt5 installed to proceed. To build this repository, run

mkdir build
cd build
qmake ..
make -j4

View the components gallery by running

./gallery.sh

To install these components, run

make install

You may need to be root for this command to succeed.

To use these components in QML without installing them, you need to set the QML2_IMPORT_PATH environment variable. This is done by running

source export_qml_dir.sh

from the root directory of this repository, but is lost when you close your shell.

Tests

tests

  • autopilot/ubuntuuitoolkit: Autopilot test cases and CPOs ./run_tests.sh list ./run_tests.sh run [TESTCASE]
  • api: Tests for apicheck (API description generator) Run 'make check' in the folder
  • license: Script to verify that sources contains copright headers make license
  • resources: Manual test cases (deprecated, should move to unit/visual)
  • unit: Unit tests using QTest/UbuntuTestCase Run 'make check[_BASENAME_WITH_UNDERSCORES]' in the respective subfolder eg. 'tst_label_extras.13.qml' becomes 'make check_tst_label_extras_13' This is driven by runtest.sh and checkresults.sh.
  • visual: All tests in this folder can be run as unit tests as well as interactively. That means 'make check' or via gallery.sh. Optional: prefix with './tests/xvfb.sh' to run inside XVfb. Note for adding new files: The root must be a visual Item-based type with a width and height. TestCase or UbuntuTestCase must be a child.

Verify the whole Toolkit API: ./tests/qmlapicheck.sh inspects components.api and produces components.api.new

Verify the tidyness of packaging: ./packaging-sorting.sh

Verify the coding style of Python source code: pyflakes .

source export_qml_dir.sh can be used in bash to setup the environment.

Documentation

Once built, you may view the documentation by opening documentation/html/overview-ubuntu-sdk.html in your favorite web browser.

Autopilot SDK Helpers Documentation (Sphinx docs):

To build the Autopilot SDK Helpers documentation, you need to install sphinx. After installation, change directory to documentation/autopilot-helpers and executing make.

sudo apt-get install python3-sphinx
cd documentation/autopilot-helpers
make singlehtml
  • Once built, you may view the documentation by opening _build/singlehtml/index.html in your favorite web browser.