psizepolicyedit.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "psizepolicyedit.h"
00021
00022 #include <qlineedit.h>
00023 #include <qlayout.h>
00024 #include <qpainter.h>
00025 #include <qsizepolicy.h>
00026
00027 namespace PropertyLib{
00028
00029 PSizePolicyEdit::PSizePolicyEdit(MultiProperty* property, const QMap<QString, QVariant> &spValues, QWidget* parent, const char* name)
00030 :PropertyWidget(property, parent, name), m_spValues(spValues)
00031 {
00032 QHBoxLayout *l = new QHBoxLayout(this, 0, 0);
00033 m_edit = new QLineEdit(this);
00034 m_edit->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
00035 l->addWidget(m_edit);
00036
00037 m_edit->setReadOnly(true);
00038 }
00039
00040 QVariant PSizePolicyEdit::value() const
00041 {
00042 return m_value;
00043 }
00044
00045 void PSizePolicyEdit::drawViewer(QPainter* p, const QColorGroup& cg, const QRect& r, const QVariant& value)
00046 {
00047 p->setPen(Qt::NoPen);
00048 p->setBrush(cg.background());
00049 p->drawRect(r);
00050 p->drawText(r, Qt::AlignLeft | Qt::AlignVCenter | Qt::SingleLine, QString("%1/%2/%3/%4").arg(findValueDescription(value.toSizePolicy().horData())).arg(findValueDescription(value.toSizePolicy().verData())).arg(value.toSizePolicy().horStretch()).arg(value.toSizePolicy().verStretch()));
00051 }
00052
00053 void PSizePolicyEdit::setValue(const QVariant& value, bool emitChange)
00054 {
00055 m_value = value;
00056 m_edit->setText(QString("%1/%2/%3/%4").arg(findValueDescription(value.toSizePolicy().horData())).arg(findValueDescription(value.toSizePolicy().verData())).arg(value.toSizePolicy().horStretch()).arg(value.toSizePolicy().verStretch()));
00057
00058 if (emitChange)
00059 emit propertyChanged(m_property, value);
00060 }
00061
00062 QString PSizePolicyEdit::findValueDescription(QVariant val) const
00063 {
00064
00065 for (QMap<QString, QVariant>::const_iterator it = m_spValues.begin(); it != m_spValues.end(); ++ it)
00066 {
00067 if (it.data() == val)
00068 return it.key();
00069 }
00070 return "";
00071 }
00072
00073 }
00074
00075 #include "psizepolicyedit.moc"
This file is part of the documentation for KDevelop Version 3.1.2.