[PATCH] Implement proper Dialog factory instead of implicit link-time dependencies

Yuriy Skalko yuriy.skalko at gmail.com
Sun Dec 6 18:32:40 UTC 2020


Here is an update for this refactoring.

Yuriy
-------------- next part --------------
From c36594e9ef489b5bb95a54b61576686bf92aaa1e Mon Sep 17 00:00:00 2001
From: Yuriy Skalko <yuriy.skalko at gmail.com>
Date: Sun, 6 Dec 2020 18:01:09 +0200
Subject: [PATCH] Move implementation details to constructors. Amend 78f457796c

---
 src/frontends/qt/DialogFactory.cpp   | 22 +++++-----------------
 src/frontends/qt/FindAndReplace.cpp  |  4 ++++
 src/frontends/qt/GuiProgressView.h   |  2 +-
 src/frontends/qt/GuiSpellchecker.cpp |  4 ++++
 4 files changed, 14 insertions(+), 18 deletions(-)

diff --git a/src/frontends/qt/DialogFactory.cpp b/src/frontends/qt/DialogFactory.cpp
index e3848417ac..62f6ab8b9d 100644
--- a/src/frontends/qt/DialogFactory.cpp
+++ b/src/frontends/qt/DialogFactory.cpp
@@ -156,14 +156,8 @@ Dialog * createDialog(GuiView & gv, string const & name)
 		return new GuiShowFile(gv);
 	if (name == "findreplace")
 		return new GuiSearch(gv);
-	if (name == "findreplaceadv") {
-		FindAndReplace * gui = new FindAndReplace(gv, Qt::RightDockWidgetArea);
-#ifdef Q_OS_MAC
-		// On Mac show and floating
-		gui->setFloating(true);
-#endif
-		return gui;
-	}
+	if (name == "findreplaceadv")
+		return new FindAndReplace(gv);
 	if (name == "graphics")
 		return new GuiGraphics(gv);
 	if (name == "include")
@@ -194,14 +188,8 @@ Dialog * createDialog(GuiView & gv, string const & name)
 		return new GuiRef(gv);
 	if (name == "sendto")
 		return new GuiSendTo(gv);
-	if (name == "spellchecker") {
-		GuiSpellchecker * gui = new GuiSpellchecker(gv, Qt::RightDockWidgetArea);
-#ifdef Q_OS_MAC
-		// On Mac show and floating
-		gui->setFloating(true);
-#endif
-		return gui;
-	}
+	if (name == "spellchecker")
+		return new GuiSpellchecker(gv);
 	if (name == "symbols")
 		return new GuiSymbols(gv);
 	if (name == "tabularcreate")
@@ -217,7 +205,7 @@ Dialog * createDialog(GuiView & gv, string const & name)
 	if (name == "wrap")
 		return new GuiWrap(gv);
 	if (name == "progress")
-		return new GuiProgressView(gv, Qt::BottomDockWidgetArea);
+		return new GuiProgressView(gv);
 
 	return nullptr;
 }
diff --git a/src/frontends/qt/FindAndReplace.cpp b/src/frontends/qt/FindAndReplace.cpp
index fcfa6bda59..b378f46c9b 100644
--- a/src/frontends/qt/FindAndReplace.cpp
+++ b/src/frontends/qt/FindAndReplace.cpp
@@ -588,6 +588,10 @@ FindAndReplace::FindAndReplace(GuiView & parent,
 	widget_ = new FindAndReplaceWidget(parent);
 	setWidget(widget_);
 	setFocusProxy(widget_);
+#ifdef Q_OS_MAC
+	// On Mac show and floating
+	setFloating(true);
+#endif
 
 	connect(this, SIGNAL(dockLocationChanged(Qt::DockWidgetArea)),
 	        widget_, SLOT(dockLocationChanged(Qt::DockWidgetArea)));
diff --git a/src/frontends/qt/GuiProgressView.h b/src/frontends/qt/GuiProgressView.h
index 4ea4efc504..1a722b31b2 100644
--- a/src/frontends/qt/GuiProgressView.h
+++ b/src/frontends/qt/GuiProgressView.h
@@ -46,7 +46,7 @@ class GuiProgressView : public DockView
 public:
 	GuiProgressView(
 		GuiView & parent, ///< the main window where to dock.
-		Qt::DockWidgetArea area, ///< Position of the dock (and also drawer)
+		Qt::DockWidgetArea area = Qt::BottomDockWidgetArea, ///< Position of the dock (and also drawer)
 		Qt::WindowFlags flags = 0);
 
 	~GuiProgressView();
diff --git a/src/frontends/qt/GuiSpellchecker.cpp b/src/frontends/qt/GuiSpellchecker.cpp
index 7fc1155b1f..9fcf20cac2 100644
--- a/src/frontends/qt/GuiSpellchecker.cpp
+++ b/src/frontends/qt/GuiSpellchecker.cpp
@@ -598,6 +598,10 @@ GuiSpellchecker::GuiSpellchecker(GuiView & parent,
 	widget_ = new SpellcheckerWidget(&parent, this);
 	setWidget(widget_);
 	setFocusProxy(widget_);
+#ifdef Q_OS_MAC
+	// On Mac show and floating
+	setFloating(true);
+#endif
 }
 
 
-- 
2.28.0.windows.1



More information about the lyx-devel mailing list