on xenial help sign in
broken merge
commita072961f4851eb5a0381fa10e4947657fb4c35dd authorJosh Arenson <joshua.arenson@canonical.com> dateFri 20 Nov 2015, 10:35 (11 years ago) parent6c7b25970724ef
4 files changed+30−4
plugins/LightDM/SessionsModel.cpp+3−2 plugins/LightDM/SessionsModel.h+5 qml/Greeter/LoginList.qml+12 tests/qmltests/Greeter/tst_WideView.qml+10−2
plugins/LightDM/SessionsModel.cpp+3−2
@@ -18,7 +18,7 @@
1818#include "SessionsModel.h"
1919#include <QtCore/QFile>
2020#include <QtCore/QSortFilterProxyModel>
21−
21+#include <QDebug>
2222QHash<int, QByteArray> SessionsModel::roleNames() const
2323{
2424 return m_roleNames;
@@ -29,7 +29,6 @@ int SessionsModel::rowCount(const QModelIndex& parent) const
2929 return m_model->rowCount(parent);
3030}
3131
32−// Used for testing
3332QList<QUrl> SessionsModel::iconSearchDirectories() const
3433{
3534 return m_iconSearchDirectories;
@@ -38,12 +37,14 @@ QList<QUrl> SessionsModel::iconSearchDirectories() const
3837void SessionsModel::setIconSearchDirectories(QList<QUrl> searchDirectories)
3938{
4039 m_iconSearchDirectories = searchDirectories;
40+ Q_EMIT iconSearchDirectoriesChanged();
4141}
4242
4343QUrl SessionsModel::iconUrl(QString sessionName) const
4444{
4545 Q_FOREACH(const QUrl& searchDirectory, m_iconSearchDirectories)
4646 {
47+ qDebug() << "LOOKING IN: " << searchDirectory.toString();
4748 // This is an established icon naming convention
4849 QString iconUrl = searchDirectory.toString(QUrl::StripTrailingSlash) +
4950 "/" + sessionName.toLower() + "_badge.png";
plugins/LightDM/SessionsModel.h+5
@@ -30,6 +30,11 @@ class SessionsModel : public UnitySortFilterProxyModelQML
3030
3131 Q_ENUMS(SessionModelRoles)
3232
33+ Q_PROPERTY(QList<QUrl> iconSearchDirectories READ iconSearchDirectories
34+ WRITE setIconSearchDirectories NOTIFY iconSearchDirectoriesChanged)
35+Q_SIGNALS:
36+ void iconSearchDirectoriesChanged();
37+
3338public:
3439 enum SessionModelRoles {
3540 /* This is tricky / ugly. Since we are ultimately chaining 3 enums together,
qml/Greeter/LoginList.qml+12
@@ -109,6 +109,8 @@ Item {
109109 id: sessionChooser
110110 objectName: "sessionChooserButton"
111111
112+ readonly property alias imageSource: badge.source
113+
112114 visible: LightDMService.sessions.count > 1
113115
114116 height: units.gu(2.5)
@@ -123,6 +125,7 @@ Item {
123125 }
124126
125127 Image {
128+ id: badge
126129 anchors.fill: parent
127130 source: LightDMService.sessions.iconUrl(root.currentSession)
128131 }
@@ -130,6 +133,15 @@ Item {
130133 onClicked: {
131134 sessionChooserButtonClicked();
132135 }
136+
137+ // Refresh the icon path if looking at different places at runtime
138+ // this is meainly for testing
139+ Connections {
140+ target: LightDMService.sessions
141+ onIconSearchDirectoriesChanged: {
142+ badge.source = LightDMService.sessions.iconUrl(root.currentSession)
143+ }
144+ }
133145 }
134146 }
135147
tests/qmltests/Greeter/tst_WideView.qml+10−2
@@ -311,6 +311,7 @@ Item {
311311 when: windowShown
312312
313313 property Item view: loader.status === Loader.Ready ? loader.item : null
314+ property url testIconDirectory: "./test_session_badges"
314315
315316 function init() {
316317 selectIndex(0); // break binding with text field
@@ -376,9 +377,16 @@ Item {
376377 }
377378
378379 function test_sessionIconsAreValid() {
380+ var originalDirectories = LightDM.Sessions.iconSearchDirectories
381+ var sessionChooserButton = findChild(view, "sessionChooserButton")
379382 LightDM.Sessions.testScenario = "multipleSessions"
380− console.log("THE URL IS: " + LightDM.Sessions.iconUrl("Ubuntu"));
381− compare(false, true);
383+ console.log("FIRST JOSH: " + sessionChooserButton.imageSource)
384+ LightDM.Sessions.iconSearchDirectories = [testIconDirectory]
385+
386+ var sessionChooserButton = findChild(view, "sessionChooserButton")
387+ compare(sessionChooserButton.visible, true)
388+ console.log("JOSH: " + sessionChooserButton.imageSource)
389+ compare(true, false)
382390 }
383391
384392 function test_noSessionsDoesntBreakView() {