git-svn-id: svn://db.shs.com.ru/libs@350 a8b55f48-bf90-11e4-a774-851b48703e85

This commit is contained in:
2018-01-29 08:35:24 +00:00
parent ab09fb6ec0
commit 3f1fe411db

View File

@@ -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()) {