23#include "editoritem.h"
25#include <tqpushbutton.h>
30#include <tqfontmetrics.h>
34#include <tdeversion.h>
35#include <tdefontrequester.h>
36#include <tdeaccelmanager.h>
47 FontEditRequester(TQWidget* parent)
50 label()->setPaletteBackgroundColor(palette().active().base());
51 label()->setMinimumWidth(0);
52 label()->setFrameShape(TQFrame::Box);
53 label()->setIndent(-1);
54#if TDE_VERSION >= TDE_MAKE_VERSION(3,4,0)
55 label()->setFocusPolicy(TQWidget::ClickFocus);
56 TDEAcceleratorManager::setNoAccel(
label());
58 layout()->remove(
label());
59 layout()->remove(
button());
61 button()->setText(i18n(
"..."));
62 TQToolTip::add(
button(), i18n(
"Change font"));
63 button()->setFocusPolicy(TQWidget::NoFocus);
64 button()->setSizePolicy(TQSizePolicy::Fixed, TQSizePolicy::Fixed);
68 virtual void resizeEvent(TQResizeEvent *e)
70 TDEFontRequester::resizeEvent(e);
72 label()->resize(e->size()-TQSize(
button()->width(),-1));
82FontEdit::FontEdit(
Property *property, TQWidget *parent,
const char *name)
85 m_edit =
new FontEditRequester(
this);
86 m_edit->setMinimumHeight(5);
88 setFocusWidget(m_edit->label());
89 connect(m_edit, TQ_SIGNAL(fontSelected(
const TQFont& )),
this, TQ_SLOT(slotValueChanged(
const TQFont&)));
96FontEdit::value()
const
98 return m_edit->font();
101static TQString sampleText(
const TQVariant &value)
103 TQFontInfo fi(value.toFont());
104 return fi.family() + (fi.bold() ?
" " + i18n(
"Bold") : TQString()) +
105 (fi.italic() ?
" " + i18n(
"Italic") : TQString()) +
106 " " + TQString::number(fi.pointSize());
110FontEdit::setValue(
const TQVariant &value,
bool emitChange)
112 m_edit->blockSignals(
true);
113 m_edit->setFont(value.toFont());
114 m_edit->blockSignals(
false);
115 m_edit->setSampleText(sampleText(value));
117 emit valueChanged(
this);
121FontEdit::drawViewer(TQPainter *p,
const TQColorGroup &,
const TQRect &r,
const TQVariant &value)
124 p->setFont(value.toFont());
126 r2.setLeft(r2.left()+KPROPEDITOR_ITEM_MARGIN);
127 r2.setBottom(r2.bottom()+1);
128 p->drawText(r2, TQt::AlignLeft | TQt::AlignVCenter | TQt::SingleLine, sampleText(value));
132FontEdit::slotValueChanged(
const TQFont &)
134 emit valueChanged(
this);
138FontEdit::eventFilter(TQObject* watched, TQEvent* e)
140 if(e->type() == TQEvent::KeyPress) {
141 TQKeyEvent* ev =
static_cast<TQKeyEvent*
>(e);
142 if(ev->key() == Key_Space) {
143 m_edit->button()->animateClick();
151FontEdit::setReadOnlyInternal(
bool readOnly)
153 setVisibleFlag(!readOnly);
156#include "fontedit.moc"
The base class representing a single property.
TQPushButton * button() const
const char * name(StdAction id)
Namespace for a set of classes implementing generic properties framework.