diff -r 9a4bbc1f67a2 -r 2fc211f60015 QTfrontend/hwform.cpp --- a/QTfrontend/hwform.cpp Wed Oct 06 15:37:56 2010 -0400 +++ b/QTfrontend/hwform.cpp Wed Oct 06 22:36:41 2010 +0200 @@ -141,6 +141,9 @@ 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())); +#ifdef _WIN32 + connect(ui.pageOptions->BtnAssociateFiles, SIGNAL(clicked()), this, SLOT(AssociateFiles())); +#endif connect(ui.pageOptions->WeaponEdit, SIGNAL(clicked()), this, SLOT(GoToSelectWeapon())); connect(ui.pageOptions->WeaponsButt, SIGNAL(clicked()), this, SLOT(GoToSelectNewWeapon())); @@ -1110,3 +1113,17 @@ for(int i = 0; (i < entries.count()) && (i <= team.CampaignProgress); i++) ui.pageCampaign->CBSelect->addItem(QString(entries[i]).replace(QRegExp("^(\\d+)#(.+)\\.lua"), QComboBox::tr("Mission") + " \\1: \\2"), QString(entries[i]).replace(QRegExp("^(.*)\\.lua"), "\\1")); } + +void HWForm::AssociateFiles() +{ + QSettings registry_hkcr("HKEY_CLASSES_ROOT", QSettings::NativeFormat); + registry_hkcr.setValue(".hwd/Default", "Hedgewars.Demo"); + registry_hkcr.setValue(".hws/Default", "Hedgewars.Save"); + registry_hkcr.setValue("Hedgewars.Demo/Default", tr("Hedgewars Demo File", "File Types")); + registry_hkcr.setValue("Hedgewars.Save/Default", tr("Hedgewars Save File", "File Types")); + registry_hkcr.setValue("Hedgewars.Demo/DefaultIcon/Default", "\"" + bindir->absolutePath().replace("/", "\\") + "\\hwdfile.ico\",0"); + registry_hkcr.setValue("Hedgewars.Save/DefaultIcon/Default", "\"" + bindir->absolutePath().replace("/", "\\") + "\\hwsfile.ico\",0"); + registry_hkcr.setValue("Hedgewars.Demo/Shell/Open/Command/Default", "\"" + bindir->absolutePath().replace("/", "\\") + "\\hwengine.exe\" \"" + datadir->absolutePath().replace("/", "\\") + "\" \"%1\""); + registry_hkcr.setValue("Hedgewars.Save/Shell/Open/Command/Default", "\"" + bindir->absolutePath().replace("/", "\\") + "\\hwengine.exe\" \"" + datadir->absolutePath().replace("/", "\\") + "\" \"%1\""); + QMessageBox::information(0, "", QMessageBox::tr("All file associations have been set.")); +}