summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2023-12-19 17:17:01 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2024-01-08 10:01:47 +0100
commit6182239e52579cf58299c10a5e9392beaed8a64a (patch)
treeea0543cbe0deeeadda3d987926f68ddd6c3610e6
parent1bf4dd1ab2b1283eec642e34c513e400b98204e6 (diff)
Qt Designer: Simplify top level geometry calculation
Pass the available geometry to QDesignerToolWindow::geometryHint() which allows for removing some functions. Task-number: QTBUG-120236 Pick-to: 6.6 Change-Id: Id37ff342fa380b6789312124834180b5f01833ac Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io> (cherry picked from commit 6aa71e6259dbf88d8d236f72020d265ddd48adfd)
-rw-r--r--src/designer/src/designer/qdesigner_toolwindow.cpp44
-rw-r--r--src/designer/src/designer/qdesigner_toolwindow.h4
-rw-r--r--src/designer/src/designer/qdesigner_workbench.cpp5
3 files changed, 16 insertions, 37 deletions
diff --git a/src/designer/src/designer/qdesigner_toolwindow.cpp b/src/designer/src/designer/qdesigner_toolwindow.cpp
index 3ae3f62a8..3583a55e9 100644
--- a/src/designer/src/designer/qdesigner_toolwindow.cpp
+++ b/src/designer/src/designer/qdesigner_toolwindow.cpp
@@ -105,16 +105,6 @@ QDesignerWorkbench *QDesignerToolWindow::workbench() const
return m_workbench;
}
-QRect QDesignerToolWindow::geometryHint() const
-{
- return QRect();
-}
-
-QRect QDesignerToolWindow::availableToolWindowGeometry() const
-{
- return m_workbench->availableGeometry();
-}
-
// ---------------------- PropertyEditorToolWindow
static inline QWidget *createPropertyEditor(QDesignerFormEditorInterface *core, QWidget *parent = nullptr)
@@ -129,7 +119,7 @@ class PropertyEditorToolWindow : public QDesignerToolWindow
public:
explicit PropertyEditorToolWindow(QDesignerWorkbench *workbench);
- QRect geometryHint() const override;
+ QRect geometryHint(const QRect &) const override;
protected:
void showEvent(QShowEvent *event) override;
@@ -147,9 +137,8 @@ PropertyEditorToolWindow::PropertyEditorToolWindow(QDesignerWorkbench *workbench
}
-QRect PropertyEditorToolWindow::geometryHint() const
+QRect PropertyEditorToolWindow::geometryHint(const QRect &g) const
{
- const QRect g = availableToolWindowGeometry();
const int spacing = 40;
const QSize sz(g.width() * 1/4, g.height() * 4/6);
@@ -185,7 +174,7 @@ class ActionEditorToolWindow: public QDesignerToolWindow
public:
explicit ActionEditorToolWindow(QDesignerWorkbench *workbench);
- QRect geometryHint() const override;
+ QRect geometryHint(const QRect &g) const override;
};
ActionEditorToolWindow::ActionEditorToolWindow(QDesignerWorkbench *workbench) :
@@ -198,10 +187,8 @@ ActionEditorToolWindow::ActionEditorToolWindow(QDesignerWorkbench *workbench) :
{
}
-QRect ActionEditorToolWindow::geometryHint() const
+QRect ActionEditorToolWindow::geometryHint(const QRect &g) const
{
- const QRect g = availableToolWindowGeometry();
-
const QSize sz(g.width() * 1/4, g.height() * 1/6);
const QRect rc = QRect((g.right() + 1 - sz.width() - margin),
@@ -226,7 +213,7 @@ class ObjectInspectorToolWindow: public QDesignerToolWindow
public:
explicit ObjectInspectorToolWindow(QDesignerWorkbench *workbench);
- QRect geometryHint() const override;
+ QRect geometryHint(const QRect &g) const override;
};
ObjectInspectorToolWindow::ObjectInspectorToolWindow(QDesignerWorkbench *workbench) :
@@ -239,10 +226,8 @@ ObjectInspectorToolWindow::ObjectInspectorToolWindow(QDesignerWorkbench *workben
{
}
-QRect ObjectInspectorToolWindow::geometryHint() const
+QRect ObjectInspectorToolWindow::geometryHint(const QRect &g) const
{
- const QRect g = availableToolWindowGeometry();
-
const QSize sz(g.width() * 1/4, g.height() * 1/6);
const QRect rc = QRect((g.right() + 1 - sz.width() - margin),
@@ -260,7 +245,7 @@ class ResourceEditorToolWindow: public QDesignerToolWindow
public:
explicit ResourceEditorToolWindow(QDesignerWorkbench *workbench);
- QRect geometryHint() const override;
+ QRect geometryHint(const QRect &g) const override;
};
ResourceEditorToolWindow::ResourceEditorToolWindow(QDesignerWorkbench *workbench) :
@@ -273,10 +258,8 @@ ResourceEditorToolWindow::ResourceEditorToolWindow(QDesignerWorkbench *workbench
{
}
-QRect ResourceEditorToolWindow::geometryHint() const
+QRect ResourceEditorToolWindow::geometryHint(const QRect &g) const
{
- const QRect g = availableToolWindowGeometry();
-
const QSize sz(g.width() * 1/3, g.height() * 1/6);
QRect r(QPoint(0, 0), sz);
r.moveCenter(g.center());
@@ -293,7 +276,7 @@ class SignalSlotEditorToolWindow: public QDesignerToolWindow
public:
explicit SignalSlotEditorToolWindow(QDesignerWorkbench *workbench);
- QRect geometryHint() const override;
+ QRect geometryHint(const QRect &g) const override;
};
SignalSlotEditorToolWindow::SignalSlotEditorToolWindow(QDesignerWorkbench *workbench) :
@@ -306,10 +289,8 @@ SignalSlotEditorToolWindow::SignalSlotEditorToolWindow(QDesignerWorkbench *workb
{
}
-QRect SignalSlotEditorToolWindow::geometryHint() const
+QRect SignalSlotEditorToolWindow::geometryHint(const QRect &g) const
{
- const QRect g = availableToolWindowGeometry();
-
const QSize sz(g.width() * 1/3, g.height() * 1/6);
QRect r(QPoint(0, 0), sz);
r.moveCenter(g.center());
@@ -333,7 +314,7 @@ class WidgetBoxToolWindow: public QDesignerToolWindow
public:
explicit WidgetBoxToolWindow(QDesignerWorkbench *workbench);
- QRect geometryHint() const override;
+ QRect geometryHint(const QRect &g) const override;
};
WidgetBoxToolWindow::WidgetBoxToolWindow(QDesignerWorkbench *workbench) :
@@ -346,9 +327,8 @@ WidgetBoxToolWindow::WidgetBoxToolWindow(QDesignerWorkbench *workbench) :
{
}
-QRect WidgetBoxToolWindow::geometryHint() const
+QRect WidgetBoxToolWindow::geometryHint(const QRect &g) const
{
- const QRect g = availableToolWindowGeometry();
const QRect rc = QRect(g.left() + margin,
g.top() + margin,
g.width() * 1/4, g.height() * 5/6);
diff --git a/src/designer/src/designer/qdesigner_toolwindow.h b/src/designer/src/designer/qdesigner_toolwindow.h
index 1ba732d00..7fec13981 100644
--- a/src/designer/src/designer/qdesigner_toolwindow.h
+++ b/src/designer/src/designer/qdesigner_toolwindow.h
@@ -60,7 +60,7 @@ public:
QAction *action() const;
Qt::DockWidgetArea dockWidgetAreaHint() const { return m_dockAreaHint; }
- virtual QRect geometryHint() const;
+ virtual QRect geometryHint(const QRect &availableGeometry) const = 0;
private slots:
void showMe(bool);
@@ -70,8 +70,6 @@ protected:
void hideEvent(QHideEvent *e) override;
void changeEvent(QEvent *e) override;
- QRect availableToolWindowGeometry() const;
-
private:
const Qt::DockWidgetArea m_dockAreaHint;
QDesignerWorkbench *m_workbench;
diff --git a/src/designer/src/designer/qdesigner_workbench.cpp b/src/designer/src/designer/qdesigner_workbench.cpp
index ec049b31c..d14e175ad 100644
--- a/src/designer/src/designer/qdesigner_workbench.cpp
+++ b/src/designer/src/designer/qdesigner_workbench.cpp
@@ -452,7 +452,8 @@ void QDesignerWorkbench::switchToTopLevelMode()
Q_ASSERT(widgetBoxWrapper);
switchToNeutralMode();
- const QPoint desktopOffset = desktopGeometry().topLeft();
+ const QRect availableGeometry = desktopGeometry();
+ const QPoint desktopOffset = availableGeometry.topLeft();
m_mode = TopLevelMode;
// The widget box is special, it gets the menubar and gets to be the main widget.
@@ -491,7 +492,7 @@ void QDesignerWorkbench::switchToTopLevelMode()
bool found_visible_window = false;
for (QDesignerToolWindow *tw : std::as_const(m_toolWindows)) {
tw->setParent(magicalParent(tw), magicalWindowFlags(tw));
- settings.restoreGeometry(tw, tw->geometryHint());
+ settings.restoreGeometry(tw, tw->geometryHint(availableGeometry));
tw->action()->setChecked(tw->isVisible());
found_visible_window |= tw->isVisible();
}