0001-Use-KTextEdit-instead-of-QLineEdit.-On-most-KDE-syst.patch
| src/uisupport/inputline.cpp | ||
|---|---|---|
| 24 | 24 |
#include "tabcompleter.h" |
| 25 | 25 | |
| 26 | 26 |
InputLine::InputLine(QWidget *parent) |
| 27 |
: QLineEdit(parent), |
|
| 27 |
: |
|
| 28 |
#ifdef HAVE_KDE |
|
| 29 |
KTextEdit(parent), |
|
| 30 |
#else |
|
| 31 |
QLineEdit(parent), |
|
| 32 |
#endif |
|
| 28 | 33 |
idx(0), |
| 29 | 34 |
tabCompleter(new TabCompleter(this)) |
| 30 | 35 |
{
|
| 36 |
#ifdef HAVE_KDE |
|
| 37 |
//This is done to make the KTextEdit look like a lineedit |
|
| 38 |
setMaximumHeight(document()->size().toSize().height()); |
|
| 39 |
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); |
|
| 40 |
setAcceptRichText(false); |
|
| 41 |
connect(this, SIGNAL(textChanged()), this, SLOT(on_textChanged())); |
|
| 42 |
#endif |
|
| 43 | ||
| 31 | 44 |
connect(this, SIGNAL(returnPressed()), this, SLOT(on_returnPressed())); |
| 32 | 45 |
connect(this, SIGNAL(textChanged(QString)), this, SLOT(on_textChanged(QString))); |
| 33 | 46 |
} |
| ... | ... | |
| 91 | 104 |
case Qt::Key_Select: // for Qtopia |
| 92 | 105 |
emit returnPressed(); |
| 93 | 106 | |
| 107 |
#ifdef HAVE_KDE |
|
| 108 |
//Since this is a ktextedit, we don't have this signal "natively" |
|
| 109 |
case Qt::Key_Return: |
|
| 110 |
emit returnPressed(); |
|
| 111 |
#endif |
|
| 112 | ||
| 94 | 113 |
default: |
| 114 |
#ifdef HAVE_KDE |
|
| 115 |
KTextEdit::keyPressEvent(event); |
|
| 116 |
#else |
|
| 95 | 117 |
QLineEdit::keyPressEvent(event); |
| 118 |
#endif |
|
| 96 | 119 |
} |
| 97 | 120 |
} |
| 98 | 121 | |
| src/uisupport/inputline.h | ||
|---|---|---|
| 23 | 23 | |
| 24 | 24 |
#include <QtGui> |
| 25 | 25 | |
| 26 |
#ifdef HAVE_KDE |
|
| 27 |
#include <KDE/KTextEdit> |
|
| 28 |
#endif |
|
| 29 | ||
| 26 | 30 |
class TabCompleter; |
| 27 | 31 | |
| 28 |
class InputLine : public QLineEdit {
|
|
| 32 |
class InputLine : public |
|
| 33 |
#ifdef HAVE_KDE |
|
| 34 |
KTextEdit |
|
| 35 |
#else |
|
| 36 |
QLineEdit |
|
| 37 |
#endif |
|
| 38 |
{
|
|
| 29 | 39 |
Q_OBJECT |
| 30 | 40 | |
| 31 | 41 |
public: |
| 32 | 42 |
InputLine(QWidget *parent = 0); |
| 33 | 43 |
~InputLine(); |
| 34 | 44 | |
| 45 |
#ifdef HAVE_KDE |
|
| 46 |
//Compatibility methods with the rest of the classes which expects this to be a QLineEdit |
|
| 47 |
QString text() { return toPlainText(); };
|
|
| 48 |
int cursorPosition() { return textCursor().position(); };
|
|
| 49 |
void insert(const QString &newText) { insertPlainText(newText); };
|
|
| 50 |
void backspace() { keyPressEvent(new QKeyEvent(QEvent::KeyPress, Qt::Key_Backspace, Qt::NoModifier)); };
|
|
| 51 |
bool hasSelectedText() { return textCursor().hasSelection(); };
|
|
| 52 |
#endif |
|
| 53 | ||
| 35 | 54 |
protected: |
| 36 | 55 |
// virtual bool event(QEvent *); |
| 37 | 56 |
virtual void keyPressEvent(QKeyEvent * event); |
| ... | ... | |
| 40 | 59 |
private slots: |
| 41 | 60 |
void on_returnPressed(); |
| 42 | 61 |
void on_textChanged(QString newText); |
| 62 |
#ifdef HAVE_KDE |
|
| 63 |
//Needed to emulate the signal that QLineEdit has |
|
| 64 |
void on_textChanged() { emit textChanged(toPlainText()); };
|
|
| 65 |
#endif |
|
| 43 | 66 | |
| 44 | 67 |
bool addToHistory(const QString &text, bool temporary = false); |
| 45 | 68 | |
| 46 | 69 |
signals: |
| 47 | 70 |
void sendText(QString text); |
| 71 |
#ifdef HAVE_KDE |
|
| 72 |
//KTextEdit does not provide this signal, so we manually emit it in keyPressEvent() |
|
| 73 |
void returnPressed(); |
|
| 74 |
void textChanged(QString newText); |
|
| 75 |
#endif |
|
| 48 | 76 | |
| 49 | 77 |
private: |
| 50 | 78 |
QStringList history; |
| 51 |
- |
|