diff -r f31d1073345e -r ded882439548 QTfrontend/hwform.cpp --- a/QTfrontend/hwform.cpp Wed Jun 15 23:59:44 2011 +0200 +++ b/QTfrontend/hwform.cpp Sat Jun 18 03:14:45 2011 +0200 @@ -182,9 +182,7 @@ connect(ui.pageOptions->BtnDeleteTeam, SIGNAL(clicked()), this, SLOT(DeleteTeam())); connect(ui.pageOptions->BtnSaveOptions, SIGNAL(clicked()), config, SLOT(SaveOptions())); connect(ui.pageOptions->BtnSaveOptions, SIGNAL(clicked()), this, SLOT(GoBack())); -#ifndef __APPLE__ connect(ui.pageOptions->BtnAssociateFiles, SIGNAL(clicked()), this, SLOT(AssociateFiles())); -#endif connect(ui.pageOptions->WeaponEdit, SIGNAL(clicked()), this, SLOT(GoToSelectWeapon())); connect(ui.pageOptions->WeaponNew, SIGNAL(clicked()), this, SLOT(GoToSelectNewWeapon())); @@ -713,12 +711,18 @@ tr("Error"), tr("Please select record from the list above"), tr("OK")); - return ; + return; } CreateGame(0, 0, 0); game->PlayDemo(curritem->data(Qt::UserRole).toString()); } +void HWForm::PlayDemoQuick(const QString & demofilename) +{ + CreateGame(0, 0, 0); + game->PlayDemo(demofilename); +} + void HWForm::NetConnectServer(const QString & host, quint16 port) { _NetConnect(host, port, ui.pageOptions->editNetNick->text().trimmed()); @@ -1253,8 +1257,10 @@ registry_hkcr.setValue("Hedgewars.Demo/Shell/Open/Command/Default", "\"" + bindir->absolutePath().replace("/", "\\") + "\\hwengine.exe\" \"" + cfgdir->absolutePath().replace("/","\\") + "\" \"" + datadir->absolutePath().replace("/", "\\") + "\" \"%1\" --set-everything "+arguments); registry_hkcr.setValue("Hedgewars.Save/Shell/Open/Command/Default", "\"" + bindir->absolutePath().replace("/", "\\") + "\\hwengine.exe\" \"" + cfgdir->absolutePath().replace("/","\\") + "\" \"" + datadir->absolutePath().replace("/", "\\") + "\" \"%1\" --set-everything "+arguments); #elif defined __APPLE__ - success = false; - // TODO; also enable button in pages.cpp and signal in hwform.cpp + // only useful when other apps have taken precedence over our file extensions and you want to reset it + system("defaults write com.apple.LaunchServices LSHandlers -array-add 'LSHandlerContentTaghwdLSHandlerContentTagClasspublic.filename-extensionLSHandlerRoleAllorg.hedgewars.desktop'"); + system("defaults write com.apple.LaunchServices LSHandlers -array-add 'LSHandlerContentTaghwsLSHandlerContentTagClasspublic.filename-extensionLSHandlerRoleAllorg.hedgewars.desktop'"); + system("/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -domain local -domain system -domain user"); #else // this is a little silly due to all the system commands below anyway - just use mkdir -p ? Does have the advantage of the alert I guess if (success) success = checkForDir(QDir::home().absolutePath() + "/.local");