/***************************************************************************
 *   Copyright (C) 2021 by Santiago González                               *
 *                                                                         *
 ***( see copyright.txt file at root folder )*******************************/

#pragma once

#include <QWidget>

class CompBase;
class PropDialog;
class QComboBox;
class ComProperty;

class PropVal : public QWidget
{
    public:
        PropVal( PropDialog* parent, CompBase* comp, ComProperty* prop );
        ~PropVal();

        virtual void setup( bool isComp )=0;
        virtual void updtValues() {;}

        virtual QString getValWithUnit() { return ""; }

        QString propName() { return m_propName; }

    protected:
        void addDividers( QComboBox* unitBox, QString unit );
        void addMultipliers( QComboBox* unitBox, QString unit );

        void prepareChange();
        void saveChanges();

        bool m_blocked;
        bool m_undo;
        QString m_oldValue;

        QString m_propName;

        CompBase*    m_component;
        ComProperty* m_property;
        PropDialog*  m_propDialog;
};
