Newer
Older
Import / applications / Photoframe / src / settings.cpp
#include <QLabel>
#include <QComboBox>
#include <QLineEdit>
#include <QKeyEvent>
#include <QSettings>
#include <QTranslator>
#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);
	qApp->setFont(QFont(f,20));
	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);
}