on xenial help sign in
Add an overloaded iconUrl method for testing the gui
105e096Josh Arenson
plugins/LightDM/SessionsModel.cpp+8−2
@@ -35,9 +35,10 @@ QList<QUrl> SessionsModel::iconSearchDirectories() const
35 return m_iconSearchDirectories;
35 return m_iconSearchDirectories;
36}
36}
37
37
38+// Allow providing an exteral directories list, mostly for testing
38−QUrl SessionsModel::iconUrl(QString sessionName) const
39+QUrl SessionsModel::iconUrl(QString sessionName, QList<QUrl> sessionDirectories) const
39{
40{
40− Q_FOREACH(const QUrl& searchDirectory, m_iconSearchDirectories)
41+ Q_FOREACH(const QUrl& searchDirectory, sessionDirectories)
41 {
42 {
42 // This is an established icon naming convention
43 // This is an established icon naming convention
43 QString iconUrl = searchDirectory.toString(QUrl::StripTrailingSlash) +
44 QString iconUrl = searchDirectory.toString(QUrl::StripTrailingSlash) +
@@ -52,6 +53,11 @@ QUrl SessionsModel::iconUrl(QString sessionName) const
52 return QUrl("./graphics/session_icons/unknown_badge.png");
53 return QUrl("./graphics/session_icons/unknown_badge.png");
53}
54}
54
55
56+QUrl SessionsModel::iconUrl(QString sessionName) const
57+{
58+ return iconUrl(sessionName, m_iconSearchDirectories);
59+}
60+
55QVariant SessionsModel::data(const QModelIndex& index, int role) const
61QVariant SessionsModel::data(const QModelIndex& index, int role) const
56{
62{
57 switch (role) {
63 switch (role) {
plugins/LightDM/SessionsModel.h+5−3
@@ -48,13 +48,15 @@ public:
48 QVariant data(const QModelIndex& index, int role) const override;
48 QVariant data(const QModelIndex& index, int role) const override;
49 QList<QUrl> iconSearchDirectories() const;
49 QList<QUrl> iconSearchDirectories() const;
50 Q_INVOKABLE QUrl iconUrl(QString sessionName) const;
50 Q_INVOKABLE QUrl iconUrl(QString sessionName) const;
51+ Q_INVOKABLE QUrl iconUrl(QString sessionName, QList<QUrl> searchDirectories) const;
51
52
52private:
53private:
53 QLightDM::SessionsModel* m_model;
54 QLightDM::SessionsModel* m_model;
54 QHash<int, QByteArray> m_roleNames;
55 QHash<int, QByteArray> m_roleNames;
56+ const QList<QUrl> m_iconSearchDirectories{
55− const QList<QUrl> m_iconSearchDirectories{QUrl("/usr/share/unity8/Greeter/graphics/session_icons"),
57+ QUrl("/usr/share/unity8/Greeter/graphics/session_icons"),
56− QUrl("/usr/local/share/unity-greeter"),
58+ QUrl("/usr/local/share/unity-greeter"),
57− QUrl("/usr/share/unity-greeter/")};
59+ QUrl("/usr/share/unity-greeter/")};
58
60
59};
61};
60
62