diff --git a/qad/widgets/qcodeedit.cpp b/qad/widgets/qcodeedit.cpp index bd654d7..d874476 100644 --- a/qad/widgets/qcodeedit.cpp +++ b/qad/widgets/qcodeedit.cpp @@ -32,7 +32,7 @@ QCodeEdit::QCodeEdit(QWidget * parent): QWidget(parent) { es_range.format.setBackground(QColor(230, 246, 255)); es_range.format.setProperty(QTextFormat::FullWidthSelection, true); widget_help = new QFrame(); - widget_help->setWindowFlags(Qt::Tool | Qt::FramelessWindowHint); + widget_help->setWindowFlags(Qt::Tool | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint); widget_help->setFocusPolicy(Qt::NoFocus); widget_help->setFrameShadow(QFrame::Sunken); widget_help->setFrameShape(QFrame::StyledPanel); @@ -93,11 +93,11 @@ QCodeEdit::QCodeEdit(QWidget * parent): QWidget(parent) { connect(a, SIGNAL(triggered(bool)), this, SLOT(search_triggered())); addAction(a); - a = new QAction(this); + /*a = new QAction(this); a->setShortcut(QKeySequence("Esc")); a->setShortcutContext(Qt::WidgetWithChildrenShortcut); connect(a, SIGNAL(triggered(bool)), this, SLOT(hideSearch())); - addAction(a); + addAction(a);*/ connect(completer, SIGNAL(itemDoubleClicked(QTreeWidgetItem * ,int)), this, SLOT(commitCompletition())); connect(ui->textCode->verticalScrollBar(), SIGNAL(valueChanged(int)), ui->textLines->verticalScrollBar(), SLOT(setValue(int))); @@ -339,11 +339,6 @@ bool QCodeEdit::eventFilter(QObject * o, QEvent * e) { completer->hide(); hideHelp(); } - if (e->type() == QEvent::ToolTip) { - QTextCursor tc = ui->textCode->cursorForPosition(((QHelpEvent*)e)->pos()); - tc.select(QTextCursor::WordUnderCursor); - raiseHelp(tc); - } return QWidget::eventFilter(o, e); } if (o == ui->textCode) { @@ -352,8 +347,15 @@ bool QCodeEdit::eventFilter(QObject * o, QEvent * e) { QKeyEvent * ke; QChar kc(0); switch (e->type()) { + case QEvent::ToolTip: { + QTextCursor tc = ui->textCode->cursorForPosition(((QHelpEvent*)e)->pos()); + tc.select(QTextCursor::WordUnderCursor); + raiseHelp(tc); + } + break; case QEvent::KeyPress: ke = (QKeyEvent * )e; + //qDebug() << "key" << ke; switch (ke->key()) { case Qt::Key_Space: if (ke->modifiers().testFlag(Qt::ControlModifier)) { @@ -362,8 +364,11 @@ bool QCodeEdit::eventFilter(QObject * o, QEvent * e) { } break; case Qt::Key_Escape: - completer->hide(); hideHelp(); + if (completer->isVisible()) + completer->hide(); + else + hideSearch(); break; case Qt::Key_Up: if (completer->isVisible()) {