/*
SPDX-FileCopyrightText: 2026 ahouts
SPDX-License-Identifier: GPL-2.0-or-later
*/
#include "slugrewriteruledialog.h"
#include <KLocalizedString>
#include <QDialogButtonBox>
#include <QFormLayout>
#include <QLineEdit>
#include <QPushButton>
#include <QVBoxLayout>
SlugRewriteRuleDialog::SlugRewriteRuleDialog(QWidget *parent)
: QDialog(parent)
{
setWindowTitle(i18nc("@title:window", "Slug Rewrite Rule"));
auto *mainLayout = new QVBoxLayout(this);
auto *formLayout = new QFormLayout;
mMatchPrefixEdit = new QLineEdit(this);
mMatchPrefixEdit->setPlaceholderText(i18nc("@info:placeholder", "https://reddit.com"));
formLayout->addRow(i18nc("@label:textbox", "Match Prefix:"), mMatchPrefixEdit);
mReplacePrefixEdit = new QLineEdit(this);
mReplacePrefixEdit->setPlaceholderText(i18nc("@info:placeholder", "https://old.reddit.com"));
formLayout->addRow(i18nc("@label:textbox", "Replace With:"), mReplacePrefixEdit);
mainLayout->addLayout(formLayout);
mButtonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this);
mainLayout->addWidget(mButtonBox);
connect(mButtonBox, &QDialogButtonBox::accepted, this, &QDialog::accept);
connect(mButtonBox, &QDialogButtonBox::rejected, this, &QDialog::reject);
connect(mMatchPrefixEdit, &QLineEdit::textChanged, this, &SlugRewriteRuleDialog::updateOkButton);
connect(mReplacePrefixEdit, &QLineEdit::textChanged, this, &SlugRewriteRuleDialog::updateOkButton);
updateOkButton();
}
SlugRewriteRuleDialog::~SlugRewriteRuleDialog() = default;
void SlugRewriteRuleDialog::setMatchPrefix(const QString &prefix)
{
mMatchPrefixEdit->setText(prefix);
}
void SlugRewriteRuleDialog::setReplacePrefix(const QString &prefix)
{
mReplacePrefixEdit->setText(prefix);
}
QString SlugRewriteRuleDialog::matchPrefix() const
{
return mMatchPrefixEdit->text().trimmed();
}
QString SlugRewriteRuleDialog::replacePrefix() const
{
return mReplacePrefixEdit->text().trimmed();
}
void SlugRewriteRuleDialog::updateOkButton()
{
mButtonBox->button(QDialogButtonBox::Ok)->setEnabled(!matchPrefix().isEmpty() && !replacePrefix().isEmpty());
}
#include "moc_slugrewriteruledialog.cpp"