diff --git a/src/qcam/main_window.cpp b/src/qcam/main_window.cpp
index 38bc04a23b86..b51a16de199d 100644
--- a/src/qcam/main_window.cpp
+++ b/src/qcam/main_window.cpp
@@ -41,8 +41,7 @@ MainWindow::MainWindow(CameraManager *cm, const OptionsParser::Options &options)
 	}
 
 	if (ret < 0)
-		QTimer::singleShot(0, QCoreApplication::instance(),
-				   &QCoreApplication::quit);
+		quit();
 }
 
 MainWindow::~MainWindow()
@@ -54,6 +53,12 @@ MainWindow::~MainWindow()
 	}
 }
 
+void MainWindow::quit()
+{
+	QTimer::singleShot(0, QCoreApplication::instance(),
+			   &QCoreApplication::quit);
+}
+
 void MainWindow::updateTitle()
 {
 	unsigned int duration = frameRateInterval_.elapsed();
diff --git a/src/qcam/main_window.h b/src/qcam/main_window.h
index 04fb9e3ea869..a11443b30b37 100644
--- a/src/qcam/main_window.h
+++ b/src/qcam/main_window.h
@@ -41,6 +41,7 @@ public:
 	~MainWindow();
 
 private Q_SLOTS:
+	void quit();
 	void updateTitle();
 
 private:
