summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Stenger <christian.stenger@qt.io>2020-08-06 13:42:30 +0200
committerhjk <hjk@qt.io>2020-08-14 08:00:20 +0000
commit30cdae912f1ab7c0960d172189a69b6893d185eb (patch)
treefad463a762b18486602522a4a366cfd8bd3905ec
parenta71dbd4b33ba01feb0da71cdb360314c47f5553d (diff)
downloadqt-creator-30cdae912f1ab7c0960d172189a69b6893d185eb.tar.gz
Prepare for QDesktopWidget removal
Change-Id: I9aa2eadea16b5795ee2c4e7b21a24f356cfd3b03 Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
-rw-r--r--src/libs/utils/tooltip/tips.cpp45
-rw-r--r--src/libs/utils/tooltip/tips.h11
-rw-r--r--src/libs/utils/tooltip/tooltip.cpp27
-rw-r--r--src/libs/utils/tooltip/tooltip.h4
-rw-r--r--src/plugins/coreplugin/actionmanager/actionmanager.cpp5
-rw-r--r--src/plugins/debugger/debuggertooltipmanager.cpp4
-rw-r--r--src/plugins/texteditor/codeassist/functionhintproposalwidget.cpp5
-rw-r--r--src/plugins/texteditor/codeassist/genericproposalwidget.cpp12
8 files changed, 35 insertions, 78 deletions
diff --git a/src/libs/utils/tooltip/tips.cpp b/src/libs/utils/tooltip/tips.cpp
index 14bebe7c84..cab6bad63c 100644
--- a/src/libs/utils/tooltip/tips.cpp
+++ b/src/libs/utils/tooltip/tips.cpp
@@ -29,25 +29,21 @@
#include <utils/hostosinfo.h>
#include <utils/qtcassert.h>
-#include <QRect>
+#include <QApplication>
#include <QColor>
+#include <QFontMetrics>
+#include <QPaintEvent>
#include <QPainter>
#include <QPen>
-#include <QPixmap>
+#include <QPoint>
+#include <QRect>
+#include <QResizeEvent>
#include <QStyle>
-#include <QFontMetrics>
-#include <QTextDocument>
#include <QStylePainter>
#include <QStyleOptionFrame>
-#include <QResizeEvent>
-#include <QPaintEvent>
-#include <QVBoxLayout>
-
-#include <QPoint>
-#include <QRect>
+#include <QTextDocument>
+#include <QScreen>
#include <QWidget>
-#include <QApplication>
-#include <QDesktopWidget>
#include <memory>
@@ -127,10 +123,9 @@ void ColorTip::setContent(const QVariant &content)
tilePainter.fillRect(size, size, size, size, col);
}
-void ColorTip::configure(const QPoint &pos, QWidget *w)
+void ColorTip::configure(const QPoint &pos)
{
Q_UNUSED(pos)
- Q_UNUSED(w)
update();
}
@@ -197,7 +192,7 @@ bool TextTip::isInteractive() const
return likelyContainsLink(m_text);
}
-void TextTip::configure(const QPoint &pos, QWidget *w)
+void TextTip::configure(const QPoint &pos)
{
setTextFormat(m_format);
setText(m_text);
@@ -211,7 +206,7 @@ void TextTip::configure(const QPoint &pos, QWidget *w)
// Try to find a nice width without unnecessary wrapping.
setWordWrap(false);
int tipWidth = sizeHint().width();
- const int screenWidth = screenGeometry(pos, w).width();
+ const int screenWidth = QGuiApplication::screenAt(pos)->availableGeometry().width();
const int maxDesiredWidth = int(screenWidth * .5);
if (tipWidth > maxDesiredWidth) {
setWordWrap(true);
@@ -273,7 +268,7 @@ void WidgetTip::setContent(const QVariant &content)
m_widget = content.value<QWidget *>();
}
-void WidgetTip::configure(const QPoint &pos, QWidget *)
+void WidgetTip::configure(const QPoint &pos)
{
QTC_ASSERT(m_widget && m_layout->count() == 0, return);
@@ -319,21 +314,5 @@ bool WidgetTip::equals(int typeId, const QVariant &other, const QVariant &otherC
&& other.value<QWidget *>() == m_widget;
}
-
-int screenNumber(const QPoint &pos, QWidget *w)
-{
- if (QApplication::desktop()->isVirtualDesktop())
- return QApplication::desktop()->screenNumber(pos);
- else
- return QApplication::desktop()->screenNumber(w);
-}
-
-QRect screenGeometry(const QPoint &pos, QWidget *w)
-{
- if (HostOsInfo::isMacHost())
- return QApplication::desktop()->availableGeometry(screenNumber(pos, w));
- return QApplication::desktop()->screenGeometry(screenNumber(pos, w));
-}
-
} // namespace Internal
} // namespace Utils
diff --git a/src/libs/utils/tooltip/tips.h b/src/libs/utils/tooltip/tips.h
index 9200c2a6dd..53dde1f431 100644
--- a/src/libs/utils/tooltip/tips.h
+++ b/src/libs/utils/tooltip/tips.h
@@ -36,9 +36,6 @@
namespace Utils {
namespace Internal {
-int screenNumber(const QPoint &pos, QWidget *w);
-QRect screenGeometry(const QPoint &pos, QWidget *w);
-
class TipLabel : public QLabel
{
public:
@@ -47,7 +44,7 @@ public:
virtual void setContent(const QVariant &content) = 0;
virtual bool isInteractive() const { return false; }
virtual int showTime() const = 0;
- virtual void configure(const QPoint &pos, QWidget *w) = 0;
+ virtual void configure(const QPoint &pos) = 0;
virtual bool canHandleContentReplacement(int typeId) const = 0;
virtual bool equals(int typeId, const QVariant &other, const QVariant &contextHelp) const = 0;
virtual void setContextHelp(const QVariant &help);
@@ -69,7 +66,7 @@ public:
void setContent(const QVariant &content) override;
bool isInteractive() const override;
- void configure(const QPoint &pos, QWidget *w) override;
+ void configure(const QPoint &pos) override;
bool canHandleContentReplacement(int typeId) const override;
int showTime() const override;
bool equals(int typeId, const QVariant &other, const QVariant &otherContextHelp) const override;
@@ -87,7 +84,7 @@ public:
ColorTip(QWidget *parent);
void setContent(const QVariant &content) override;
- void configure(const QPoint &pos, QWidget *w) override;
+ void configure(const QPoint &pos) override;
bool canHandleContentReplacement(int typeId) const override;
int showTime() const override { return 4000; }
bool equals(int typeId, const QVariant &other, const QVariant &otherContextHelp) const override;
@@ -107,7 +104,7 @@ public:
void pinToolTipWidget(QWidget *parent);
void setContent(const QVariant &content) override;
- void configure(const QPoint &pos, QWidget *w) override;
+ void configure(const QPoint &pos) override;
bool canHandleContentReplacement(int typeId) const override;
int showTime() const override { return 30000; }
bool equals(int typeId, const QVariant &other, const QVariant &otherContextHelp) const override;
diff --git a/src/libs/utils/tooltip/tooltip.cpp b/src/libs/utils/tooltip/tooltip.cpp
index 2885f53ed7..b665cc3942 100644
--- a/src/libs/utils/tooltip/tooltip.cpp
+++ b/src/libs/utils/tooltip/tooltip.cpp
@@ -33,12 +33,11 @@
#include <QApplication>
#include <QColor>
-#include <QDebug>
-#include <QDesktopWidget>
#include <QHBoxLayout>
#include <QKeyEvent>
#include <QMenu>
#include <QMouseEvent>
+#include <QScreen>
#include <QWidget>
using namespace Utils;
@@ -171,10 +170,10 @@ void ToolTip::show(
}
}
-void ToolTip::move(const QPoint &pos, QWidget *w)
+void ToolTip::move(const QPoint &pos)
{
if (isVisible())
- instance()->placeTip(pos, w);
+ instance()->placeTip(pos);
}
bool ToolTip::pinToolTip(QWidget *w, QWidget *parent)
@@ -232,9 +231,9 @@ bool ToolTip::acceptShow(const QVariant &content,
void ToolTip::setUp(const QPoint &pos, QWidget *w, const QRect &rect)
{
- m_tip->configure(pos, w);
+ m_tip->configure(pos);
- placeTip(pos, w);
+ placeTip(pos);
setTipRect(w, rect);
if (m_hideDelayTimer.isActive())
@@ -320,21 +319,15 @@ void ToolTip::showInternal(const QPoint &pos, const QVariant &content,
int typeId, QWidget *w, const QVariant &contextHelp, const QRect &rect)
{
if (acceptShow(content, typeId, pos, w, contextHelp, rect)) {
- QWidget *target = nullptr;
- if (HostOsInfo::isWindowsHost())
- target = QApplication::desktop()->screen(Internal::screenNumber(pos, w));
- else
- target = w;
-
switch (typeId) {
case ColorContent:
- m_tip = new ColorTip(target);
+ m_tip = new ColorTip(w);
break;
case TextContent:
- m_tip = new TextTip(target);
+ m_tip = new TextTip(w);
break;
case WidgetContent:
- m_tip = new WidgetTip(target);
+ m_tip = new WidgetTip(w);
break;
}
m_tip->setObjectName("qcToolTip");
@@ -347,9 +340,9 @@ void ToolTip::showInternal(const QPoint &pos, const QVariant &content,
emit shown();
}
-void ToolTip::placeTip(const QPoint &pos, QWidget *w)
+void ToolTip::placeTip(const QPoint &pos)
{
- QRect screen = Internal::screenGeometry(pos, w);
+ QRect screen = QGuiApplication::screenAt(pos)->availableGeometry();
QPoint p = pos;
p += offsetFromPosition();
if (p.x() + m_tip->width() > screen.x() + screen.width())
diff --git a/src/libs/utils/tooltip/tooltip.h b/src/libs/utils/tooltip/tooltip.h
index e2c5052f74..4c0c3de84f 100644
--- a/src/libs/utils/tooltip/tooltip.h
+++ b/src/libs/utils/tooltip/tooltip.h
@@ -89,7 +89,7 @@ public:
const QVariant &contextHelp = {}, const QRect &rect = QRect());
static void show(const QPoint &pos, QLayout *content, QWidget *w = nullptr,
const QVariant &contextHelp = {}, const QRect &rect = QRect());
- static void move(const QPoint &pos, QWidget *w);
+ static void move(const QPoint &pos);
static void hide();
static void hideImmediately();
static bool isVisible();
@@ -116,7 +116,7 @@ private:
bool tipChanged(const QPoint &pos, const QVariant &content, int typeId, QWidget *w,
const QVariant &contextHelp) const;
void setTipRect(QWidget *w, const QRect &rect);
- void placeTip(const QPoint &pos, QWidget *w);
+ void placeTip(const QPoint &pos);
void showTip();
void hideTipWithDelay();
diff --git a/src/plugins/coreplugin/actionmanager/actionmanager.cpp b/src/plugins/coreplugin/actionmanager/actionmanager.cpp
index 391cc077f4..d9e13404c3 100644
--- a/src/plugins/coreplugin/actionmanager/actionmanager.cpp
+++ b/src/plugins/coreplugin/actionmanager/actionmanager.cpp
@@ -37,7 +37,6 @@
#include <QAction>
#include <QApplication>
#include <QDebug>
-#include <QDesktopWidget>
#include <QMenu>
#include <QMenuBar>
#include <QSettings>
@@ -457,9 +456,7 @@ void ActionManagerPrivate::showShortcutPopup(const QString &shortcut)
if (!QApplication::topLevelWidgets().isEmpty()) {
window = QApplication::topLevelWidgets().first();
} else {
- QTC_ASSERT(QApplication::desktop(), return);
- window = QApplication::desktop()->screen();
- QTC_ASSERT(window, return);
+ window = ICore::mainWindow();
}
}
diff --git a/src/plugins/debugger/debuggertooltipmanager.cpp b/src/plugins/debugger/debuggertooltipmanager.cpp
index 3989104129..6accc57980 100644
--- a/src/plugins/debugger/debuggertooltipmanager.cpp
+++ b/src/plugins/debugger/debuggertooltipmanager.cpp
@@ -1235,7 +1235,7 @@ void DebuggerToolTipManagerPrivate::slotTooltipOverrideRequested
if (tooltip) {
DEBUG("REUSING LOCALS TOOLTIP");
tooltip->context.mousePosition = point;
- ToolTip::move(point, DebuggerMainWindow::instance());
+ ToolTip::move(point);
} else {
DEBUG("CREATING LOCALS, WAITING...");
tooltip = new DebuggerToolTipHolder(context);
@@ -1257,7 +1257,7 @@ void DebuggerToolTipManagerPrivate::slotTooltipOverrideRequested
if (tooltip) {
//tooltip->destroy();
tooltip->context.mousePosition = point;
- ToolTip::move(point, DebuggerMainWindow::instance());
+ ToolTip::move(point);
DEBUG("UPDATING DELAYED.");
} else {
DEBUG("CREATING DELAYED.");
diff --git a/src/plugins/texteditor/codeassist/functionhintproposalwidget.cpp b/src/plugins/texteditor/codeassist/functionhintproposalwidget.cpp
index 292c46cccc..149fba33fa 100644
--- a/src/plugins/texteditor/codeassist/functionhintproposalwidget.cpp
+++ b/src/plugins/texteditor/codeassist/functionhintproposalwidget.cpp
@@ -37,7 +37,6 @@
#include <QLabel>
#include <QToolButton>
#include <QHBoxLayout>
-#include <QDesktopWidget>
#include <QKeyEvent>
#include <QPointer>
#include <QScreen>
@@ -366,9 +365,7 @@ void FunctionHintProposalWidget::updateContent()
void FunctionHintProposalWidget::updatePosition()
{
- const QDesktopWidget *desktop = QApplication::desktop();
- const int screenNumber = desktop->screenNumber(d->m_underlyingWidget);
- auto widgetScreen = QGuiApplication::screens().value(screenNumber, QGuiApplication::primaryScreen());
+ auto widgetScreen = d->m_underlyingWidget->screen();
const QRect &screen = Utils::HostOsInfo::isMacHost()
? widgetScreen->availableGeometry() : widgetScreen->geometry();
diff --git a/src/plugins/texteditor/codeassist/genericproposalwidget.cpp b/src/plugins/texteditor/codeassist/genericproposalwidget.cpp
index a8b770b815..623f83a5a8 100644
--- a/src/plugins/texteditor/codeassist/genericproposalwidget.cpp
+++ b/src/plugins/texteditor/codeassist/genericproposalwidget.cpp
@@ -47,9 +47,9 @@
#include <QVBoxLayout>
#include <QListView>
#include <QAbstractItemView>
+#include <QScreen>
#include <QScrollBar>
#include <QKeyEvent>
-#include <QDesktopWidget>
#include <QLabel>
#include <QStyledItemDelegate>
@@ -143,10 +143,7 @@ public:
// Workaround QTCREATORBUG-11653
void calculateMaximumWidth()
{
- const QDesktopWidget *desktopWidget = QApplication::desktop();
- const int desktopWidth = desktopWidget->isVirtualDesktop()
- ? desktopWidget->width()
- : desktopWidget->availableGeometry(desktopWidget->primaryScreen()).width();
+ const int desktopWidth = screen()->availableGeometry().width();
const QMargins widgetMargins = contentsMargins();
const QMargins layoutMargins = layout()->contentsMargins();
const int margins = widgetMargins.left() + widgetMargins.right()
@@ -531,10 +528,7 @@ void GenericProposalWidget::updatePositionAndSize()
const int height = shint.height() + fw * 2;
// Determine the position, keeping the popup on the screen
- const QDesktopWidget *desktop = QApplication::desktop();
- const QRect screen = HostOsInfo::isMacHost()
- ? desktop->availableGeometry(desktop->screenNumber(d->m_underlyingWidget))
- : desktop->screenGeometry(desktop->screenNumber(d->m_underlyingWidget));
+ const QRect screen = d->m_underlyingWidget->screen()->availableGeometry();
QPoint pos = d->m_displayRect.bottomLeft();
pos.rx() -= 16 + fw; // Space for the icons