From 774ff8fc6d95045d828670923c80346445f6db56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20K=C3=BCgler?= Date: Fri, 16 Mar 2012 04:51:00 +0100 Subject: [PATCH] New Heading component in org.kde.plasma.extras Interesting property is level, between 1 (large) and 5 (same size as default text), otherwise behaves as Label. --- .../plasmaextracomponents/qml/Heading.qml | 76 +++++++++++++++++++ .../plasmaextracomponents/qml/qmldir | 1 + 2 files changed, 77 insertions(+) create mode 100644 declarativeimports/plasmaextracomponents/qml/Heading.qml diff --git a/declarativeimports/plasmaextracomponents/qml/Heading.qml b/declarativeimports/plasmaextracomponents/qml/Heading.qml new file mode 100644 index 000000000..06783e2e1 --- /dev/null +++ b/declarativeimports/plasmaextracomponents/qml/Heading.qml @@ -0,0 +1,76 @@ +/* +* Copyright 2012 by Sebastian Kügler +* +* 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 + +Label { + id: heading + property int level: 1 + property int step: 2 + + anchors.topMargin: 8 + font.pointSize: headerPointSize(level) + + function headerPointSize(l) { + var n = theme.defaultFont.pointSize; + var s; + if (l > 4) { + s = n + } else if (l < 2) { + s = n + (5*step) + } else { + s = n + ((5-level)*2) + } + print(" font size for level: " + l + " is " + s + " basePointSize " + n); + return s; + } + + onLevelChanged: { + print("level changed: " + level); + font.pointSize = headerPointSize(level) + anchors.topMargin = level * 2; + } +} diff --git a/declarativeimports/plasmaextracomponents/qml/qmldir b/declarativeimports/plasmaextracomponents/qml/qmldir index a5a0d91b7..db159b0f7 100644 --- a/declarativeimports/plasmaextracomponents/qml/qmldir +++ b/declarativeimports/plasmaextracomponents/qml/qmldir @@ -2,3 +2,4 @@ plugin plasmaextracomponentsplugin App 0.1 App.qml Title 0.1 Title.qml +Heading 0.1 Heading.qml