Difference between revisions of "QOrbiter"
Line 109: | Line 109: | ||
#for Path, click on choose, in the new window select the folder you created in step 5. | #for Path, click on choose, in the new window select the folder you created in step 5. | ||
#click continue and then done | #click continue and then done | ||
− | You can now fill | + | #in sources -> qorbitermanager.cpp find tskinModel->addSkin and add a new entry for your skin using the directory name. |
+ | You can now fill main and style files with the content of the same files found in the QML/desktop/default directory. | ||
Or another pair of main.qml and Style.qml set. | Or another pair of main.qml and Style.qml set. | ||
After this is done you can alter the Style.qml to you likings and your skin can be selected from the styles-menu inside qOrbiter | After this is done you can alter the Style.qml to you likings and your skin can be selected from the styles-menu inside qOrbiter |
Revision as of 22:40, 16 December 2011
Version | Status | Date Updated | Updated By |
---|---|---|---|
710 | Unknown | N/A | N/A |
810 | Unknown | N/A | N/A |
1004 | Unknown | N/A | N/A |
1204 | Unknown | N/A | N/A |
1404 | Unknown | N/A | N/A |
Usage Information |
qOrbiter is a new LinuxMCE orbiter designed to run on a multitude of devices as well as provide flexible skinning options to make it truly one's own. The purpose of this document now is for documentation of the app moving forward, followed by it being a reference for creating ones own skin
Contents
Concept
The concept of this document is to provide those wishing to create new skins the needed access to LinuxMCE data through properties and context objects. While I will not be discussing what they are here, they are discussed in the scope of QML documentation which is a pre-requisite to skinning and working with Qorbiter.
So, for example lets take the context property "deviceid". This property is added to the QML engine at runtime so that it can be used to provide the current device id of the orbiter. So in effect, this is a macro or keyword if you will that enables access to the underlying LinuxMCE data. As is one of the goals, no programming is required. One of the goals of this document is to outline all of these properties for easy reference in making a new skin.
Context Properties
The format is PropertyName: the type of data it provides.
General
- srouterip : string of the router ip. Default is "dcerouter"
- deviceid : string representation of device number
- style : reference the the current style that is set
User
- currentUser: the current orbiter user - Initially set from the configuration file 'config.xml' but changes as the user is changed.
- userList: listmodel of all users. Can be dropped into a component to use to select rooms. There is also a component: UserListComponent.qml
This component is totally skinnable and at its core contains a listmodel of all the users. In addition, it sets the current user whenever clicked.
Location
- currentroom: the current room / ea
- roomList: list of ea's rooms
- component: RoomSelector.qml
Selects and set the current room and changes listmodels accordingly
Home Screen
This specific section covers the home screen. It is unique in that it contains most of the ui elements used to access the rest of the home automation system. for that reason, the concept has not been abandoned and instead made more dynamic. This section will attempt to explain the underlying models and functions for UI designers.
List Models
These are prepared in c++ and provided to the QML. If you are creating a skin, you will use these variables to call certain arrays of objects like scenarios, or userlists. This makes it easier for the designer, as they information will be populated and they only need to fill in the variable.
currentRoomLights
This provides by room scenario list for lights. you will need to use your own delegate. a default is provided.
Populated Data Roles - Please note: These names are subject to change to fall in line with their specific component names
- names[NameRole] = "username";
- names[LabelRole] = "label";
- names[ParamRole] = "params";
- names[CommandRole] = "command";
- names[GotoRole] = "gotoscreen";
- names[ImageRole] = "image";
currentRoomMedia
This provides by room scenario list for media. you will need to use your own delegate
Populated Data Roles - Please note: These names are subject to change to fall in line with their specific component names
- names[NameRole] = "username";
- names[LabelRole] = "label";
- names[ParamRole] = "params";
- names[CommandRole] = "command";
- names[GotoRole] = "gotoscreen";
- names[ImageRole] = "image";
currentRoomClimate
provides by room scenario list for climate. you will need to use your own delegate
currentRoomTelecom
provides by room scenario list for telecom. you will need to use your own delegate
currentRoomSecurity
provides by room scenario list for security. you will need to use your own delegate
Data Grids
Datagrids will encompass these specific views and more to come. Currently, they are very basic and dont accept any styling but this will change over time.
- File List
- Device Arrays
- Lists
Media Grids
- gmediatype : current grid mediatype (to show context based images or who knows )
- fileformatmodel : fileformat listmodel connected to grid filtering mechanism
- mediatypefilter : mediatype list model connected to grid filtering mechanims
Colors & Styling
Colors such as background and button colors should be set in the style file of the qml skin. See 'Style.qml' for reference on setting up property aliases.
Examples include:
property color stageBG: "slategray"
Qualified color references include:
- SVG named colors Reference
- Web color notation #112233
Skins
skinsList: listmodel of skins found for the build One should always check the official doc's to see what methods are supported for setting properties.
To start making your own, you have to create at least 2 files inside a new sub-directory of the QML-directory. The below steps are the minimum steps that have to be taken to get started on your own skin.
- in Qt Creator, in the source-tree, right-click on 'QML'
- In the contextmenu select add new
- choose the template 'QML' -> QML File
- name it 'main'
- for Path, click on choose, in the new window select 'new folder' give it the name of your new skin (in lower case letters, otherwise it wont work!) and click on 'choose'
- click continue and then done
- in Qt Creator, in the source-tree, right-click on 'QML'
- In the contextmenu select add new
- choose the template 'QML' -> QML File
- name it 'Style'
- for Path, click on choose, in the new window select the folder you created in step 5.
- click continue and then done
- in sources -> qorbitermanager.cpp find tskinModel->addSkin and add a new entry for your skin using the directory name.
You can now fill main and style files with the content of the same files found in the QML/desktop/default directory. Or another pair of main.qml and Style.qml set. After this is done you can alter the Style.qml to you likings and your skin can be selected from the styles-menu inside qOrbiter
Images
Images can be loaded in multiple ways and will be discussed here in the future. All that is required is to use the indicated format for local vs remote loading of images
- Local: source: "../../../img/icons/kmix.png"
- Datagrid: source:"image://datagridimg/"+id
- File Details Screen Shot or Album cover: source: "image://filedetailsprovider/"+filedetailsclass.screenshot
Please note more will become available as they are connected to QML.