Notices


Reply
Thread Tools
marxian's Avatar
Posts: 2,448 | Thanked: 9,510 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:
qwazix's Avatar
Moderator | Posts: 2,621 | Thanked: 5,426 times | Joined on Jan 2010
#2
Wow! I've been thinking to start doing something like that, I even started something but I never found the time to continue. Awesome work. I must find something to start coding with them.
__________________
Proud coding competition 2012 winner: ρcam
My other apps: speedcrunch N9 N900 Jolla contactlaunch timenow

Nemo UX blog: Grog
My website: qwazix.com
My job: oob
 

The Following User Says Thank You to qwazix For This Useful Post:
Posts: 1,397 | Thanked: 2,124 times | Joined on Nov 2009 @ Dublin, Ireland
#3
How is this related with QtComponents for Fremantle?

Last edited by ivgalvez; 2012-08-09 at 06:29.
 
marxian's Avatar
Posts: 2,448 | Thanked: 9,510 times | Joined on Aug 2010 @ Wigan, UK
#4
Originally Posted by ivgalvez View Post
How is this related with qtComponents for Fremantle?
It isn't related to that project, because the goals are different. QtComponents for Fremantle is about enabling applications written using Harmattan QtComponents to run unaltered on Fremantle using Harmattan UX. Hildon QtComponents is about enabling developers to create applications with Hildon UX using QML. The component names and properties are kept as similar to Harmattan QtComponents as possible for familiarity, but there is very little code shared between the two projects (only the PageStack component, I think). Hildon QtComponents does not depend on QtComponents for Fremantle.
__________________
'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
 

The Following 8 Users Say Thank You to marxian For This Useful Post:
Posts: 203 | Thanked: 538 times | Joined on Oct 2009 @ Colombia
#5
Fantastic work! is there any place to check your work? please make it available on the extras (extras-devel) repo, that way it can be easily added as a dependency for new QML applications for Fremantle
 

The Following User Says Thank You to munozferna For This Useful Post:
marxian's Avatar
Posts: 2,448 | Thanked: 9,510 times | Joined on Aug 2010 @ Wigan, UK
#6
Originally Posted by munozferna View Post
Fantastic work! is there any place to check your work? please make it available on the extras (extras-devel) repo, that way it can be easily added as a dependency for new QML applications for Fremantle
I'll be uploading to extras-devel as soon as I've sorted out the packaging and installation details.
__________________
'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
 

The Following User Says Thank You to marxian For This Useful Post:
Posts: 3,016 | Thanked: 12,456 times | Joined on Mar 2010 @ Sofia,Bulgaria
#7
Great job pal.

Does it need Qt from CSSU?

EDIT:

Hmm, I realize my question sounds silly in the light of your statement that you'll upload that to extras-devel
__________________
Never fear. I is here.

720p video support on N900,SmartReflex on N900,Keyboard and mouse support on N900
Nothing is impossible - Stable thumb2 on n900

Community SSU developer
kernel-power developer and maintainer


Last edited by freemangordon; 2012-08-09 at 19:24.
 

The Following User Says Thank You to freemangordon For This Useful Post:
Posts: 466 | Thanked: 661 times | Joined on Jan 2009
#8
long live the N900
 

The Following User Says Thank You to jackburton For This Useful Post:
marxian's Avatar
Posts: 2,448 | Thanked: 9,510 times | Joined on Aug 2010 @ Wigan, UK
#9
Originally Posted by freemangordon View Post
Great job pal.

Does it need Qt from CSSU?

EDIT:

Hmm, I realize my question sounds silly in the light of your statement that you'll upload that to extras-devel
I don't believe it will require Qt 4.7.4, unless I use QSystemInfo for the battery indicator etc. Presumably there are lower-level methods to get battery info and such that would enable me to avoid using the high-level QtMobility APIs.

EDIT: Also, I don't suppose you know the answer to my question of how to determine which theme is currently being used? I need to be able to tell my QDeclarativeImageProvider where to load the images from (and also load transistions.ini if the theme overrides the default one).
__________________
'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; 2012-08-10 at 09:20.
 
nicolai's Avatar
Posts: 1,637 | Thanked: 4,419 times | Joined on Apr 2009 @ Germany
#10
Originally Posted by marxian View Post
how to determine which theme is currently being used?
/etc/hildon/theme

nicolai
 

The Following 5 Users Say Thank You to nicolai For This Useful Post:
Reply

Tags
hildon, qml components

Thread Tools

 
Forum Jump


All times are GMT. The time now is 23:57.