/* * PDFedit - free program for PDF document manipulation. * Copyright (C) 2006, 2007 PDFedit team: Michal Hocko, * Miroslav Jahoda, * Jozef Misutka, * Martin Petricek * * Project is hosted on http://sourceforge.net/projects/pdfedit */ /** @file BoolProperty - class for widget containing one editable property of type "Bool" (represented by checkbox)
Used as one item in property editor @author Martin Petricek */ #include "boolproperty.h" #include #include #include namespace gui { using namespace std; /** Default constructor of property item @param parent parent Property Editor containing this control @param _name name of this property @param _flags flags of this property items (default 0) */ BoolProperty::BoolProperty(const QString &_name, QWidget *parent/*=0*/, PropertyFlags _flags/*=defaultPropertyMode*/) : Property(_name,parent,_flags) { ed=new QCheckBox(this,"boolproperty_checkbox"); connect(ed,SIGNAL(clicked()),this,SLOT(emitChange())); } /** \copydoc StringProperty::sizeHint */ QSize BoolProperty::sizeHint() const { return ed->sizeHint(); } /** \copydoc StringProperty::resizeEvent */ void BoolProperty::resizeEvent (QResizeEvent *e) { ed->setFixedSize(e->size()); } /** Called when clicked on the checkbox */ void BoolProperty::emitChange() { emit propertyChanged(this); } /** default destructor */ BoolProperty::~BoolProperty() { delete ed; } /** \copydoc StringProperty::setValue */ void BoolProperty::setValue(IProperty *pdfObject) { if (effectiveReadonly) return;//Honor readonly setting CBool* obj=dynamic_cast(pdfObject); assert(obj); bool val=ed->isChecked(); obj->setValue(val); changed=false; } /** \copydoc StringProperty::readValue */ void BoolProperty::readValue(IProperty *pdfObject) { CBool* obj=dynamic_cast(pdfObject); assert(obj); bool val; obj->getValue(val); ed->setChecked(val); changed=false; } //See Property::setDisabled void BoolProperty::setDisabled(bool disabled) { ed->setEnabled(!disabled); } //See Property::applyReadOnly void BoolProperty::applyReadOnly(bool _readonly) { ed->setEnabled(!_readonly); } /** \copydoc Property::isValid() */ bool BoolProperty::isValid() { return true; //Checkbox is always valid :) } } // namespace gui