First integration of new HMI design
[staging/HomeScreen.git] / HomeScreen / src / mainwindow.cpp
index bf7735c..0bf4b5c 100644 (file)
@@ -16,7 +16,7 @@
 
 #include "mainwindow.h"
 #include "ui_mainwindow.h"
-#include "../interfaces/daynightmode.h"
+#include <include/daynightmode.hpp>
 
 MainWindow::MainWindow(QWidget *parent) :
     QMainWindow(parent),
@@ -24,24 +24,30 @@ MainWindow::MainWindow(QWidget *parent) :
     mp_statusBarWidget(0),
     mp_controlBarWidget(0),
     mp_settingsWidget(0),
+    //mp_applauncherwidget(0),
     mp_popupWidget(0),
-    mp_dayNightModeProxy(0)
+    mp_layoutHandler(new LayoutHandler()),
+    mp_dBusDayNightModeProxy(0),
+    mp_proximityAdaptor(0),
+    mp_homeScreenControlInterface(0)
 {
     // this has to be adopted to the system setup
-    mp_dayNightModeProxy = new org::agl::daynightmode("org.agl.homescreen.simulator", //"org.agl.systeminfoprovider"
+    mp_dBusDayNightModeProxy = new org::agl::daynightmode("org.agl.homescreen.simulator", //"org.agl.systeminfoprovider"
                                                       "/",
                                                       QDBusConnection::sessionBus(),
                                                       0);
-    QObject::connect(mp_dayNightModeProxy, SIGNAL(dayNightMode(int)), this, SLOT(dayNightModeSlot(int)));
+    QObject::connect(mp_dBusDayNightModeProxy, SIGNAL(dayNightMode(int)), this, SLOT(dayNightModeSlot(int)));
+
+    mp_proximityAdaptor = new ProximityAdaptor((QObject*)this);
 
     // dbus setup
     QDBusConnection dbus = QDBusConnection::sessionBus();
-
-    dbus.registerObject("/MainWindow", this);
+    dbus.registerObject("/Proximity", this);
     dbus.registerService("org.agl.homescreen");
 
     // no window decoration
     setWindowFlags(Qt::FramelessWindowHint);
+
     mp_ui->setupUi(this);
 
     mp_statusBarWidget = new StatusBarWidget(this);
@@ -58,39 +64,68 @@ MainWindow::MainWindow(QWidget *parent) :
     mp_settingsWidget->raise();
     // apply layout
     mp_settingsWidget->move(0, 60);
-    mp_settingsWidget->hide();
+    //mp_settingsWidget->hide();
+
+    /*mp_applauncherwidget = new AppLauncherWidget(this);
+    mp_applauncherwidget->raise();
+    // apply layout
+    mp_applauncherwidget->move(0, 60);*/
 
-    mp_popupWidget = new PopupWidget(this);
+
+    mp_popupWidget = new PopupWidget();
     mp_controlBarWidget->raise();
     // apply layout
     mp_popupWidget->move(0, 0);
 
+
     QObject::connect(mp_settingsWidget, SIGNAL(colorSchemeChanged()), this, SLOT(updateColorScheme()));
     QObject::connect(mp_settingsWidget, SIGNAL(colorSchemeChanged()), mp_statusBarWidget, SLOT(updateColorScheme()));
     QObject::connect(mp_settingsWidget, SIGNAL(colorSchemeChanged()), mp_controlBarWidget, SLOT(updateColorScheme()));
     QObject::connect(mp_settingsWidget, SIGNAL(colorSchemeChanged()), mp_settingsWidget, SLOT(updateColorScheme()));
     QObject::connect(mp_settingsWidget, SIGNAL(colorSchemeChanged()), mp_popupWidget, SLOT(updateColorScheme()));
 
-    QObject::connect(mp_controlBarWidget, SIGNAL(settingsButtonPressed()), mp_settingsWidget, SLOT(show()));
-    QObject::connect(mp_controlBarWidget, SIGNAL(homeButtonPressed()), mp_settingsWidget, SLOT(hide()));
+    QObject::connect(mp_controlBarWidget, SIGNAL(settingsButtonPressed()), mp_settingsWidget, SLOT(raise()));
+    //QObject::connect(mp_controlBarWidget, SIGNAL(homeButtonPressed()), mp_applauncherwidget, SLOT(raise()));
+    QObject::connect(mp_controlBarWidget, SIGNAL(hideAppLayer()), mp_layoutHandler, SLOT(hideAppLayer()));
+
+    //QObject::connect(mp_applauncherwidget, SIGNAL(newRequestsToBeVisibleApp(int)), mp_layoutHandler, SLOT(makeMeVisible(int)));
+    //QObject::connect(mp_applauncherwidget, SIGNAL(showAppLayer()), mp_layoutHandler, SLOT(showAppLayer()));
+
 
     // apply color scheme
     updateColorScheme();
-    mp_statusBarWidget->updateColorScheme();
-    mp_controlBarWidget->updateColorScheme();
-    mp_settingsWidget->updateColorScheme();
-    mp_popupWidget->updateColorScheme();
 
+    // this is only useful during development and will be removed later
     setWindowIcon(QIcon(":/icons/home_day.png"));
+
+   // mp_applauncherwidget->populateAppList();
+    //mp_layoutHandler->setUpLayouts();
+
+    mp_homeScreenControlInterface = new HomeScreenControlInterface(this);
+    QObject::connect(mp_homeScreenControlInterface, SIGNAL(newRequestGetAllSurfacesOfProcess(int)), mp_layoutHandler, SLOT(requestGetAllSurfacesOfProcess(int)));
+    QObject::connect(mp_homeScreenControlInterface, SIGNAL(newRequestGetSurfaceStatus(int)), mp_layoutHandler, SLOT(requestGetSurfaceStatus(int)));
+    QObject::connect(mp_homeScreenControlInterface, SIGNAL(newRequestsToBeVisibleApp(int)), mp_layoutHandler, SLOT(makeMeVisible(int)));
+    QObject::connect(mp_homeScreenControlInterface, SIGNAL(newRequestRenderSurfaceToArea(int, int)), mp_layoutHandler, SLOT(requestRenderSurfaceToArea(int,int)));
+    QObject::connect(mp_homeScreenControlInterface, SIGNAL(newRequestRenderSurfaceToAreaAllowed(int, int)), mp_layoutHandler, SLOT(requestRenderSurfaceToAreaAllowed(int,int)));
+    QObject::connect(mp_homeScreenControlInterface, SIGNAL(newRequestSurfaceIdToFullScreen(int)), mp_layoutHandler, SLOT(requestSurfaceIdToFullScreen(int)));
+
+    QObject::connect(mp_popupWidget, SIGNAL(comboBoxResult(QString)), mp_layoutHandler, SLOT(setLayoutByName(QString)));
 }
 
 MainWindow::~MainWindow()
 {
-    delete mp_dayNightModeProxy;
+    delete mp_homeScreenControlInterface;
+
+    delete mp_dBusDayNightModeProxy;
+
+    delete mp_layoutHandler;
+
     delete mp_popupWidget;
+    //delete mp_applauncherwidget;
     delete mp_settingsWidget;
     delete mp_controlBarWidget;
     delete mp_statusBarWidget;
+    delete mp_proximityAdaptor;
     delete mp_ui;
 }
 
@@ -102,11 +137,17 @@ void MainWindow::dayNightModeSlot(int mode)
     settings.sync();
 
     updateColorScheme();
+}
 
