21#include <tdetoolbar.h>
22#include <tdefontcombo.h>
23#include <kcolorcombo.h>
24#include <tdetoolbarradiogroup.h>
28#include "richtextdialog.h"
36RichTextDialog::RichTextDialog(TQWidget *parent,
const TQString &text)
37: KDialogBase(parent,
"richtext_dialog", true, i18n(
"Edit Rich Text"), Ok|Cancel, Ok, false)
39 TQFrame *frame = makeMainWidget();
40 TQVBoxLayout *l =
new TQVBoxLayout(frame);
43 m_toolbar =
new TDEToolBar(frame);
44 m_toolbar->setFlat(
true);
47 m_fcombo =
new TDEFontCombo(m_toolbar);
48 m_toolbar->insertWidget(TBFont, 40, m_fcombo);
49 connect(m_fcombo, TQ_SIGNAL(textChanged(
const TQString&)),
this, TQ_SLOT(changeFont(
const TQString &)));
51 m_toolbar->insertSeparator();
53 m_colCombo =
new KColorCombo(m_toolbar);
54 m_toolbar->insertWidget(TBColor, 30, m_colCombo);
55 connect(m_colCombo, TQ_SIGNAL(activated(
const TQColor&)),
this, TQ_SLOT(changeColor(
const TQColor&)));
57 m_toolbar->insertButton(
"format-text-bold", TBBold,
true, i18n(
"Bold"));
58 m_toolbar->insertButton(
"format-text-italic", TBItalic,
true, i18n(
"Italic"));
59 m_toolbar->insertButton(
"format-text-underline", TBUnder,
true, i18n(
"Underline"));
60 m_toolbar->setToggle(TBBold,
true);
61 m_toolbar->setToggle(TBItalic,
true);
62 m_toolbar->setToggle(TBUnder,
true);
63 m_toolbar->insertSeparator();
65 m_toolbar->insertButton(
"text_super", TBSuper,
true, i18n(
"Superscript"));
66 m_toolbar->insertButton(
"text_sub", TBSub,
true, i18n(
"Subscript"));
67 m_toolbar->setToggle(TBSuper,
true);
68 m_toolbar->setToggle(TBSub,
true);
69 m_toolbar->insertSeparator();
71 TDEToolBarRadioGroup *group =
new TDEToolBarRadioGroup(m_toolbar);
72 m_toolbar->insertButton(
"format-text-direction-ltr", TBLeft,
true, i18n(
"Left Align"));
73 m_toolbar->setToggle(TBLeft,
true);
74 group->addButton(TBLeft);
75 m_toolbar->insertButton(
"text_center", TBCenter,
true, i18n(
"Centered"));
76 m_toolbar->setToggle(TBCenter,
true);
77 group->addButton(TBCenter);
78 m_toolbar->insertButton(
"format-text-direction-rtl", TBRight,
true, i18n(
"Right Align"));
79 m_toolbar->setToggle(TBRight,
true);
80 group->addButton(TBRight);
81 m_toolbar->insertButton(
"text_block", TBJustify,
true, i18n(
"Justified"));
82 m_toolbar->setToggle(TBJustify,
true);
83 group->addButton(TBJustify);
85 connect(m_toolbar, TQ_SIGNAL(toggled(
int)),
this, TQ_SLOT(buttonToggled(
int)));
87 m_edit =
new KTextEdit(text, TQString(), frame,
"richtext_edit");
88 m_edit->setTextFormat(RichText);
91 connect(m_edit, TQ_SIGNAL(cursorPositionChanged(
int,
int)),
this, TQ_SLOT(cursorPositionChanged(
int,
int)));
92 connect(m_edit, TQ_SIGNAL(clicked(
int,
int)),
this, TQ_SLOT(cursorPositionChanged(
int,
int)));
93 connect(m_edit, TQ_SIGNAL(currentVerticalAlignmentChanged(VerticalAlignment)),
this, TQ_SLOT(slotVerticalAlignmentChanged(VerticalAlignment)));
95 m_edit->moveCursor(TQTextEdit::MoveEnd,
false);
96 cursorPositionChanged(0, 0);
102RichTextDialog::text()
104 return m_edit->text();
108RichTextDialog::changeFont(
const TQString &font)
110 m_edit->setFamily(font);
114RichTextDialog::changeColor(
const TQColor &color)
116 m_edit->setColor(color);
120RichTextDialog::buttonToggled(
int id)
122 bool isOn = m_toolbar->isButtonOn(
id);
126 case TBBold: m_edit->setBold(isOn);
break;
127 case TBItalic: m_edit->setItalic(isOn);
break;
128 case TBUnder: m_edit->setUnderline(isOn);
break;
131 if(isOn && m_toolbar->isButtonOn(TBSub))
132 m_toolbar->setButton(TBSub,
false);
133 m_edit->setVerticalAlignment(isOn ? TQTextEdit::AlignSuperScript : TQTextEdit::AlignNormal);
138 if(isOn && m_toolbar->isButtonOn(TBSuper))
139 m_toolbar->setButton(TBSuper,
false);
140 m_edit->setVerticalAlignment(isOn ? TQTextEdit::AlignSubScript : TQTextEdit::AlignNormal);
143 case TBLeft:
case TBCenter:
144 case TBRight:
case TBJustify:
149 case TBLeft: m_edit->setAlignment(TQt::AlignLeft);
break;
150 case TBCenter: m_edit->setAlignment(TQt::AlignCenter);
break;
151 case TBRight: m_edit->setAlignment(TQt::AlignRight);
break;
152 case TBJustify: m_edit->setAlignment(TQt::AlignJustify);
break;
162RichTextDialog::cursorPositionChanged(
int,
int)
164 m_fcombo->setCurrentFont(m_edit->currentFont().family());
165 m_colCombo->setColor(m_edit->color());
166 m_toolbar->setButton(TBBold, m_edit->bold());
167 m_toolbar->setButton(TBItalic, m_edit->italic());
168 m_toolbar->setButton(TBUnder, m_edit->underline());
171 switch(m_edit->alignment())
173 case TQt::AlignLeft:
id = TBLeft;
break;
174 case TQt::AlignCenter:
id = TBCenter;
break;
175 case TQt::AlignRight:
id = TBRight;
break;
176 case TQt::AlignJustify:
id = TBJustify;
break;
177 default:
id = TBLeft;
break;
179 m_toolbar->setButton(
id,
true);
183RichTextDialog::slotVerticalAlignmentChanged(VerticalAlignment align)
187 case TQTextEdit::AlignSuperScript:
189 m_toolbar->setButton(TBSuper,
true);
190 m_toolbar->setButton(TBSub,
false);
193 case TQTextEdit::AlignSubScript:
195 m_toolbar->setButton(TBSub,
true);
196 m_toolbar->setButton(TBSuper,
false);
201 m_toolbar->setButton(TBSuper,
false);
202 m_toolbar->setButton(TBSub,
false);
210#include "richtextdialog.moc"