summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorGlenn Rice <glennricster@gmail.com>2011-02-20 23:42:21 +0000
committerGlenn Rice <glennricster@gmail.com>2011-02-20 23:42:21 +0000
commitf9ccd6dfa1df2da1d7af96fd319b772ae2063f1d (patch)
tree1fa162d89e5993a9cf001f68d44f96d24217ee7a /Source/Core
parent636af2ce673c2baa787b8ff582b5d5158973bd2c (diff)
Sort configuration profiles in the video configuration dialog. Instead of sorting alphabetically, sort them in the order they appear in the game list control.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7216 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/DolphinWX/Src/Frame.cpp4
-rw-r--r--Source/Core/DolphinWX/Src/Frame.h2
-rw-r--r--Source/Core/DolphinWX/Src/VideoConfigDiag.cpp30
-rw-r--r--Source/Core/DolphinWX/Src/VideoConfigDiag.h3
4 files changed, 21 insertions, 18 deletions
diff --git a/Source/Core/DolphinWX/Src/Frame.cpp b/Source/Core/DolphinWX/Src/Frame.cpp
index e7eb08ed3c..588bc5df8e 100644
--- a/Source/Core/DolphinWX/Src/Frame.cpp
+++ b/Source/Core/DolphinWX/Src/Frame.cpp
@@ -1052,7 +1052,7 @@ void CFrame::DoFullscreen(bool bF)
m_RenderFrame->Raise();
}
-const GameListItem *CFrame::GetGameListItem(int index) const
+const CGameListCtrl *CFrame::GetGameListCtrl() const
{
- return m_GameListCtrl->GetISO(index);
+ return m_GameListCtrl;
}
diff --git a/Source/Core/DolphinWX/Src/Frame.h b/Source/Core/DolphinWX/Src/Frame.h
index 11e3f78d4d..5b62df54b8 100644
--- a/Source/Core/DolphinWX/Src/Frame.h
+++ b/Source/Core/DolphinWX/Src/Frame.h
@@ -134,7 +134,7 @@ class CFrame : public CRenderFrame
void ToggleDisplayMode (bool bFullscreen);
static void ConnectWiimote(int wm_idx, bool connect);
- const GameListItem *GetGameListItem(int index) const;
+ const CGameListCtrl *GetGameListCtrl() const;
#ifdef __WXGTK__
Common::Event panic_event;
diff --git a/Source/Core/DolphinWX/Src/VideoConfigDiag.cpp b/Source/Core/DolphinWX/Src/VideoConfigDiag.cpp
index 7f76ae9b07..9e4be6816e 100644
--- a/Source/Core/DolphinWX/Src/VideoConfigDiag.cpp
+++ b/Source/Core/DolphinWX/Src/VideoConfigDiag.cpp
@@ -7,6 +7,7 @@
#include "Frame.h"
#include "ISOFile.h"
+#include "GameListCtrl.h"
#include "ConfigManager.h"
#include "Core.h"
@@ -70,9 +71,9 @@ void VideoConfigDiag::Event_Close(wxCloseEvent& ev)
}
else
{
- const GameListItem* item = main_frame->GetGameListItem(cur_profile-1);
+ const GameListItem* item = GameListCtrl->GetISO(GameListCtrl->GetItemData(cur_profile - 1));
vconfig.GameIniSave((File::GetUserPath(D_CONFIG_IDX) + ininame + ".ini").c_str(),
- (std::string(File::GetUserPath(D_GAMECONFIG_IDX)) + item->GetUniqueID() + ".ini").c_str());
+ (std::string(File::GetUserPath(D_GAMECONFIG_IDX)) + item->GetUniqueID() + ".ini").c_str());
}
EndModal(wxID_OK);
@@ -138,6 +139,7 @@ VideoConfigDiag::VideoConfigDiag(wxWindow* parent, const std::string &title, con
, choice_adapter(NULL)
, choice_ppshader(NULL)
, ininame(_ininame)
+ , GameListCtrl(main_frame->GetGameListCtrl())
{
// TODO: Make this less hacky
vconfig = g_Config; // take over backend_info
@@ -147,13 +149,12 @@ VideoConfigDiag::VideoConfigDiag(wxWindow* parent, const std::string &title, con
if (Core::isRunning())
{
// Search which ISO has been started
- for (int index = 0; ; ++index)
+ for (long index = GameListCtrl->GetNextItem(-1); index != -1; index = GameListCtrl->GetNextItem(index))
{
- const GameListItem* item = main_frame->GetGameListItem(index);
- if (item == NULL) break;
+ const GameListItem* item = GameListCtrl->GetISO(GameListCtrl->GetItemData(index));
if (item->GetUniqueID() == SConfig::GetInstance().m_LocalCoreStartupParameter.m_strUniqueID)
{
- cur_profile = index+1;
+ cur_profile = index + 1;
break;
}
}
@@ -163,7 +164,7 @@ VideoConfigDiag::VideoConfigDiag(wxWindow* parent, const std::string &title, con
vconfig.Load((File::GetUserPath(D_CONFIG_IDX) + ininame + ".ini").c_str());
if (cur_profile != 0)
{
- const GameListItem* item = main_frame->GetGameListItem(cur_profile-1);
+ const GameListItem* item = GameListCtrl->GetISO(GameListCtrl->GetItemData(cur_profile - 1));
vconfig.GameIniLoad((std::string(File::GetUserPath(D_GAMECONFIG_IDX)) + item->GetUniqueID() + ".ini").c_str());
}
@@ -186,11 +187,9 @@ VideoConfigDiag::VideoConfigDiag(wxWindow* parent, const std::string &title, con
szr_basic->Add(profile_cb, 1, 0, 0);
profile_cb->AppendString(_("(Default)"));
- for (int index = 0; ; ++index)
+ for (long index = GameListCtrl->GetNextItem(-1); index != -1; index = GameListCtrl->GetNextItem(index))
{
- // TODO: Sort these alphabetically
- const GameListItem* item = main_frame->GetGameListItem(index);
- if (item == NULL) break;
+ const GameListItem* item = GameListCtrl->GetISO(GameListCtrl->GetItemData(index));
profile_cb->AppendString(wxString(item->GetName(0).c_str(), wxConvUTF8));
}
@@ -486,9 +485,9 @@ void VideoConfigDiag::Event_OnProfileChange(wxCommandEvent& ev)
}
else
{
- const GameListItem* item = main_frame->GetGameListItem(cur_profile-1);
+ const GameListItem* item = GameListCtrl->GetISO(GameListCtrl->GetItemData(cur_profile - 1));
vconfig.GameIniSave((File::GetUserPath(D_CONFIG_IDX) + ininame + ".ini").c_str(),
- (std::string(File::GetUserPath(D_GAMECONFIG_IDX)) + item->GetUniqueID() + ".ini").c_str());
+ (std::string(File::GetUserPath(D_GAMECONFIG_IDX)) + item->GetUniqueID() + ".ini").c_str());
}
// Enable new profile
@@ -500,7 +499,7 @@ void VideoConfigDiag::Event_OnProfileChange(wxCommandEvent& ev)
// Load game-specific settings
if (cur_profile != 0)
{
- const GameListItem* item = main_frame->GetGameListItem(cur_profile-1);
+ const GameListItem* item = GameListCtrl->GetISO(GameListCtrl->GetItemData(cur_profile - 1));
vconfig.GameIniLoad((std::string(File::GetUserPath(D_GAMECONFIG_IDX)) + item->GetUniqueID() + ".ini").c_str());
}
@@ -550,7 +549,8 @@ void VideoConfigDiag::OnUpdateUI(wxUpdateUIEvent& ev)
else if (cur_profile != 0)
{
// TODO: Modifying the default profile should update g_Config as well
- if (main_frame->GetGameListItem(cur_profile-1)->GetUniqueID() == SConfig::GetInstance().m_LocalCoreStartupParameter.m_strUniqueID)
+ if (GameListCtrl->GetISO(GameListCtrl->GetItemData(cur_profile - 1))->GetUniqueID() ==
+ SConfig::GetInstance().m_LocalCoreStartupParameter.m_strUniqueID)
g_Config = vconfig;
}
diff --git a/Source/Core/DolphinWX/Src/VideoConfigDiag.h b/Source/Core/DolphinWX/Src/VideoConfigDiag.h
index 081e7c69fa..951ab92f3a 100644
--- a/Source/Core/DolphinWX/Src/VideoConfigDiag.h
+++ b/Source/Core/DolphinWX/Src/VideoConfigDiag.h
@@ -62,6 +62,8 @@ private:
int &m_setting;
};
+class CGameListCtrl;
+
class VideoConfigDiag : public wxDialog
{
public:
@@ -173,6 +175,7 @@ protected:
VideoConfig vconfig;
std::string ininame;
int cur_profile;
+ const CGameListCtrl *GameListCtrl;
};
#endif