+ ui.inputEdit->setCustomFont(font);
+}
+
+void InputWidget::setEnableSpellCheck(const QVariant &v) {
+ ui.inputEdit->setSpellCheckEnabled(v.toBool());
+}
+
+void InputWidget::setShowNickSelector(const QVariant &v) {
+ ui.ownNick->setVisible(v.toBool());
+}
+
+void InputWidget::setMaxLines(const QVariant &v) {
+ ui.inputEdit->setMaxHeight(v.toInt());
+}
+
+void InputWidget::setScrollBarsEnabled(const QVariant &v) {
+ ui.inputEdit->setScrollBarsEnabled(v.toBool());
+}
+
+void InputWidget::setMultiLineEnabled(const QVariant &v) {
+ ui.inputEdit->setMode(v.toBool()? MultiLineEdit::MultiLine : MultiLineEdit::SingleLine);
+}
+
+bool InputWidget::eventFilter(QObject *watched, QEvent *event) {
+ if(event->type() != QEvent::KeyPress)
+ return false;
+
+ QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
+
+ // keys from BufferView should be sent to (and focus) the input line
+ BufferView *view = qobject_cast<BufferView *>(watched);
+ if(view) {
+ if(keyEvent->text().length() == 1 && !(keyEvent->modifiers() & (Qt::ControlModifier ^ Qt::AltModifier)) ) { // normal key press
+ QChar c = keyEvent->text().at(0);
+ if(c.isLetterOrNumber() || c.isSpace() || c.isPunct() || c.isSymbol()) {
+ setFocus();
+ QCoreApplication::sendEvent(inputLine(), keyEvent);
+ return true;
+ }
+ }
+ return false;
+ } else if(watched == ui.inputEdit) {
+ if(keyEvent->matches(QKeySequence::Find)) {
+ QAction *act = GraphicalUi::actionCollection()->action("ToggleSearchBar");
+ if(act) {
+ act->toggle();
+ return true;
+ }
+ }
+ return false;
+ }
+ return false;