1 // For license of this file, see <project-root-folder>/LICENSE.md. 2 3 #ifndef SINGLEAPPLICATION_H 4 #define SINGLEAPPLICATION_H 5 6 #include <QApplication> 7 8 class QLocalServer; 9 10 class SingleApplication : public QApplication { 11 Q_OBJECT 12 13 public: 14 explicit SingleApplication(const QString& id, int& argc, char** argv); 15 virtual ~SingleApplication(); 16 17 void finish(); 18 19 bool isOtherInstanceRunning(const QString& message = {}); 20 bool sendMessage(const QString& message); 21 22 signals: 23 void messageReceived(const QString& message); 24 25 private slots: 26 void processMessageFromOtherInstance(); 27 28 private: 29 QString m_id; 30 QLocalServer* m_server; 31 }; 32 33 #endif // SINGLEAPPLICATION_H 34