Ported wxutils from soap branch (Should make launch and explore work in Linux and osx as well) please test on windows.

Fixed a compile bug and a small bug in the cdutils(thanks lp).



git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2420 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
nakeee 2009-02-24 19:31:32 +00:00
parent e59869e63c
commit ab93b00385
10 changed files with 64 additions and 40 deletions

View File

@ -2,7 +2,6 @@
With minor adjustments */
#include "CDUtils.h"
#include "common.h"
/*!
Follow symlinks until we have the real device file
@ -413,7 +412,7 @@ bool cdio_is_cdrom(const char *device) {
char **devices = cdio_get_devices();
bool res = false;
for (int i = 0; devices[i] != NULL; i++) {
if (strncmp(devices[i], device, PATH_MAX)) {
if (strncmp(devices[i], device, PATH_MAX) == 0) {
res = true;
break;
}

View File

@ -113,36 +113,6 @@ std::string SanitizePath(const char *filename)
return copy;
}
void Launch(const char *filename)
{
#ifdef _WIN32
std::string win_filename = SanitizePath(filename);
SHELLEXECUTEINFO shex = { sizeof(shex) };
shex.fMask = SEE_MASK_NO_CONSOLE; // | SEE_MASK_ASYNC_OK;
shex.lpVerb = "open";
shex.lpFile = win_filename.c_str();
shex.nShow = SW_SHOWNORMAL;
ShellExecuteEx(&shex);
#else
// TODO: Insert GNOME/KDE code here.
#endif
}
void Explore(const char *path)
{
#ifdef _WIN32
std::string win_path = SanitizePath(path);
SHELLEXECUTEINFO shex = { sizeof(shex) };
shex.fMask = SEE_MASK_NO_CONSOLE; // | SEE_MASK_ASYNC_OK;
shex.lpVerb = "explore";
shex.lpFile = win_path.c_str();
shex.nShow = SW_SHOWNORMAL;
ShellExecuteEx(&shex);
#else
// TODO: Insert GNOME/KDE code here.
#endif
}
// Returns true if successful, or path already exists.
bool CreateDir(const char *path)
{
@ -545,3 +515,4 @@ bool SetCurrentDirectory(const std::string& _rDirectory)
} // namespace

View File

@ -37,8 +37,6 @@ struct FSTEntry
std::string SanitizePath(const char *filename);
bool Exists(const char *filename);
void Launch(const char *filename);
void Explore(const char *path);
bool IsDirectory(const char *filename);
bool IsDisk(const char *filename);
bool CreateDir(const char *filename);

View File

@ -457,6 +457,14 @@
RelativePath=".\src\RegisterView.h"
>
</File>
<File
RelativePath=".\src\WxUtils.cpp"
>
</File>
<File
RelativePath=".\src\WxUtils.h"
>
</File>
</Filter>
<Filter
Name="Resources"

View File

@ -32,6 +32,7 @@
// ugly that this lib included code from the main
#include "../../DolphinWX/Src/Globals.h"
#include "../../DolphinWX/Src/WxUtils.h"
#include "Host.h"
@ -42,11 +43,11 @@
#include "BreakpointWindow.h"
#include "MemoryWindow.h"
#include "JitWindow.h"
#include "FileUtil.h"
#include "CodeWindow.h"
#include "CodeView.h"
#include "FileUtil.h"
#include "Core.h"
#include "HLE/HLE.h"
#include "Boot/Boot.h"
@ -133,7 +134,7 @@ void CCodeWindow::OnProfilerMenu(wxCommandEvent& event)
break;
case IDM_WRITEPROFILE:
Profiler::WriteProfileResults("profiler.txt");
File::Launch("profiler.txt");
WxUtils::Launch("profiler.txt");
break;
}
}

View File

@ -59,6 +59,8 @@ be accessed from Core::GetWindowHandle().
#include <wx/datetime.h> // wxWidgets
// ugly that this lib included code from the main
#include "../../DolphinWX/Src/WxUtils.h"
// ----------------------------------------------------------------------------
// Resources
@ -624,10 +626,10 @@ void CFrame::OnHelp(wxCommandEvent& event)
break;
}
case IDM_HELPWEBSITE:
File::Launch("http://www.dolphin-emu.com/");
WxUtils::Launch("http://www.dolphin-emu.com/");
break;
case IDM_HELPGOOGLECODE:
File::Launch("http://code.google.com/p/dolphin-emu/");
WxUtils::Launch("http://code.google.com/p/dolphin-emu/");
break;
}
}

View File

@ -23,13 +23,13 @@
#include <algorithm>
#include "FileSearch.h"
#include "FileUtil.h"
#include "StringUtil.h"
#include "ConfigManager.h"
#include "GameListCtrl.h"
#include "Blob.h"
#include "ISOProperties.h"
#include "IniFile.h"
#include "FileUtil.h"
#if USE_XPM_BITMAPS
#include "../resources/Flag_Europe.xpm"
@ -38,6 +38,9 @@
#include "../resources/Flag_USA.xpm"
#endif // USE_XPM_BITMAPS
// ugly that this lib included code from the main
#include "../../DolphinWX/Src/WxUtils.h"
size_t CGameListCtrl::m_currentItem = 0;
size_t CGameListCtrl::m_numberItem = 0;
std::string CGameListCtrl::m_currentFilename;
@ -636,7 +639,7 @@ void CGameListCtrl::OnOpenContainingFolder(wxCommandEvent& WXUNUSED (event))
return;
std::string path;
SplitPath(iso->GetFileName(), &path, 0, 0);
File::Explore(path.c_str());
WxUtils::Explore(path.c_str());
}

View File

@ -35,6 +35,7 @@ if wxenv['HAVE_WX']:
'stdafx.cpp',
'FrameWiimote.cpp',
'SDCardWindow.cpp',
'WxUtils.cpp',
]
CPPDEFINES = [

View File

@ -0,0 +1,29 @@
#include "Common.h"
#include <wx/wx.h>
#include <wx/string.h>
namespace WxUtils {
// Launch a file according to its mime type
void Launch(const char *filename)
{
if (! ::wxLaunchDefaultBrowser(wxString::FromAscii(filename))) {
// WARN_LOG
}
}
// Launch an file explorer window on a certain path
void Explore(const char *path)
{
wxString wxPath = wxString::FromAscii(path);
// Default to file
if (! wxPath.Contains(wxT("://"))) {
wxPath = wxT("file://") + wxPath;
}
if (! ::wxLaunchDefaultBrowser(wxPath)) {
// WARN_LOG
}
}
}

View File

@ -0,0 +1,12 @@
#ifndef WXUTILS_H
#define WXUTILS_H
namespace WxUtils {
// Launch a file according to its mime type
void Launch(const char *filename);
// Launch an file explorer window on a certain path
void Explore(const char *path);
} // NameSpace WxUtils
#endif // WXUTILS