File indexing completed on 2025-02-16 04:55:55

0001 /*
0002    SPDX-FileCopyrightText: 2013-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 #include "selectconvertparameterwidget.h"
0007 
0008 #include <KLocalizedString>
0009 
0010 #include "libksieveui_debug.h"
0011 #include <QHBoxLayout>
0012 #include <QLabel>
0013 #include <QSpinBox>
0014 
0015 using namespace KSieveUi;
0016 SelectConvertParameterWidget::SelectConvertParameterWidget(QWidget *parent)
0017     : QWidget(parent)
0018 {
0019     initialize();
0020 }
0021 
0022 SelectConvertParameterWidget::~SelectConvertParameterWidget() = default;
0023 
0024 void SelectConvertParameterWidget::setCode(const QStringList &code, QString &error)
0025 {
0026     if (code.isEmpty()) {
0027         return;
0028     }
0029 
0030     const auto codeCount{code.count()};
0031     if (codeCount < 2) {
0032         error += i18n("Not enough arguments for SelectConvertParameterWidget. Expected 2 arguments.") + QLatin1Char('\n');
0033         qCDebug(LIBKSIEVEUI_LOG) << " SelectConvertParameterWidget::setCode parsing error ?";
0034         return;
0035     }
0036     if (codeCount > 2) {
0037         error += i18n("Too many arguments for SelectConvertParameterWidget, \"%1\"", code.count()) + QLatin1Char('\n');
0038         qCDebug(LIBKSIEVEUI_LOG) << " too many argument " << code.count();
0039     }
0040 
0041     QString widthStr = code.at(0);
0042     widthStr.remove(QStringLiteral("pix-x="));
0043 
0044     QString heightStr = code.at(1);
0045     heightStr.remove(QStringLiteral("pix-y="));
0046     mWidth->setValue(widthStr.toInt());
0047     mHeight->setValue(heightStr.toInt());
0048 }
0049 
0050 QString SelectConvertParameterWidget::code() const
0051 {
0052     return QStringLiteral("[\"pix-x=%1\",\"pix-y=%2\"]").arg(mWidth->value()).arg(mHeight->value());
0053 }
0054 
0055 void SelectConvertParameterWidget::initialize()
0056 {
0057     auto hbox = new QHBoxLayout(this);
0058     hbox->setContentsMargins({});
0059     mWidth = new QSpinBox(this);
0060     mWidth->setSuffix(i18n(" px"));
0061     mWidth->setMinimum(1);
0062     mWidth->setMaximum(9999);
0063     mWidth->setValue(300);
0064     hbox->addWidget(mWidth);
0065     connect(mWidth, &QSpinBox::valueChanged, this, &SelectConvertParameterWidget::valueChanged);
0066 
0067     auto lab = new QLabel(QStringLiteral("x"), this);
0068     hbox->addWidget(lab);
0069 
0070     mHeight = new QSpinBox(this);
0071     mHeight->setSuffix(i18n(" px"));
0072     mHeight->setMinimum(1);
0073     mHeight->setMaximum(9999);
0074     mHeight->setValue(200);
0075     hbox->addWidget(mHeight);
0076 
0077     connect(mHeight, &QSpinBox::valueChanged, this, &SelectConvertParameterWidget::valueChanged);
0078 }
0079 
0080 #include "moc_selectconvertparameterwidget.cpp"