#include <QLabel>
#include <QComboBox>
#include <QLineEdit>
#include <QKeyEvent>
#include <QSettings>
#include <QTranslator>
#include <QFontDatabase>
#include <QApplication>
#include "manager.h"
#include "settings.h"
#include "image.h"
Settings::Settings(QWidget *parent) : Stage(parent)
{
QSettings settings("dpf.ini", QSettings::IniFormat);
QLabel *icon = new QLabel(this);
icon->setPixmap(Image::icon("settings",72));
icon->move(10, 10);
const char *title = QT_TRANSLATE_NOOP("DPF","Settings");
new Text(this, 110, 20, title, 37, QColor(0,0,0));
new Text(this, 108, 18, title, 37, QColor(0xEf,0xEF,0xFC));
//
// Appearance
// Language
// Font
// Color
// Background
// System
// Volume
// Brightness
// Rotation
// Network
// IP mode, IP, Netmask, Broadcast
// Workgroup
// Internet - flicker username/password
//
new Text(this, 50, 120, QT_TRANSLATE_NOOP("DPF","IP Mode:"), 20, QColor(0,0,0));
new Text(this, 50, 170, QT_TRANSLATE_NOOP("DPF","IP:"), 20, QColor(0,0,0));
new Text(this, 50, 220, QT_TRANSLATE_NOOP("DPF","Language:"), 20, QColor(0,0,0));
new Text(this, 50, 270, QT_TRANSLATE_NOOP("DPF","Font:"), 20, QColor(0,0,0));
new Text(this, 50, 320, QT_TRANSLATE_NOOP("DPF","Brightness:"), 20, QColor(0,0,0));
new Text(this, 50, 370, QT_TRANSLATE_NOOP("DPF","Volume:"), 20, QColor(0,0,0));
new Text(this, 50-2, 120-2, QT_TRANSLATE_NOOP("DPF","IP Mode:"), 20, QColor(255,255,255));
new Text(this, 50-2, 170-2, QT_TRANSLATE_NOOP("DPF","IP:"), 20, QColor(255,255,255));
new Text(this, 50-2, 220-2, QT_TRANSLATE_NOOP("DPF","Language:"), 20, QColor(255,255,255));
new Text(this, 50-2, 270-2, QT_TRANSLATE_NOOP("DPF","Font:"), 20, QColor(255,255,255));
new Text(this, 50-2, 320-2, QT_TRANSLATE_NOOP("DPF","Brightness:"), 20, QColor(255,255,255));
new Text(this, 50-2, 370-2, QT_TRANSLATE_NOOP("DPF","Volume:"), 20, QColor(255,255,255));
QComboBox *e = new QComboBox(this);
e->setGeometry(250, 120, 200, 36);
e->addItem("DHCP");
e->addItem("Static");
QLineEdit *f = new QLineEdit(this);
f->setGeometry(250, 170, 200, 36);
QComboBox *langSelector = new QComboBox(this);
langSelector->setGeometry(250, 220, 200, 36);
langSelector->addItem("English");
langSelector->addItem("Japanese");
langSelector->addItem("Chinese");
langSelector->addItem("Korean");
langSelector->setCurrentIndex(langSelector->findText(settings.value("Language").toString()));
connect(langSelector,SIGNAL(activated(QString)),this,SLOT(languageChanged(QString)));
QComboBox *fontSelector = new QComboBox(this);
fontSelector->setGeometry(250, 270, 200, 36);
fontSelector->addItem("Automatica BRK");
fontSelector->addItem("Digital Readout");
fontSelector->addItem("Eclipse");
fontSelector->addItem("MammaGamma");
fontSelector->addItem("Moderna");
fontSelector->addItem("neo-geo");
fontSelector->addItem("Neustyle");
fontSelector->addItem("New Detroit");
fontSelector->addItem("Unispace");
fontSelector->addItem("Verdana");
fontSelector->addItem("Yielding");
fontSelector->setCurrentIndex(fontSelector->findText(settings.value("Font").toString()));
connect(fontSelector,SIGNAL(activated(QString)),this,SLOT(fontChanged(QString)));
QComboBox *bgSelector = new QComboBox(this);
bgSelector->setGeometry(250, 320, 200, 36);
bgSelector->addItem("image");
bgSelector->addItem("blue");
bgSelector->addItem("green");
bgSelector->setCurrentIndex(bgSelector->findText(settings.value("Background").toString()));
connect(bgSelector,SIGNAL(activated(QString)),this,SLOT(backgroundComboChanged(QString)));
}
Settings::~Settings()
{
}
void Settings::fontChanged(QString f)
{
QSettings settings("dpf.ini", QSettings::IniFormat);
settings.setValue("Font", f);
QFontDatabase::addApplicationFont("fonts/" + f + ".ttf");
qApp->setFont(QFont(f, 25));
g_Manager->emitFontChanged(f);
}
void Settings::languageChanged(QString lang)
{
QSettings settings("dpf.ini", QSettings::IniFormat);
settings.setValue("Language", lang);
static QTranslator *translator = 0;
if (translator)
delete translator;
translator = new QTranslator;
translator->load("DPF_" + lang, "i18n");
qApp->installTranslator(translator);
g_Manager->emitLanguageChanged(lang);
}
void Settings::colorChanged(QString color)
{
QSettings settings("dpf.ini", QSettings::IniFormat);
settings.setValue("Color", color);
// qApp->setFont(QFont(f,20));
g_Manager->emitColorChanged(color);
}
void Settings::backgroundComboChanged(QString background)
{
QSettings settings("dpf.ini", QSettings::IniFormat);
settings.setValue("Background", background);
g_Manager->emitBackgroundChanged(background);
}
void Settings::keyPressEvent(QKeyEvent *)
{
hide();
emit setStage(-1);
}