summaryrefslogtreecommitdiffstats
path: root/qt-mobile/qml/theme
diff options
context:
space:
mode:
authorGravatar Sebastian Kügler <sebas@kde.org>2015-11-07 00:39:06 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-11-07 09:00:59 -0800
commitaae4a326f4738be368088f0d0f7a91d75b02a9ad (patch)
tree937c2253e015da2a127285e957a98f785b5cfc94 /qt-mobile/qml/theme
parent95ac4c4454aa49326500639aab839eb3d11efa87 (diff)
downloadsubsurface-aae4a326f4738be368088f0d0f7a91d75b02a9ad.tar.gz
organize qml files in subdirectories
This makes the organization of the qml files a bit more fine-grained, it prevents mixing of .cpp and QML files, and also of what's compiled, and what's included in the app as qrc data. In particular: - subsurface specific QML items go into the qml/ subdirectory - theme and unit definitions to into qml/theme subdirectory (they already were located in a theme directory) - generic components, such as our Label goes into qml/components This facilitates sharing of functionality and identifying common stuff better. Ideally, we can pull qml/theme and qml/components from a standardized set at some point, so we don't have to maintain that code. Signed-off-by: Sebastian Kügler <sebas@kde.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-mobile/qml/theme')
-rw-r--r--qt-mobile/qml/theme/Theme.qml57
-rw-r--r--qt-mobile/qml/theme/Units.qml102
-rw-r--r--qt-mobile/qml/theme/qmldir2
3 files changed, 161 insertions, 0 deletions
diff --git a/qt-mobile/qml/theme/Theme.qml b/qt-mobile/qml/theme/Theme.qml
new file mode 100644
index 000000000..2c51ae00f
--- /dev/null
+++ b/qt-mobile/qml/theme/Theme.qml
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2015 Marco Martin <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 2.0
+
+//pragma Singleton
+
+/*!
+ \qmltype Theme
+ \inqmlmodule Material 0.1
+
+ \brief Provides access to standard colors that follow the Material Design specification.
+
+ See \l {http://www.google.com/design/spec/style/color.html#color-ui-color-application} for
+ details about choosing a color scheme for your application.
+ */
+QtObject {
+ id: theme
+
+ property color textColor: Qt.rgba(0,0,0, 0.54)
+
+ property color highlightColor: "#2196F3"
+ property color backgroundColor: "#f3f3f3"
+ property color linkColor: "#2196F3"
+ property color visitedLinkColor: "#2196F3"
+
+ property color buttonTextColor: Qt.rgba(0,0,0, 0.54)
+ property color buttonBackgroundColor: "#f3f3f3"
+ property color buttonHoverColor: "#2196F3"
+ property color buttonFocusColor: "#2196F3"
+
+ property color viewTextColor: Qt.rgba(0,0,0, 0.54)
+ property color viewBackgroundColor: "#f3f3f3"
+ property color viewHoverColor: "#2196F3"
+ property color viewFocusColor: "#2196F3"
+
+ property color complementaryTextColor: "#f3f3f3"
+ property color complementaryBackgroundColor: Qt.rgba(0,0,0, 0.54)
+ property color complementaryHoverColor: "#2196F3"
+ property color complementaryFocusColor: "#2196F3"
+}
diff --git a/qt-mobile/qml/theme/Units.qml b/qt-mobile/qml/theme/Units.qml
new file mode 100644
index 000000000..1d0899fbc
--- /dev/null
+++ b/qt-mobile/qml/theme/Units.qml
@@ -0,0 +1,102 @@
+/*
+ * Copyright 2015 Marco Martin <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 2.5
+import QtQuick.Window 2.2
+
+//pragma Singleton
+
+
+QtObject {
+ id: units
+
+ /**
+ * The fundamental unit of space that should be used for sizes, expressed in pixels.
+ * Given the screen has an accurate DPI settings, it corresponds to a width of
+ * the capital letter M
+ */
+ property int gridUnit: fontMetrics.height
+
+ /**
+ * units.iconSizes provides access to platform-dependent icon sizing
+ *
+ * The icon sizes provided are normalized for different DPI, so icons
+ * will scale depending on the DPI.
+ *
+ * Icon sizes from KIconLoader, adjusted to devicePixelRatio:
+ * * small
+ * * smallMedium
+ * * medium
+ * * large
+ * * huge
+ * * enormous
+ *
+ * Not devicePixelRation-adjusted::
+ * * desktop
+ */
+ property QtObject iconSizes: QtObject {
+ property int small: 16 * devicePixelRatio
+ property int smallMedium: 22 * devicePixelRatio
+ property int medium: 32 * devicePixelRatio
+ property int large: 48 * devicePixelRatio
+ property int huge: 64 * devicePixelRatio
+ property int enormous: 128 * devicePixelRatio
+ }
+
+ /**
+ * units.smallSpacing is the amount of spacing that should be used around smaller UI elements,
+ * for example as spacing in Columns. Internally, this size depends on the size of
+ * the default font as rendered on the screen, so it takes user-configured font size and DPI
+ * into account.
+ */
+ property int smallSpacing: gridUnit/4
+
+ /**
+ * units.largeSpacing is the amount of spacing that should be used inside bigger UI elements,
+ * for example between an icon and the corresponding text. Internally, this size depends on
+ * the size of the default font as rendered on the screen, so it takes user-configured font
+ * size and DPI into account.
+ */
+ property int largeSpacing: gridUnit
+
+ /**
+ * The ratio between physical and device-independent pixels. This value does not depend on the \
+ * size of the configured font. If you want to take font sizes into account when scaling elements,
+ * use theme.mSize(theme.defaultFont), units.smallSpacing and units.largeSpacing.
+ * The devicePixelRatio follows the definition of "device independent pixel" by Microsoft.
+ */
+ property real devicePixelRatio: Screen.devicePixelRatio
+
+ /**
+ * units.longDuration should be used for longer, screen-covering animations, for opening and
+ * closing of dialogs and other "not too small" animations
+ */
+ property int longDuration: 250
+
+ /**
+ * units.shortDuration should be used for short animations, such as accentuating a UI event,
+ * hover events, etc..
+ */
+ property int shortDuration: 150
+
+ property QtObject fontMetrics: FontMetrics {
+ //id: textSpacer
+ //text: "M"
+ }
+}
diff --git a/qt-mobile/qml/theme/qmldir b/qt-mobile/qml/theme/qmldir
new file mode 100644
index 000000000..c654dbad6
--- /dev/null
+++ b/qt-mobile/qml/theme/qmldir
@@ -0,0 +1,2 @@
+#singleton Units Units.qml
+#//singleton Theme Theme.qml