on xenial help sign in
merge manualsurface/session creation into applicationinfo
commit84b65c51a944f9170b5c603d00794a3a6dcd0e06 authorNick Dedekind <nicholas.dedekind@gmail.com> dateWed 27 Aug 2014, 22:54 (12 years ago) parentbc30295
6 files changed+17−51
tests/mocks/Unity/Application/ApplicationInfo.cpp+11−8 tests/mocks/Unity/Application/ApplicationInfo.h+5−5 tests/mocks/Unity/Application/Session.cpp−24 tests/mocks/Unity/Application/Session.h−11 tests/qmltests/Stages/tst_ApplicationWindow.qml+1−2 tests/qmltests/Stages/tst_SessionContainer.qml−1
tests/mocks/Unity/Application/ApplicationInfo.cpp+11−8
@@ -34,7 +34,7 @@ ApplicationInfo::ApplicationInfo(const QString &appId, QObject *parent)
3434 , m_focused(false)
3535 , m_fullscreen(false)
3636 , m_session(0)
37− , m_manualSessionCreation(false)
37+ , m_manualSurfaceCreation(false)
3838{
3939}
4040
@@ -45,7 +45,7 @@ ApplicationInfo::ApplicationInfo(QObject *parent)
4545 , m_focused(false)
4646 , m_fullscreen(false)
4747 , m_session(0)
48− , m_manualSessionCreation(false)
48+ , m_manualSurfaceCreation(false)
4949{
5050}
5151
@@ -79,6 +79,10 @@ void ApplicationInfo::setSession(Session* session)
7979 if (m_session) {
8080 m_session->setApplication(this);
8181 m_session->setParent(this);
82+
83+ if (!m_manualSurfaceCreation) {
84+ QTimer::singleShot(500, m_session, SLOT(createSurface()));
85+ }
8286 }
8387
8488 Q_EMIT sessionChanged(m_session);
@@ -137,8 +141,7 @@ void ApplicationInfo::setState(State value)
137141 m_state = value;
138142 Q_EMIT stateChanged(value);
139143
140− if (!m_manualSessionCreation && m_state == ApplicationInfo::Running) {
141−
144+ if (!m_manualSurfaceCreation && m_state == ApplicationInfo::Running) {
142145 QTimer::singleShot(500, this, SLOT(createSession()));
143146 }
144147 }
@@ -160,10 +163,10 @@ void ApplicationInfo::setFullscreen(bool value)
160163 }
161164}
162165
163−void ApplicationInfo::setManualSessionCreation(bool value)
166+void ApplicationInfo::setManualSurfaceCreation(bool value)
164167{
165− if (value != m_manualSessionCreation) {
166− m_manualSessionCreation = value;
167− Q_EMIT manualSessionCreationChanged(value);
168+ if (value != m_manualSurfaceCreation) {
169+ m_manualSurfaceCreation = value;
170+ Q_EMIT manualSurfaceCreationChanged(value);
168171 }
169172}
tests/mocks/Unity/Application/ApplicationInfo.h+5−5
@@ -39,7 +39,7 @@ class ApplicationInfo : public ApplicationInfoInterface {
3939 // Only exists in this fake implementation
4040
4141 // whether the test code will explicitly control the creation of the application surface
42− Q_PROPERTY(bool manualSessionCreation READ manualSessionCreation WRITE setManualSessionCreation NOTIFY manualSessionCreationChanged)
42+ Q_PROPERTY(bool manualSurfaceCreation READ manualSurfaceCreation WRITE setManualSurfaceCreation NOTIFY manualSurfaceCreationChanged)
4343
4444public:
4545 ApplicationInfo(QObject *parent = nullptr);
@@ -73,8 +73,8 @@ public:
7373 void setFullscreen(bool value);
7474 bool fullscreen() const { return m_fullscreen; }
7575
76− bool manualSessionCreation() const { return m_manualSessionCreation; }
77− void setManualSessionCreation(bool value);
76+ bool manualSurfaceCreation() const { return m_manualSurfaceCreation; }
77+ void setManualSurfaceCreation(bool value);
7878
7979public:
8080 void setSession(Session* session);
@@ -83,7 +83,7 @@ public:
8383Q_SIGNALS:
8484 void sessionChanged(Session*);
8585 void fullscreenChanged(bool value);
86− void manualSessionCreationChanged(bool value);
86+ void manualSurfaceCreationChanged(bool value);
8787
8888public Q_SLOTS:
8989 Q_INVOKABLE void createSession();
@@ -102,7 +102,7 @@ private:
102102 bool m_fullscreen;
103103 Session* m_session;
104104
105− bool m_manualSessionCreation;
105+ bool m_manualSurfaceCreation;
106106};
107107
108108Q_DECLARE_METATYPE(ApplicationInfo*)
tests/mocks/Unity/Application/Session.cpp−24
@@ -32,7 +32,6 @@ Session::Session(const QString &name,
3232 , m_surface(nullptr)
3333 , m_parentSession(nullptr)
3434 , m_children(new SessionModel(this))
35− , m_manualSurfaceCreation(false)
3635{
3736 qDebug() << "Session::Session() " << this->name();
3837
@@ -78,22 +77,7 @@ void Session::setApplication(ApplicationInfo* application)
7877 if (m_application == application)
7978 return;
8079
81− if (m_application) {
82− disconnect(m_application, 0, this, 0);
83− }
84−
8580 m_application = application;
86−
87− if (m_application) {
88− connect(m_application, &ApplicationInfo::stateChanged, this, [this](ApplicationInfo::State state) {
89− if (!m_manualSurfaceCreation && state == ApplicationInfo::Running) {
90− QTimer::singleShot(500, this, SLOT(createSurface()));
91− }
92− });
93− if (!m_manualSurfaceCreation && m_application->state() == ApplicationInfo::Running) {
94− QTimer::singleShot(500, this, SLOT(createSurface()));
95− }
96− }
9781}
9882
9983void Session::setSurface(MirSurfaceItem* surface)
@@ -173,11 +157,3 @@ SessionModel* Session::childSessions() const
173157{
174158 return m_children;
175159}
176−
177−void Session::setManualSurfaceCreation(bool value)
178−{
179− if (value != m_manualSurfaceCreation) {
180− m_manualSurfaceCreation = value;
181− Q_EMIT manualSurfaceCreationChanged(value);
182− }
183−}
tests/mocks/Unity/Application/Session.h−11
@@ -31,11 +31,6 @@ class Session : public QObject
3131 Q_PROPERTY(Session* parentSession READ parentSession NOTIFY parentSessionChanged DESIGNABLE false)
3232 Q_PROPERTY(SessionModel* childSessions READ childSessions DESIGNABLE false CONSTANT)
3333
34− // Only exists in this fake implementation
35−
36− // whether the test code will explicitly control the creation of the application surface
37− Q_PROPERTY(bool manualSurfaceCreation READ manualSurfaceCreation WRITE setManualSurfaceCreation NOTIFY manualSurfaceCreationChanged)
38−
3934public:
4035 explicit Session(const QString &name,
4136 const QUrl& screenshot,
@@ -58,15 +53,11 @@ public:
5853 void insertChildSession(uint index, Session* session);
5954 void removeChildSession(Session* session);
6055
61− bool manualSurfaceCreation() const { return m_manualSurfaceCreation; }
62− void setManualSurfaceCreation(bool value);
63−
6456Q_SIGNALS:
6557 void surfaceChanged(MirSurfaceItem*);
6658 void parentSessionChanged(Session*);
6759 void removed();
6860 void aboutToBeDestroyed();
69− void manualSurfaceCreationChanged(bool value);
7061
7162public Q_SLOTS:
7263 Q_INVOKABLE void createSurface();
@@ -81,8 +72,6 @@ private:
8172 MirSurfaceItem* m_surface;
8273 Session* m_parentSession;
8374 SessionModel* m_children;
84−
85− bool m_manualSurfaceCreation;
8675};
8776
8877Q_DECLARE_METATYPE(Session*)
tests/qmltests/Stages/tst_ApplicationWindow.qml+1−2
@@ -31,7 +31,7 @@ Rectangle {
3131
3232 Component.onCompleted: {
3333 root.fakeApplication = ApplicationManager.add("gallery-app");
34− root.fakeApplication.manualSessionCreation = true;
34+ root.fakeApplication.manualSurfaceCreation = true;
3535 root.fakeApplication.setState(ApplicationInfoInterface.Starting);
3636 }
3737 property QtObject fakeApplication: null
@@ -84,7 +84,6 @@ Rectangle {
8484
8585 if (checked && !fakeApplication.session) {
8686 fakeApplication.createSession();
87− fakeSession.manualSurfaceCreation = true;
8887 fakeSession.createSurface();
8988 } else if (!checked && fakeApplication.session) {
9089 fakeApplication.session.release();
tests/qmltests/Stages/tst_SessionContainer.qml−1
@@ -73,7 +73,6 @@ Rectangle {
7373
7474 if (checked) {
7575 var fakeSession = SessionManager.createSession("music-player", Qt.resolvedUrl("../Dash/artwork/music-player-design.png"));
76− fakeSession.manualSurfaceCreation = true;
7776 fakeSession.createSurface();
7877 sessionContainerLoader.item.session = fakeSession;
7978 } else {