forked from quickshell/quickshell
		
	misc: make the last window closing not quit by default
This commit is contained in:
		
							parent
							
								
									3789709820
								
							
						
					
					
						commit
						31365dd179
					
				
					 3 changed files with 26 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -252,6 +252,7 @@ int main(int argc, char** argv) {
 | 
			
		|||
	QQuickWindow::setDefaultAlphaBuffer(true);
 | 
			
		||||
 | 
			
		||||
	auto root = RootWrapper(configFilePath);
 | 
			
		||||
	QGuiApplication::setQuitOnLastWindowClosed(false);
 | 
			
		||||
 | 
			
		||||
	return QGuiApplication::exec();
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,6 +20,15 @@
 | 
			
		|||
#include "qmlscreen.hpp"
 | 
			
		||||
#include "rootwrapper.hpp"
 | 
			
		||||
 | 
			
		||||
QuickshellSettings::QuickshellSettings() {
 | 
			
		||||
	QObject::connect(
 | 
			
		||||
	    static_cast<QGuiApplication*>(QGuiApplication::instance()), // NOLINT
 | 
			
		||||
	    &QGuiApplication::lastWindowClosed,
 | 
			
		||||
	    this,
 | 
			
		||||
	    &QuickshellSettings::lastWindowClosed
 | 
			
		||||
	);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
QuickshellSettings* QuickshellSettings::instance() {
 | 
			
		||||
	static QuickshellSettings* instance = nullptr; // NOLINT
 | 
			
		||||
	if (instance == nullptr) {
 | 
			
		||||
| 
						 | 
				
			
			@ -52,6 +61,7 @@ QuickshellGlobal::QuickshellGlobal(QObject* parent): QObject(parent) {
 | 
			
		|||
	// clang-format off
 | 
			
		||||
	QObject::connect(QuickshellSettings::instance(), &QuickshellSettings::workingDirectoryChanged, this, &QuickshellGlobal::workingDirectoryChanged);
 | 
			
		||||
	QObject::connect(QuickshellSettings::instance(), &QuickshellSettings::watchFilesChanged, this, &QuickshellGlobal::watchFilesChanged);
 | 
			
		||||
	QObject::connect(QuickshellSettings::instance(), &QuickshellSettings::lastWindowClosed, this, &QuickshellGlobal::lastWindowClosed);
 | 
			
		||||
	// clang-format on
 | 
			
		||||
 | 
			
		||||
	auto* app = QCoreApplication::instance();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -26,16 +26,26 @@ class QuickshellSettings: public QObject {
 | 
			
		|||
	QML_UNCREATABLE("singleton");
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
	QuickshellSettings();
 | 
			
		||||
 | 
			
		||||
	[[nodiscard]] QString workingDirectory() const;
 | 
			
		||||
	void setWorkingDirectory(QString workingDirectory);
 | 
			
		||||
 | 
			
		||||
	[[nodiscard]] bool watchFiles() const;
 | 
			
		||||
	void setWatchFiles(bool watchFiles);
 | 
			
		||||
 | 
			
		||||
	[[nodiscard]] bool quitOnLastClosed() const;
 | 
			
		||||
	void setQuitOnLastClosed(bool exitOnLastClosed);
 | 
			
		||||
 | 
			
		||||
	static QuickshellSettings* instance();
 | 
			
		||||
	static void reset();
 | 
			
		||||
 | 
			
		||||
signals:
 | 
			
		||||
	/// Sent when the last window is closed.
 | 
			
		||||
	///
 | 
			
		||||
	/// To make the application exit when the last window is closed run `Qt.quit()`.
 | 
			
		||||
	void lastWindowClosed();
 | 
			
		||||
 | 
			
		||||
	void workingDirectoryChanged();
 | 
			
		||||
	void watchFilesChanged();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -105,6 +115,11 @@ public:
 | 
			
		|||
	void setWatchFiles(bool watchFiles);
 | 
			
		||||
 | 
			
		||||
signals:
 | 
			
		||||
	/// Sent when the last window is closed.
 | 
			
		||||
	///
 | 
			
		||||
	/// To make the application exit when the last window is closed run `Qt.quit()`.
 | 
			
		||||
	void lastWindowClosed();
 | 
			
		||||
 | 
			
		||||
	void screensChanged();
 | 
			
		||||
	void workingDirectoryChanged();
 | 
			
		||||
	void watchFilesChanged();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue