From 0f94681b05463c64c75d25d18a0ab2fd1d4af7b9 Mon Sep 17 00:00:00 2001 From: Manuel Nickschas Date: Sat, 14 Mar 2009 23:43:26 +0100 Subject: [PATCH] Various tweaks to the input line in KDE mode MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit * Resize correctly according to font size, fixes #625 * Handle Ctrl+F correctly, thanks to Jesper Thomschütz for input --- src/qtui/inputwidget.cpp | 2 +- src/uisupport/inputline.cpp | 25 ++++++++++++++++++++++--- src/uisupport/inputline.h | 4 +++- 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/qtui/inputwidget.cpp b/src/qtui/inputwidget.cpp index 71f124c8..737387fb 100644 --- a/src/qtui/inputwidget.cpp +++ b/src/qtui/inputwidget.cpp @@ -62,7 +62,7 @@ void InputWidget::setCustomFont(const QVariant &v) { QFont font = v.value(); if(font.family().isEmpty()) font = QApplication::font(); - ui.inputEdit->setFont(font); + ui.inputEdit->setCustomFont(font); } void InputWidget::currentChanged(const QModelIndex ¤t, const QModelIndex &previous) { diff --git a/src/uisupport/inputline.cpp b/src/uisupport/inputline.cpp index a46bed45..d7b18f47 100644 --- a/src/uisupport/inputline.cpp +++ b/src/uisupport/inputline.cpp @@ -19,7 +19,7 @@ ***************************************************************************/ #include "bufferview.h" - +#include "graphicalui.h" #include "inputline.h" #include "tabcompleter.h" @@ -35,12 +35,12 @@ InputLine::InputLine(QWidget *parent) { #ifdef HAVE_KDE //This is done to make the KTextEdit look like a lineedit - setMaximumHeight(document()->size().toSize().height() + 2); + setMaximumHeight(document()->size().toSize().height()); + setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setAcceptRichText(false); setLineWrapMode(NoWrap); enableFindReplace(false); - setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); connect(this, SIGNAL(textChanged()), this, SLOT(on_textChanged())); #endif @@ -51,6 +51,13 @@ InputLine::InputLine(QWidget *parent) InputLine::~InputLine() { } +void InputLine::setCustomFont(const QFont &font) { + setFont(font); +#ifdef HAVE_KDE + setMaximumHeight(document()->size().toSize().height()); +#endif +} + bool InputLine::eventFilter(QObject *watched, QEvent *event) { if(event->type() != QEvent::KeyPress) return false; @@ -73,6 +80,18 @@ bool InputLine::eventFilter(QObject *watched, QEvent *event) { } void InputLine::keyPressEvent(QKeyEvent * event) { + +#ifdef HAVE_KDE + if(event->matches(QKeySequence::Find)) { + QAction *act = GraphicalUi::actionCollection()->action("ToggleSearchBar"); + if(act) { + act->toggle(); + event->accept(); + return; + } + } +#endif + switch(event->key()) { case Qt::Key_Up: event->accept(); diff --git a/src/uisupport/inputline.h b/src/uisupport/inputline.h index dddf8d5e..66742b63 100644 --- a/src/uisupport/inputline.h +++ b/src/uisupport/inputline.h @@ -35,13 +35,15 @@ class InputLine : public #else QLineEdit #endif - { +{ Q_OBJECT public: InputLine(QWidget *parent = 0); ~InputLine(); + void setCustomFont(const QFont &); // should be used instead setFont(), so we can set our size correctly + #ifdef HAVE_KDE //Compatibility methods with the rest of the classes which expects this to be a QLineEdit QString text() { return toPlainText(); }; -- 2.20.1