[Scummvm-git-logs] scummvm master -> edc82c907fe407d9ab21c3c48144266758d327f8

sev- noreply at scummvm.org
Mon Feb 16 18:31:18 UTC 2026


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .

Summary:
edc82c907f COMMON: GUI: The final attempt to resolve circular dependency


Commit: edc82c907fe407d9ab21c3c48144266758d327f8
    https://github.com/scummvm/scummvm/commit/edc82c907fe407d9ab21c3c48144266758d327f8
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2026-02-16T19:31:01+01:00

Commit Message:
COMMON: GUI: The final attempt to resolve circular dependency

Now, we call a GUI method for priting images, which instantiates
the print dialog. Since we always want to show the dialog, this
goes even better conceptually.

Changed paths:
    common/printman.cpp
    common/printman.h
    engines/scumm/he/wiz_he.cpp
    engines/testbed/printing.cpp
    gui/gui-manager.h
    gui/printing-dialog.cpp


diff --git a/common/printman.cpp b/common/printman.cpp
index ad0d68b2db4..81b0b5b6f89 100644
--- a/common/printman.cpp
+++ b/common/printman.cpp
@@ -25,8 +25,6 @@
 #include "common/printman.h"
 #include "common/system.h"
 
-#include "gui/printing-dialog.h"
-
 #ifdef USE_PNG
 #include "image/png.h"
 #else
@@ -45,11 +43,6 @@ Common::String PrintingManager::getDefaultPrinterName() const {
 	return Common::String();
 }
 
-void PrintingManager::printImage(const Graphics::ManagedSurface &surf) {
-	GUI::PrintingDialog dialog(surf);
-	dialog.runModal();
-}
-
 void PrintingManager::saveAsImage(const Graphics::ManagedSurface &surf, const Common::String &fileName) {
 	Common::String saveName = fileName;
 	Common::String currentTarget = ConfMan.getActiveDomainName();
diff --git a/common/printman.h b/common/printman.h
index 62bc1ece9a3..c04431cdea6 100644
--- a/common/printman.h
+++ b/common/printman.h
@@ -49,8 +49,6 @@ public:
 		_jobName = "ScummVM";
 	}
 
-	void printImage(const Graphics::ManagedSurface &surf);
-
 	void saveAsImage(const Graphics::ManagedSurface &surf, const Common::String &fileName = "");
 
 	void setJobName(const Common::String &jobName) { _jobName = jobName; }
diff --git a/engines/scumm/he/wiz_he.cpp b/engines/scumm/he/wiz_he.cpp
index 575f3ba95a8..136d8a351e9 100644
--- a/engines/scumm/he/wiz_he.cpp
+++ b/engines/scumm/he/wiz_he.cpp
@@ -22,12 +22,14 @@
 #ifdef ENABLE_HE
 
 #include "common/archive.h"
-#include "common/printman.h"
 #include "common/ptr.h"
 #include "common/system.h"
 #include "graphics/cursorman.h"
 #include "graphics/paletteman.h"
 #include "graphics/primitives.h"
+
+#include "gui/gui-manager.h"
+
 #include "scumm/he/font_he.h"
 
 #include "scumm/he/logic_he.h"
@@ -481,8 +483,7 @@ WizPxShrdBuffer Wiz::drawAWizPrimEx(int globNum, int state, int x, int y, int z,
 
 		surf.setPalette(pal, 0, 256);
 
-		Common::PrintingManager *pm = _vm->_system->getPrintingManager();
-		pm->printImage(surf);
+		g_gui.printImage(surf);
 
 		if (_vm->_game.heversion <= 99 || (flags & kWRFAlloc) == 0)
 			destPtr = WizPxShrdBuffer();
diff --git a/engines/testbed/printing.cpp b/engines/testbed/printing.cpp
index a56b1d190b0..191874c8312 100644
--- a/engines/testbed/printing.cpp
+++ b/engines/testbed/printing.cpp
@@ -21,7 +21,6 @@
 
 #include "base/version.h"
 
-#include "common/printman.h"
 #include "common/rect.h"
 #include "common/str.h"
 #include "common/system.h"
@@ -56,12 +55,6 @@ TestExitStatus PrintingTests::printTestPage() {
 		return kTestSkipped;
 	}
 
-	Common::PrintingManager *pm = g_system->getPrintingManager();
-	if (!pm) {
-		warning("Could not get PrintingManager!");
-		return kTestFailed;
-	}
-
 	// Print ScummVM logo
 	const Graphics::ManagedSurface *logo = g_gui.theme()->getImageSurface("logo.bmp");
 	if (!logo) {
@@ -69,11 +62,11 @@ TestExitStatus PrintingTests::printTestPage() {
 		return kTestFailed;
 	}
 
-	pm->printImage(*logo);
+	g_gui.printImage(*logo);
 
 	// The test pattern is CLUT-8
 	Graphics::ManagedSurface *testPattern = Graphics::renderPM5544(800, 800);
-	pm->printImage(*testPattern);
+	g_gui.printImage(*testPattern);
 
 	return kTestPassed;
 }
diff --git a/gui/gui-manager.h b/gui/gui-manager.h
index 0718f631c8b..c97aed18a8b 100644
--- a/gui/gui-manager.h
+++ b/gui/gui-manager.h
@@ -155,6 +155,9 @@ public:
 
 	Graphics::MacWindowManager *getWM();
 
+	// Defined in printing-dialog.cpp
+	void printImage(const Graphics::ManagedSurface &surf);
+
 protected:
 	enum RedrawStatus {
 		kRedrawDisabled = 0,
diff --git a/gui/printing-dialog.cpp b/gui/printing-dialog.cpp
index 340d333a09e..1fe7f99a8d6 100644
--- a/gui/printing-dialog.cpp
+++ b/gui/printing-dialog.cpp
@@ -32,6 +32,11 @@
 
 namespace GUI {
 
+void GuiManager::printImage(const Graphics::ManagedSurface &surf) {
+	GUI::PrintingDialog dialog(surf);
+	dialog.runModal();
+}
+
 PrintingDialog::PrintingDialog(const Graphics::ManagedSurface &surface)
 	: Dialog("PrintingDialog"), _surface(surface) {
 	_preview = new GraphicsWidget(this, "PrintingDialog.Preview");




More information about the Scummvm-git-logs mailing list