aboutsummaryrefslogtreecommitdiffstats
path: root/HomeScreen
diff options
context:
space:
mode:
authorBocklage, Jens <Jens_Bocklage@mentor.com>2016-10-26 15:53:34 +0200
committerBocklage, Jens <Jens_Bocklage@mentor.com>2016-10-26 15:53:34 +0200
commitd19555c038f6f1f89f08f12c88908d84b32b1bbf (patch)
tree548d19680235aa91bc7a4948d78553e8f4a5c27b /HomeScreen
parent4e34fd88f65f8c1cd094ed24bd62d2c7f5418080 (diff)
Implement toggle full screen mechanism.
Signed-off-by: Bocklage, Jens <Jens_Bocklage@mentor.com>
Diffstat (limited to 'HomeScreen')
-rw-r--r--HomeScreen/src/homescreencontrolinterface.cpp5
-rw-r--r--HomeScreen/src/homescreencontrolinterface.h3
-rw-r--r--HomeScreen/src/layouthandler.cpp60
-rw-r--r--HomeScreen/src/layouthandler.h1
-rw-r--r--HomeScreen/src/mainwindow.cpp1
5 files changed, 62 insertions, 8 deletions
diff --git a/HomeScreen/src/homescreencontrolinterface.cpp b/HomeScreen/src/homescreencontrolinterface.cpp
index 45c3cbd..057e742 100644
--- a/HomeScreen/src/homescreencontrolinterface.cpp
+++ b/HomeScreen/src/homescreencontrolinterface.cpp
@@ -42,7 +42,8 @@ void HomeScreenControlInterface::hardKeyPressed(int key)
}
}
-void HomeScreenControlInterface::setToFullscreen(int pid)
+void HomeScreenControlInterface::toggleFullScreen()
{
- qDebug("setToFullscreen %d", pid);
+ qDebug("toggleFullScreen");
+ newRequestsToggleFullscreen();
}
diff --git a/HomeScreen/src/homescreencontrolinterface.h b/HomeScreen/src/homescreencontrolinterface.h
index e406686..e341758 100644
--- a/HomeScreen/src/homescreencontrolinterface.h
+++ b/HomeScreen/src/homescreencontrolinterface.h
@@ -18,11 +18,12 @@ signals:
signals:
void newRequestsToBeVisibleApp(int pid);
+ void newRequestsToggleFullscreen();
//from homescreen_adapter.h
public Q_SLOTS: // METHODS
void hardKeyPressed(int key);
- void setToFullscreen(int pid);
+ void toggleFullScreen();
private:
HomescreenAdaptor *mp_homeScreenAdaptor;
diff --git a/HomeScreen/src/layouthandler.cpp b/HomeScreen/src/layouthandler.cpp
index cb21018..81bc106 100644
--- a/HomeScreen/src/layouthandler.cpp
+++ b/HomeScreen/src/layouthandler.cpp
@@ -36,6 +36,8 @@ void LayoutHandler::setUpLayouts()
qDebug("setUpLayouts");
QList<SimpleRect> surfaceAreas;
SimpleRect surfaceArea;
+ bool isFullScreen;
+ int associatedFullScreenLayout;
const int SCREEN_WIDTH = 1080;
const int SCREEN_HEIGHT = 1920;
@@ -59,7 +61,10 @@ void LayoutHandler::setUpLayouts()
surfaceAreas.append(surfaceArea);
- mp_dBusWindowManagerProxy->addLayout(1, "one app", surfaceAreas);
+ isFullScreen = false;
+ associatedFullScreenLayout = 4;
+
+ mp_dBusWindowManagerProxy->addLayout(1, "one app", isFullScreen, associatedFullScreenLayout, surfaceAreas);
surfaceAreas.clear();
@@ -83,7 +88,10 @@ void LayoutHandler::setUpLayouts()
surfaceAreas.append(surfaceArea);
- mp_dBusWindowManagerProxy->addLayout(2, "top on bottom", surfaceAreas);
+ isFullScreen = false;
+ associatedFullScreenLayout = -1;
+
+ mp_dBusWindowManagerProxy->addLayout(2, "top on bottom", isFullScreen, associatedFullScreenLayout, surfaceAreas);
surfaceAreas.clear();
@@ -107,7 +115,30 @@ void LayoutHandler::setUpLayouts()
surfaceAreas.append(surfaceArea);
- mp_dBusWindowManagerProxy->addLayout(3, "side by side", surfaceAreas);
+ isFullScreen = false;
+ associatedFullScreenLayout = -1;
+
+ mp_dBusWindowManagerProxy->addLayout(3, "side by side", isFullScreen, associatedFullScreenLayout, surfaceAreas);
+
+
+ surfaceAreas.clear();
+
+ // layout 4:
+ // one app surface full screen, no statusbar, no control bar
+ surfaceArea.x = 0;
+ surfaceArea.y = 0;
+ surfaceArea.width = SCREEN_WIDTH;
+ surfaceArea.height = SCREEN_HEIGHT;
+
+ surfaceAreas.append(surfaceArea);
+
+ isFullScreen = true;
+ associatedFullScreenLayout = 1;
+
+ mp_dBusWindowManagerProxy->addLayout(4, "one app full screen", isFullScreen, associatedFullScreenLayout, surfaceAreas);
+
+
+ surfaceAreas.clear();
}
@@ -136,7 +167,7 @@ void LayoutHandler::makeMeVisible(int pid)
for (int i = 0; i < m_visibleApps.size(); ++i)
{
- mp_dBusWindowManagerProxy->setPidToLayoutArea(i, i);
+ mp_dBusWindowManagerProxy->setPidToLayoutArea(m_visibleApps.at(i), i);
}
}
if (1 == availableLayouts.size())
@@ -149,7 +180,7 @@ void LayoutHandler::makeMeVisible(int pid)
mp_dBusWindowManagerProxy->setLayoutById(availableLayouts.at(0));
for (int i = 0; i < m_visibleApps.size(); ++i)
{
- mp_dBusWindowManagerProxy->setPidToLayoutArea(i, i);
+ mp_dBusWindowManagerProxy->setPidToLayoutArea(m_visibleApps.at(i), i);
}
}
if (1 < availableLayouts.size())
@@ -168,6 +199,25 @@ void LayoutHandler::makeMeVisible(int pid)
}
}
+void LayoutHandler::toggleFullscreen()
+{
+ qDebug("toggleFullscreen");
+ int currentLayout = mp_dBusWindowManagerProxy->getLayout();
+ int associatedFullScreenLayout = mp_dBusWindowManagerProxy->getAssociatedFullScreenLayout(currentLayout);
+ if (-1 != associatedFullScreenLayout)
+ {
+ mp_dBusWindowManagerProxy->setLayoutById(associatedFullScreenLayout);
+ for (int i = 0; i < m_visibleApps.size(); ++i)
+ {
+ mp_dBusWindowManagerProxy->setPidToLayoutArea(m_visibleApps.at(i), i);
+ }
+ }
+ else
+ {
+ qDebug("no associatedFullScreenLayout. Cannot switch to full screen.");
+ }
+}
+
void LayoutHandler::setLayoutByName(QString layoutName)
{
// switch to new layout
diff --git a/HomeScreen/src/layouthandler.h b/HomeScreen/src/layouthandler.h
index cc5b59b..c9ca1bf 100644
--- a/HomeScreen/src/layouthandler.h
+++ b/HomeScreen/src/layouthandler.h
@@ -18,6 +18,7 @@ signals:
public slots:
void makeMeVisible(int pid);
+ void toggleFullscreen();
void setLayoutByName(QString layoutName);
private:
diff --git a/HomeScreen/src/mainwindow.cpp b/HomeScreen/src/mainwindow.cpp
index 31ba8d0..c15cca5 100644
--- a/HomeScreen/src/mainwindow.cpp
+++ b/HomeScreen/src/mainwindow.cpp
@@ -100,6 +100,7 @@ MainWindow::MainWindow(QWidget *parent) :
mp_homeScreenControlInterface = new HomeScreenControlInterface(this);
QObject::connect(mp_homeScreenControlInterface, SIGNAL(newRequestsToBeVisibleApp(int)), mp_layoutHandler, SLOT(makeMeVisible(int)));
+ QObject::connect(mp_homeScreenControlInterface, SIGNAL(newRequestsToggleFullscreen()), mp_layoutHandler, SLOT(toggleFullscreen()));
QObject::connect(mp_popupWidget, SIGNAL(comboBoxResult(QString)), mp_layoutHandler, SLOT(setLayoutByName(QString)));
}