aboutsummaryrefslogtreecommitdiffstats
path: root/HomeScreen
diff options
context:
space:
mode:
Diffstat (limited to 'HomeScreen')
-rw-r--r--HomeScreen/HomeScreen.pro6
-rw-r--r--HomeScreen/README.md18
-rw-r--r--HomeScreen/resources/popupwidget.ui10
-rw-r--r--HomeScreen/src/applauncherwidget.cpp23
-rw-r--r--HomeScreen/src/applauncherwidget.h7
-rw-r--r--HomeScreen/src/controlbarwidget.cpp4
-rw-r--r--HomeScreen/src/homescreencontrolinterface.cpp6
-rw-r--r--HomeScreen/src/homescreencontrolinterface.h4
-rw-r--r--HomeScreen/src/layouthandler.cpp180
-rw-r--r--HomeScreen/src/layouthandler.h33
-rw-r--r--HomeScreen/src/main.cpp9
-rw-r--r--HomeScreen/src/mainwindow.cpp21
-rw-r--r--HomeScreen/src/mainwindow.h6
-rw-r--r--HomeScreen/src/popupwidget.cpp20
-rw-r--r--HomeScreen/src/popupwidget.h5
15 files changed, 328 insertions, 24 deletions
diff --git a/HomeScreen/HomeScreen.pro b/HomeScreen/HomeScreen.pro
index 458db51..e73539e 100644
--- a/HomeScreen/HomeScreen.pro
+++ b/HomeScreen/HomeScreen.pro
@@ -27,7 +27,8 @@ SOURCES += \
src/controlbarwidget.cpp \
src/statusbarwidget.cpp \
src/applauncherwidget.cpp \
- src/homescreencontrolinterface.cpp
+ src/homescreencontrolinterface.cpp \
+ src/layouthandler.cpp
HEADERS += \
../interfaces/appframework.h \
@@ -40,7 +41,8 @@ HEADERS += \
src/controlbarwidget.h \
src/statusbarwidget.h \
src/applauncherwidget.h \
- src/homescreencontrolinterface.h
+ src/homescreencontrolinterface.h \
+ src/layouthandler.h
INCLUDEPATH += $$OUT_PWD/../interfaces
INCLUDEPATH += ../interfaces/
diff --git a/HomeScreen/README.md b/HomeScreen/README.md
index 7ebc287..01deabb 100644
--- a/HomeScreen/README.md
+++ b/HomeScreen/README.md
@@ -9,6 +9,19 @@ https://gerrit.automotivelinux.org/gerrit/#/admin/projects/staging/HomeScreen
AGL repo for bitbake recipe:
https://gerrit.automotivelinux.org/gerrit/#/admin/projects/AGL/meta-agl-demo/recipes-demo-hmi/HomeScreen/HomeScreen_?.bb
+v0.3.0
+09/30/2016
+
+#new features
+- app launcher improved
+- added first popup combobox selection feature
+-- used for selecting layouts
+- implemented 3 layouts
+-- one app
+-- top on bottom
+-- side by side
+- first interaction with WindowManager
+
v0.2.0
08/05/2016
@@ -67,13 +80,16 @@ v0.0.1
- define and implement control bar D-Bus-interface
- many settings have to be read from the system somewhere during app startup. This is not available right now
- interaction with application manager
+-- done for TIZEN
- interaction with wayland compositor
+-- first version of WindowManager implemented
- define and implement input device event handler
- replace my HMI design with the official AGL design (graphics/icons...)
- implement example HMI layouts
+-- three layouts implemented
- fix font issues on target
- more documentation ;)
-- add animations
+- add animations (?)
- much more...
Thanks to Umar Irshad for his free iconset available here:
diff --git a/HomeScreen/resources/popupwidget.ui b/HomeScreen/resources/popupwidget.ui
index a982adf..4eb8a8b 100644
--- a/HomeScreen/resources/popupwidget.ui
+++ b/HomeScreen/resources/popupwidget.ui
@@ -84,6 +84,16 @@ border-image: url(:/images/transparency.png);</string>
<bool>true</bool>
</property>
</widget>
+ <widget class="QComboBox" name="comboBox">
+ <property name="geometry">
+ <rect>
+ <x>90</x>
+ <y>90</y>
+ <width>211</width>
+ <height>27</height>
+ </rect>
+ </property>
+ </widget>
</widget>
</widget>
<resources/>
diff --git a/HomeScreen/src/applauncherwidget.cpp b/HomeScreen/src/applauncherwidget.cpp
index 94dd357..18c373b 100644
--- a/HomeScreen/src/applauncherwidget.cpp
+++ b/HomeScreen/src/applauncherwidget.cpp
@@ -18,6 +18,9 @@
#include "ui_applauncherwidget.h"
#include <include/daynightmode.hpp>
#include <QSettings>
+#ifdef __i386__
+ #include <QProcess>
+#endif
#define APP_LIST_COLUMN_COUNT 5
@@ -42,8 +45,6 @@ AppLauncherWidget::AppLauncherWidget(QWidget *parent) :
"/AppFramework",
QDBusConnection::sessionBus(),
0);
-
- populateAppList();
}
AppLauncherWidget::~AppLauncherWidget()
@@ -99,7 +100,13 @@ void AppLauncherWidget::populateAppList()
int i;
+#ifdef __arm__
QStringList apps = mp_dBusAppFrameworkProxy->getAvailableAppNames();
+#endif
+#ifdef __i386__
+ QStringList apps;
+ apps.append(QString("/usr/bin/gnome-terminal"));
+#endif
mp_appList->clear();
mp_appTable->setRowCount((apps.size() + (APP_LIST_COLUMN_COUNT - 1)) / APP_LIST_COLUMN_COUNT);
@@ -138,16 +145,24 @@ void AppLauncherWidget::populateAppList()
mp_appTable->item(i / APP_LIST_COLUMN_COUNT,
i % APP_LIST_COLUMN_COUNT)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
}
-
-
}
void AppLauncherWidget::on_tableView_clicked(int row, int col)
{
if (mp_appList->size() > row * APP_LIST_COLUMN_COUNT + col)
{
+#ifdef __arm__
int pid = mp_dBusAppFrameworkProxy->launchApp(mp_appList->at(row * APP_LIST_COLUMN_COUNT + col).getName());
+#endif
+#ifdef __i386__
+ QProcess *myProcess = new QProcess();
+ myProcess->start(mp_appList->at(row * APP_LIST_COLUMN_COUNT + col).getName(), NULL);
+ int pid = myProcess->pid();
+#endif
qDebug("%d, %d: start app %s", row, col, mp_appList->at(row * APP_LIST_COLUMN_COUNT + col).getName().toStdString().c_str());
qDebug("pid: %d", pid);
+
+ // the new app wants to be visible by default
+ newRequestsToBeVisibleApp(pid);
}
}
diff --git a/HomeScreen/src/applauncherwidget.h b/HomeScreen/src/applauncherwidget.h
index 943f6d5..a58148e 100644
--- a/HomeScreen/src/applauncherwidget.h
+++ b/HomeScreen/src/applauncherwidget.h
@@ -34,18 +34,23 @@ class AppLauncherWidget : public QWidget
public:
explicit AppLauncherWidget(QWidget *parent = 0);
~AppLauncherWidget();
+
+ void populateAppList();
+
public slots:
void updateColorScheme();
private slots:
void on_tableView_clicked(int row, int col);
+signals:
+ void newRequestsToBeVisibleApp(int pid);
+
private:
Ui::AppLauncherWidget *mp_ui;
QList<AppInfo> *mp_appList;
QTableWidget *mp_appTable;
org::agl::appframework *mp_dBusAppFrameworkProxy;
- void populateAppList();
};
#endif // APPLAUNCHERWIDGET_H
diff --git a/HomeScreen/src/controlbarwidget.cpp b/HomeScreen/src/controlbarwidget.cpp
index 2cce30b..cafbb7b 100644
--- a/HomeScreen/src/controlbarwidget.cpp
+++ b/HomeScreen/src/controlbarwidget.cpp
@@ -64,12 +64,12 @@ void ControlBarWidget::updateColorScheme()
void ControlBarWidget::on_pushButton_Settings_clicked()
{
- emit settingsButtonPressed();
+ settingsButtonPressed();
}
void ControlBarWidget::on_pushButton_Home_clicked()
{
- emit homeButtonPressed();
+ homeButtonPressed();
}
void ControlBarWidget::on_pushButton_Nav_clicked()
diff --git a/HomeScreen/src/homescreencontrolinterface.cpp b/HomeScreen/src/homescreencontrolinterface.cpp
index defc202..45c3cbd 100644
--- a/HomeScreen/src/homescreencontrolinterface.cpp
+++ b/HomeScreen/src/homescreencontrolinterface.cpp
@@ -34,9 +34,15 @@ void HomeScreenControlInterface::hardKeyPressed(int key)
qDebug("hardKeyPressed NAV key pressed!");
pid = mp_dBusAppFrameworkProxy->launchApp("demoapp");
qDebug("pid: %d", pid);
+ newRequestsToBeVisibleApp(pid);
break;
default:
qDebug("hardKeyPressed %d", key);
break;
}
}
+
+void HomeScreenControlInterface::setToFullscreen(int pid)
+{
+ qDebug("setToFullscreen %d", pid);
+}
diff --git a/HomeScreen/src/homescreencontrolinterface.h b/HomeScreen/src/homescreencontrolinterface.h
index 3480d30..e406686 100644
--- a/HomeScreen/src/homescreencontrolinterface.h
+++ b/HomeScreen/src/homescreencontrolinterface.h
@@ -16,11 +16,13 @@ public:
signals:
-public slots:
+signals:
+ void newRequestsToBeVisibleApp(int pid);
//from homescreen_adapter.h
public Q_SLOTS: // METHODS
void hardKeyPressed(int key);
+ void setToFullscreen(int pid);
private:
HomescreenAdaptor *mp_homeScreenAdaptor;
diff --git a/HomeScreen/src/layouthandler.cpp b/HomeScreen/src/layouthandler.cpp
new file mode 100644
index 0000000..a4d0f91
--- /dev/null
+++ b/HomeScreen/src/layouthandler.cpp
@@ -0,0 +1,180 @@
+#include "layouthandler.h"
+
+LayoutHandler::LayoutHandler(QObject *parent) :
+ QObject(parent),
+ mp_dBusWindowManagerProxy(0),
+ mp_dBusPopupProxy(0),
+ m_visibleApps(),
+ m_invisibleApps(),
+ m_requestsToBeVisibleApps()
+{
+ qDBusRegisterMetaType<SimplePoint>();
+ qDBusRegisterMetaType<QList<SimplePoint> >();
+ qDBusRegisterMetaType<SimpleRect>();
+ qDBusRegisterMetaType<QList<SimpleRect> >();
+
+ qDebug("D-Bus: connect to org.agl.windowmanager /windowmanager");
+ mp_dBusWindowManagerProxy = new org::agl::windowmanager("org.agl.windowmanager",
+ "/windowmanager",
+ QDBusConnection::sessionBus(),
+ 0);
+ qDebug("D-Bus: connect to org.agl.homescreen /Popup");
+ mp_dBusPopupProxy = new org::agl::popup("org.agl.homescreen",
+ "/Popup",
+ QDBusConnection::sessionBus(),
+ 0);
+}
+
+LayoutHandler::~LayoutHandler()
+{
+ delete mp_dBusPopupProxy;
+ delete mp_dBusWindowManagerProxy;
+}
+
+void LayoutHandler::setUpLayers()
+{
+ qDebug("setUpLayers");
+ QList<SimpleRect> surfaceAreas;
+ SimpleRect surfaceArea;
+
+ const int SCREEN_WIDTH = 1080;
+ const int SCREEN_HEIGHT = 1080;
+
+ const int STATUSBAR_HEIGHT = 60;
+ const int STATUSBAR_WIDTH = SCREEN_WIDTH;
+ const int STATUSBAR_X = 0;
+ const int STATUSBAR_Y = 0;
+ const int CONTROLBAR_HEIGHT = 60;
+ const int CONTROLBAR_WIDTH = SCREEN_WIDTH;
+ const int CONTROLBAR_X = 0;
+ const int CONTROLBAR_Y = SCREEN_HEIGHT - CONTROLBAR_HEIGHT;
+
+
+ // layout 1:
+ // one app surface, statusbar, control bar
+ surfaceArea.x = 0;
+ surfaceArea.y = STATUSBAR_HEIGHT;
+ surfaceArea.width = SCREEN_WIDTH;
+ surfaceArea.height = SCREEN_HEIGHT - STATUSBAR_HEIGHT - CONTROLBAR_HEIGHT;
+
+ surfaceAreas.append(surfaceArea);
+
+ mp_dBusWindowManagerProxy->addLayout(1, "one app", surfaceAreas);
+
+
+ surfaceAreas.clear();
+
+ // layout 2:
+ // two app surfaces (one on top of the other), statusbar, control bar
+
+ // top surface
+ surfaceArea.x = 0;
+ surfaceArea.y = STATUSBAR_HEIGHT;
+ surfaceArea.width = SCREEN_WIDTH;
+ surfaceArea.height = (SCREEN_HEIGHT - STATUSBAR_HEIGHT - CONTROLBAR_HEIGHT) / 2;
+
+ surfaceAreas.append(surfaceArea);
+
+ // bottom surface
+ surfaceArea.x = 0;
+ surfaceArea.y = STATUSBAR_HEIGHT / 2;
+ surfaceArea.width = SCREEN_WIDTH;
+ surfaceArea.height = (SCREEN_HEIGHT - STATUSBAR_HEIGHT - CONTROLBAR_HEIGHT) / 2;
+
+ surfaceAreas.append(surfaceArea);
+
+ mp_dBusWindowManagerProxy->addLayout(2, "top on bottom", surfaceAreas);
+
+
+ surfaceAreas.clear();
+
+ // layout 3:
+ // two app surfaces (one besides the other), statusbar, control bar
+
+ // left surface
+ surfaceArea.x = 0;
+ surfaceArea.y = STATUSBAR_HEIGHT;
+ surfaceArea.width = SCREEN_WIDTH / 2;
+ surfaceArea.height = SCREEN_HEIGHT - STATUSBAR_HEIGHT - CONTROLBAR_HEIGHT;
+
+ surfaceAreas.append(surfaceArea);
+
+ // right surface
+ surfaceArea.x = SCREEN_WIDTH / 2;
+ surfaceArea.y = STATUSBAR_HEIGHT;
+ surfaceArea.width = SCREEN_WIDTH / 2;
+ surfaceArea.height = SCREEN_HEIGHT - STATUSBAR_HEIGHT - CONTROLBAR_HEIGHT;
+
+ surfaceAreas.append(surfaceArea);
+
+ mp_dBusWindowManagerProxy->addLayout(3, "side by side", surfaceAreas);
+
+}
+
+void LayoutHandler::makeMeVisible(int pid)
+{
+ qDebug("makeMeVisible %d", pid);
+ m_requestsToBeVisibleApps.append(pid);
+
+ qDebug("m_visibleApps %d", m_visibleApps.size());
+ qDebug("m_invisibleApps %d", m_invisibleApps.size());
+ qDebug("m_requestsToBeVisibleApps %d", m_requestsToBeVisibleApps.size());
+
+ QList<int> availableLayouts = mp_dBusWindowManagerProxy->getAvailableLayouts(m_visibleApps.size() + m_requestsToBeVisibleApps.size());
+ if (0 == availableLayouts.size())
+ {
+ // no layout fits the need!
+ // replace the last app
+ qDebug("no layout fits the need!");
+ qDebug("replace the last app");
+
+ m_invisibleApps.append(m_visibleApps.last());
+ m_visibleApps.removeLast();
+
+ for (int i = 0; i < m_visibleApps.size(); ++i)
+ {
+ mp_dBusWindowManagerProxy->setSurfaceToLayoutArea(i, i);
+ }
+ }
+ if (1 == availableLayouts.size())
+ {
+ // switch to new layout
+ qDebug("switch to new layout %d", availableLayouts.at(0));
+ m_visibleApps.append(m_requestsToBeVisibleApps);
+ m_requestsToBeVisibleApps.clear();
+
+ mp_dBusWindowManagerProxy->setLayoutById(availableLayouts.at(0));
+ for (int i = 0; i < m_visibleApps.size(); ++i)
+ {
+ mp_dBusWindowManagerProxy->setSurfaceToLayoutArea(i, i);
+ }
+ }
+ if (1 < availableLayouts.size())
+ {
+ // more than one layout possible! Ask user.
+ qDebug("more than one layout possible! Ask user.");
+
+ QStringList choices;
+ for (int i = 0; i < availableLayouts.size(); ++i)
+ {
+ choices.append(mp_dBusWindowManagerProxy->getLayoutName(availableLayouts.at(i)));
+ }
+
+ mp_dBusPopupProxy->showPopupComboBox("Select Layout", choices);
+
+ }
+}
+
+void LayoutHandler::setLayoutByName(QString layoutName)
+{
+ // switch to new layout
+ qDebug("setLayout: switch to new layout %s", layoutName.toStdString().c_str());
+ m_visibleApps.append(m_requestsToBeVisibleApps);
+ m_requestsToBeVisibleApps.clear();
+
+ mp_dBusWindowManagerProxy->setLayoutByName(layoutName);
+ for (int i = 0; i < m_visibleApps.size(); ++i)
+ {
+ mp_dBusWindowManagerProxy->setSurfaceToLayoutArea(i, i);
+ }
+}
diff --git a/HomeScreen/src/layouthandler.h b/HomeScreen/src/layouthandler.h
new file mode 100644
index 0000000..62e4fb5
--- /dev/null
+++ b/HomeScreen/src/layouthandler.h
@@ -0,0 +1,33 @@
+#ifndef LAYOUTHANDLER_H
+#define LAYOUTHANDLER_H
+
+#include <QObject>
+#include "windowmanager_proxy.h"
+#include "popup_proxy.h"
+
+class LayoutHandler : public QObject
+{
+ Q_OBJECT
+public:
+ explicit LayoutHandler(QObject *parent = 0);
+ ~LayoutHandler();
+
+ void setUpLayers();
+
+signals:
+
+public slots:
+ void makeMeVisible(int pid);
+ void setLayoutByName(QString layoutName);
+
+private:
+ org::agl::windowmanager *mp_dBusWindowManagerProxy;
+ org::agl::popup *mp_dBusPopupProxy;
+
+ QList<int> m_visibleApps;
+ QList<int> m_invisibleApps;
+ QList<int> m_requestsToBeVisibleApps;
+
+};
+
+#endif // LAYOUTHANDLER_H
diff --git a/HomeScreen/src/main.cpp b/HomeScreen/src/main.cpp
index cc552f2..264468b 100644
--- a/HomeScreen/src/main.cpp
+++ b/HomeScreen/src/main.cpp
@@ -17,7 +17,8 @@
#include "mainwindow.h"
#include <QApplication>
#include <QSysInfo>
-#include <QSharedMemory>
+//#include <QSharedMemory>
+#include <QSurfaceFormat>
int main(int argc, char *argv[])
{
@@ -36,7 +37,11 @@ int main(int argc, char *argv[])
QCoreApplication::setOrganizationDomain("LinuxFoundation");
QCoreApplication::setOrganizationName("AutomotiveGradeLinux");
QCoreApplication::setApplicationName("HomeScreen");
- QCoreApplication::setApplicationVersion("0.2.0");
+ QCoreApplication::setApplicationVersion("0.3.0");
+
+ QSurfaceFormat format;
+ format.setDepthBufferSize(16);
+ format.setStencilBufferSize(8);
MainWindow w;
w.show();
diff --git a/HomeScreen/src/mainwindow.cpp b/HomeScreen/src/mainwindow.cpp
index 174f750..87558aa 100644
--- a/HomeScreen/src/mainwindow.cpp
+++ b/HomeScreen/src/mainwindow.cpp
@@ -26,6 +26,7 @@ MainWindow::MainWindow(QWidget *parent) :
mp_settingsWidget(0),
mp_applauncherwidget(0),
mp_popupWidget(0),
+ mp_layoutHandler(new LayoutHandler()),
mp_dBusDayNightModeProxy(0),
mp_homeScreenControlInterface(0)
{
@@ -68,6 +69,7 @@ MainWindow::MainWindow(QWidget *parent) :
// apply layout
mp_applauncherwidget->move(0, 60);
+
mp_popupWidget = new PopupWidget();
mp_controlBarWidget->raise();
// apply layout
@@ -83,6 +85,8 @@ MainWindow::MainWindow(QWidget *parent) :
QObject::connect(mp_controlBarWidget, SIGNAL(settingsButtonPressed()), mp_settingsWidget, SLOT(raise()));
QObject::connect(mp_controlBarWidget, SIGNAL(homeButtonPressed()), mp_applauncherwidget, SLOT(raise()));
+ QObject::connect(mp_applauncherwidget, SIGNAL(newRequestsToBeVisibleApp(int)), mp_layoutHandler, SLOT(makeMeVisible(int)));
+
// apply color scheme
updateColorScheme();
mp_statusBarWidget->updateColorScheme();
@@ -94,7 +98,13 @@ MainWindow::MainWindow(QWidget *parent) :
// this is only useful during development and will be removed later
setWindowIcon(QIcon(":/icons/home_day.png"));
+ mp_applauncherwidget->populateAppList();
+ mp_layoutHandler->setUpLayers();
+
mp_homeScreenControlInterface = new HomeScreenControlInterface(this);
+ QObject::connect(mp_homeScreenControlInterface, SIGNAL(newRequestsToBeVisibleApp(int)), mp_layoutHandler, SLOT(makeMeVisible(int)));
+
+ QObject::connect(mp_popupWidget, SIGNAL(comboBoxResult(QString)), mp_layoutHandler, SLOT(setLayoutByName(QString)));
}
MainWindow::~MainWindow()
@@ -102,6 +112,9 @@ MainWindow::~MainWindow()
delete mp_homeScreenControlInterface;
delete mp_dBusDayNightModeProxy;
+
+ delete mp_layoutHandler;
+
delete mp_popupWidget;
delete mp_applauncherwidget;
delete mp_settingsWidget;
@@ -151,11 +164,3 @@ void MainWindow::changeEvent(QEvent* event)
QMainWindow::changeEvent(event);
}
-void MainWindow::on_pushButton_clicked()
-{
- // start app
- QProcess process;
- QString file = "vlc";
- process.startDetached(file);
- // manage ivi shell
-}
diff --git a/HomeScreen/src/mainwindow.h b/HomeScreen/src/mainwindow.h
index cb2243e..d94546a 100644
--- a/HomeScreen/src/mainwindow.h
+++ b/HomeScreen/src/mainwindow.h
@@ -28,6 +28,8 @@
#include "applauncherwidget.h"
#include "popupwidget.h"
+#include "layouthandler.h"
+
namespace Ui {
class MainWindow;
@@ -53,8 +55,6 @@ protected:
// called when the translator loaded a new language set
void changeEvent(QEvent* event);
-private slots:
- void on_pushButton_clicked();
private:
Ui::MainWindow *mp_ui;
@@ -67,6 +67,8 @@ private:
AppLauncherWidget *mp_applauncherwidget;
PopupWidget *mp_popupWidget;
+ LayoutHandler *mp_layoutHandler;
+
org::agl::daynightmode *mp_dBusDayNightModeProxy;
HomeScreenControlInterface *mp_homeScreenControlInterface;
diff --git a/HomeScreen/src/popupwidget.cpp b/HomeScreen/src/popupwidget.cpp
index 0a27dff..919bea0 100644
--- a/HomeScreen/src/popupwidget.cpp
+++ b/HomeScreen/src/popupwidget.cpp
@@ -21,7 +21,8 @@
PopupWidget::PopupWidget(QWidget *parent) :
QWidget(parent),
mp_ui(new Ui::PopupWidget),
- mp_popupAdaptor(0)
+ mp_popupAdaptor(0),
+ m_sendComboBoxChoice(false)
{
// publish dbus popup interface
mp_popupAdaptor = new PopupAdaptor((QObject*)this);
@@ -60,6 +61,18 @@ void PopupWidget::updateColorScheme()
void PopupWidget::showPopup(int /*type*/, const QString &text)
{
+ m_sendComboBoxChoice = false;
+ mp_ui->comboBox->hide();
+ this->show();
+ this->raise();
+ mp_ui->label_Text->setText(text);
+}
+
+void PopupWidget::showPopupComboBox(const QString &text, const QStringList &choices)
+{
+ m_sendComboBoxChoice = true;
+ mp_ui->comboBox->addItems(choices);
+ mp_ui->comboBox->show();
this->show();
this->raise();
mp_ui->label_Text->setText(text);
@@ -67,5 +80,10 @@ void PopupWidget::showPopup(int /*type*/, const QString &text)
void PopupWidget::on_pushButton_OK_clicked()
{
+ if (m_sendComboBoxChoice)
+ {
+ comboBoxResult(mp_ui->comboBox->currentText());
+ m_sendComboBoxChoice = false;
+ }
this->close();
}
diff --git a/HomeScreen/src/popupwidget.h b/HomeScreen/src/popupwidget.h
index 7a73b92..eaf41de 100644
--- a/HomeScreen/src/popupwidget.h
+++ b/HomeScreen/src/popupwidget.h
@@ -38,14 +38,19 @@ public slots:
// from popup_adapter.h
public Q_SLOTS: // METHODS
void showPopup(int /*type*/, const QString &text);
+ void showPopupComboBox(const QString &text, const QStringList &choices);
private slots:
void on_pushButton_OK_clicked();
+signals:
+ void comboBoxResult(QString choice);
+
private:
Ui::PopupWidget *mp_ui;
PopupAdaptor *mp_popupAdaptor;
+ bool m_sendComboBoxChoice;
// for showPupupFor LayoutSelection
//QList<QPushButton> m_pushButtons;
};