ubuntu-sdk-team team mailing list archive
-
ubuntu-sdk-team team
-
Mailing list archive
-
Message #00100
[Merge] lp:~bzoltan/ubuntu-ui-toolkit/Landing-2016-12 into lp:ubuntu-ui-toolkit
Zoltan Balogh has proposed merging lp:~bzoltan/ubuntu-ui-toolkit/Landing-2016-12 into lp:ubuntu-ui-toolkit.
Commit message:
2016 XMass landing
Requested reviews:
Zoltan Balogh (bzoltan)
For more details, see:
https://code.launchpad.net/~bzoltan/ubuntu-ui-toolkit/Landing-2016-12/+merge/313593
2016 XMass landing
--
Your team Ubuntu SDK team is subscribed to branch lp:ubuntu-ui-toolkit.
=== modified file '.bazaar/plugins/makecheck_ubuntu_ui_toolkit.py'
--- .bazaar/plugins/makecheck_ubuntu_ui_toolkit.py 2014-07-14 17:34:44 +0000
+++ .bazaar/plugins/makecheck_ubuntu_ui_toolkit.py 2016-12-20 08:52:37 +0000
@@ -35,6 +35,7 @@
if (subprocess.call("make check", shell=True) != 0):
raise errors.BzrError("Tests failed, fix them before commit!")
+
branch.Branch.hooks.install_named_hook('pre_commit',
execute_makecheck,
'make check pre-commit')
=== modified file '.bazaar/plugins/packaging_sorting.py'
--- .bazaar/plugins/packaging_sorting.py 2016-05-16 06:37:48 +0000
+++ .bazaar/plugins/packaging_sorting.py 2016-12-20 08:52:37 +0000
@@ -52,6 +52,7 @@
subprocess.call(["rm", "-rf", "debian-packaging-wraptest-temporary"])
+
branch.Branch.hooks.install_named_hook("pre_commit",
pre_commit_hook,
"Check packaging sorting")
=== modified file 'debian/changelog'
--- debian/changelog 2016-10-13 17:16:31 +0000
+++ debian/changelog 2016-12-20 08:52:37 +0000
@@ -1,3 +1,25 @@
+ubuntu-ui-toolkit (1.3.2151+16.10) UNRELEASED; urgency=medium
+
+ [ Zsombor Egri ]
+ * Enable mouse, touchpad and keyboard detection in UITK. Fixes LP: #1536669
+ * Colors revisited.
+ * Qt5.7 related fix for theming - by Glen Whitney.
+
+ [ Timo Jyrinki ]
+ * parent = Q_NULLPTR instead of 0. Fixes LP: #1642617
+ * More blank lines. Fixes LP: #1642622
+ * Drop tst_pickerpanel.11.qml (deprecated).
+
+ [ Christian Dywan ]
+ * Include OSK input in TextArea.displayText. Fixes LP: #1595910
+
+ * Drop questionable color tests from tst_textarea.11.qml. Fixes LP: #1624342
+
+ [ Lukáš Tinkl ]
+ * Fix slider progress rect with RTL languages.
+
+ -- Zoltán Balogh <zoltan@xxxxxxxxx> Tue, 20 Dec 2016 10:35:25 +0200
+
ubuntu-ui-toolkit (1.3.2141+16.10.20161013.5) yakkety; urgency=medium
[ Zsombor Egri ]
=== modified file 'debian/control'
--- debian/control 2016-08-29 19:49:33 +0000
+++ debian/control 2016-12-20 08:52:37 +0000
@@ -10,6 +10,7 @@
gdb,
language-pack-en-base,
libdbus-1-dev,
+ libevdev-dev,
libfontconfig1-dev,
libfreetype6-dev,
libgl1-mesa-dri,
@@ -21,6 +22,7 @@
libnih-dbus-dev,
libqt5sql5-sqlite,
libqt5svg5-dev,
+ libqt5systeminfo5,
libudev-dev,
libx11-dev[!armhf],
libxcb1-dev[!armhf],
@@ -53,6 +55,7 @@
qtpim5-dev,
qtscript5-doc-html,
qtsvg5-doc-html,
+ qtsystems5-dev,
qttools5-dev-tools,
qtwebkit5-doc-html,
suru-icon-theme (>= 14.04+16.10.20160720),
=== modified file 'debian/control.gles'
--- debian/control.gles 2016-08-18 05:40:55 +0000
+++ debian/control.gles 2016-12-20 08:52:37 +0000
@@ -10,6 +10,7 @@
gdb,
language-pack-en-base,
libdbus-1-dev,
+ libevdev-dev,
libfontconfig1-dev,
libfreetype6-dev,
libgles2-mesa-dev,
@@ -25,6 +26,7 @@
libqt5quickwidgets5-gles,
libqt5sql5-sqlite,
libqt5svg5-dev,
+ libqt5systeminfo5,
libudev-dev,
libx11-dev[!armhf],
libxcb1-dev[!armhf],
@@ -58,6 +60,7 @@
qtpim5-dev,
qtscript5-doc-html,
qtsvg5-doc-html,
+ qtsystems5-dev,
qtwebkit5-doc-html,
suru-icon-theme,
unity-action-doc,
=== modified file 'src/UbuntuToolkit/UbuntuToolkit.pro'
--- src/UbuntuToolkit/UbuntuToolkit.pro 2016-09-12 14:56:56 +0000
+++ src/UbuntuToolkit/UbuntuToolkit.pro 2016-12-20 08:52:37 +0000
@@ -2,6 +2,9 @@
QT = core-private gui-private qml-private quick-private testlib dbus svg organizer \
UbuntuGestures-private UbuntuMetrics
+#Qt SystemInfo
+QT *= systeminfo systeminfo-private
+
unix {
CONFIG += link_pkgconfig
PKGCONFIG += gio-2.0 dbus-1 libnih libnih-dbus
=== modified file 'src/UbuntuToolkit/quickutils.cpp'
--- src/UbuntuToolkit/quickutils.cpp 2016-09-21 08:47:38 +0000
+++ src/UbuntuToolkit/quickutils.cpp 2016-12-20 08:52:37 +0000
@@ -27,6 +27,7 @@
#include <QtQuick/QQuickItem>
#include <QtQuick/private/qquicktextinput_p.h>
#include <QtQuick/private/qquicktextedit_p.h>
+#include <QtSystemInfo/QInputInfoManager>
UT_NAMESPACE_BEGIN
@@ -37,10 +38,100 @@
m_rootWindow(0),
m_rootView(0),
m_mouseAttached(false),
- m_keyboardAttached(false)
+ m_keyboardAttached(false),
+ m_explicitMouseAttached(false),
+ m_explicitKeyboardAttached(false)
{
QGuiApplication::instance()->installEventFilter(this);
m_omitIM << QStringLiteral("ibus") << QStringLiteral("none") << QStringLiteral("compose");
+
+ m_inputInfo = new QInputInfoManager(this);
+ connect(m_inputInfo, &QInputInfoManager::ready,
+ this, &QuickUtils::onInputInfoReady);
+ // the default values of mouse and keyboard attachment depend on the input info
+ connect(m_inputInfo, &QInputInfoManager::deviceAdded,
+ this, &QuickUtils::onDeviceAdded);
+ connect(m_inputInfo, &QInputInfoManager::deviceRemoved,
+ this, &QuickUtils::onDeviceRemoved);
+}
+
+void QuickUtils::onInputInfoReady()
+{
+ QMapIterator<QString, QInputDevice*> i(m_inputInfo->deviceMap());
+ while (i.hasNext()) {
+ i.next();
+ registerDevice(i.value(), i.key());
+ }
+
+ m_inputInfo->setFilter(QInputDevice::Mouse | QInputDevice::TouchPad | QInputDevice::Keyboard);
+}
+
+void QuickUtils::onDeviceAdded(QInputDevice *device)
+{
+ QMapIterator<QString, QInputDevice*> i(m_inputInfo->deviceMap());
+ while (i.hasNext()) {
+ i.next();
+ if (i.value() == device) {
+ registerDevice(device, i.key());
+ break;
+ }
+ }
+}
+
+void QuickUtils::onDeviceRemoved(const QString deviceId)
+{
+ // the device info is removed by now, so we must look at the internal cache
+ if (m_keyboards.remove(deviceId)) {
+ if (!m_explicitKeyboardAttached && !m_keyboards.size()) {
+ m_keyboardAttached = false;
+ Q_EMIT keyboardAttachedChanged();
+ }
+ }
+ if (m_mice.remove(deviceId)) {
+ if (!m_explicitMouseAttached && !m_mice.size()) {
+ m_mouseAttached = false;
+ Q_EMIT mouseAttachedChanged();
+ }
+ }
+}
+
+void QuickUtils::registerDevice(QInputDevice *device, const QString &deviceId)
+{
+ if (device->types().testFlag(QInputDevice::Keyboard)) {
+ m_keyboards.insert(deviceId);
+ if (!m_explicitKeyboardAttached && !m_keyboardAttached) {
+ m_keyboardAttached = true;
+ Q_EMIT keyboardAttachedChanged();
+ }
+ }
+ if (device->types().testFlag(QInputDevice::Mouse)
+ || device->types().testFlag(QInputDevice::TouchPad)) {
+ m_mice.insert(deviceId);
+ if (!m_explicitMouseAttached && !m_mouseAttached) {
+ m_mouseAttached = true;
+ Q_EMIT mouseAttachedChanged();
+ }
+ }
+}
+
+void QuickUtils::setMouseAttached(bool set)
+{
+ m_explicitMouseAttached = true;
+ if (set == m_mouseAttached) {
+ return;
+ }
+ m_mouseAttached = set;
+ Q_EMIT mouseAttachedChanged();
+}
+
+void QuickUtils::setKeyboardAttached(bool set)
+{
+ m_explicitKeyboardAttached = true;
+ if (set == m_keyboardAttached) {
+ return;
+ }
+ m_keyboardAttached = true;
+ Q_EMIT keyboardAttachedChanged();
}
/*!
=== modified file 'src/UbuntuToolkit/quickutils_p.h'
--- src/UbuntuToolkit/quickutils_p.h 2016-09-19 20:40:13 +0000
+++ src/UbuntuToolkit/quickutils_p.h 2016-12-20 08:52:37 +0000
@@ -26,6 +26,8 @@
class QQuickItem;
class QQmlEngine;
class QQmlComponent;
+class QInputInfoManager;
+class QInputDevice;
UT_NAMESPACE_BEGIN
@@ -35,8 +37,8 @@
Q_PROPERTY(QQuickItem *rootObject READ rootObject NOTIFY rootObjectChanged)
Q_PROPERTY(QString inputMethodProvider READ inputMethodProvider)
Q_PROPERTY(bool touchScreenAvailable READ touchScreenAvailable NOTIFY touchScreenAvailableChanged)
- Q_PROPERTY(bool mouseAttached MEMBER m_mouseAttached NOTIFY mouseAttachedChanged)
- Q_PROPERTY(bool keyboardAttached MEMBER m_keyboardAttached NOTIFY keyboardAttachedChanged)
+ Q_PROPERTY(bool mouseAttached MEMBER m_mouseAttached WRITE setMouseAttached NOTIFY mouseAttachedChanged)
+ Q_PROPERTY(bool keyboardAttached MEMBER m_keyboardAttached WRITE setKeyboardAttached NOTIFY keyboardAttachedChanged)
public:
static QuickUtils *instance(QObject *parent = Q_NULLPTR)
{
@@ -87,13 +89,25 @@
explicit QuickUtils(QObject *parent = 0);
QPointer<QQuickWindow> m_rootWindow;
QPointer<QQuickView> m_rootView;
+ QInputInfoManager *m_inputInfo;
QStringList m_omitIM;
- bool m_mouseAttached;
- bool m_keyboardAttached;
+ QSet<QString> m_mice;
+ QSet<QString> m_keyboards;
+ bool m_mouseAttached:1;
+ bool m_keyboardAttached:1;
+ bool m_explicitMouseAttached:1;
+ bool m_explicitKeyboardAttached:1;
static QuickUtils *m_instance;
void lookupQuickView();
+ void registerDevice(QInputDevice *device, const QString &deviceId);
+ void setMouseAttached(bool set);
+ void setKeyboardAttached(bool set);
+private Q_SLOTS:
+ void onInputInfoReady();
+ void onDeviceAdded(QInputDevice *device);
+ void onDeviceRemoved(const QString deviceId);
};
#define UC_QML_DEPRECATION_WARNING(msg) \
=== modified file 'src/UbuntuToolkit/ubuntutoolkitmodule.h'
--- src/UbuntuToolkit/ubuntutoolkitmodule.h 2016-09-09 17:49:07 +0000
+++ src/UbuntuToolkit/ubuntutoolkitmodule.h 2016-12-20 08:52:37 +0000
@@ -61,7 +61,7 @@
// use this API only in tests!
static void initializeContextProperties(QQmlEngine*);
private:
- explicit UbuntuToolkitModule(QObject *parent = 0);
+ explicit UbuntuToolkitModule(QObject *parent = Q_NULLPTR);
static UbuntuToolkitModule* create(QQmlEngine *engine, const QUrl &baseUrl);
void registerWindowContextProperty();
Q_SLOT void setWindowContextProperty(QWindow* focusWindow);
=== modified file 'src/UbuntuToolkit/ucthemingextension.cpp'
--- src/UbuntuToolkit/ucthemingextension.cpp 2016-09-12 14:07:38 +0000
+++ src/UbuntuToolkit/ucthemingextension.cpp 2016-12-20 08:52:37 +0000
@@ -95,7 +95,25 @@
UCItemAttached::~UCItemAttached()
{
- QQuickItemPrivate::get(m_item)->removeItemChangeListener(this, QQuickItemPrivate::Parent);
+ /*
+ * Apparent problem: the UCItemAttached for a given item may be
+ * destructed along with the user data for that item, which
+ * occurs after the QQuickItemPrivate destructor has run, in the
+ * destructor for the base class QObjectPrivate of
+ * QQuickItemPrivate. At that point, the destructors of the
+ * members of QQuickItemPrivate have already been called, so
+ * accessing those members via a member function is invalid.
+ * In particular, the changeListeners list of the
+ * QQuickItemPrivate has already been destructed, so it does
+ * not have much of a chance of removing a listener. We
+ * must detect this and avoid the call to it. Fortunately
+ * the base class QObjectPrivate has a flag wasDeleted that
+ * should still be valid at this point.
+ */
+ QQuickItemPrivate* itemPriv = QQuickItemPrivate::get(m_item);
+ if (!(itemPriv->wasDeleted)) {
+ itemPriv->removeItemChangeListener(this, QQuickItemPrivate::Parent);
+ }
}
bool UCThemingExtension::isThemed(QQuickItem *item)
=== modified file 'src/imports/Components/1.3/TextArea.qml'
--- src/imports/Components/1.3/TextArea.qml 2016-09-19 07:24:45 +0000
+++ src/imports/Components/1.3/TextArea.qml 2016-12-20 08:52:37 +0000
@@ -767,7 +767,12 @@
QtObject {
id: internal
// public property locals enabling aliasing
- property string displayText: editor.getText(0, editor.length)
+ property string displayText: {
+ var plainText = editor.getText(0, editor.length);
+ if (editor.hasOwnProperty('preeditText'))
+ plainText += editor.preeditText;
+ return plainText;
+ }
property real frameSpacing: control.__styleInstance.frameSpacing
property real minimumSize: units.gu(4)
property real scrollbarSpacing: rightScrollbar.__interactive ? units.gu(2) : 0
=== modified file 'src/imports/Components/Themes/Ambiance/1.2/SliderStyle.qml'
--- src/imports/Components/Themes/Ambiance/1.2/SliderStyle.qml 2015-04-24 14:43:08 +0000
+++ src/imports/Components/Themes/Ambiance/1.2/SliderStyle.qml 2016-12-20 08:52:37 +0000
@@ -48,7 +48,7 @@
overlayColor: sliderStyle.foregroundColor
overlayRect: Qt.application.layoutDirection == Qt.LeftToRight ?
Qt.rect(0.0, 0.0, thumb.x / thumb.barMinusThumbWidth, 1.0) :
- Qt.rect(1.0 - (thumb.x / thumb.barMinusThumbWidth), 0.0, 1.0, 1.0)
+ Qt.rect(thumb.x / thumb.barMinusThumbWidth, 0.0, 1 - (thumb.x / thumb.barMinusThumbWidth), 1.0)
}
UbuntuShape {
=== modified file 'src/imports/Components/Themes/Ambiance/1.3/AmbianceNormal.qml'
--- src/imports/Components/Themes/Ambiance/1.3/AmbianceNormal.qml 2016-05-17 13:00:51 +0000
+++ src/imports/Components/Themes/Ambiance/1.3/AmbianceNormal.qml 2016-12-20 08:52:37 +0000
@@ -21,10 +21,10 @@
PaletteValues {
background: "#FFFFFF"
backgroundText: UbuntuColors.jet
- backgroundSecondaryText: UbuntuColors.slate
- backgroundTertiaryText: UbuntuColors.ash
+ backgroundSecondaryText: UbuntuColors.inkstone
+ backgroundTertiaryText: UbuntuColors.graphite
base: UbuntuColors.silk
- baseText: UbuntuColors.graphite
+ baseText: UbuntuColors.inkstone
foreground: UbuntuColors.porcelain
foregroundText: UbuntuColors.jet
raised: "#FFFFFF"
@@ -35,7 +35,7 @@
overlaySecondaryText: UbuntuColors.silk
field: "#FFFFFF"
fieldText: UbuntuColors.jet
- focus: UbuntuColors.orange
+ focus: UbuntuColors.blue
focusText: "#FFFFFF"
selection: Qt.rgba(UbuntuColors.blue.r, UbuntuColors.blue.g, UbuntuColors.blue.b, 0.2)
selectionText: UbuntuColors.jet
=== modified file 'src/imports/Components/Themes/Ambiance/1.3/AmbianceSelected.qml'
--- src/imports/Components/Themes/Ambiance/1.3/AmbianceSelected.qml 2016-04-29 12:22:02 +0000
+++ src/imports/Components/Themes/Ambiance/1.3/AmbianceSelected.qml 2016-12-20 08:52:37 +0000
@@ -20,7 +20,7 @@
AmbianceNormal {
background: UbuntuColors.porcelain
base: UbuntuColors.ash
- baseText: UbuntuColors.inkstone
+ baseText: UbuntuColors.jet
foreground: UbuntuColors.ash
overlay: UbuntuColors.porcelain
}
=== modified file 'src/imports/Components/Themes/Ambiance/1.3/Palette.qml'
--- src/imports/Components/Themes/Ambiance/1.3/Palette.qml 2016-05-17 13:00:51 +0000
+++ src/imports/Components/Themes/Ambiance/1.3/Palette.qml 2016-12-20 08:52:37 +0000
@@ -25,19 +25,19 @@
Component.onCompleted: {
// specific disabled colors
var diff = {
- field: UbuntuColors.porcelain,
selection: Qt.rgba(UbuntuColors.blue.r, UbuntuColors.blue.g, UbuntuColors.blue.b, 0.1),
positiveText: "#FFFFFF",
negativeText: "#FFFFFF",
activityText: "#FFFFFF",
- focusText: "#FFFFFF"
+ focusText: "#FFFFFF",
+ position: "#00000000"
};
for (var p in normal) {
// skip objectName and all change signals
if (p === "objectName" || p.indexOf("Changed") > 0) continue;
disabled[p] = diff[p] || (
- // if not specific, colors are 30% opaque normal
- Qt.rgba(normal[p].r, normal[p].g, normal[p].b, normal[p].a * 0.5)
+ // if not specific, colors are 40% opaque normal
+ Qt.rgba(normal[p].r, normal[p].g, normal[p].b, normal[p].a * 0.4)
);
}
}
@@ -51,21 +51,22 @@
Component.onCompleted: {
// specific selected-disabled colors
var diff = {
- background: UbuntuColors.porcelain,
- base: UbuntuColors.porcelain,
foreground: UbuntuColors.porcelain,
selection: Qt.rgba(UbuntuColors.blue.r, UbuntuColors.blue.g, UbuntuColors.blue.b, 0.1),
positiveText: "#FFFFFF",
negativeText: "#FFFFFF",
activityText: "#FFFFFF",
- focusText: "#FFFFFF"
+ focus: UbuntuColors.blue,
+ focusText: "#FFFFFF",
+ field: "#FFFFFF",
+ position: "#00000000"
};
for (var p in selected) {
// skip objectName and all change signals
if (p === "objectName" || p.indexOf("Changed") > 0) continue;
selectedDisabled[p] = diff[p] || (
- // if not specific, colors are 30% opaque normal
- Qt.rgba(selected[p].r, selected[p].g, selected[p].b, normal[p].a * 0.5)
+ // if not specific, colors are 40% opaque normal
+ Qt.rgba(selected[p].r, selected[p].g, selected[p].b, normal[p].a * 0.4)
);
}
}
@@ -74,7 +75,7 @@
highlighted: AmbianceNormal {
background: UbuntuColors.silk
base: UbuntuColors.ash
- baseText: UbuntuColors.inkstone
+ baseText: UbuntuColors.jet
foreground: UbuntuColors.silk
raised: UbuntuColors.silk
raisedText: UbuntuColors.inkstone
=== modified file 'src/imports/Components/Themes/Ambiance/1.3/SliderStyle.qml'
--- src/imports/Components/Themes/Ambiance/1.3/SliderStyle.qml 2016-02-10 17:46:21 +0000
+++ src/imports/Components/Themes/Ambiance/1.3/SliderStyle.qml 2016-12-20 08:52:37 +0000
@@ -49,7 +49,7 @@
overlayColor: sliderStyle.foregroundColor
overlayRect: Qt.application.layoutDirection == Qt.LeftToRight ?
Qt.rect(0.0, 0.0, thumb.x / thumb.barMinusThumbWidth, 1.0) :
- Qt.rect(1.0 - (thumb.x / thumb.barMinusThumbWidth), 0.0, 1.0, 1.0)
+ Qt.rect(thumb.x / thumb.barMinusThumbWidth, 0.0, 1 - (thumb.x / thumb.barMinusThumbWidth), 1.0)
}
UbuntuShape {
=== modified file 'src/imports/Components/Themes/SuruDark/1.3/Palette.qml'
--- src/imports/Components/Themes/SuruDark/1.3/Palette.qml 2016-05-17 13:00:51 +0000
+++ src/imports/Components/Themes/SuruDark/1.3/Palette.qml 2016-12-20 08:52:37 +0000
@@ -25,19 +25,19 @@
Component.onCompleted: {
// specific disabled colors
var diff = {
- foreground: UbuntuColors.inkstone,
- field: UbuntuColors.inkstone,
+ raised: "#FFFFFF",
positiveText: UbuntuColors.porcelain,
negativeText: UbuntuColors.porcelain,
activityText: UbuntuColors.porcelain,
- focusText: UbuntuColors.porcelain
+ focusText: "#FFFFFF",
+ selectionText: "#FFFFFF"
};
for (var p in normal) {
// skip objectName and all change signals
if (p == "objectName"|| p.indexOf("Changed") > 0) continue;
disabled[p] = diff[p] || (
- // if not specific, colors are 30% opaque normal
- Qt.rgba(normal[p].r, normal[p].g, normal[p].b, normal[p].a * 0.5)
+ // if not specific, colors are 40% opaque normal
+ Qt.rgba(normal[p].r, normal[p].g, normal[p].b, normal[p].a * 0.4)
);
}
}
@@ -51,12 +51,17 @@
Component.onCompleted: {
var diff = {
background: UbuntuColors.inkstone,
- base: UbuntuColors.inkstone,
- foreground: UbuntuColors.inkstone,
+ backgroundText: "#FFFFFF",
+ raised: "#FFFFFF",
+ foregroundText: "#FFFFFF",
+ overlayText: "#FFFFFF",
+ fieldText: "#FFFFFF",
+ selectionText: "#FFFFFF",
positiveText: UbuntuColors.porcelain,
negativeText: UbuntuColors.porcelain,
- activityText: UbuntuColors.porcelain,
- focusText: UbuntuColors.porcelain
+ activityText: UbuntuColors.porcelain,
+ focusText: UbuntuColors.porcelain,
+ position: "#00000000"
};
for (var p in selected) {
// skip objectName and all change signals
=== modified file 'src/imports/Components/Themes/SuruDark/1.3/SuruDarkNormal.qml'
--- src/imports/Components/Themes/SuruDark/1.3/SuruDarkNormal.qml 2016-05-17 13:00:51 +0000
+++ src/imports/Components/Themes/SuruDark/1.3/SuruDarkNormal.qml 2016-12-20 08:52:37 +0000
@@ -24,7 +24,7 @@
backgroundSecondaryText: UbuntuColors.silk
backgroundTertiaryText: UbuntuColors.ash
base: UbuntuColors.graphite
- baseText: UbuntuColors.silk
+ baseText: UbuntuColors.porcelain
foreground: UbuntuColors.inkstone
foregroundText: "#FFFFFF"
raised: "#FFFFFF"
@@ -35,7 +35,7 @@
overlaySecondaryText: UbuntuColors.slate
field: UbuntuColors.jet
fieldText: "#FFFFFF"
- focus: UbuntuColors.orange
+ focus: UbuntuColors.blue
focusText: "#FFFFFF"
selection: Qt.rgba(UbuntuColors.blue.r, UbuntuColors.blue.g, UbuntuColors.blue.b, 0.4)
selectionText: "#FFFFFF"
=== modified file 'src/imports/Components/Themes/SuruDark/1.3/SuruDarkSelected.qml'
--- src/imports/Components/Themes/SuruDark/1.3/SuruDarkSelected.qml 2016-04-29 12:22:02 +0000
+++ src/imports/Components/Themes/SuruDark/1.3/SuruDarkSelected.qml 2016-12-20 08:52:37 +0000
@@ -20,8 +20,8 @@
SuruDarkNormal {
background: UbuntuColors.inkstone
- base: UbuntuColors.inkstone
- baseText: UbuntuColors.ash
+ base: UbuntuColors.slate
+ baseText: UbuntuColors.silk
foreground: UbuntuColors.slate
overlay: UbuntuColors.slate
}
=== modified file 'tests/unit/test-include-x11.pri'
--- tests/unit/test-include-x11.pri 2016-07-07 15:33:34 +0000
+++ tests/unit/test-include-x11.pri 2016-12-20 08:52:37 +0000
@@ -3,5 +3,5 @@
include( add_makecheck_x11.pri )
TEMPLATE = app
-QT += testlib qml quick UbuntuToolkit UbuntuToolkit-private
+QT += testlib qml quick systeminfo UbuntuToolkit UbuntuToolkit-private
CONFIG += no_keywords c++11
=== modified file 'tests/unit/test-include.pri'
--- tests/unit/test-include.pri 2016-09-09 17:49:07 +0000
+++ tests/unit/test-include.pri 2016-12-20 08:52:37 +0000
@@ -2,5 +2,5 @@
include( add_makecheck.pri )
TEMPLATE = app
-QT += testlib qml quick UbuntuToolkit-private
+QT += testlib qml quick systeminfo UbuntuToolkit-private
CONFIG += no_keywords c++11
=== removed file 'tests/unit/visual/tst_pickerpanel.11.qml'
--- tests/unit/visual/tst_pickerpanel.11.qml 2016-06-15 13:46:51 +0000
+++ tests/unit/visual/tst_pickerpanel.11.qml 1970-01-01 00:00:00 +0000
@@ -1,249 +0,0 @@
-/*
- * Copyright 2013 Canonical Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; version 3.
- *
- * 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 Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-import QtQuick 2.0
-import QtTest 1.0
-import Ubuntu.Test 1.0
-import Ubuntu.Components 1.1
-import Ubuntu.Components.Pickers 1.0
-
-Item {
- id: testSuite
- width: units.gu(40)
- height: units.gu(71)
-
- Flow {
- anchors {
- fill: parent
- // give a margin so we can dismiss panels
- topMargin: units.gu(4)
- }
-
- Button {
- id: defaultMode
- text: "defaultMode"
- property date buttonDate: new Date()
- property Item panel
- onClicked: panel = PickerPanel.openDatePicker(defaultMode, "buttonDate")
- }
- Button {
- id: modeSet
- text: "modeSet"
- property string mode
- property date buttonDate: new Date()
- property Item panel
- onClicked: panel = PickerPanel.openDatePicker(modeSet, "buttonDate", mode)
- }
- }
-
- SignalSpy {
- id: closeSpy
- signalName: "closed"
- }
-
- UbuntuTestCase {
- name: "PickerPanelAPI"
- when: windowShown
-
- function initTestCase() {
- waitForRendering(testSuite);
- }
-
- function test_0_clickOndefaultMode() {
- mouseClick(defaultMode, units.gu(1), units.gu(1));
- verify(defaultMode.panel !== null, "the picker is not opened");
- verify(defaultMode.panel.picker !== null, "the DatePicker is not defined");
- compare(defaultMode.panel.pickerMode, "Years|Months|Days", "the mode from the picker is not the default");
- compare(defaultMode.panel.date, defaultMode.buttonDate, "the date from the picker differs from the button's");
- compare(defaultMode.panel.caller, defaultMode, "wrong caller");
- compare(defaultMode.panel.callerProperty, "buttonDate", "wrong callerProperty");
- verify(defaultMode.panel.hasOwnProperty("closed"), "the object has no closed signal");
-
- // dismiss
- closeSpy.clear();
- closeSpy.target = defaultMode.panel;
- mouseClick(testSuite, units.gu(1), units.gu(1));
- closeSpy.wait();
- }
-
- function test_1_modeSet_YM() {
- modeSet.mode = "Years|Months" ;
- mouseClick(modeSet, units.gu(1), units.gu(1));
- verify(modeSet.panel !== null, "the picker is opened");
- compare(modeSet.panel.date, modeSet.buttonDate, "the date from the picker differs from the button's");
- compare(modeSet.panel.pickerMode, modeSet.mode, "the mode from the picker differs from the button's");
- // check the number of pickers
- var picker = findChild(modeSet.panel.picker, "PickerRow_Positioner");
- compare(picker.children.length, 3, "there is not enough pickers in the panel");
-
- // dismiss
- closeSpy.clear();
- closeSpy.target = modeSet.panel;
- mouseClick(testSuite, units.gu(1), units.gu(1));
- closeSpy.wait();
- }
-
- function test_1_modeSet_YD() {
- ignoreWarning("Invalid DatePicker mode: Years|Days")
- modeSet.mode = "Years|Days" ;
- mouseClick(modeSet, units.gu(1), units.gu(1));
- verify(modeSet.panel !== null, "the picker is opened");
- compare(modeSet.panel.date, modeSet.buttonDate, "the date from the picker differs from the button's");
- compare(modeSet.panel.pickerMode, modeSet.mode, "the mode from the picker differs from the button's");
- // check the number of pickers
- var picker = findChild(modeSet.panel.picker, "PickerRow_Positioner");
- expectFailContinue("", "this mode is invalid");
- compare(picker.children.length, 2, "there is not enough pickers in the panel");
-
- // dismiss
- closeSpy.clear();
- closeSpy.target = modeSet.panel;
- mouseClick(testSuite, units.gu(1), units.gu(1));
- closeSpy.wait();
- }
-
- function test_1_modeSet_HMS() {
- modeSet.mode = "Hours|Minutes|Seconds" ;
- mouseClick(modeSet, units.gu(1), units.gu(1));
- verify(modeSet.panel !== null, "the picker is opened");
- compare(modeSet.panel.date, modeSet.buttonDate, "the date from the picker differs from the button's");
- compare(modeSet.panel.pickerMode, modeSet.mode, "the mode from the picker differs from the button's");
- // check the number of pickers
- var picker = findChild(modeSet.panel.picker, "PickerRow_Positioner");
- compare(picker.children.length, 4, "there is not enough pickers in the panel");
-
- // dismiss
- closeSpy.clear();
- closeSpy.target = modeSet.panel;
- mouseClick(testSuite, units.gu(1), units.gu(1));
- closeSpy.wait();
- }
-
- function test_1_modeSet_HS() {
- ignoreWarning("Invalid DatePicker mode: Hours|Seconds")
- modeSet.mode = "Hours|Seconds" ;
- mouseClick(modeSet, units.gu(1), units.gu(1));
- verify(modeSet.panel !== null, "the picker is opened");
- compare(modeSet.panel.date, modeSet.buttonDate, "the date from the picker differs from the button's");
- compare(modeSet.panel.pickerMode, modeSet.mode, "the mode from the picker differs from the button's");
- // check the number of pickers
- var picker = findChild(modeSet.panel.picker, "PickerRow_Positioner");
- expectFailContinue("", "this mode is invalid");
- compare(picker.children.length, 2, "there is not enough pickers in the panel");
-
- // dismiss
- closeSpy.clear();
- closeSpy.target = modeSet.panel;
- mouseClick(testSuite, units.gu(1), units.gu(1));
- closeSpy.wait();
- }
-
- // forced panel tests
- // these should be executed as last ones
- function test_2_clickOndefaultMode() {
- // force panel - this is private specific!!!
- var privates = findChild(PickerPanel, "PickerPanel_Internals");
- privates.isPhone = true;
-
- mouseClick(defaultMode, units.gu(1), units.gu(1));
- verify(defaultMode.panel !== null, "the picker is not opened");
- verify(defaultMode.panel.picker !== null, "the DatePicker is not defined");
- compare(defaultMode.panel.pickerMode, "Years|Months|Days", "the mode from the picker is not the default");
- compare(defaultMode.panel.date, defaultMode.buttonDate, "the date from the picker differs from the button's");
- compare(defaultMode.panel.caller, defaultMode, "wrong caller");
- compare(defaultMode.panel.callerProperty, "buttonDate", "wrong callerProperty");
- verify(defaultMode.panel.hasOwnProperty("closed"), "the object has no closed signal");
-
- // dismiss
- closeSpy.clear();
- closeSpy.target = defaultMode.panel;
- mouseClick(testSuite, units.gu(1), units.gu(1));
- closeSpy.wait();
- }
-
- function test_3_modeSet_YM() {
- modeSet.mode = "Years|Months" ;
- mouseClick(modeSet, units.gu(1), units.gu(1));
- verify(modeSet.panel !== null, "the picker is opened");
- compare(modeSet.panel.date, modeSet.buttonDate, "the date from the picker differs from the button's");
- compare(modeSet.panel.pickerMode, modeSet.mode, "the mode from the picker differs from the button's");
- // check the number of pickers
- var picker = findChild(modeSet.panel.picker, "PickerRow_Positioner");
- compare(picker.children.length, 3, "there is not enough pickers in the panel");
-
- // dismiss
- closeSpy.clear();
- closeSpy.target = modeSet.panel;
- mouseClick(testSuite, units.gu(1), units.gu(1));
- closeSpy.wait();
- }
-
- function test_3_modeSet_YD() {
- ignoreWarning("Invalid DatePicker mode: Years|Days")
- modeSet.mode = "Years|Days" ;
- mouseClick(modeSet, units.gu(1), units.gu(1));
- verify(modeSet.panel !== null, "the picker is opened");
- compare(modeSet.panel.date, modeSet.buttonDate, "the date from the picker differs from the button's");
- compare(modeSet.panel.pickerMode, modeSet.mode, "the mode from the picker differs from the button's");
- // check the number of pickers
- var picker = findChild(modeSet.panel.picker, "PickerRow_Positioner");
- expectFailContinue("", "this mode is invalid");
- compare(picker.children.length, 2, "there is not enough pickers in the panel");
-
- // dismiss
- closeSpy.clear();
- closeSpy.target = modeSet.panel;
- mouseClick(testSuite, units.gu(1), units.gu(1));
- closeSpy.wait();
- }
-
- function test_3_modeSet_HMS() {
- modeSet.mode = "Hours|Minutes|Seconds" ;
- mouseClick(modeSet, units.gu(1), units.gu(1));
- verify(modeSet.panel !== null, "the picker is opened");
- compare(modeSet.panel.date, modeSet.buttonDate, "the date from the picker differs from the button's");
- compare(modeSet.panel.pickerMode, modeSet.mode, "the mode from the picker differs from the button's");
- // check the number of pickers
- var picker = findChild(modeSet.panel.picker, "PickerRow_Positioner");
- compare(picker.children.length, 4, "there is not enough pickers in the panel");
-
- // dismiss
- closeSpy.clear();
- closeSpy.target = modeSet.panel;
- mouseClick(testSuite, units.gu(1), units.gu(1));
- closeSpy.wait();
- }
-
- function test_3_modeSet_HS() {
- ignoreWarning("Invalid DatePicker mode: Hours|Seconds")
- modeSet.mode = "Hours|Seconds" ;
- mouseClick(modeSet, units.gu(1), units.gu(1));
- verify(modeSet.panel !== null, "the picker is opened");
- compare(modeSet.panel.date, modeSet.buttonDate, "the date from the picker differs from the button's");
- compare(modeSet.panel.pickerMode, modeSet.mode, "the mode from the picker differs from the button's");
- // check the number of pickers
- var picker = findChild(modeSet.panel.picker, "PickerRow_Positioner");
- expectFailContinue("", "this mode is invalid");
- compare(picker.children.length, 2, "there is not enough pickers in the panel");
-
- // dismiss
- closeSpy.clear();
- closeSpy.target = modeSet.panel;
- mouseClick(testSuite, units.gu(1), units.gu(1));
- closeSpy.wait();
- }
- }
-}
=== modified file 'tests/unit/visual/tst_slider.13.qml'
--- tests/unit/visual/tst_slider.13.qml 2016-06-15 13:46:51 +0000
+++ tests/unit/visual/tst_slider.13.qml 2016-12-20 08:52:37 +0000
@@ -89,6 +89,14 @@
}
}
}
+ Slider {
+ property bool enableRTL: false
+ LayoutMirroring.enabled: enableRTL
+ LayoutMirroring.childrenInherit: enableRTL
+
+ id: slider
+ readonly property rect bar: slider.__styleInstance && slider.__styleInstance.bar ? slider.__styleInstance.bar.overlayRect : null
+ }
}
UbuntuTestCase {
@@ -107,6 +115,7 @@
function cleanup() {
flickSpy.target = null;
flickSpy.clear();
+ slider.enableRTL = false;
}
function test_slider_blocks_flickable_data() {
@@ -160,5 +169,21 @@
valueSpy.wait();
compare(slider.value, to, "Slider has the wrong value!");
}
+
+ function test_bar_rtl() {
+ verify(slider.bar);
+ slider.minimumValue = 0.0;
+ slider.maximumValue = 1.0;
+ slider.value = 0.3;
+
+ // check for LTR
+ print("Slider width:", slider.bar.width)
+ verify(slider.value >= slider.bar.width)
+
+ // check for RTL
+ slider.enableRTL = true;
+ print("Slider RTL width:", slider.bar.width)
+ verify(slider.value >= slider.bar.width)
+ }
}
}
=== renamed file 'tests/unit/visual/FIXME-QT56_textarea.11.qml' => 'tests/unit/visual/tst_textarea.11.qml'
--- tests/unit/visual/FIXME-QT56_textarea.11.qml 2016-09-16 11:20:57 +0000
+++ tests/unit/visual/tst_textarea.11.qml 2016-12-20 08:52:37 +0000
@@ -137,11 +137,6 @@
compare(textArea.canUndo,textEdit.canUndo,"TextArea.canUndo is same as TextEdit.canUndo")
}
- // FIXME: Fails with Qt 5.6. See bug #1624342.
- function test_0_color() {
- compare(textArea.color,textEdit.color,"TextArea.color is same as TextEdit.canUndo")
- }
-
function test_0_cursorDelegate() {
verify(textArea.cursorDelegate === null, "TextArea.cursorDelegate is not null")
}
@@ -220,14 +215,6 @@
compare(textArea.selectedText,textEdit.selectedText,"TextArea.selectedText is same as TextEdit.selectedText")
}
- function test_0_selectedTextColor() {
- compare(textArea.selectedTextColor,textEdit.selectedTextColor,"TextArea.selectedTextColor is same as TextEdit.selectedTextColor")
- }
-
- function test_0_selectionColor() {
- compare(textArea.selectionColor,textEdit.selectionColor,"TextArea.selectionColor is same as TextEdit.selectionColor")
- }
-
function test_0_selectionEnd() {
compare(textArea.selectionEnd,textEdit.selectionEnd,"TextArea.selectionEnd is same as TextEdit.selectionEnd")
}
References