23#include "editoritem.h"
25#include <tqpushbutton.h>
30#include <tqfontmetrics.h>
34#include <tdefontrequester.h>
35#include <tdeaccelmanager.h>
43class FontEditRequester :
public TDEFontRequester
46 FontEditRequester(TQWidget* parent)
49 label()->setPaletteBackgroundColor(palette().active().base());
50 label()->setMinimumWidth(0);
51 label()->setFrameShape(TQFrame::Box);
52 label()->setIndent(-1);
53 label()->setFocusPolicy(TQWidget::ClickFocus);
54 TDEAcceleratorManager::setNoAccel(
label());
55 layout()->remove(
label());
56 layout()->remove(
button());
58 button()->setText(i18n(
"..."));
59 TQToolTip::add(
button(), i18n(
"Change font"));
60 button()->setFocusPolicy(TQWidget::NoFocus);
61 button()->setSizePolicy(TQSizePolicy::Fixed, TQSizePolicy::Fixed);
65 virtual void resizeEvent(TQResizeEvent *e)
67 TDEFontRequester::resizeEvent(e);
69 label()->resize(e->size()-TQSize(
button()->width(),-1));
79FontEdit::FontEdit(
Property *property, TQWidget *parent,
const char *name)
82 m_edit =
new FontEditRequester(
this);
83 m_edit->setMinimumHeight(5);
85 setFocusWidget(m_edit->label());
86 connect(m_edit, TQ_SIGNAL(fontSelected(
const TQFont& )),
this, TQ_SLOT(slotValueChanged(
const TQFont&)));
95 return m_edit->font();
98static TQString sampleText(
const TQVariant &value)
100 TQFontInfo fi(value.toFont());
101 return fi.family() + (fi.bold() ?
" " + i18n(
"Bold") : TQString()) +
102 (fi.italic() ?
" " + i18n(
"Italic") : TQString()) +
103 " " + TQString::number(fi.pointSize());
107FontEdit::setValue(
const TQVariant &value,
bool emitChange)
109 m_edit->blockSignals(
true);
110 m_edit->setFont(value.toFont());
111 m_edit->blockSignals(
false);
112 m_edit->setSampleText(sampleText(value));
114 emit valueChanged(
this);
118FontEdit::drawViewer(TQPainter *p,
const TQColorGroup &,
const TQRect &r,
const TQVariant &value)
121 p->setFont(value.toFont());
123 r2.setLeft(r2.left()+KPROPEDITOR_ITEM_MARGIN);
124 r2.setBottom(r2.bottom()+1);
125 p->drawText(r2, TQt::AlignLeft | TQt::AlignVCenter | TQt::SingleLine, sampleText(value));
129FontEdit::slotValueChanged(
const TQFont &)
131 emit valueChanged(
this);
135FontEdit::eventFilter(TQObject* watched, TQEvent* e)
137 if(e->type() == TQEvent::KeyPress) {
138 TQKeyEvent* ev =
static_cast<TQKeyEvent*
>(e);
139 if(ev->key() == Key_Space) {
140 m_edit->button()->animateClick();
148FontEdit::setReadOnlyInternal(
bool readOnly)
153#include "fontedit.moc"
The base class representing a single property.
TQPushButton * button() const
TDEFontRequester(TQWidget *parent=0L, const char *name=0L, bool onlyFixed=false)
const char * name(StdAction id)
Namespace for a set of classes implementing generic properties framework.