void MainWindow::stopSynergy() { if (synergyProcess()) { if (synergyProcess()->isOpen()) synergyProcess()->close(); delete synergyProcess(); setSynergyProcess(NULL); setSynergyState(synergyDisconnected); } delete m_pTempConfigFile; m_pTempConfigFile = NULL; }
MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent), MainWindowBase(), m_Settings(), m_AppConfig(&m_Settings), m_pSynergy(NULL), m_SynergyState(synergyDisconnected), m_ServerConfig(&m_Settings, 5, 3), m_pTempConfigFile(NULL), m_pLogDialog(new LogDialog(this, synergyProcess())), m_pTrayIcon(NULL), m_pTrayIconMenu(NULL) { setupUi(this); createTrayIcon(); createMenuBar(); loadSettings(); initConnections(); // HACK - surely window should be visible by default? setVisible(true); if (appConfig().autoConnect()) startSynergy(); }
void MainWindow::stopSynergy() { if (synergyProcess()) { if (synergyProcess()->isOpen()) synergyProcess()->close(); delete synergyProcess(); setSynergyProcess(NULL); setSynergyState(synergyDisconnected); } // HACK: deleting the object deletes the physical file, which is // bad, since it could be in use by the Windows service! //delete m_pTempConfigFile; m_pTempConfigFile = NULL; }
void MainWindow::startSynergy() { stopSynergy(); QString app; QStringList args; args << "-f" << "--debug" << appConfig().logLevelText(); if (!appConfig().screenName().isEmpty()) args << "--name" << appConfig().screenName(); if (appConfig().gameDevice()) { args << "--game-device"; } setSynergyProcess(new QProcess(this)); if ((synergyType() == synergyClient && !clientArgs(args, app)) || (synergyType() == synergyServer && !serverArgs(args, app))) { stopSynergy(); return; } connect(synergyProcess(), SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(synergyFinished(int, QProcess::ExitStatus))); connect(synergyProcess(), SIGNAL(readyReadStandardOutput()), m_pLogDialog, SLOT(readSynergyOutput())); connect(synergyProcess(), SIGNAL(readyReadStandardError()), m_pLogDialog, SLOT(readSynergyOutput())); m_pLogDialog->append(tr("\n\nRunning synergy: %1 %2\n\n").arg(app).arg(args.join(" "))); synergyProcess()->start(app, args); if (!synergyProcess()->waitForStarted()) { stopSynergy(); QMessageBox::warning(this, tr("Program can not be started"), QString(tr("The executable<br><br>%1<br><br>could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.").arg(app))); return; } setSynergyState(synergyConnected); }