Changed: Disable button if executable not found, see #279

This commit is contained in:
kervala 2016-09-14 08:14:00 +02:00
parent 86546c56dc
commit b636a7376e
2 changed files with 27 additions and 0 deletions

View file

@ -60,6 +60,7 @@ CMainWindow::CMainWindow():QMainWindow()
setFixedHeight(height()); setFixedHeight(height());
updateProfiles(); updateProfiles();
updateButtons();
} }
CMainWindow::~CMainWindow() CMainWindow::~CMainWindow()
@ -83,6 +84,28 @@ void CMainWindow::updateProfiles()
profilesComboBox->setModel(new CProfilesModel(this)); profilesComboBox->setModel(new CProfilesModel(this));
} }
void CMainWindow::updateButtons()
{
int profileIndex = profilesComboBox->currentIndex();
if (profileIndex < 0) return;
CConfigFile *config = CConfigFile::getInstance();
const CProfile &profile = config->getProfile(profileIndex);
const CServer &server = config->getServer(profile.server);
// get full path of client executable
QString executable = profile.getClientFullPath();
playButton->setEnabled(!executable.isEmpty() && QFile::exists(executable));
// get full path of configuration executable
executable = server.getConfigurationFullPath();
configureButton->setEnabled(!executable.isEmpty() && QFile::exists(executable));
}
void CMainWindow::onPlayClicked() void CMainWindow::onPlayClicked()
{ {
int profileIndex = profilesComboBox->currentIndex(); int profileIndex = profilesComboBox->currentIndex();
@ -123,6 +146,7 @@ void CMainWindow::onConfigureClicked()
const CProfile &profile = config->getProfile(profileIndex); const CProfile &profile = config->getProfile(profileIndex);
const CServer &server = config->getServer(profile.server); const CServer &server = config->getServer(profile.server);
// get full path of configuration executable
QString executable = server.getConfigurationFullPath(); QString executable = server.getConfigurationFullPath();
if (executable.isEmpty() || !QFile::exists(executable)) return; if (executable.isEmpty() || !QFile::exists(executable)) return;
@ -262,4 +286,6 @@ void CMainWindow::onProfileChanged(int profileIndex)
// load changelog // load changelog
m_downloader->getHtmlPageContent(config->expandVariables(server.displayUrl)); m_downloader->getHtmlPageContent(config->expandVariables(server.displayUrl));
updateButtons();
} }

View file

@ -61,6 +61,7 @@ protected:
void closeEvent(QCloseEvent *e); void closeEvent(QCloseEvent *e);
void updateProfiles(); void updateProfiles();
void updateButtons();
QWinTaskbarButton *m_button; QWinTaskbarButton *m_button;
CDownloader *m_downloader; CDownloader *m_downloader;