summaryrefslogtreecommitdiffstats
path: root/HomeScreen/src
diff options
context:
space:
mode:
Diffstat (limited to 'HomeScreen/src')
-rw-r--r--HomeScreen/src/controlbarwidget.cpp70
-rw-r--r--HomeScreen/src/controlbarwidget.h19
-rw-r--r--HomeScreen/src/main.cpp3
-rw-r--r--HomeScreen/src/mainwindow.cpp79
-rw-r--r--HomeScreen/src/mainwindow.h14
-rw-r--r--HomeScreen/src/popupwidget.cpp64
-rw-r--r--HomeScreen/src/popupwidget.h13
-rw-r--r--HomeScreen/src/settingswidget.cpp100
-rw-r--r--HomeScreen/src/settingswidget.h17
-rw-r--r--HomeScreen/src/statusbarwidget.cpp116
-rw-r--r--HomeScreen/src/statusbarwidget.h11
11 files changed, 182 insertions, 324 deletions
diff --git a/HomeScreen/src/controlbarwidget.cpp b/HomeScreen/src/controlbarwidget.cpp
index e01fe26..dee0207 100644
--- a/HomeScreen/src/controlbarwidget.cpp
+++ b/HomeScreen/src/controlbarwidget.cpp
@@ -16,77 +16,47 @@
#include "controlbarwidget.h"
#include "ui_controlbarwidget.h"
+#include "../interfaces/daynightmode.h"
+#include <QSettings>
ControlBarWidget::ControlBarWidget(QWidget *parent) :
QWidget(parent),
- mp_ui(new Ui::ControlBarWidget),
- mp_settingsWidget(0),
- m_dayNightMode(SystemDayNight::DAYNIGHTMODE_DAY), // TODO: read from system
- mp_dayNightModeProxy(0)
+ mp_ui(new Ui::ControlBarWidget)
{
- // this has to be adopted to the system setup
- mp_dayNightModeProxy = 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)));
-
mp_ui->setupUi(this);
}
ControlBarWidget::~ControlBarWidget()
{
- delete mp_dayNightModeProxy;
- if (0 != mp_settingsWidget)
- {
- delete mp_settingsWidget;
- }
delete mp_ui;
}
-void ControlBarWidget::dayNightModeSlot(int mode)
+void ControlBarWidget::updateColorScheme()
{
- QIcon icon;
- switch (mode)
- {
- case SystemDayNight::DAYNIGHTMODE_DAY:
- m_dayNightMode = SystemDayNight::DAYNIGHTMODE_DAY;
- mp_ui->widget_Background->setStyleSheet(QString("background-image: url(:/images/backgrounds/bg_green_day.png)"));
+ QSettings settings;
+ QSettings settings_cs(QApplication::applicationDirPath() +
+ "/colorschemes/" +
+ settings.value("systemsettings/colorscheme", "default").toString() +
+ "/" +
+ QString::number(settings.value("systemsettings/daynightmode", SystemDayNight::DAYNIGHTMODE_DAY).toInt()) +
+ ".ini",
+ QSettings::IniFormat);
- icon.addFile(QStringLiteral(":/icons/home_day.png"), QSize(), QIcon::Normal, QIcon::Off);
- mp_ui->pushButton_Home->setIcon(icon);
- icon.addFile(QStringLiteral(":/icons/settings_day.png"), QSize(), QIcon::Normal, QIcon::Off);
- mp_ui->pushButton_Settings->setIcon(icon);
- break;
- case SystemDayNight::DAYNIGHTMODE_NIGHT:
- m_dayNightMode = SystemDayNight::DAYNIGHTMODE_NIGHT;
- mp_ui->widget_Background->setStyleSheet(QString("background-image: url(:/images/backgrounds/bg_green_night.png)"));
+ QIcon icon;
+ mp_ui->widget_Background->setStyleSheet(settings_cs.value(QString("ControlBarWidget/widget_Background")).toString());
- icon.addFile(QStringLiteral(":/icons/home_night.png"), QSize(), QIcon::Normal, QIcon::Off);
- mp_ui->pushButton_Home->setIcon(icon);
- icon.addFile(QStringLiteral(":/icons/settings_night.png"), QSize(), QIcon::Normal, QIcon::Off);
- mp_ui->pushButton_Settings->setIcon(icon);
- break;
- default:
- m_dayNightMode = SystemDayNight::DAYNIGHTMODE_UNDEFINED;
- }
+ icon.addFile(settings_cs.value(QString("ControlBarWidget/pushButton_Home")).toString(), QSize(), QIcon::Normal, QIcon::Off);
+ mp_ui->pushButton_Home->setIcon(icon);
+ icon.addFile(settings_cs.value(QString("ControlBarWidget/pushButton_Settings")).toString(), QSize(), QIcon::Normal, QIcon::Off);
+ mp_ui->pushButton_Settings->setIcon(icon);
}
void ControlBarWidget::on_pushButton_Settings_clicked()
{
- if (0 == mp_settingsWidget)
- {
- mp_settingsWidget = new SettingsWidget((QWidget*)parent());
- }
-
- mp_settingsWidget->move(0, 60);
- mp_settingsWidget->show();
+ emit settingsButtonPressed();
}
void ControlBarWidget::on_pushButton_Home_clicked()
{
- if (0 != mp_settingsWidget)
- {
- mp_settingsWidget->hide();
- }
+ emit homeButtonPressed();
}
diff --git a/HomeScreen/src/controlbarwidget.h b/HomeScreen/src/controlbarwidget.h
index 618fa35..0ab382b 100644
--- a/HomeScreen/src/controlbarwidget.h
+++ b/HomeScreen/src/controlbarwidget.h
@@ -18,9 +18,6 @@
#define CONTROLBARWIDGET_H
#include <QWidget>
-#include "../interfaces/daynightmode.h"
-#include "daynightmode_proxy.h"
-#include "settingswidget.h"
namespace Ui {
class ControlBarWidget;
@@ -33,24 +30,18 @@ class ControlBarWidget : public QWidget
public:
explicit ControlBarWidget(QWidget *parent = 0);
~ControlBarWidget();
-
-// day/night mode
-public Q_SLOTS:
- void dayNightModeSlot(int mode);
+public slots:
+ void updateColorScheme();
+signals:
+ void settingsButtonPressed();
+ void homeButtonPressed();
private slots:
void on_pushButton_Settings_clicked();
-
void on_pushButton_Home_clicked();
private:
Ui::ControlBarWidget *mp_ui;
- SettingsWidget *mp_settingsWidget;
- org::agl::daynightmode *mp_dBusDayNightMode_SettingsWidget;
-
- // D-Bus day/night
- SystemDayNight::eDayNightMode m_dayNightMode;
- org::agl::daynightmode *mp_dayNightModeProxy;
};
#endif // CONTROLBARWIDGET_H
diff --git a/HomeScreen/src/main.cpp b/HomeScreen/src/main.cpp
index 9108c35..be8b534 100644
--- a/HomeScreen/src/main.cpp
+++ b/HomeScreen/src/main.cpp
@@ -36,8 +36,9 @@ int main(int argc, char *argv[])
QCoreApplication::setOrganizationDomain("LinuxFoundation");
QCoreApplication::setOrganizationName("AutomotiveGradeLinux");
QCoreApplication::setApplicationName("HomeScreen");
- QCoreApplication::setApplicationVersion("0.1.0");
+ QCoreApplication::setApplicationVersion("0.1.1");
+ // maybe trigger the wayland compositor to position the surface correctly
MainWindow w;
w.move(0, 0);
w.show();
diff --git a/HomeScreen/src/mainwindow.cpp b/HomeScreen/src/mainwindow.cpp
index e2b55a9..bf7735c 100644
--- a/HomeScreen/src/mainwindow.cpp
+++ b/HomeScreen/src/mainwindow.cpp
@@ -16,15 +16,16 @@
#include "mainwindow.h"
#include "ui_mainwindow.h"
+#include "../interfaces/daynightmode.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
mp_ui(new Ui::MainWindow),
mp_statusBarWidget(0),
mp_controlBarWidget(0),
- m_dayNightMode(SystemDayNight::DAYNIGHTMODE_DAY), // TODO: read from system
- mp_dayNightModeProxy(0),
- mp_popupWidget(0)
+ mp_settingsWidget(0),
+ mp_popupWidget(0),
+ mp_dayNightModeProxy(0)
{
// this has to be adopted to the system setup
mp_dayNightModeProxy = new org::agl::daynightmode("org.agl.homescreen.simulator", //"org.agl.systeminfoprovider"
@@ -53,43 +54,74 @@ MainWindow::MainWindow(QWidget *parent) :
// apply layout
mp_controlBarWidget->move(0, 1920-60);
+ mp_settingsWidget = new SettingsWidget(this);
+ mp_settingsWidget->raise();
+ // apply layout
+ mp_settingsWidget->move(0, 60);
+ mp_settingsWidget->hide();
+
mp_popupWidget = new PopupWidget(this);
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()));
+
+ // apply color scheme
+ updateColorScheme();
+ mp_statusBarWidget->updateColorScheme();
+ mp_controlBarWidget->updateColorScheme();
+ mp_settingsWidget->updateColorScheme();
+ mp_popupWidget->updateColorScheme();
+
setWindowIcon(QIcon(":/icons/home_day.png"));
}
MainWindow::~MainWindow()
{
- delete mp_popupWidget;
delete mp_dayNightModeProxy;
+ delete mp_popupWidget;
+ delete mp_settingsWidget;
+ delete mp_controlBarWidget;
delete mp_statusBarWidget;
delete mp_ui;
}
void MainWindow::dayNightModeSlot(int mode)
{
- switch (mode)
- {
- case SystemDayNight::DAYNIGHTMODE_DAY:
- m_dayNightMode = SystemDayNight::DAYNIGHTMODE_DAY;
- mp_ui->widget_Background->setStyleSheet(QString("background-image: url(:/images/backgrounds/bg_blue_day.png)"));
- // home icon
- mp_ui->widget_Home_Icon->setStyleSheet(QString("border-image: url(:/icons/home_day.png) 0 0 0 0 stretch stretch;"));
-
- break;
- case SystemDayNight::DAYNIGHTMODE_NIGHT:
- m_dayNightMode = SystemDayNight::DAYNIGHTMODE_NIGHT;
- mp_ui->widget_Background->setStyleSheet(QString("background-image: url(:/images/backgrounds/bg_blue_night.png)"));
- // home icon
- mp_ui->widget_Home_Icon->setStyleSheet(QString("border-image: url(:/icons/home_night.png) 0 0 0 0 stretch stretch;"));
-
- break;
- default:
- m_dayNightMode = SystemDayNight::DAYNIGHTMODE_UNDEFINED;
- }
+ QSettings settings;
+ settings.setValue("systemsettings/daynightmode", mode);
+ // make sure that everything is written to the settings file before continuing
+ settings.sync();
+
+ updateColorScheme();
+
+ mp_statusBarWidget->updateColorScheme();
+ mp_controlBarWidget->updateColorScheme();
+ mp_settingsWidget->updateColorScheme();
+ mp_popupWidget->updateColorScheme();
+}
+
+void MainWindow::updateColorScheme()
+{
+ QSettings settings;
+ QSettings settings_cs(QApplication::applicationDirPath() +
+ "/colorschemes/" +
+ settings.value("systemsettings/colorscheme", "default").toString() +
+ "/" +
+ 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());
}
void MainWindow::changeEvent(QEvent* event)
@@ -101,4 +133,3 @@ void MainWindow::changeEvent(QEvent* event)
QMainWindow::changeEvent(event);
}
-
diff --git a/HomeScreen/src/mainwindow.h b/HomeScreen/src/mainwindow.h
index af725fd..d984c3e 100644
--- a/HomeScreen/src/mainwindow.h
+++ b/HomeScreen/src/mainwindow.h
@@ -18,13 +18,13 @@
#define MAINWINDOW_H
#include <QMainWindow>
-#include "../interfaces/daynightmode.h"
#include "daynightmode_proxy.h"
-#include "popupwidget.h"
-
#include "statusbarwidget.h"
#include "controlbarwidget.h"
+#include "settingswidget.h"
+#include "popupwidget.h"
+
namespace Ui {
class MainWindow;
@@ -42,6 +42,9 @@ public:
public Q_SLOTS:
void dayNightModeSlot(int mode);
+public slots:
+ void updateColorScheme();
+
protected:
// called when the translator loaded a new language set
void changeEvent(QEvent* event);
@@ -53,11 +56,10 @@ private:
org::agl::daynightmode *mp_dBusDayNightMode_StatusBarWidget;
ControlBarWidget *mp_controlBarWidget;
org::agl::daynightmode *mp_dBusDayNightMode_ControlBarWidget;
+ SettingsWidget *mp_settingsWidget;
+ PopupWidget *mp_popupWidget;
- SystemDayNight::eDayNightMode m_dayNightMode;
org::agl::daynightmode *mp_dayNightModeProxy;
-
- PopupWidget *mp_popupWidget;
};
#endif // MAINWINDOW_H
diff --git a/HomeScreen/src/popupwidget.cpp b/HomeScreen/src/popupwidget.cpp
index 81ffdf7..4a89771 100644
--- a/HomeScreen/src/popupwidget.cpp
+++ b/HomeScreen/src/popupwidget.cpp
@@ -16,21 +16,13 @@
#include "popupwidget.h"
#include "ui_popupwidget.h"
+#include "../interfaces/daynightmode.h"
PopupWidget::PopupWidget(QWidget *parent) :
QWidget(parent),
mp_ui(new Ui::PopupWidget),
- m_dayNightMode(SystemDayNight::DAYNIGHTMODE_DAY), // TODO: read from system
- mp_dayNightModeProxy(0),
mp_popupAdaptor(0)
{
- // this has to be adopted to the system setup
- mp_dayNightModeProxy = 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)));
-
// publish dbus popup interface
mp_popupAdaptor = new PopupAdaptor((QObject*)this);
QDBusConnection dbus = QDBusConnection::sessionBus();
@@ -43,57 +35,29 @@ PopupWidget::PopupWidget(QWidget *parent) :
PopupWidget::~PopupWidget()
{
- delete mp_dayNightModeProxy;
delete mp_popupAdaptor;
delete mp_ui;
}
-void PopupWidget::dayNightModeSlot(int mode)
+void PopupWidget::updateColorScheme()
{
- switch (mode)
- {
- case SystemDayNight::DAYNIGHTMODE_DAY:
- m_dayNightMode = SystemDayNight::DAYNIGHTMODE_DAY;
- mp_ui->widget_Popup->setStyleSheet(QString("QWidget { \
- border: 1px solid #D3D3D3; \
- border-radius: 8px; \
- background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(242, 242, 249, 255), stop:1 rgba(255, 255, 255, 255)); \
- color: #333; \
- padding: 0px; \
- } \
- QWidget:on { \
- background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,stop: 0 #D5D5D5, stop: 1 #EEEEEE); \
- }"));
- mp_ui->label_Text->setStyleSheet(QString("background-color: rgba(109, 109, 109, 0); \
- background-image: url(:/images/transparency.png); \
- border-image: url(:/images/transparency.png);"));
- break;
- case SystemDayNight::DAYNIGHTMODE_NIGHT:
- m_dayNightMode = SystemDayNight::DAYNIGHTMODE_NIGHT;
- mp_ui->widget_Popup->setStyleSheet(QString("QWidget { \
- border: 1px solid #D3D3D3; \
- border-radius: 8px; \
- background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(147, 147, 151, 255), stop:1 rgba(255, 255, 255, 255)); \
- color: #333; \
- padding: 0px; \
- } \
- QWidget:on { \
- background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,stop: 0 #D5D5D5, stop: 1 #EEEEEE); \
- }"));
- mp_ui->label_Text->setStyleSheet(QString("background-color: rgba(109, 109, 109, 0); \
- background-image: url(:/images/transparency.png); \
- border-image: url(:/images/transparency.png);"));
- break;
- default:
- m_dayNightMode = SystemDayNight::DAYNIGHTMODE_UNDEFINED;
- }
+ QSettings settings;
+ QSettings settings_cs(QApplication::applicationDirPath() +
+ "/colorschemes/" +
+ settings.value("systemsettings/colorscheme", "default").toString() +
+ "/" +
+ QString::number(settings.value("systemsettings/daynightmode", SystemDayNight::DAYNIGHTMODE_DAY).toInt()) +
+ ".ini",
+ QSettings::IniFormat);
+
+ mp_ui->widget_Popup->setStyleSheet(settings_cs.value(QString("PopupWidget/widget_Popup")).toString());
+ mp_ui->label_Text->setStyleSheet(settings_cs.value(QString("PopupWidget/label_Text")).toString());
}
-void PopupWidget::showPopup(int type, const QString &text)
+void PopupWidget::showPopup(int /*type*/, const QString &text)
{
this->show();
this->raise();
- qDebug("PopupWidget::showPopup: type %d, text %s", type, text.toStdString().c_str());
mp_ui->label_Text->setText(text);
}
diff --git a/HomeScreen/src/popupwidget.h b/HomeScreen/src/popupwidget.h
index a876576..a54a602 100644
--- a/HomeScreen/src/popupwidget.h
+++ b/HomeScreen/src/popupwidget.h
@@ -20,9 +20,6 @@
#include <QWidget>
#include "../interfaces/popup.h"
#include "popup_adapter.h"
-#include "../interfaces/daynightmode.h"
-#include "daynightmode_proxy.h"
-
namespace Ui {
class PopupWidget;
@@ -35,14 +32,12 @@ class PopupWidget : public QWidget
public:
explicit PopupWidget(QWidget *parent = 0);
~PopupWidget();
-
-// day/night mode
-public Q_SLOTS:
- void dayNightModeSlot(int mode);
+public slots:
+ void updateColorScheme();
// from popup_adapter.h
public Q_SLOTS: // METHODS
- void showPopup(int type, const QString &text);
+ void showPopup(int /*type*/, const QString &text);
private slots:
void on_pushButton_OK_clicked();
@@ -50,8 +45,6 @@ private slots:
private:
Ui::PopupWidget *mp_ui;
- SystemDayNight::eDayNightMode m_dayNightMode;
- org::agl::daynightmode *mp_dayNightModeProxy;
PopupAdaptor *mp_popupAdaptor;
};
diff --git a/HomeScreen/src/settingswidget.cpp b/HomeScreen/src/settingswidget.cpp
index 039b99f..9c6f190 100644
--- a/HomeScreen/src/settingswidget.cpp
+++ b/HomeScreen/src/settingswidget.cpp
@@ -17,20 +17,15 @@
#include "settingswidget.h"
#include "ui_settingswidget.h"
#include <QSettings>
+#include "../interfaces/daynightmode.h"
SettingsWidget::SettingsWidget(QWidget *parent) :
QWidget(parent),
mp_ui(new Ui::SettingsWidget),
- m_dayNightMode(SystemDayNight::DAYNIGHTMODE_DAY), // TODO: read from system
- mp_dayNightModeProxy(0),
mp_translator(0)
{
- // this has to be adopted to the system setup
- mp_dayNightModeProxy = 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)));
+ // no window decoration
+ setWindowFlags(Qt::FramelessWindowHint);
// multi-language support
mp_translator = new QTranslator();
@@ -39,75 +34,40 @@ SettingsWidget::SettingsWidget(QWidget *parent) :
mp_ui->setupUi(this);
- mp_ui->comboBoxLanguage->addItem(QString("English"), QVariant("homescreen_en_US.qm")); // TODO: make this configurable?
+ mp_ui->comboBoxLanguage->addItem(QString("English"), QVariant("homescreen_en_US.qm")); // TODO: make this configurable
mp_ui->comboBoxLanguage->addItem(QString("Deutsch"), QVariant("homescreen_de_DE.qm"));
mp_ui->comboBoxLanguage->addItem(QString("日本語"), QVariant("homescreen_ja_JP.qm"));
+ mp_ui->comboBoxColorScheme->addItem(QString("Default"), QVariant("default")); // TODO: make this configurable
+ mp_ui->comboBoxColorScheme->addItem(QString("Demo 1"), QVariant("demo1"));
+ mp_ui->comboBoxColorScheme->addItem(QString("Demo 2"), QVariant("demo2"));
+
QSettings settings;
mp_ui->comboBoxLanguage->setCurrentIndex(settings.value("systemsettings/language", 0).toInt());
+ mp_ui->comboBoxColorScheme->setCurrentIndex(settings.value("systemsettings/colorschemeindex", 0).toInt());
}
SettingsWidget::~SettingsWidget()
{
delete mp_translator;
- delete mp_dayNightModeProxy;
-
- QSettings settings;
- settings.setValue("systemsettings/language", mp_ui->comboBoxLanguage->currentIndex());
delete mp_ui;
}
-void SettingsWidget::dayNightModeSlot(int mode)
+void SettingsWidget::updateColorScheme()
{
- switch (mode)
- {
- case SystemDayNight::DAYNIGHTMODE_DAY:
- m_dayNightMode = SystemDayNight::DAYNIGHTMODE_DAY;
- mp_ui->widget_Background->setStyleSheet(QString("background-image: url(:/images/backgrounds/bg_blue_day.png);"));
- mp_ui->comboBoxLanguage->setStyleSheet(QString("QComboBox { \
- border: 1px solid #D3D3D3; \
- border-radius: 8px; \
- background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(242, 242, 249, 255), stop:1 rgba(255, 255, 255, 255)); \
- color: #333; \
- padding: 0px; \
- } \
- QComboBox:on { \
- background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,stop: 0 #D5D5D5, stop: 1 #EEEEEE); \
- } \
- QComboBox::drop-down { \
- border: 0px solid; \
- border-radius: 0px; \
- } \
- QComboBox::down-arrow:on { \
- }"));
- // settings icon
- mp_ui->widget_Settings_Icon->setStyleSheet(QString("border-image: url(:/icons/settings_day.png) 0 0 0 0 stretch stretch;"));
- break;
- case SystemDayNight::DAYNIGHTMODE_NIGHT:
- m_dayNightMode = SystemDayNight::DAYNIGHTMODE_NIGHT;
- mp_ui->widget_Background->setStyleSheet(QString("background-image: url(:/images/backgrounds/bg_blue_night.png);"));
- mp_ui->comboBoxLanguage->setStyleSheet(QString("QComboBox { \
- border: 1px solid #D3D3D3; \
- border-radius: 8px; \
- background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(147, 147, 151, 255), stop:1 rgba(255, 255, 255, 255)); \
- color: #333; \
- padding: 0px; \
- } \
- QComboBox:on { \
- background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,stop: 0 #D5D5D5, stop: 1 #EEEEEE); \
- } \
- QComboBox::drop-down { \
- border: 0px solid; \
- border-radius: 0px; \
- } \
- QComboBox::down-arrow:on { \
- }"));
- // settings icon
- mp_ui->widget_Settings_Icon->setStyleSheet(QString("border-image: url(:/icons/settings_night.png) 0 0 0 0 stretch stretch;"));
- break;
- default:
- m_dayNightMode = SystemDayNight::DAYNIGHTMODE_UNDEFINED;
- }
+ QSettings settings;
+ QSettings settings_cs(QApplication::applicationDirPath() +
+ "/colorschemes/" +
+ settings.value("systemsettings/colorscheme", "default").toString() +
+ "/" +
+ QString::number(settings.value("systemsettings/daynightmode", SystemDayNight::DAYNIGHTMODE_DAY).toInt()) +
+ ".ini",
+ QSettings::IniFormat);
+
+ mp_ui->widget_Background->setStyleSheet(settings_cs.value("SettingsWidget/widget_Background").toString());
+ mp_ui->comboBoxLanguage->setStyleSheet(settings_cs.value("SettingsWidget/comboBoxLanguage").toString());
+ mp_ui->comboBoxColorScheme->setStyleSheet(settings_cs.value("SettingsWidget/comboBoxColorScheme").toString());
+ mp_ui->widget_Settings_Icon->setStyleSheet(settings_cs.value("SettingsWidget/widget_Settings_Icon").toString());
}
void SettingsWidget::changeEvent(QEvent* event)
@@ -124,4 +84,18 @@ void SettingsWidget::on_comboBoxLanguage_currentIndexChanged(const QString &)
{
if (0 != mp_translator)
mp_translator->load(mp_ui->comboBoxLanguage->currentData().toString(), ":/translations");
+
+ QSettings settings;
+ settings.setValue("systemsettings/language", mp_ui->comboBoxLanguage->currentIndex());
+}
+
+void SettingsWidget::on_comboBoxColorScheme_currentIndexChanged(const QString &)
+{
+ QSettings settings;
+ settings.setValue("systemsettings/colorscheme", mp_ui->comboBoxColorScheme->currentData().toString());
+ settings.setValue("systemsettings/colorschemeindex", mp_ui->comboBoxColorScheme->currentIndex());
+ // make sure that everything is written to the settings file before continuing
+ settings.sync();
+
+ emit colorSchemeChanged();
}
diff --git a/HomeScreen/src/settingswidget.h b/HomeScreen/src/settingswidget.h
index 15b24bd..e0b3fef 100644
--- a/HomeScreen/src/settingswidget.h
+++ b/HomeScreen/src/settingswidget.h
@@ -19,9 +19,6 @@
#include <QWidget>
#include <QTranslator>
-#include "../interfaces/daynightmode.h"
-#include "daynightmode_proxy.h"
-
namespace Ui {
class SettingsWidget;
@@ -34,10 +31,8 @@ class SettingsWidget : public QWidget
public:
explicit SettingsWidget(QWidget *parent = 0);
~SettingsWidget();
-
-// day/night mode
-public Q_SLOTS:
- void dayNightModeSlot(int mode);
+public slots:
+ void updateColorScheme();
protected:
// called when the translator loaded a new language set
@@ -45,13 +40,13 @@ protected:
private slots:
void on_comboBoxLanguage_currentIndexChanged(const QString &);
+ void on_comboBoxColorScheme_currentIndexChanged(const QString &);
+
+signals:
+ void colorSchemeChanged(void);
private:
Ui::SettingsWidget *mp_ui;
-
- SystemDayNight::eDayNightMode m_dayNightMode;
- org::agl::daynightmode *mp_dayNightModeProxy;
-
QTranslator *mp_translator;
};
diff --git a/HomeScreen/src/statusbarwidget.cpp b/HomeScreen/src/statusbarwidget.cpp
index af144c5..442c3e7 100644
--- a/HomeScreen/src/statusbarwidget.cpp
+++ b/HomeScreen/src/statusbarwidget.cpp
@@ -16,26 +16,18 @@
#include "statusbarwidget.h"
#include "ui_statusbarwidget.h"
+#include "../interfaces/daynightmode.h"
StatusBarWidget::StatusBarWidget(QWidget *parent) :
QWidget(parent),
mp_ui(new Ui::StatusBarWidget),
- m_dayNightMode(SystemDayNight::DAYNIGHTMODE_DAY), // TODO: read from system
- mp_dayNightModeProxy(0),
mp_statusbarAdaptor(0),
mp_statusbarIconURIs(new QMap<int, QString>)
{
- // this has to be adopted to the system setup
- mp_dayNightModeProxy = 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)));
-
// publish statusbar interface
mp_statusbarAdaptor = new StatusbarAdaptor((QObject*)this);
- QDBusConnection dbus = QDBusConnection::sessionBus();
+ QDBusConnection dbus = QDBusConnection::sessionBus();
dbus.registerObject("/StatusBar", this);
dbus.registerService("org.agl.homescreen");
@@ -45,35 +37,37 @@ StatusBarWidget::StatusBarWidget(QWidget *parent) :
StatusBarWidget::~StatusBarWidget()
{
delete mp_statusbarAdaptor;
- delete mp_dayNightModeProxy;
delete mp_ui;
}
-void StatusBarWidget::dayNightModeSlot(int mode)
+void StatusBarWidget::updateColorScheme()
{
- switch (mode)
- {
- case SystemDayNight::DAYNIGHTMODE_DAY:
- m_dayNightMode = SystemDayNight::DAYNIGHTMODE_DAY;
- mp_ui->widget->setStyleSheet(QString("background-image: url(:/images/backgrounds/bg_stripes_day.png)"));
- mp_ui->label_1->setStyleSheet(QString("color: rgb(238, 238, 238); background-image: url(") + mp_statusbarIconURIs->value(1) + QString("); background-repeat: no-repeat;"));
- mp_ui->label_2->setStyleSheet(QString("color: rgb(238, 238, 238); background-image: url(") + mp_statusbarIconURIs->value(2) + QString("); background-repeat: no-repeat;"));
- mp_ui->label_3->setStyleSheet(QString("color: rgb(238, 238, 238); background-image: url(") + mp_statusbarIconURIs->value(3) + QString("); background-repeat: no-repeat;"));
- mp_ui->label_4->setStyleSheet(QString("color: rgb(238, 238, 238); background-image: url(") + mp_statusbarIconURIs->value(4) + QString("); background-repeat: no-repeat;"));
- mp_ui->label_5->setStyleSheet(QString("color: rgb(238, 238, 238); background-image: url(") + mp_statusbarIconURIs->value(5) + QString("); background-repeat: no-repeat;"));
- break;
- case SystemDayNight::DAYNIGHTMODE_NIGHT:
- m_dayNightMode = SystemDayNight::DAYNIGHTMODE_NIGHT;
- mp_ui->widget->setStyleSheet(QString("background-image: url(:/images/backgrounds/bg_stripes_night.png)"));
- mp_ui->label_1->setStyleSheet(QString("color: rgb(177, 177, 177); background-image: url(") + mp_statusbarIconURIs->value(1) + QString("); background-repeat: no-repeat;"));
- mp_ui->label_2->setStyleSheet(QString("color: rgb(177, 177, 177); background-image: url(") + mp_statusbarIconURIs->value(2) + QString("); background-repeat: no-repeat;"));
- mp_ui->label_3->setStyleSheet(QString("color: rgb(177, 177, 177); background-image: url(") + mp_statusbarIconURIs->value(3) + QString("); background-repeat: no-repeat;"));
- mp_ui->label_4->setStyleSheet(QString("color: rgb(177, 177, 177); background-image: url(") + mp_statusbarIconURIs->value(4) + QString("); background-repeat: no-repeat;"));
- mp_ui->label_5->setStyleSheet(QString("color: rgb(177, 177, 177); background-image: url(") + mp_statusbarIconURIs->value(5) + QString("); background-repeat: no-repeat;"));
- break;
- default:
- m_dayNightMode = SystemDayNight::DAYNIGHTMODE_UNDEFINED;
- }
+ QSettings settings;
+ QSettings settings_cs(QApplication::applicationDirPath() +
+ "/colorschemes/" +
+ settings.value("systemsettings/colorscheme", "default").toString() +
+ "/" +
+ QString::number(settings.value("systemsettings/daynightmode", SystemDayNight::DAYNIGHTMODE_DAY).toInt()) +
+ ".ini",
+ QSettings::IniFormat);
+
+ mp_ui->widget->setStyleSheet(settings_cs.value(QString("StatusBarWidget/widget")).toString());
+ mp_ui->label_1->setStyleSheet(settings_cs.value(QString("StatusBarWidget/label_1")).toString());
+ mp_ui->label_2->setStyleSheet(settings_cs.value(QString("StatusBarWidget/label_2")).toString());
+ mp_ui->label_3->setStyleSheet(settings_cs.value(QString("StatusBarWidget/label_3")).toString());
+ mp_ui->label_4->setStyleSheet(settings_cs.value(QString("StatusBarWidget/label_4")).toString());
+ mp_ui->label_5->setStyleSheet(settings_cs.value(QString("StatusBarWidget/label_5")).toString());
+
+ mp_ui->label_1_icon->setStyleSheet(settings_cs.value(QString("StatusBarWidget/label_1_icon")).toString()
+ + QString(" border-image: url(") + mp_statusbarIconURIs->value(1) + QString(") 0 0 0 0 stretch stretch;"));
+ mp_ui->label_2_icon->setStyleSheet(settings_cs.value(QString("StatusBarWidget/label_2_icon")).toString()
+ + QString(" border-image: url(") + mp_statusbarIconURIs->value(2) + QString(") 0 0 0 0 stretch stretch;"));
+ mp_ui->label_3_icon->setStyleSheet(settings_cs.value(QString("StatusBarWidget/label_3_icon")).toString()
+ + QString(" border-image: url(") + mp_statusbarIconURIs->value(3) + QString(") 0 0 0 0 stretch stretch;"));
+ mp_ui->label_4_icon->setStyleSheet(settings_cs.value(QString("StatusBarWidget/label_4_icon")).toString()
+ + QString(" border-image: url(") + mp_statusbarIconURIs->value(4) + QString(") 0 0 0 0 stretch stretch;"));
+ mp_ui->label_5_icon->setStyleSheet(settings_cs.value(QString("StatusBarWidget/label_5_icon")).toString()
+ + QString(" border-image: url(") + mp_statusbarIconURIs->value(5) + QString(") 0 0 0 0 stretch stretch;"));
}
QList<int> StatusBarWidget::getAvailablePlaceholders()
@@ -127,55 +121,7 @@ void StatusBarWidget::setStatusIcon(int placeholderIndex, const QString &iconURI
{
mp_statusbarIconURIs->insert(placeholderIndex, iconURI);
- switch (m_dayNightMode)
- {
- case SystemDayNight::DAYNIGHTMODE_DAY:
- switch (placeholderIndex)
- {
- case 1:
- mp_ui->label_1->setStyleSheet(QString("color: rgb(238, 238, 238); background-image: url(") + mp_statusbarIconURIs->value(placeholderIndex) + QString("); background-repeat: no-repeat;"));
- break;
- case 2:
- mp_ui->label_2->setStyleSheet(QString("color: rgb(238, 238, 238); background-image: url(") + mp_statusbarIconURIs->value(placeholderIndex) + QString("); background-repeat: no-repeat;"));
- break;
- case 3:
- mp_ui->label_3->setStyleSheet(QString("color: rgb(238, 238, 238); background-image: url(") + mp_statusbarIconURIs->value(placeholderIndex) + QString("); background-repeat: no-repeat;"));
- break;
- case 4:
- mp_ui->label_4->setStyleSheet(QString("color: rgb(238, 238, 238); background-image: url(") + mp_statusbarIconURIs->value(placeholderIndex) + QString("); background-repeat: no-repeat;"));
- break;
- case 5:
- mp_ui->label_5->setStyleSheet(QString("color: rgb(238, 238, 238); background-image: url(") + mp_statusbarIconURIs->value(placeholderIndex) + QString("); background-repeat: no-repeat;"));
- break;
- default:
- break;
- }
- break;
- case SystemDayNight::DAYNIGHTMODE_NIGHT:
- switch (placeholderIndex)
- {
- case 1:
- mp_ui->label_1->setStyleSheet(QString("color: rgb(177, 177, 177); background-image: url(") + mp_statusbarIconURIs->value(placeholderIndex) + QString("); background-repeat: no-repeat;"));
- break;
- case 2:
- mp_ui->label_2->setStyleSheet(QString("color: rgb(177, 177, 177); background-image: url(") + mp_statusbarIconURIs->value(placeholderIndex) + QString("); background-repeat: no-repeat;"));
- break;
- case 3:
- mp_ui->label_3->setStyleSheet(QString("color: rgb(177, 177, 177); background-image: url(") + mp_statusbarIconURIs->value(placeholderIndex) + QString("); background-repeat: no-repeat;"));
- break;
- case 4:
- mp_ui->label_4->setStyleSheet(QString("color: rgb(177, 177, 177); background-image: url(") + mp_statusbarIconURIs->value(placeholderIndex) + QString("); background-repeat: no-repeat;"));
- break;
- case 5:
- mp_ui->label_5->setStyleSheet(QString("color: rgb(177, 177, 177); background-image: url(") + mp_statusbarIconURIs->value(placeholderIndex) + QString("); background-repeat: no-repeat;"));
- break;
- default:
- break;
- }
- break;
- default:
- break;
- }
+ updateColorScheme();
}
void StatusBarWidget::setStatusText(int placeholderIndex, const QString &text)
@@ -201,5 +147,3 @@ void StatusBarWidget::setStatusText(int placeholderIndex, const QString &text)
break;
}
}
-
-
diff --git a/HomeScreen/src/statusbarwidget.h b/HomeScreen/src/statusbarwidget.h
index e17f13e..29c236d 100644
--- a/HomeScreen/src/statusbarwidget.h
+++ b/HomeScreen/src/statusbarwidget.h
@@ -18,9 +18,6 @@
#define STATUSBARWIDGET_H
#include <QWidget>
-#include "../interfaces/daynightmode.h"
-#include "daynightmode_proxy.h"
-
#include "statusbar_adapter.h"
namespace Ui {
@@ -34,10 +31,8 @@ class StatusBarWidget : public QWidget
public:
explicit StatusBarWidget(QWidget *parent = 0);
~StatusBarWidget();
-
-// day/night mode
-public Q_SLOTS:
- void dayNightModeSlot(int mode);
+public slots:
+ void updateColorScheme();
// from statusbar_adapter.h
public Q_SLOTS: // METHODS
@@ -50,8 +45,6 @@ public Q_SLOTS: // METHODS
private:
Ui::StatusBarWidget *mp_ui;
- SystemDayNight::eDayNightMode m_dayNightMode;
- org::agl::daynightmode *mp_dayNightModeProxy;
StatusbarAdaptor *mp_statusbarAdaptor;
QMap<int, QString> *mp_statusbarIconURIs;