forked from qt-creator/qt-creator
Keep the function argument widget on the screen
Done with Roberto Raggi.
This commit is contained in:
@@ -61,6 +61,7 @@
|
||||
#include <QtCore/QFile>
|
||||
#include <QtGui/QAction>
|
||||
#include <QtGui/QApplication>
|
||||
#include <QtGui/QDesktopWidget>
|
||||
#include <QtGui/QKeyEvent>
|
||||
#include <QtGui/QLabel>
|
||||
#include <QtGui/QToolButton>
|
||||
@@ -271,9 +272,6 @@ void FunctionArgumentWidget::showFunctionHint(QList<Function *> functionSymbols,
|
||||
m_currentarg = -1;
|
||||
updateArgumentHighlight();
|
||||
|
||||
QPoint pos = m_editor->cursorRect(m_startpos).topLeft();
|
||||
pos.setY(pos.y() - m_popupFrame->sizeHint().height() - 1);
|
||||
m_popupFrame->move(pos);
|
||||
m_popupFrame->show();
|
||||
}
|
||||
|
||||
@@ -382,6 +380,22 @@ void FunctionArgumentWidget::updateHintText()
|
||||
m_numberLabel->setText(tr("%1 of %2").arg(m_current + 1).arg(m_items.size()));
|
||||
|
||||
m_popupFrame->setFixedWidth(m_popupFrame->minimumSizeHint().width());
|
||||
|
||||
const QDesktopWidget *desktop = QApplication::desktop();
|
||||
#ifdef Q_OS_MAC
|
||||
const QRect screen = desktop->availableGeometry(desktop->screenNumber(m_popupFrame));
|
||||
#else
|
||||
const QRect screen = desktop->screenGeometry(desktop->screenNumber(m_popupFrame));
|
||||
#endif
|
||||
|
||||
const QSize sz = m_popupFrame->sizeHint();
|
||||
QPoint pos = m_editor->cursorRect(m_startpos).topLeft();
|
||||
pos.setY(pos.y() - sz.height() - 1);
|
||||
|
||||
if (pos.x() + sz.width() > screen.right())
|
||||
pos.setX(screen.right() - sz.width());
|
||||
|
||||
m_popupFrame->move(pos);
|
||||
}
|
||||
|
||||
CppCodeCompletion::CppCodeCompletion(CppModelManager *manager)
|
||||
|
||||
Reference in New Issue
Block a user