-    mp_statusBarWidget->updateColorScheme();
-    mp_controlBarWidget->updateColorScheme();
-    mp_settingsWidget->updateColorScheme();
-    mp_popupWidget->updateColorScheme();
+void MainWindow::setObjectDetected(bool detected)
+{
+    qDebug("setObjectDetected %s", detected ? "true" : "false");
+    QSettings settings;
+    settings.setValue("systemsettings/proximityobjectdetected", detected);
+    // make sure that everything is written to the settings file before continuing
+    settings.sync();
+
+    updateColorScheme();
 }
 
 void MainWindow::updateColorScheme()
@@ -116,12 +157,21 @@ void MainWindow::updateColorScheme()
                           "/colorschemes/" +
                           settings.value("systemsettings/colorscheme", "default").toString() +
                           "/" +
+                          QString::number(settings.value("systemsettings/proximityobjectdetected", false).toBool()) +
+                          "/" +
                           QString::number(settings.value("systemsettings/daynightmode", SystemDayNight::DAYNIGHTMODE_DAY).toInt()) +
                           ".ini",
                           QSettings::IniFormat);
 
-    mp_ui->widget_Background->setStyleSheet(settings_cs.value("MainWindow/widget_Background").toString());
-    mp_ui->widget_Home_Icon->setStyleSheet(settings_cs.value("MainWindow/widget_Home_Icon").toString());
+    mp_ui->widget_background->setStyleSheet(settings_cs.value("MainWindow/widget_background_css").toString());
+    mp_ui->widget_homeIcon->setStyleSheet(settings_cs.value("MainWindow/widget_homeIcon_css").toString());
+
+    // update children
+    mp_statusBarWidget->updateColorScheme();
+    mp_controlBarWidget->updateColorScheme();
+    mp_settingsWidget->updateColorScheme();
+    //mp_applauncherwidget->updateColorScheme();
+    mp_popupWidget->updateColorScheme();
 }
 
 void MainWindow::changeEvent(QEvent* event)
@@ -133,3 +183,4 @@ void MainWindow::changeEvent(QEvent* event)
 
     QMainWindow::changeEvent(event);
 }
+