forked from quickshell/quickshell
misc: make the last window closing not quit by default
This commit is contained in:
parent
3789709820
commit
31365dd179
|
@ -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…
Reference in a new issue