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"