a go at an App container, pretty rough
This commit is contained in:
parent
3f241aace9
commit
46e2dad148
@ -37,6 +37,7 @@ install(DIRECTORY qml/ DESTINATION ${IMPORTS_INSTALL_DIR}/org/kde/plasma/extras)
|
|||||||
|
|
||||||
install(TARGETS plasmaextracomponentsplugin DESTINATION ${PLUGIN_INSTALL_DIR}/platformimports/touch/org/kde/plasma/extras)
|
install(TARGETS plasmaextracomponentsplugin DESTINATION ${PLUGIN_INSTALL_DIR}/platformimports/touch/org/kde/plasma/extras)
|
||||||
|
|
||||||
|
install(FILES qml/App.qml DESTINATION ${PLUGIN_INSTALL_DIR}/platformimports/touch/org/kde/plasma/extras)
|
||||||
install(FILES qml/Title.qml DESTINATION ${PLUGIN_INSTALL_DIR}/platformimports/touch/org/kde/plasma/extras)
|
install(FILES qml/Title.qml DESTINATION ${PLUGIN_INSTALL_DIR}/platformimports/touch/org/kde/plasma/extras)
|
||||||
|
|
||||||
#install platform overrides
|
#install platform overrides
|
||||||
|
@ -1,6 +1,11 @@
|
|||||||
TODO:
|
TODO:
|
||||||
|
|
||||||
- imageprovider from mobilecomponents
|
o imageprovider from mobilecomponents
|
||||||
|
o resourceinstance from mobilecomponents
|
||||||
|
o remove mobilecomponents' resourceinstance
|
||||||
|
o port appbackgrounds
|
||||||
|
o porting ResourceInstance
|
||||||
- subtitle for Title (take from active-settings)
|
- subtitle for Title (take from active-settings)
|
||||||
- Heading { level: 1 } new Component
|
- Heading { level: 1 } new Component
|
||||||
- resourceinstance from mobilecomponents
|
- App.qml
|
||||||
|
|
||||||
|
116
declarativeimports/plasmaextracomponents/qml/App.qml
Normal file
116
declarativeimports/plasmaextracomponents/qml/App.qml
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2012 by Sebastian Kügler <sebas@kde.org>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Library General Public License as
|
||||||
|
* published by the Free Software Foundation; either version 2, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Library General Public License for more details
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Library General Public
|
||||||
|
* License along with this program; if not, write to the
|
||||||
|
* Free Software Foundation, Inc.,
|
||||||
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**Documented API
|
||||||
|
Inherits:
|
||||||
|
Label
|
||||||
|
|
||||||
|
Imports:
|
||||||
|
QtQuick 1.1
|
||||||
|
org.kde.plasma.components
|
||||||
|
|
||||||
|
Description:
|
||||||
|
This is a title label which uses the plasma theme.
|
||||||
|
The characteristics of the text will be automatically set
|
||||||
|
according to the plasma theme. Use this components for titles
|
||||||
|
in your UI, for example page or section titles.
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
string text:
|
||||||
|
The most important property is "text", which applies to the text property of Label
|
||||||
|
For the other ones see Plasma Component's Label or QML primitive Text element
|
||||||
|
|
||||||
|
Methods:
|
||||||
|
See Plasma Component's Label and primitive QML Text element
|
||||||
|
|
||||||
|
Signals:
|
||||||
|
See Plasma Component's Label and primitive QML Text element
|
||||||
|
**/
|
||||||
|
|
||||||
|
import QtQuick 1.1
|
||||||
|
import org.kde.plasma.components 0.1 as PlasmaComponents
|
||||||
|
//import org.kde.plasma.extras 0.1 as PlasmaExtras
|
||||||
|
|
||||||
|
Item {
|
||||||
|
id: app
|
||||||
|
property alias navigation: navigationItem.children
|
||||||
|
property alias content: contentItem.children
|
||||||
|
property int space: 12
|
||||||
|
property int navigationWidth: 340
|
||||||
|
property int contentWidth: app.width - navigationWidth
|
||||||
|
anchors.fill: parent
|
||||||
|
|
||||||
|
Image {
|
||||||
|
id: contentBackground
|
||||||
|
anchors { left: navigationBackground.right; right: parent.right; top: parent.top; bottom: parent.bottom; }
|
||||||
|
source: "image://appbackgrounds/standard"
|
||||||
|
fillMode: Image.Tile
|
||||||
|
asynchronous: true
|
||||||
|
Item {
|
||||||
|
id: contentItem
|
||||||
|
width: app.width - navigationWidth
|
||||||
|
height: app.height
|
||||||
|
anchors { left: parent.left; leftMargin: space; top: parent.top; bottom: parent.bottom; right: parent.right; }
|
||||||
|
}
|
||||||
|
//onChildrenRectChanged: root.width = childrenRect.width + contentBackground.childrenRect.width
|
||||||
|
|
||||||
|
}
|
||||||
|
Image {
|
||||||
|
id: navigationBackground
|
||||||
|
anchors { left: parent.left; top: parent.top; bottom: parent.bottom; }
|
||||||
|
source: "image://appbackgrounds/contextarea"
|
||||||
|
fillMode: Image.Tile
|
||||||
|
asynchronous: true
|
||||||
|
clip: true
|
||||||
|
width: navigationWidth + space
|
||||||
|
Item {
|
||||||
|
id: navigationItem
|
||||||
|
anchors.fill: parent
|
||||||
|
//anchors { left: parent.left; leftMargin: space; top: parent.top; bottom: parent.bottom; right: parent.right; }
|
||||||
|
}
|
||||||
|
// onChildrenRectChanged: {
|
||||||
|
// width = childrenRect.width
|
||||||
|
// print(" set navwidth to: " + width);
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
Image {
|
||||||
|
source: "image://appbackgrounds/shadow-right"
|
||||||
|
fillMode: Image.Tile
|
||||||
|
anchors {
|
||||||
|
left: navigationBackground.right
|
||||||
|
top: parent.top
|
||||||
|
bottom: parent.bottom
|
||||||
|
leftMargin: -1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Component.onCompleted: {
|
||||||
|
//setWidth(340);
|
||||||
|
}
|
||||||
|
|
||||||
|
onNavigationWidthChanged: {
|
||||||
|
navigationBackground.width = navigationWidth;
|
||||||
|
navigationItem.width = navigationWidth;
|
||||||
|
}
|
||||||
|
|
||||||
|
// function setNavigationWidth(w) {
|
||||||
|
// navigationItem.width = w;
|
||||||
|
// navigationWidth = w;
|
||||||
|
// }
|
||||||
|
|
||||||
|
}
|
@ -1,3 +1,4 @@
|
|||||||
plugin plasmaextracomponentsplugin
|
plugin plasmaextracomponentsplugin
|
||||||
|
|
||||||
|
App 0.1 App.qml
|
||||||
Title 0.1 Title.qml
|
Title 0.1 Title.qml
|
||||||
|
94
declarativeimports/plasmaextracomponents/tests/AppTest.qml
Normal file
94
declarativeimports/plasmaextracomponents/tests/AppTest.qml
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
// -*- coding: iso-8859-1 -*-
|
||||||
|
/*
|
||||||
|
* Copyright 2011 Sebastian Kügler <mart@kde.org>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Library General Public License as
|
||||||
|
* published by the Free Software Foundation; either version 2 or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Library General Public License for more details
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Library General Public
|
||||||
|
* License along with this program; if not, write to the
|
||||||
|
* Free Software Foundation, Inc.,
|
||||||
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import QtQuick 1.1
|
||||||
|
import org.kde.plasma.core 0.1 as PlasmaCore
|
||||||
|
import org.kde.plasma.components 0.1 as PlasmaComponents
|
||||||
|
import org.kde.plasma.extras 0.1 as PlasmaExtras
|
||||||
|
|
||||||
|
PlasmaExtras.App {
|
||||||
|
id: app
|
||||||
|
width: 800
|
||||||
|
height: 600
|
||||||
|
|
||||||
|
property string formFactor: "tablet"
|
||||||
|
|
||||||
|
navigation: navigationItem
|
||||||
|
content: contentItem
|
||||||
|
|
||||||
|
Item {
|
||||||
|
id: navigationItem
|
||||||
|
width: navigationWidth + space
|
||||||
|
height: parent.height
|
||||||
|
// PlasmaExtras.Title {
|
||||||
|
// text: "Navigation is zoo"
|
||||||
|
// elide: Text.ElideMiddle
|
||||||
|
// anchors { top: parent.top; left: parent.left; right: parent.right; }
|
||||||
|
// }
|
||||||
|
Column {
|
||||||
|
id: navigationColumn
|
||||||
|
anchors.fill: navigationItem
|
||||||
|
width: navigationWidth
|
||||||
|
PlasmaExtras.Title {
|
||||||
|
text: "Navigation Pane."
|
||||||
|
elide: Text.ElideMiddle
|
||||||
|
//anchors { top: parent.top; left: parent.left; topMargin: 48; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PlasmaComponents.CheckBox {
|
||||||
|
text: "Make big"
|
||||||
|
width: navigationWidth
|
||||||
|
checked: navigationWidth > 200
|
||||||
|
anchors { left: parent.left; right: parent.right; bottom: parent.bottom; }
|
||||||
|
onCheckedChanged: {
|
||||||
|
var w = !checked ? 120 : 340;
|
||||||
|
print(" new: " + w);
|
||||||
|
navigationWidth = w;
|
||||||
|
}
|
||||||
|
//width: contentItem.width
|
||||||
|
}
|
||||||
|
Rectangle { color: "blue"; opacity: 0.3; anchors.fill: parent; }
|
||||||
|
}
|
||||||
|
|
||||||
|
Item {
|
||||||
|
id: contentItem
|
||||||
|
Column {
|
||||||
|
id: contentColumn
|
||||||
|
anchors.fill: contentItem
|
||||||
|
PlasmaExtras.Title {
|
||||||
|
text: "Content is zooopah cool, too."
|
||||||
|
elide: Text.ElideMiddle
|
||||||
|
//anchors { top: parent.top; left: parent.left; topMargin: 48; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Rectangle { color: "green"; opacity: 0.8; anchors.fill: contentColumn; }
|
||||||
|
}
|
||||||
|
|
||||||
|
onWidthChanged: {
|
||||||
|
return;
|
||||||
|
print("window changed");
|
||||||
|
if (width < navigationWidth + 200) {
|
||||||
|
setNavigationWidth(48);
|
||||||
|
} else {
|
||||||
|
setNavigationWidth(340);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user