Warning, file /education/kwordquiz/src/dlglanguage.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002     SPDX-FileCopyrightText: 2004-2009 Peter Hedlund <peter.hedlund@kdemail.net>
0003     SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 
0006 #include "dlglanguage.h"
0007 
0008 #include <QDBusInterface>
0009 #include <QDBusReply>
0010 #include <QDialogButtonBox>
0011 #include <QPushButton>
0012 #include <QVBoxLayout>
0013 
0014 #include <KLocalizedString>
0015 
0016 #include "kwqtablemodel.h"
0017 #include "prefs.h"
0018 
0019 DlgLanguage::DlgLanguage(KWQTableModel *model, QWidget *parent): QDialog(parent)
0020 {
0021     setWindowTitle(i18nc("@title:window", "Column Settings"));
0022     QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok|QDialogButtonBox::Cancel);
0023     QWidget *mainWidget = new QWidget(this);
0024     QVBoxLayout *mainLayout = new QVBoxLayout;
0025     setLayout(mainLayout);
0026     mainLayout->addWidget(mainWidget);
0027     QPushButton *okButton = buttonBox->button(QDialogButtonBox::Ok);
0028     okButton->setDefault(true);
0029     okButton->setShortcut(Qt::CTRL | Qt::Key_Return);
0030     connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept);
0031     connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject);
0032     //PORTING SCRIPT: WARNING mainLayout->addWidget(buttonBox) must be last item in layout. Please move it.
0033     mainLayout->addWidget(buttonBox);
0034 
0035     setupUi(mainWidget);
0036 
0037     const int iconSize = style()->pixelMetric(QStyle::PixelMetric::PM_LargeIconSize);
0038     column1Picture->setPixmap(QIcon::fromTheme(QStringLiteral("question")).pixmap(iconSize));
0039     column2Picture->setPixmap(QIcon::fromTheme(QStringLiteral("answer")).pixmap(iconSize));
0040 
0041 #if 0  // FIXME KF5: Use QCompleter for this
0042     column1TitleLineEdit->completionObject(true)->setItems(Prefs::columnTitles1());
0043     column1TitleLineEdit->setCompletionMode(KGlobalSettings::CompletionAuto);
0044 
0045     column2TitleLineEdit->completionObject(true)->setItems(Prefs::columnTitles2());
0046     column2TitleLineEdit->setCompletionMode(KGlobalSettings::CompletionAuto);
0047 #endif
0048 
0049     column1TitleLineEdit->setText(model->headerData(0, Qt::Horizontal, Qt::DisplayRole).toString());
0050     column2TitleLineEdit->setText(model->headerData(1, Qt::Horizontal, Qt::DisplayRole).toString());
0051 
0052     // keyboard layout
0053     // try to talk to kxbk - get a list of keyboard layouts
0054     QDBusInterface kxbk(QStringLiteral("org.kde.keyboard"), QStringLiteral("/Layouts"), QStringLiteral("org.kde.KeyboardLayouts"));
0055     QDBusReply<QStringList> reply = kxbk.call(QStringLiteral("getLayoutsList"));
0056     if (reply.isValid()) {
0057         QStringList layouts = reply;
0058         column1LayoutComboBox->addItems(layouts);
0059         column2LayoutComboBox->addItems(layouts);
0060         column1LayoutComboBox->setEnabled(true);
0061         column2LayoutComboBox->setEnabled(true);
0062 
0063         QString layout = model->headerData(0, Qt::Horizontal, KWQTableModel::KeyboardLayoutRole).toString();
0064         column1LayoutComboBox->setCurrentIndex(column1LayoutComboBox->findText(layout));
0065 
0066         layout = model->headerData(1, Qt::Horizontal, KWQTableModel::KeyboardLayoutRole).toString();
0067         column2LayoutComboBox->setCurrentIndex(column2LayoutComboBox->findText(layout));
0068 
0069     } else {
0070         qDebug() << "kxkb dbus error";
0071         column1LayoutComboBox->setEnabled(false);
0072         column2LayoutComboBox->setEnabled(false);
0073     }
0074 
0075     QSize s = model->headerData(0, Qt::Horizontal, Qt::SizeHintRole).toSize();
0076     column1WidthSpinBox->setValue(s.width());
0077 
0078     s = model->headerData(1, Qt::Horizontal, Qt::SizeHintRole).toSize();
0079     column2WidthSpinBox->setValue(s.width());
0080 
0081     column1TitleLineEdit->setFocus();
0082 }
0083 
0084 ColumnDataList DlgLanguage::columnData()
0085 {
0086     ColumnDataList result;
0087     ColumnData cd;
0088 
0089     cd.identifier = column1TitleLineEdit->text();
0090     cd.layout = column1LayoutComboBox->currentText();
0091     cd.width = column1WidthSpinBox->value();
0092     result.append(cd);
0093 
0094     cd.identifier = column2TitleLineEdit->text();
0095     cd.layout = column2LayoutComboBox->currentText();
0096     cd.width = column2WidthSpinBox->value();
0097     result.append(cd);
0098 
0099     return result;
0100 }