Example #1
0
LanguageConfig::LanguageConfig(QWidget *parent) :
    QWidget(parent),
    mSettings(new QSettings(this)),
    mTableWidget(new QTableWidget(this)),
    mSetButton(new QPushButton(tr("Set All"),this)),
    mUnsetButton(new QPushButton(tr("Unset All"),this))
{    
    QHBoxLayout *buttons  = new QHBoxLayout;
    buttons->addWidget(mSetButton);
    buttons->addWidget(mUnsetButton);
    buttons->addStretch();

    QVBoxLayout *main = new QVBoxLayout;
    main->addWidget(mTableWidget);
    main->addLayout(buttons);
    this->setLayout(main);

    mTableWidget->setColumnCount(2);
    mTableWidget->verticalHeader()->hide();
    mTableWidget->horizontalHeader()->setStretchLastSection(true);
    mTableWidget->setHorizontalHeaderItem(0, new QTableWidgetItem(tr("Name")));
    mTableWidget->setHorizontalHeaderItem(1, new QTableWidgetItem(tr("Enabled")));

    mLangList = QP_LANGUAGE_DB->languages();

    mTableWidget->resizeColumnsToContents();
    mTableWidget->setRowCount(mLangList.size());

    for (int i = 0; i < mLangList.count(); ++i) {
        Language lang = mLangList[i];
        const QIcon icon = QIcon(QString(":/flags/flags/%1.png").arg(lang.code()));
        const QString name = lang.name(mNativeNames);

        QTableWidgetItem *item_name = new QTableWidgetItem;
        item_name->setText(name);
        item_name->setIcon(icon);
        item_name->setFlags(item_name->flags() & (~(Qt::ItemIsEditable | Qt::ItemIsSelectable)));
        mTableWidget->setItem(i, 0, item_name);

        QCheckBox *enabled = new QCheckBox(this);
        mCheckBoxList << enabled;
        mTableWidget->setCellWidget(i, 1, enabled);
    }
    mTableWidget->resizeColumnsToContents();
    connect(mSetButton, SIGNAL(clicked()), this, SLOT(pickAll()));
    connect(mUnsetButton, SIGNAL(clicked()), this, SLOT(unpickAll()));

    mSettings->beginGroup(QP_LANGUAGE_CONFIG_GROUP);
}