#include "pagewelcome.h" #include #include #include #include #include "tools.h" typedef QPair LangDesc; PageWelcome::PageWelcome(QString* currentLanguage) : InstallerPage(), m_currentLanguage(currentLanguage) { m_Languages["en_US"] = "English"; m_Languages["ru_RU"] = "Русский"; setupUi(); } void PageWelcome::setupUi() { // widgets m_labelWelcome = new QLabel; m_labelWelcome->setWordWrap( true ); m_labelWelcome->setOpenExternalLinks( true ); m_labelLanguage = new QLabel; m_comboboxLanguages = new QComboBox; // QHBoxLayout* hbox_1 = new QHBoxLayout; hbox_1->addWidget(m_comboboxLanguages); hbox_1->addStretch(); // QVBoxLayout* vbox_1 = new QVBoxLayout; vbox_1->addWidget( m_labelWelcome ); vbox_1->addWidget( m_labelLanguage ); vbox_1->addLayout( hbox_1 ); vbox_1->addStretch(); setLayout(vbox_1); retranslateUi(); } void PageWelcome::retranslateUi() { setTitle( tr("Welcome") ); m_labelWelcome->setText( "" + tr( "

Welcome to Calculate Linux.

" "

http://calculate-linux.org

" ) + "" ); m_labelLanguage->setText( tr("Choose a language: ") ); m_comboboxLanguages->disconnect(SIGNAL(currentIndexChanged(int)), this, SLOT(changeLanguageIndex(int))); m_comboboxLanguages->clear(); unsigned int pos = 0; unsigned int selected = 0; QMapIterator it(m_Languages); while(it.hasNext()) { it.next(); m_comboboxLanguages->addItem( it.value(), QVariant(it.key()) ); if (it.key() == *m_currentLanguage) selected = pos; ++pos; } m_comboboxLanguages->setCurrentIndex(selected); connect(m_comboboxLanguages, SIGNAL(currentIndexChanged(int)), this, SLOT(changeLanguageIndex(int))); } void PageWelcome::changeLanguageIndex(int indx) { QVariant lang = m_comboboxLanguages->itemData(indx); if (lang != QVariant::Invalid) { qDebug() << "Select language: " + lang.toString(); emit changeLanguage( lang.toString() ); } } void PageWelcome::show() { emit changeNext(true); }