on xenial help sign in
Switch to x, not t
8f763f0Michael Terry
data/com.canonical.Unity8.gschema.xml+1−1
@@ -14,7 +14,7 @@
14 </schema>
14 </schema>
15
15
16 <schema path="/com/canonical/unity8/greeter/" id="com.canonical.Unity8.Greeter" gettext-domain="unity8">
16 <schema path="/com/canonical/unity8/greeter/" id="com.canonical.Unity8.Greeter" gettext-domain="unity8">
17− <key type="t" name="locked-out-time">
17+ <key type="x" name="locked-out-time">
18 <default>0</default>
18 <default>0</default>
19 <summary>When the greeter was last locked.</summary>
19 <summary>When the greeter was last locked.</summary>
20 <description>If too many unsuccessful login attempts have been made in a row, the greeter locks you out for a while. This unix timestamp indicates when you were locked out, so unity8 knows when to let you back in.</description>
20 <description>If too many unsuccessful login attempts have been made in a row, the greeter locks you out for a while. This unix timestamp indicates when you were locked out, so unity8 knows when to let you back in.</description>
qml/Greeter/Greeter.qml+5−1
@@ -185,7 +185,11 @@ Showable {
185 GSettings {
185 GSettings {
186 id: greeterSettings
186 id: greeterSettings
187 schema.id: "com.canonical.Unity8.Greeter"
187 schema.id: "com.canonical.Unity8.Greeter"
188+ onChanged: {
189+ if (key === "locked-out-time") {
188− onLockedOutTimeChanged: forcedDelayTimer.checkForForcedDelay()
190+ forcedDelayTimer.checkForForcedDelay();
191+ }
192+ }
189 }
193 }
190
194
191 Timer {
195 Timer {
tests/mocks/GSettings.1.0/fake_gsettings.cpp+9−13
@@ -45,7 +45,7 @@ void GSettingsControllerQml::setPictureUri(const QString &str)
45{
45{
46 if (str != m_pictureUri) {
46 if (str != m_pictureUri) {
47 m_pictureUri = str;
47 m_pictureUri = str;
48− Q_EMIT pictureUriChanged(m_pictureUri);
48+ Q_EMIT changed("picture-uri", QVariant(m_pictureUri));
49 }
49 }
50}
50}
51
51
@@ -58,20 +58,20 @@ void GSettingsControllerQml::setUsageMode(const QString &usageMode)
58{
58{
59 if (usageMode != m_usageMode) {
59 if (usageMode != m_usageMode) {
60 m_usageMode = usageMode;
60 m_usageMode = usageMode;
61− Q_EMIT usageModeChanged(m_usageMode);
61+ Q_EMIT changed("usage-mode", QVariant(m_usageMode));
62 }
62 }
63}
63}
64
64
65−quint64 GSettingsControllerQml::lockedOutTime() const
65+qint64 GSettingsControllerQml::lockedOutTime() const
66{
66{
67 return m_lockedOutTime;
67 return m_lockedOutTime;
68}
68}
69
69
70−void GSettingsControllerQml::setLockedOutTime(quint64 timestamp)
70+void GSettingsControllerQml::setLockedOutTime(qint64 timestamp)
71{
71{
72 if (m_lockedOutTime != timestamp) {
72 if (m_lockedOutTime != timestamp) {
73 m_lockedOutTime = timestamp;
73 m_lockedOutTime = timestamp;
74− Q_EMIT lockedOutTimeChanged(m_lockedOutTime);
74+ Q_EMIT changed("locked-out-time", QVariant(m_lockedOutTime));
75 }
75 }
76}
76}
77
77
@@ -108,12 +108,8 @@ GSettingsQml::GSettingsQml(QObject *parent)
108 : QObject(parent)
108 : QObject(parent)
109{
109{
110 m_schema = new GSettingsSchemaQml(this);
110 m_schema = new GSettingsSchemaQml(this);
111− connect(GSettingsControllerQml::instance(), SIGNAL(pictureUriChanged(const QString &)),
111+ connect(GSettingsControllerQml::instance(), SIGNAL(changed(const QString &, const QVariant &)),
112− this, SIGNAL(pictureUriChanged(const QString &)));
112+ this, SIGNAL(changed(const QString &, const QVariant &)));
113− connect(GSettingsControllerQml::instance(), SIGNAL(usageModeChanged(const QString &)),
114− this, SIGNAL(usageModeChanged(const QString &)));
115− connect(GSettingsControllerQml::instance(), SIGNAL(lockedOutTimeChanged(quint64)),
116− this, SIGNAL(lockedOutTimeChanged(quint64)));
117}
113}
118
114
119GSettingsSchemaQml * GSettingsQml::schema() const {
115GSettingsSchemaQml * GSettingsQml::schema() const {
@@ -152,7 +148,7 @@ void GSettingsQml::setUsageMode(const QString &usageMode)
152 }
148 }
153}
149}
154
150
155−quint64 GSettingsQml::lockedOutTime() const
151+qint64 GSettingsQml::lockedOutTime() const
156{
152{
157 if (m_schema->id() == "com.canonical.Unity8.Greeter") {
153 if (m_schema->id() == "com.canonical.Unity8.Greeter") {
158 return GSettingsControllerQml::instance()->lockedOutTime();
154 return GSettingsControllerQml::instance()->lockedOutTime();
@@ -161,7 +157,7 @@ quint64 GSettingsQml::lockedOutTime() const
161 }
157 }
162}
158}
163
159
164−void GSettingsQml::setLockedOutTime(quint64 timestamp)
160+void GSettingsQml::setLockedOutTime(qint64 timestamp)
165{
161{
166 if (m_schema->id() == "com.canonical.Unity8.Greeter") {
162 if (m_schema->id() == "com.canonical.Unity8.Greeter") {
167 GSettingsControllerQml::instance()->setLockedOutTime(timestamp);
163 GSettingsControllerQml::instance()->setLockedOutTime(timestamp);
tests/mocks/GSettings.1.0/fake_gsettings.h+10−14
@@ -45,9 +45,9 @@ class GSettingsQml: public QObject
45 Q_OBJECT
45 Q_OBJECT
46
46
47 Q_PROPERTY(GSettingsSchemaQml* schema READ schema NOTIFY schemaChanged)
47 Q_PROPERTY(GSettingsSchemaQml* schema READ schema NOTIFY schemaChanged)
48− Q_PROPERTY(QString pictureUri READ pictureUri WRITE setPictureUri NOTIFY pictureUriChanged)
48+ Q_PROPERTY(QString pictureUri READ pictureUri WRITE setPictureUri NOTIFY changed)
49− Q_PROPERTY(QString usageMode READ usageMode WRITE setUsageMode NOTIFY usageModeChanged)
49+ Q_PROPERTY(QString usageMode READ usageMode WRITE setUsageMode NOTIFY changed)
50− Q_PROPERTY(quint64 lockedOutTime READ lockedOutTime WRITE setLockedOutTime NOTIFY lockedOutTimeChanged)
50+ Q_PROPERTY(qint64 lockedOutTime READ lockedOutTime WRITE setLockedOutTime NOTIFY changed)
51
51
52public:
52public:
53 GSettingsQml(QObject *parent = nullptr);
53 GSettingsQml(QObject *parent = nullptr);
@@ -55,17 +55,15 @@ public:
55 GSettingsSchemaQml * schema() const;
55 GSettingsSchemaQml * schema() const;
56 QString pictureUri() const;
56 QString pictureUri() const;
57 QString usageMode() const;
57 QString usageMode() const;
58− quint64 lockedOutTime() const;
58+ qint64 lockedOutTime() const;
59
59
60 void setPictureUri(const QString &str);
60 void setPictureUri(const QString &str);
61 void setUsageMode(const QString &usageMode);
61 void setUsageMode(const QString &usageMode);
62− void setLockedOutTime(quint64 timestamp);
62+ void setLockedOutTime(qint64 timestamp);
63
63
64Q_SIGNALS:
64Q_SIGNALS:
65 void schemaChanged();
65 void schemaChanged();
66− void pictureUriChanged(const QString&);
66+ void changed(const QString &key, const QVariant &value);
67− void usageModeChanged(const QString&);
68− void lockedOutTimeChanged(quint64);
69
67
70private:
68private:
71 GSettingsSchemaQml* m_schema;
69 GSettingsSchemaQml* m_schema;
@@ -87,20 +85,18 @@ public:
87 QString usageMode() const;
85 QString usageMode() const;
88 Q_INVOKABLE void setUsageMode(const QString &usageMode);
86 Q_INVOKABLE void setUsageMode(const QString &usageMode);
89
87
90− quint64 lockedOutTime() const;
88+ qint64 lockedOutTime() const;
91− Q_INVOKABLE void setLockedOutTime(quint64 timestamp);
89+ Q_INVOKABLE void setLockedOutTime(qint64 timestamp);
92
90
93Q_SIGNALS:
91Q_SIGNALS:
94− void pictureUriChanged(const QString&);
92+ void changed(const QString&, const QVariant&);
95− void usageModeChanged(const QString&);
96− void lockedOutTimeChanged(quint64 timestamp);
97
93
98private:
94private:
99 GSettingsControllerQml();
95 GSettingsControllerQml();
100
96
101 QString m_pictureUri;
97 QString m_pictureUri;
102 QString m_usageMode;
98 QString m_usageMode;
103− quint64 m_lockedOutTime;
99+ qint64 m_lockedOutTime;
104
100
105 static GSettingsControllerQml* s_controllerInstance;
101 static GSettingsControllerQml* s_controllerInstance;
106 QList<GSettingsQml *> m_registeredGSettings;
102 QList<GSettingsQml *> m_registeredGSettings;
tests/qmltests/Greeter/tst_Greeter.qml+1−1
@@ -447,7 +447,7 @@ Item {
447 view.responded("wr0ng p4ssw0rd");
447 view.responded("wr0ng p4ssw0rd");
448
448
449 var timestamp = new Date().getTime();
449 var timestamp = new Date().getTime();
450− verify(Math.abs(greeterSettings.lockedOutTime - timestamp) < 3);
450+ verify(Math.abs(greeterSettings.lockedOutTime - timestamp) < 2000);
451 }
451 }
452
452
453 function test_forcedDelayFromGSettings() {
453 function test_forcedDelayFromGSettings() {