Check is Bonjour running before update zeroconf

This commit is contained in:
Xinyu Hou 2014-11-11 15:57:25 +00:00
parent 6ef744cd81
commit 588494a730
2 changed files with 25 additions and 17 deletions

View File

@ -75,8 +75,7 @@ MainWindow::MainWindow(QSettings& settings, AppConfig& appConfig) :
m_pMenuEdit(NULL), m_pMenuEdit(NULL),
m_pMenuWindow(NULL), m_pMenuWindow(NULL),
m_pMenuHelp(NULL), m_pMenuHelp(NULL),
m_pZeroconfService(NULL), m_pZeroconfService(NULL)
m_BonjourRunning(true)
{ {
setupUi(this); setupUi(this);
@ -106,13 +105,7 @@ MainWindow::MainWindow(QSettings& settings, AppConfig& appConfig) :
setMinimumSize(size()); setMinimumSize(size());
#endif #endif
#if defined(Q_OS_WIN) updateZeroconfService();
m_BonjourRunning = isServiceRunning("Bonjour Service");
#endif
if (m_BonjourRunning) {
updateZeroconfService();
}
m_pAutoConnectCheckBox->setChecked(appConfig.autoConnect()); m_pAutoConnectCheckBox->setChecked(appConfig.autoConnect());
} }
@ -784,14 +777,16 @@ void MainWindow::changeEvent(QEvent* event)
void MainWindow::updateZeroconfService() void MainWindow::updateZeroconfService()
{ {
if (!m_AppConfig.wizardShouldRun()) { if (isBonjourRunning()) {
if (m_pZeroconfService) { if (!m_AppConfig.wizardShouldRun()) {
delete m_pZeroconfService; if (m_pZeroconfService) {
m_pZeroconfService = NULL; delete m_pZeroconfService;
} m_pZeroconfService = NULL;
}
if (m_AppConfig.autoConnect() || synergyType() == synergyServer) { if (m_AppConfig.autoConnect() || synergyType() == synergyServer) {
m_pZeroconfService = new ZeroconfService(this); m_pZeroconfService = new ZeroconfService(this);
}
} }
} }
} }
@ -937,3 +932,16 @@ bool MainWindow::isServiceRunning(QString name)
#endif #endif
return false; return false;
} }
bool MainWindow::isBonjourRunning()
{
bool result = false;
#if defined(Q_OS_WIN)
result = isServiceRunning("Bonjour Service");
#else
result = true;
#endif
return result;
}

View File

@ -147,6 +147,7 @@ class MainWindow : public QMainWindow, public Ui::MainWindowBase
void changeEvent(QEvent* event); void changeEvent(QEvent* event);
void retranslateMenuBar(); void retranslateMenuBar();
bool isServiceRunning(QString name); bool isServiceRunning(QString name);
bool isBonjourRunning();
private: private:
QSettings& m_Settings; QSettings& m_Settings;
@ -166,7 +167,6 @@ class MainWindow : public QMainWindow, public Ui::MainWindowBase
QMenu* m_pMenuWindow; QMenu* m_pMenuWindow;
QMenu* m_pMenuHelp; QMenu* m_pMenuHelp;
ZeroconfService* m_pZeroconfService; ZeroconfService* m_pZeroconfService;
bool m_BonjourRunning;
private slots: private slots:
void on_m_pAutoConnectCheckBox_toggled(bool checked); void on_m_pAutoConnectCheckBox_toggled(bool checked);