View Single Post
marxian's Avatar
Posts: 2,448 | Thanked: 9,523 times | Joined on Aug 2010 @ Wigan, UK
#1
Recently, I have been working on a set of Hildonized Qt Components for Maemo5. The purpose of this project is to enable easy building of UIs using the Hildon style for those that do not wish to use QtGui/GTK widgets. The project provides a number of QML components along with C++ plugins to provide backend functionality, similar to Harmattan/Symbian Qt Components. The current list of completed components is:
  • BusyIndicator
  • Button
  • ButtonRow
  • CheckBox
  • Contact - Visual component for displaying contacts
  • ContextMenu
  • ContextMenuItem
  • ContextMenuLayout
  • Dialog
  • DialogButton
  • FileBrowserDialog - Fully functional file browser enabling choosing of files/folders and creation of new folders
  • FilterBox - Used with a ListView to filter a list
  • FilterListView - ListView with FilterBox component
  • InfoBanner
  • InfoNote
  • Label
  • ListItem - Base delegate for ListView
  • MaskedItem
  • MenuAction - Menu filter
  • MenuActionGroup - Container for MenuAction
  • MenuItem
  • MenuLayout
  • MultiSelectionDialog - Equivalent to QMaemo5ListPickSelector allowing multiple selections
  • MultiSelectionItem - Convenience component comprising of a SelectionButton and MultiSelectionDialog
  • Page
  • PageStackWindow
  • ProgressBar
  • QueryDialog
  • RatingIndicator
  • ScrollDecorator
  • SearchBox - TextField with some convenience functions for searching/filtering
  • SelectionButton - Equivalent to QMaemo5ValueButton
  • SelectionDialog - Equivalent to QMaemo5ListPickSelector
  • SelectionItem - Convenience component comprising of a SelectionButton and SelectionDialog
  • Slider
  • StylusButton
  • TabBar
  • TabButton
  • TabGroup
  • TextArea
  • TextField
  • ToolBar
  • ToolBarLayout
  • ToolButton
  • WebShortcut - Visual component for displaying web shortcuts

The global properties available are:
  • theme - provides access to theme constants such as fonts and transition values
  • screen - provides access to screen information such as size and orientation

More components will be added to these in future.

Many of these components have associated style components (set via the platformStyle property), which are used to set visual properties. The properties and signals are, where possible, the same as those for the Harmattan components, but I will document them fully once I have them in the repositories. The main difference is in the use of the drop-down menu where Harmattan uses the toolbar. So, for Hildon Qt Components, the tools of a Page component are set like this:

Code:
Page {
    id: root

    tools: MenuLayout {

        MenuItem {
            text: "Menu Item 1"
        }

        MenuItem {
            text: "Menu Item 2"
        }

        MenuItem {
            text: "Menu Item 3"
        }
    }
}
As shown in the screenshots below, components other than the MenuItem can also be used in a menu. These components will be resized accordingly.

Blur transitions are provided for the components, but are disabled by default for performance reasons. The default desaturation is a blurless transition with full color. The blur transitions can be enabled via the global theme property:

Code:
theme.enableDesaturationEffects = true;
More generally, the transition values are taken from the transitions.ini file. The values are loaded at startup and made available via the global theme property. Images are accessed in a similar way to the Harmattan components. To load an image from the current theme:

Code:
Image {
    source: "image://theme/some_image"
}
Or an icon (currently 48x48 icon is used):

Code:
Image {
    source: "image://theme/icon/some_icon"
}
Some screenshots:







Latest source is at https://github.com/marx1an/qt-components-hildon
__________________
'Men of high position are allowed, by a special act of grace, to accomodate their reasoning to the answer they need. Logic is only required in those of lesser rank.' - J K Galbraith

My website

GitHub

Last edited by marxian; 2013-01-28 at 00:50. Reason: Added github link
 

The Following 76 Users Say Thank You to marxian For This Useful Post: