#include "api_key_dialog.h" #include #include #include #include #include #include #include "yacreader_global_gui.h" ApiKeyDialog::ApiKeyDialog(QWidget *parent) : QDialog(parent) { auto layout = new QVBoxLayout; auto buttonsLayout = new QHBoxLayout; settings = new QSettings(YACReader::getSettingsPath() + "/YACReaderLibrary.ini", QSettings::IniFormat); // TODO unificar la creación del fichero de config con el servidor settings->beginGroup("ComicVine"); QLabel *info = new QLabel(tr("Before you can connect to Comic Vine, you need your own API key. Please, get one free here")); info->setWordWrap(true); info->setOpenExternalLinks(true); edit = new QLineEdit(); edit->setPlaceholderText(tr("Paste here your Comic Vine API key")); connect(edit, &QLineEdit::textChanged, this, &ApiKeyDialog::enableAccept); acceptButton = new QPushButton(tr("Accept")); acceptButton->setDisabled(true); connect(acceptButton, &QAbstractButton::clicked, this, &ApiKeyDialog::saveApiKey); cancelButton = new QPushButton(tr("Cancel")); connect(cancelButton, &QAbstractButton::clicked, this, &QDialog::reject); layout->addWidget(info); layout->addWidget(edit); layout->addStretch(); buttonsLayout->addStretch(); buttonsLayout->addWidget(acceptButton); buttonsLayout->addWidget(cancelButton); layout->addLayout(buttonsLayout); setLayout(layout); resize(400, 150); if (settings->contains(COMIC_VINE_API_KEY)) edit->setText(settings->value(COMIC_VINE_API_KEY).toString()); } ApiKeyDialog::~ApiKeyDialog() { delete settings; } void ApiKeyDialog::enableAccept(const QString &text) { // TODO key validation acceptButton->setEnabled(!text.isEmpty()); } void ApiKeyDialog::saveApiKey() { settings->setValue(COMIC_VINE_API_KEY, edit->text().trimmed()); accept(); }