Remove GotoURL
"Report" button has not been removed from CrashHandlerChild / Crash.mm / DialogDriver_Win32, but functionality has been removed.
This commit is contained in:
@@ -51,7 +51,6 @@ else()
|
|||||||
"archutils/Win32/DirectXHelpers.cpp"
|
"archutils/Win32/DirectXHelpers.cpp"
|
||||||
"archutils/Win32/ErrorStrings.cpp"
|
"archutils/Win32/ErrorStrings.cpp"
|
||||||
"archutils/Win32/GetFileInformation.cpp"
|
"archutils/Win32/GetFileInformation.cpp"
|
||||||
"archutils/Win32/GotoURL.cpp"
|
|
||||||
"archutils/Win32/GraphicsWindow.cpp"
|
"archutils/Win32/GraphicsWindow.cpp"
|
||||||
"archutils/Win32/MessageWindow.cpp"
|
"archutils/Win32/MessageWindow.cpp"
|
||||||
"archutils/Win32/RegistryAccess.cpp"
|
"archutils/Win32/RegistryAccess.cpp"
|
||||||
@@ -76,7 +75,6 @@ else()
|
|||||||
"archutils/Win32/DirectXHelpers.h"
|
"archutils/Win32/DirectXHelpers.h"
|
||||||
"archutils/Win32/ErrorStrings.h"
|
"archutils/Win32/ErrorStrings.h"
|
||||||
"archutils/Win32/GetFileInformation.h"
|
"archutils/Win32/GetFileInformation.h"
|
||||||
"archutils/Win32/GotoURL.h"
|
|
||||||
"archutils/Win32/GraphicsWindow.h"
|
"archutils/Win32/GraphicsWindow.h"
|
||||||
"archutils/Win32/MessageWindow.h"
|
"archutils/Win32/MessageWindow.h"
|
||||||
"archutils/Win32/RegistryAccess.h"
|
"archutils/Win32/RegistryAccess.h"
|
||||||
|
|||||||
@@ -832,16 +832,6 @@ void GameCommand::ApplySelf( const std::vector<PlayerNumber> &vpns ) const
|
|||||||
if( !m_sProfileID.empty() )
|
if( !m_sProfileID.empty() )
|
||||||
for (PlayerNumber const &pn : vpns)
|
for (PlayerNumber const &pn : vpns)
|
||||||
ProfileManager::m_sDefaultLocalProfileID[pn].Set( m_sProfileID );
|
ProfileManager::m_sDefaultLocalProfileID[pn].Set( m_sProfileID );
|
||||||
if( !m_sUrl.empty() )
|
|
||||||
{
|
|
||||||
if( HOOKS->GoToURL( m_sUrl ) )
|
|
||||||
{
|
|
||||||
if( m_bUrlExits )
|
|
||||||
SCREENMAN->SetNewScreen( "ScreenExit" );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
ScreenPrompt::Prompt( SM_None, COULD_NOT_LAUNCH_BROWSER );
|
|
||||||
}
|
|
||||||
|
|
||||||
/* If we're going to stop music, do so before preparing new screens, so we
|
/* If we're going to stop music, do so before preparing new screens, so we
|
||||||
* don't stop music between preparing screens and loading screens. */
|
* don't stop music between preparing screens and loading screens. */
|
||||||
|
|||||||
@@ -157,14 +157,6 @@ void ScreenInstallOverlay::Init()
|
|||||||
|
|
||||||
bool ScreenInstallOverlay::Input( const InputEventPlus &input )
|
bool ScreenInstallOverlay::Input( const InputEventPlus &input )
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
if( input.DeviceI.button == g_buttonLogin && input.type == IET_FIRST_PRESS )
|
|
||||||
{
|
|
||||||
HOOKS->GoToURL("http://www.stepmania.com/launch.php");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
return Screen::Input(input);
|
return Screen::Input(input);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -51,11 +51,6 @@ bool ArchHooks::AppFocusChanged()
|
|||||||
return bFocusChanged;
|
return bFocusChanged;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ArchHooks::GoToURL( RString sUrl )
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
ArchHooks *ArchHooks::Create()
|
ArchHooks *ArchHooks::Create()
|
||||||
{
|
{
|
||||||
return new ARCH_HOOKS;
|
return new ARCH_HOOKS;
|
||||||
|
|||||||
@@ -114,11 +114,6 @@ public:
|
|||||||
*/
|
*/
|
||||||
bool AppFocusChanged();
|
bool AppFocusChanged();
|
||||||
|
|
||||||
/*
|
|
||||||
* Open a URL in the default web browser
|
|
||||||
*/
|
|
||||||
virtual bool GoToURL( RString sUrl );
|
|
||||||
|
|
||||||
virtual float GetDisplayAspectRatio() = 0;
|
virtual float GetDisplayAspectRatio() = 0;
|
||||||
|
|
||||||
/** @brief Fetch the contents of the system clipboard. */
|
/** @brief Fetch the contents of the system clipboard. */
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ public:
|
|||||||
RString GetArchName() const;
|
RString GetArchName() const;
|
||||||
void DumpDebugInfo();
|
void DumpDebugInfo();
|
||||||
RString GetPreferredLanguage();
|
RString GetPreferredLanguage();
|
||||||
bool GoToURL( RString sUrl );
|
|
||||||
float GetDisplayAspectRatio();
|
float GetDisplayAspectRatio();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -248,16 +248,6 @@ RString ArchHooks::GetPreferredLanguage()
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ArchHooks_MacOSX::GoToURL( RString sUrl )
|
|
||||||
{
|
|
||||||
CFURLRef url = CFURLCreateWithBytes( kCFAllocatorDefault, (const UInt8*)sUrl.data(),
|
|
||||||
sUrl.length(), kCFStringEncodingUTF8, nil);
|
|
||||||
OSStatus result = LSOpenCFURLRef( url, nil);
|
|
||||||
|
|
||||||
CFRelease( url );
|
|
||||||
return result == 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int64_t ArchHooks::GetSystemTimeInMicroseconds()
|
int64_t ArchHooks::GetSystemTimeInMicroseconds()
|
||||||
{
|
{
|
||||||
// http://developer.apple.com/qa/qa2004/qa1398.html
|
// http://developer.apple.com/qa/qa2004/qa1398.html
|
||||||
|
|||||||
@@ -226,31 +226,6 @@ void ArchHooks_Unix::Init()
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ArchHooks_Unix::GoToURL( RString sUrl )
|
|
||||||
{
|
|
||||||
int status;
|
|
||||||
pid_t p = fork();
|
|
||||||
if ( p == -1 )
|
|
||||||
{
|
|
||||||
// Call to fork failed
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else if ( p == 0 )
|
|
||||||
{
|
|
||||||
// Child
|
|
||||||
const char * const argv[] = { "xdg-open", sUrl.c_str(), nullptr };
|
|
||||||
execv( "/usr/bin/xdg-open", const_cast<char * const *>( argv ));
|
|
||||||
// If we reach here, the call to execvp failed
|
|
||||||
exit( 1 );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Parent
|
|
||||||
waitpid( p, &status, 0 );
|
|
||||||
return WEXITSTATUS( status ) == 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifndef _CS_GNU_LIBC_VERSION
|
#ifndef _CS_GNU_LIBC_VERSION
|
||||||
#define _CS_GNU_LIBC_VERSION 2
|
#define _CS_GNU_LIBC_VERSION 2
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -18,8 +18,6 @@ public:
|
|||||||
void MountInitialFilesystems( const RString &sDirOfExecutable );
|
void MountInitialFilesystems( const RString &sDirOfExecutable );
|
||||||
float GetDisplayAspectRatio() { return 4.0f/3; }
|
float GetDisplayAspectRatio() { return 4.0f/3; }
|
||||||
|
|
||||||
bool GoToURL( RString sUrl );
|
|
||||||
|
|
||||||
static clockid_t GetClock();
|
static clockid_t GetClock();
|
||||||
|
|
||||||
RString GetClipboard();
|
RString GetClipboard();
|
||||||
|
|||||||
@@ -9,7 +9,6 @@
|
|||||||
#include "archutils/win32/DebugInfoHunt.h"
|
#include "archutils/win32/DebugInfoHunt.h"
|
||||||
#include "archutils/win32/ErrorStrings.h"
|
#include "archutils/win32/ErrorStrings.h"
|
||||||
#include "archutils/win32/RestartProgram.h"
|
#include "archutils/win32/RestartProgram.h"
|
||||||
#include "archutils/win32/GotoURL.h"
|
|
||||||
#include "archutils/Win32/RegistryAccess.h"
|
#include "archutils/Win32/RegistryAccess.h"
|
||||||
|
|
||||||
#include "VersionHelpers.h"
|
#include "VersionHelpers.h"
|
||||||
@@ -171,11 +170,6 @@ void ArchHooks_Win32::SetupConcurrentRenderingThread()
|
|||||||
SetThreadPriority( GetCurrentThread(), THREAD_PRIORITY_ABOVE_NORMAL );
|
SetThreadPriority( GetCurrentThread(), THREAD_PRIORITY_ABOVE_NORMAL );
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ArchHooks_Win32::GoToURL( RString sUrl )
|
|
||||||
{
|
|
||||||
return ::GotoURL( sUrl );
|
|
||||||
}
|
|
||||||
|
|
||||||
float ArchHooks_Win32::GetDisplayAspectRatio()
|
float ArchHooks_Win32::GetDisplayAspectRatio()
|
||||||
{
|
{
|
||||||
DEVMODE dm;
|
DEVMODE dm;
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ public:
|
|||||||
void UnBoostPriority();
|
void UnBoostPriority();
|
||||||
void SetupConcurrentRenderingThread();
|
void SetupConcurrentRenderingThread();
|
||||||
|
|
||||||
bool GoToURL( RString sUrl );
|
|
||||||
virtual float GetDisplayAspectRatio();
|
virtual float GetDisplayAspectRatio();
|
||||||
RString GetClipboard();
|
RString GetClipboard();
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -9,7 +9,6 @@
|
|||||||
|
|
||||||
#include "archutils/win32/AppInstance.h"
|
#include "archutils/win32/AppInstance.h"
|
||||||
#include "archutils/win32/ErrorStrings.h"
|
#include "archutils/win32/ErrorStrings.h"
|
||||||
#include "archutils/win32/GotoURL.h"
|
|
||||||
#include "archutils/win32/RestartProgram.h"
|
#include "archutils/win32/RestartProgram.h"
|
||||||
#include "archutils/Win32/SpecialDirs.h"
|
#include "archutils/Win32/SpecialDirs.h"
|
||||||
#if !defined(SMPACKAGE)
|
#if !defined(SMPACKAGE)
|
||||||
@@ -179,7 +178,7 @@ static INT_PTR CALLBACK ErrorWndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case IDC_BUTTON_REPORT:
|
case IDC_BUTTON_REPORT:
|
||||||
GotoURL( REPORT_BUG_URL );
|
// safe to remove this button?
|
||||||
break;
|
break;
|
||||||
case IDC_BUTTON_RESTART:
|
case IDC_BUTTON_RESTART:
|
||||||
Win32RestartProgram();
|
Win32RestartProgram();
|
||||||
|
|||||||
@@ -54,11 +54,9 @@ void CrashHandler::InformUserOfCrash( const RString& sPath )
|
|||||||
switch( response )
|
switch( response )
|
||||||
{
|
{
|
||||||
case kCFUserNotificationDefaultResponse:
|
case kCFUserNotificationDefaultResponse:
|
||||||
HOOKS->GoToURL( REPORT_BUG_URL );
|
|
||||||
// Fall through.
|
// Fall through.
|
||||||
case kCFUserNotificationOtherResponse:
|
case kCFUserNotificationOtherResponse:
|
||||||
// Open the file with the default application (probably TextEdit).
|
// Open the file with the default application (probably TextEdit). [unimplemented]
|
||||||
HOOKS->GoToURL( "file://" + sPath );
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
CFRelease( sBody );
|
CFRelease( sBody );
|
||||||
|
|||||||
@@ -6,7 +6,6 @@
|
|||||||
#include "archutils/Win32/WindowsResources.h"
|
#include "archutils/Win32/WindowsResources.h"
|
||||||
#include "archutils/Win32/DialogUtil.h"
|
#include "archutils/Win32/DialogUtil.h"
|
||||||
#include "archutils/Win32/ErrorStrings.h"
|
#include "archutils/Win32/ErrorStrings.h"
|
||||||
#include "archutils/Win32/GotoURL.h"
|
|
||||||
#include "archutils/Win32/RestartProgram.h"
|
#include "archutils/Win32/RestartProgram.h"
|
||||||
#include "archutils/Win32/CrashHandlerNetworking.h"
|
#include "archutils/Win32/CrashHandlerNetworking.h"
|
||||||
#include "archutils/Win32/WindowsDialogBox.h"
|
#include "archutils/Win32/WindowsDialogBox.h"
|
||||||
@@ -766,35 +765,10 @@ INT_PTR CrashDialog::HandleMessage( UINT msg, WPARAM wParam, LPARAM lParam )
|
|||||||
EndDialog( hDlg, FALSE );
|
EndDialog( hDlg, FALSE );
|
||||||
break;
|
break;
|
||||||
case IDC_BUTTON_REPORT:
|
case IDC_BUTTON_REPORT:
|
||||||
GotoURL( REPORT_BUG_URL );
|
// safe to remove button?
|
||||||
break;
|
break;
|
||||||
case IDC_BUTTON_AUTO_REPORT:
|
case IDC_BUTTON_AUTO_REPORT:
|
||||||
if( !m_sUpdateURL.empty() )
|
// same here
|
||||||
{
|
|
||||||
/* We already sent the report, were told that there's an update,
|
|
||||||
* and substituted the URL. */
|
|
||||||
GotoURL( m_sUpdateURL );
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
ShowWindow( GetDlgItem(hDlg, IDC_BUTTON_AUTO_REPORT), false );
|
|
||||||
ShowWindow( GetDlgItem(hDlg, IDC_PROGRESS), true );
|
|
||||||
SetWindowText( GetDlgItem(hDlg, IDC_MAIN_TEXT), REPORTING_THE_PROBLEM.GetValue() );
|
|
||||||
SetWindowText( GetDlgItem(hDlg, IDC_BUTTON_CLOSE), CANCEL.GetValue() );
|
|
||||||
SendDlgItemMessage( hDlg, IDC_PROGRESS, PBM_SETRANGE, 0, MAKELPARAM(0,100) );
|
|
||||||
SendDlgItemMessage( hDlg, IDC_PROGRESS, PBM_SETPOS, 0, 0 );
|
|
||||||
|
|
||||||
// Create the form data to send.
|
|
||||||
m_pPost = new NetworkPostData;
|
|
||||||
m_pPost->SetData( "Product", PRODUCT_ID );
|
|
||||||
m_pPost->SetData( "Version", product_version );
|
|
||||||
m_pPost->SetData( "Arch", HOOKS->GetArchName().c_str() );
|
|
||||||
m_pPost->SetData( "Report", m_sCrashReport );
|
|
||||||
m_pPost->SetData( "Reason", m_CrashData.m_CrashInfo.m_CrashReason );
|
|
||||||
|
|
||||||
m_pPost->Start( CRASH_REPORT_HOST, CRASH_REPORT_PORT, CRASH_REPORT_PATH );
|
|
||||||
|
|
||||||
SetTimer( hDlg, 0, 100, nullptr );
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -1,127 +0,0 @@
|
|||||||
#include "global.h"
|
|
||||||
#include "GotoURL.h"
|
|
||||||
|
|
||||||
#include <cstdint>
|
|
||||||
|
|
||||||
#include <windows.h>
|
|
||||||
#include <shellapi.h>
|
|
||||||
#include <string>
|
|
||||||
#include <codecvt>
|
|
||||||
#include <locale>
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
static std::wstring ConvertToWString(const std::string& str)
|
|
||||||
{
|
|
||||||
int size_needed = MultiByteToWideChar(CP_UTF8, 0, str.c_str(), (int)str.size(), nullptr, 0);
|
|
||||||
std::wstring wstrTo(size_needed, 0);
|
|
||||||
MultiByteToWideChar(CP_UTF8, 0, str.c_str(), (int)str.size(), &wstrTo[0], size_needed);
|
|
||||||
return wstrTo;
|
|
||||||
}
|
|
||||||
|
|
||||||
static LONG GetRegKey(HKEY key, const std::wstring& subkey, std::wstring& retdata)
|
|
||||||
{
|
|
||||||
HKEY hKey;
|
|
||||||
LONG iRet = RegOpenKeyExW(key, subkey.c_str(), 0, KEY_QUERY_VALUE, &hKey);
|
|
||||||
|
|
||||||
if (iRet != ERROR_SUCCESS)
|
|
||||||
{
|
|
||||||
return iRet;
|
|
||||||
}
|
|
||||||
|
|
||||||
DWORD iDataSize = 0;
|
|
||||||
iRet = RegQueryValueExW(hKey, L"emulation", nullptr, nullptr, nullptr, &iDataSize);
|
|
||||||
if (iRet != ERROR_SUCCESS)
|
|
||||||
{
|
|
||||||
RegCloseKey(hKey);
|
|
||||||
return iRet;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::vector<wchar_t> data(iDataSize / sizeof(wchar_t));
|
|
||||||
iRet = RegQueryValueExW(hKey, L"emulation", nullptr, nullptr, reinterpret_cast<LPBYTE>(data.data()), &iDataSize);
|
|
||||||
if (iRet == ERROR_SUCCESS)
|
|
||||||
{
|
|
||||||
retdata.assign(data.begin(), data.end() - 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
RegCloseKey(hKey);
|
|
||||||
return iRet;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool GotoURL(const RString& sUrl)
|
|
||||||
{
|
|
||||||
// Convert RString to std::wstring
|
|
||||||
std::wstring iUrl = ConvertToWString(sUrl);
|
|
||||||
|
|
||||||
// First try ShellExecuteEx
|
|
||||||
SHELLEXECUTEINFOW sei = { sizeof(sei) };
|
|
||||||
sei.lpVerb = L"open";
|
|
||||||
sei.lpFile = iUrl.c_str();
|
|
||||||
sei.nShow = SW_SHOWDEFAULT;
|
|
||||||
sei.fMask = SEE_MASK_FLAG_NO_UI;
|
|
||||||
|
|
||||||
if (ShellExecuteExW(&sei) && reinterpret_cast<intptr_t>(sei.hInstApp) > 32)
|
|
||||||
return true;
|
|
||||||
|
|
||||||
// If it failed, get the .htm regkey and lookup the program
|
|
||||||
std::wstring key;
|
|
||||||
if (GetRegKey(HKEY_CLASSES_ROOT, L".htm", key) != ERROR_SUCCESS)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
key += L"\\shell\\open\\command";
|
|
||||||
|
|
||||||
if( GetRegKey(HKEY_CLASSES_ROOT, key, key) != ERROR_SUCCESS )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
size_t pos = key.find(L"\"%1\"");
|
|
||||||
if (pos == std::wstring::npos)
|
|
||||||
{
|
|
||||||
// No quotes found. Check for %1 without quotes
|
|
||||||
pos = key.find(L"%1");
|
|
||||||
if (pos == std::wstring::npos)
|
|
||||||
pos = key.length() - 1; // No parameter.
|
|
||||||
else
|
|
||||||
key.erase(pos); // Remove the parameter
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
key.erase(pos); // Remove the parameter
|
|
||||||
}
|
|
||||||
|
|
||||||
key += L" " + iUrl;
|
|
||||||
|
|
||||||
STARTUPINFOW si = { sizeof(si) };
|
|
||||||
PROCESS_INFORMATION pi;
|
|
||||||
if (CreateProcessW(nullptr, &key[0], nullptr, nullptr, FALSE, 0, nullptr, nullptr, &si, &pi))
|
|
||||||
{
|
|
||||||
CloseHandle(pi.hProcess);
|
|
||||||
CloseHandle(pi.hThread);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* (c) 2002-2004 Chris Danford
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the
|
|
||||||
* "Software"), to deal in the Software without restriction, including
|
|
||||||
* without limitation the rights to use, copy, modify, merge, publish,
|
|
||||||
* distribute, and/or sell copies of the Software, and to permit persons to
|
|
||||||
* whom the Software is furnished to do so, provided that the above
|
|
||||||
* copyright notice(s) and this permission notice appear in all copies of
|
|
||||||
* the Software and that both the above copyright notice(s) and this
|
|
||||||
* permission notice appear in supporting documentation.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
||||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
||||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
|
|
||||||
* THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS
|
|
||||||
* INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT
|
|
||||||
* OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
|
|
||||||
* OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
||||||
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
||||||
* PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
*/
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
#ifndef GOTO_URL_H
|
|
||||||
#define GOTO_URL_H
|
|
||||||
|
|
||||||
/** @brief Open URLs in a browser. */
|
|
||||||
bool GotoURL( const RString& sUrl );
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
* (c) 2002-2004 Chris Danford
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the
|
|
||||||
* "Software"), to deal in the Software without restriction, including
|
|
||||||
* without limitation the rights to use, copy, modify, merge, publish,
|
|
||||||
* distribute, and/or sell copies of the Software, and to permit persons to
|
|
||||||
* whom the Software is furnished to do so, provided that the above
|
|
||||||
* copyright notice(s) and this permission notice appear in all copies of
|
|
||||||
* the Software and that both the above copyright notice(s) and this
|
|
||||||
* permission notice appear in supporting documentation.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
||||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
||||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
|
|
||||||
* THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS
|
|
||||||
* INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT
|
|
||||||
* OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
|
|
||||||
* OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
||||||
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
||||||
* PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
*/
|
|
||||||
@@ -20,7 +20,6 @@
|
|||||||
#include "LocalizedString.h"
|
#include "LocalizedString.h"
|
||||||
#include "arch/Dialog/Dialog.h"
|
#include "arch/Dialog/Dialog.h"
|
||||||
#include "archutils/Win32/SpecialDirs.h"
|
#include "archutils/Win32/SpecialDirs.h"
|
||||||
#include "archutils/Win32/GotoURL.h"
|
|
||||||
#include "archutils/Win32/ErrorStrings.h"
|
#include "archutils/Win32/ErrorStrings.h"
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
@@ -646,6 +645,4 @@ void LanguagesDlg::OnBnClickedCheckLanguage()
|
|||||||
}
|
}
|
||||||
|
|
||||||
file.Close();
|
file.Close();
|
||||||
|
|
||||||
GotoURL( ssprintf("file://%s", sFullFile.c_str()) );
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user