File indexing completed on 2024-07-07 05:34:58

0001 /*
0002     This file is part of the Okteta Kasten Framework, made within the KDE community.
0003 
0004     SPDX-FileCopyrightText: 2010 Alex Richardson <alex.richardson@gmx.de>
0005 
0006     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0007 */
0008 
0009 #ifndef KASTEN_SIGNEDBITFIELDDATAINFORMATION_HPP
0010 #define KASTEN_SIGNEDBITFIELDDATAINFORMATION_HPP
0011 
0012 #include "abstractbitfielddatainformation.hpp"
0013 
0014 class SignedBitfieldDataInformation : public AbstractBitfieldDataInformation
0015 {
0016     DATAINFORMATION_CLONE(SignedBitfieldDataInformation, AbstractBitfieldDataInformation) {}
0017 
0018 public:
0019     SignedBitfieldDataInformation(const QString& name, BitCount32 width, DataInformation* parent = nullptr)
0020         : AbstractBitfieldDataInformation(name, width, parent)
0021     {}
0022     ~SignedBitfieldDataInformation() override = default;
0023     AllPrimitiveTypes fromVariant(const QVariant& variant, bool* ok) const override;
0024 
0025     QVariant valueToQVariant() const override;
0026     QScriptValue valueAsQScriptValue() const override;
0027     QString valueToQString(AllPrimitiveTypes value) const override;
0028     QVariant valueToQVariant(AllPrimitiveTypes value) const override;
0029 
0030     QWidget* createEditWidget(QWidget* parent) const override;
0031     QVariant dataFromWidget(const QWidget* w) const override;
0032     void setWidgetData(QWidget* w) const override;
0033     /** sign extend the value if it is negative, so it can always be treated as a plain qint64 */
0034     void setValue(AllPrimitiveTypes newVal) override;
0035     Type bitfieldType() const override;
0036 
0037 private:
0038     QString valueStringImpl() const override;
0039     QString typeNameImpl() const override;
0040 };
0041 
0042 #endif /* KASTEN_SIGNEDBITFIELDDATAINFORMATION_HPP */