Libksieve

selectsizewidget.cpp
1 /*
2  Copyright (C) 2013-2020 Laurent Montel <[email protected]>
3 
4  This library is free software; you can redistribute it and/or
5  modify it under the terms of the GNU Library General Public
6  License as published by the Free Software Foundation; either
7  version 2 of the License, or (at your option) any later version.
8 
9  This library is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  Library General Public License for more details.
13 
14  You should have received a copy of the GNU Library General Public License
15  along with this library; see the file COPYING.LIB. If not, write to
16  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17  Boston, MA 02110-1301, USA.
18 */
19 #include "selectsizewidget.h"
20 #include "selectsizetypecombobox.h"
21 
22 #include <QSpinBox>
23 
24 #include <QHBoxLayout>
25 
26 using namespace KSieveUi;
27 
28 SelectSizeWidget::SelectSizeWidget(QWidget *parent)
29  : QWidget(parent)
30 {
31  QHBoxLayout *hbox = new QHBoxLayout(this);
32  hbox->setContentsMargins(0, 0, 0, 0);
33 
34  mSpinBoxSize = new QSpinBox(this);
35  mSpinBoxSize->setMinimum(1);
36  mSpinBoxSize->setMaximum(99999);
37  hbox->addWidget(mSpinBoxSize);
38  connect(mSpinBoxSize, QOverload<int>::of(&QSpinBox::valueChanged), this, &SelectSizeWidget::valueChanged);
39 
40  mSelectSizeType = new SelectSizeTypeComboBox(this);
41  connect(mSelectSizeType, &SelectSizeTypeComboBox::valueChanged, this, &SelectSizeWidget::valueChanged);
42  hbox->addWidget(mSelectSizeType);
43 }
44 
45 SelectSizeWidget::~SelectSizeWidget()
46 {
47 }
48 
49 QString SelectSizeWidget::code() const
50 {
51  const QString type = mSelectSizeType->code();
52  return QStringLiteral("%1%2").arg(mSpinBoxSize->value()).arg(type);
53 }
54 
55 void SelectSizeWidget::setCode(qlonglong value, const QString &identifier, const QString &name, QString &error)
56 {
57  if (identifier == QLatin1Char('K')) {
58  value /= 1024;
59  } else if (identifier == QLatin1Char('M')) {
60  value /= (1024 * 1024);
61  } else if (identifier == QLatin1Char('G')) {
62  value /= (1024 * 1024 * 1024);
63  }
64  mSelectSizeType->setCode(identifier, name, error);
65  mSpinBoxSize->setValue(value);
66 }
void setContentsMargins(int left, int top, int right, int bottom)
void valueChanged(int i)
void addWidget(QWidget *widget, int stretch, Qt::Alignment alignment)
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Fri Jun 5 2020 23:09:20 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.