From b61441b4378d61cfb936bc9ee5d007eac38cebec Mon Sep 17 00:00:00 2001 From: Frank Bergmann Date: Wed, 4 Dec 2024 09:45:12 +0100 Subject: [PATCH] - on macos allow to open a new instance from the file menu --- copasi/UI/copasiui3window.cpp | 13 +++++++++++++ copasi/UI/copasiui3window.h | 2 ++ 2 files changed, 15 insertions(+) diff --git a/copasi/UI/copasiui3window.cpp b/copasi/UI/copasiui3window.cpp index 0e273df0e2..256363e8cd 100644 --- a/copasi/UI/copasiui3window.cpp +++ b/copasi/UI/copasiui3window.cpp @@ -38,6 +38,8 @@ #include #include #include +#include + #include #if QT_VERSION >= QT_VERSION_CHECK(5,0,0) @@ -748,6 +750,12 @@ void CopasiUI3Window::createMenuBar() { QMenu *pFileMenu = menuBar()->addMenu("&File"); pFileMenu->addAction(mpaNew); + #ifdef Q_OS_MACOS + QAction *pOpenNewWindow = new QAction("New Window", this); + pOpenNewWindow->setToolTip("Open a new COPASI instance"); + QObject::connect(pOpenNewWindow, SIGNAL(triggered()), this, SLOT(slotStartNewInstance())); + pFileMenu->addAction(pOpenNewWindow); + #endif pFileMenu->addAction(mpaOpen); pFileMenu->addAction(mpaOpenFromUrl); mpMenuExamples = pFileMenu->addMenu("Examples"); @@ -4208,6 +4216,11 @@ void CopasiUI3Window::slotHandleCopasiScheme(const QUrl& url) #endif } +void CopasiUI3Window::slotStartNewInstance() +{ + QProcess::startDetached(qApp->applicationFilePath()); +} + void CopasiUI3Window::slotCheckForUpdate() { #if QT_VERSION >= QT_VERSION_CHECK(5,0,0) diff --git a/copasi/UI/copasiui3window.h b/copasi/UI/copasiui3window.h index 4771ed003a..1aeb6e91a9 100644 --- a/copasi/UI/copasiui3window.h +++ b/copasi/UI/copasiui3window.h @@ -206,6 +206,8 @@ public slots: void slotHandleCopasiScheme(const QUrl& url); + void slotStartNewInstance(); + public: /** * performs the next action from the action stack