*Added return grid rows after closing a search to the amount of which one has before doing search

*Fixed weird last random character at game info text 
*Reload background/cursor/... on theme apply after download 
*Added connection check function for URLs (like a PING)
*Added timeout on trying to connect to the theme download hoster
*Fixed redundant characters on search bar when both upper and lower case exist in a search
This commit is contained in:
dimok321 2011-01-25 20:19:15 +00:00
parent ca430264b6
commit 0cca811b34
30 changed files with 367 additions and 437 deletions

View File

@ -2,8 +2,8 @@
<app version="1"> <app version="1">
<name> USB Loader GX</name> <name> USB Loader GX</name>
<coder>USB Loader GX Team</coder> <coder>USB Loader GX Team</coder>
<version>2.0 r1055</version> <version>2.0 r1056</version>
<release_date>201101242033</release_date> <release_date>201101251820</release_date>
<no_ios_reload/> <no_ios_reload/>
<short_description>Loads games from USB-devices</short_description> <short_description>Loads games from USB-devices</short_description>
<long_description>USB Loader GX is a libwiigui based USB iso loader with a wii-like GUI. You can install games to your HDDs and boot them with shorter loading times. <long_description>USB Loader GX is a libwiigui based USB iso loader with a wii-like GUI. You can install games to your HDDs and boot them with shorter loading times.

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-23 21:03+0100\n" "POT-Creation-Date: 2011-01-25 20:46+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: David Jelinek (djelinek@hotmail.com) e->e,r->r,u->u, c->c \n" "Last-Translator: David Jelinek (djelinek@hotmail.com) e->e,r->r,u->u, c->c \n"
"Language-Team: r1043 - last version on http://djelinek.sweb.cz/_USBLoderGX/czech.lang \n" "Language-Team: r1043 - last version on http://djelinek.sweb.cz/_USBLoderGX/czech.lang \n"
@ -282,6 +282,9 @@ msgstr "Naprogramoval: %s"
msgid "Coding:" msgid "Coding:"
msgstr "Programování:" msgstr "Programování:"
msgid "Connection to server timed out."
msgstr ""
msgid "Console" msgid "Console"
msgstr "Konzole" msgstr "Konzole"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-23 21:03+0100\n" "POT-Creation-Date: 2011-01-25 20:46+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: Fox888[dk]\n" "Last-Translator: Fox888[dk]\n"
"Language-Team: [dk]\n" "Language-Team: [dk]\n"
@ -282,6 +282,9 @@ msgstr "Programmeret af: %s"
msgid "Coding:" msgid "Coding:"
msgstr "Programmering:" msgstr "Programmering:"
msgid "Connection to server timed out."
msgstr ""
msgid "Console" msgid "Console"
msgstr "Konsol" msgstr "Konsol"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-23 21:03+0100\n" "POT-Creation-Date: 2011-01-25 20:46+0100\n"
"PO-Revision-Date: 2011-01-24 07:20+0100\n" "PO-Revision-Date: 2011-01-24 07:20+0100\n"
"Last-Translator: glowy\n" "Last-Translator: glowy\n"
"Language-Team: tj_cool, glowy\n" "Language-Team: tj_cool, glowy\n"
@ -282,6 +282,9 @@ msgstr "Geprogrammeerd door: %s"
msgid "Coding:" msgid "Coding:"
msgstr "Codering:" msgstr "Codering:"
msgid "Connection to server timed out."
msgstr ""
msgid "Console" msgid "Console"
msgstr "" msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-23 21:03+0100\n" "POT-Creation-Date: 2011-01-25 20:46+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -282,6 +282,9 @@ msgstr ""
msgid "Coding:" msgid "Coding:"
msgstr "" msgstr ""
msgid "Connection to server timed out."
msgstr ""
msgid "Console" msgid "Console"
msgstr "" msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-23 21:03+0100\n" "POT-Creation-Date: 2011-01-25 20:46+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: c64rmx\n" "Last-Translator: c64rmx\n"
"Language-Team: \n" "Language-Team: \n"
@ -282,6 +282,9 @@ msgstr "Koodaus: %s"
msgid "Coding:" msgid "Coding:"
msgstr "Koodaus" msgstr "Koodaus"
msgid "Connection to server timed out."
msgstr ""
msgid "Console" msgid "Console"
msgstr "Konsoli" msgstr "Konsoli"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-23 21:03+0100\n" "POT-Creation-Date: 2011-01-25 20:46+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: Cyan\n" "Last-Translator: Cyan\n"
"Language-Team: Badablek, Amour, ikya & Kin8\n" "Language-Team: Badablek, Amour, ikya & Kin8\n"
@ -282,6 +282,9 @@ msgstr "Développé par: %s"
msgid "Coding:" msgid "Coding:"
msgstr "Développement:" msgstr "Développement:"
msgid "Connection to server timed out."
msgstr ""
msgid "Console" msgid "Console"
msgstr "" msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-23 21:03+0100\n" "POT-Creation-Date: 2011-01-25 20:46+0100\n"
"PO-Revision-Date: 2010-07-03 17:35-0800\n" "PO-Revision-Date: 2010-07-03 17:35-0800\n"
"Last-Translator: TheRealVisitor\n" "Last-Translator: TheRealVisitor\n"
"Language-Team: Bertilax, Snoozer, wishmasterf, ZEN.13, TheRealVisitor\n" "Language-Team: Bertilax, Snoozer, wishmasterf, ZEN.13, TheRealVisitor\n"
@ -282,6 +282,9 @@ msgstr "Programmiert von: %s"
msgid "Coding:" msgid "Coding:"
msgstr "Programmierung:" msgstr "Programmierung:"
msgid "Connection to server timed out."
msgstr ""
msgid "Console" msgid "Console"
msgstr "Konsolenstatus" msgstr "Konsolenstatus"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-23 21:03+0100\n" "POT-Creation-Date: 2011-01-25 20:46+0100\n"
"PO-Revision-Date: 2009-12-29 11:05+0100\n" "PO-Revision-Date: 2009-12-29 11:05+0100\n"
"Last-Translator: Springdale\n" "Last-Translator: Springdale\n"
"Language-Team: Tusk, Springdale\n" "Language-Team: Tusk, Springdale\n"
@ -282,6 +282,9 @@ msgstr "Kódolás: %s"
msgid "Coding:" msgid "Coding:"
msgstr "Kódolás:" msgstr "Kódolás:"
msgid "Connection to server timed out."
msgstr ""
msgid "Console" msgid "Console"
msgstr "Konzol" msgstr "Konzol"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-24 21:19+0100\n" "POT-Creation-Date: 2011-01-25 20:46+0100\n"
"PO-Revision-Date: 2011-01-22 20:00+0200\n" "PO-Revision-Date: 2011-01-22 20:00+0200\n"
"Last-Translator: Cambo \n" "Last-Translator: Cambo \n"
"Language-Team: Cambo\n" "Language-Team: Cambo\n"
@ -282,6 +282,9 @@ msgstr "Sviluppato da: %s"
msgid "Coding:" msgid "Coding:"
msgstr "Sviluppo:" msgstr "Sviluppo:"
msgid "Connection to server timed out."
msgstr ""
msgid "Console" msgid "Console"
msgstr "Terminale" msgstr "Terminale"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-23 21:03+0100\n" "POT-Creation-Date: 2011-01-25 20:46+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: ichiroling\n" "Last-Translator: ichiroling\n"
"Language-Team: hosigumayuugi, papa\n" "Language-Team: hosigumayuugi, papa\n"
@ -282,6 +282,9 @@ msgstr "開発: %s"
msgid "Coding:" msgid "Coding:"
msgstr "開発者:" msgstr "開発者:"
msgid "Connection to server timed out."
msgstr ""
msgid "Console" msgid "Console"
msgstr "状態" msgstr "状態"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-23 21:03+0100\n" "POT-Creation-Date: 2011-01-25 20:46+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: nextos@korea.com\n" "Last-Translator: nextos@korea.com\n"
"Language-Team: \n" "Language-Team: \n"
@ -282,6 +282,9 @@ msgstr "Coded by: %s"
msgid "Coding:" msgid "Coding:"
msgstr "코디:" msgstr "코디:"
msgid "Connection to server timed out."
msgstr ""
msgid "Console" msgid "Console"
msgstr "콘솔" msgstr "콘솔"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-23 21:03+0100\n" "POT-Creation-Date: 2011-01-25 20:46+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: raschi\n" "Last-Translator: raschi\n"
"Language-Team: raschi\n" "Language-Team: raschi\n"
@ -282,6 +282,9 @@ msgstr "Kodet av: %s"
msgid "Coding:" msgid "Coding:"
msgstr "Koding:" msgstr "Koding:"
msgid "Connection to server timed out."
msgstr ""
msgid "Console" msgid "Console"
msgstr "Konsoll" msgstr "Konsoll"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-23 21:03+0100\n" "POT-Creation-Date: 2011-01-25 20:46+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: ziom666 (zadania_prog@vp.pl)\n" "Last-Translator: ziom666 (zadania_prog@vp.pl)\n"
"Language-Team: \n" "Language-Team: \n"
@ -282,6 +282,9 @@ msgstr ""
msgid "Coding:" msgid "Coding:"
msgstr "" msgstr ""
msgid "Connection to server timed out."
msgstr ""
msgid "Console" msgid "Console"
msgstr "Konsola" msgstr "Konsola"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-23 21:03+0100\n" "POT-Creation-Date: 2011-01-25 20:46+0100\n"
"PO-Revision-Date: 2009-10-23 18:52+0200\n" "PO-Revision-Date: 2009-10-23 18:52+0200\n"
"Last-Translator: aniemotion\n" "Last-Translator: aniemotion\n"
"Language-Team: boto12, aniemotion\n" "Language-Team: boto12, aniemotion\n"
@ -282,6 +282,9 @@ msgstr "Programado por: %s"
msgid "Coding:" msgid "Coding:"
msgstr "Desenvolvimento:" msgstr "Desenvolvimento:"
msgid "Connection to server timed out."
msgstr ""
msgid "Console" msgid "Console"
msgstr "Configuração" msgstr "Configuração"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-23 21:03+0100\n" "POT-Creation-Date: 2011-01-25 20:46+0100\n"
"PO-Revision-Date: 2010-03-22 10:55-0000\n" "PO-Revision-Date: 2010-03-22 10:55-0000\n"
"Last-Translator: Sky8000\n" "Last-Translator: Sky8000\n"
"Language-Team: Sky8000 <sky8000@hotmail.com>\n" "Language-Team: Sky8000 <sky8000@hotmail.com>\n"
@ -282,6 +282,9 @@ msgstr "Programado por: %s"
msgid "Coding:" msgid "Coding:"
msgstr "Desenvolvimento:" msgstr "Desenvolvimento:"
msgid "Connection to server timed out."
msgstr ""
msgid "Console" msgid "Console"
msgstr "Configuração" msgstr "Configuração"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-23 21:03+0100\n" "POT-Creation-Date: 2011-01-25 20:46+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: nikolai_ca\n" "Last-Translator: nikolai_ca\n"
"Language-Team: Kir, alendit, nikolai_ca\n" "Language-Team: Kir, alendit, nikolai_ca\n"
@ -282,6 +282,9 @@ msgstr "Создано: %s"
msgid "Coding:" msgid "Coding:"
msgstr "Создание:" msgstr "Создание:"
msgid "Connection to server timed out."
msgstr ""
msgid "Console" msgid "Console"
msgstr "Консоль" msgstr "Консоль"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-24 21:19+0100\n" "POT-Creation-Date: 2011-01-25 20:46+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: knife.hu kavid emul8ion\n" "Last-Translator: knife.hu kavid emul8ion\n"
"Language-Team: kavid\n" "Language-Team: kavid\n"
@ -282,6 +282,9 @@ msgstr "编程: %s"
msgid "Coding:" msgid "Coding:"
msgstr "编程:" msgstr "编程:"
msgid "Connection to server timed out."
msgstr ""
msgid "Console" msgid "Console"
msgstr "控制台" msgstr "控制台"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-23 21:03+0100\n" "POT-Creation-Date: 2011-01-25 20:46+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: SirPalax\n" "Last-Translator: SirPalax\n"
"Language-Team: Penn, SirPalax\n" "Language-Team: Penn, SirPalax\n"
@ -282,6 +282,9 @@ msgstr "Programado por: %s"
msgid "Coding:" msgid "Coding:"
msgstr "Programación:" msgstr "Programación:"
msgid "Connection to server timed out."
msgstr ""
msgid "Console" msgid "Console"
msgstr "Consola" msgstr "Consola"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-23 21:03+0100\n" "POT-Creation-Date: 2011-01-25 20:46+0100\n"
"PO-Revision-Date: 2010-01-19 17:39+0200\n" "PO-Revision-Date: 2010-01-19 17:39+0200\n"
"Last-Translator: Katsurou\n" "Last-Translator: Katsurou\n"
"Language-Team: Katsurou, pirateX\n" "Language-Team: Katsurou, pirateX\n"
@ -282,6 +282,9 @@ msgstr "Kodad av: %s"
msgid "Coding:" msgid "Coding:"
msgstr "Kodning:" msgstr "Kodning:"
msgid "Connection to server timed out."
msgstr ""
msgid "Console" msgid "Console"
msgstr "Konsol" msgstr "Konsol"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-23 21:03+0100\n" "POT-Creation-Date: 2011-01-25 20:46+0100\n"
"PO-Revision-Date: 2010-02-15 21:00+0800\n" "PO-Revision-Date: 2010-02-15 21:00+0800\n"
"Last-Translator: Jane.H\n" "Last-Translator: Jane.H\n"
"Language-Team: kyogc, Miller, Mika Li, Jane.H\n" "Language-Team: kyogc, Miller, Mika Li, Jane.H\n"
@ -282,6 +282,9 @@ msgstr "程式設計者: %s"
msgid "Coding:" msgid "Coding:"
msgstr "編譯:" msgstr "編譯:"
msgid "Connection to server timed out."
msgstr ""
msgid "Console" msgid "Console"
msgstr "控制台" msgstr "控制台"

File diff suppressed because it is too large Load Diff

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-23 21:03+0100\n" "POT-Creation-Date: 2011-01-25 21:17+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: omercigingelini\n" "Last-Translator: omercigingelini\n"
"Language-Team: omercigingelini\n" "Language-Team: omercigingelini\n"
@ -282,6 +282,9 @@ msgstr "%s tarafından kodlandı"
msgid "Coding:" msgid "Coding:"
msgstr "Kodlama:" msgstr "Kodlama:"
msgid "Connection to server timed out."
msgstr ""
msgid "Console" msgid "Console"
msgstr "Konsol" msgstr "Konsol"

View File

@ -296,7 +296,11 @@ void Text::CalcLineOffsets()
TmpLine.CharCount = ch - TmpLine.LineOffset; TmpLine.CharCount = ch - TmpLine.LineOffset;
TmpLine.width = currWidth; TmpLine.width = currWidth;
if (TmpLine.CharCount > 0) TextLines.push_back(TmpLine); if (TmpLine.CharCount-1 > 0)
{
TmpLine.CharCount -= 1;
TextLines.push_back(TmpLine);
}
} }
void Text::Draw() void Text::Draw()

View File

@ -861,11 +861,13 @@ int GameBrowseMenu::MainLoop()
gameList.FilterList(oldFilter.c_str()); gameList.FilterList(oldFilter.c_str());
ReloadBrowser(); ReloadBrowser();
searchBtn->ResetState(); searchBtn->ResetState();
if(show_searchwindow && wcslen(gameList.GetCurrentFilter()) == 0)
GridRowsPreSearch = Settings.gridRows; //! store old rows amount
} }
else if (searchBar && (searchChar = searchBar->GetClicked())) else if (searchBar && (searchChar = searchBar->GetClicked()))
{ {
if (searchChar > 27) if (searchChar > 27) //! Character clicked
{ {
int len = gameList.GetCurrentFilter() ? wcslen(gameList.GetCurrentFilter()) : 0; int len = gameList.GetCurrentFilter() ? wcslen(gameList.GetCurrentFilter()) : 0;
wchar_t newFilter[len + 2]; wchar_t newFilter[len + 2];
@ -875,18 +877,20 @@ int GameBrowseMenu::MainLoop()
gameList.FilterList(newFilter); gameList.FilterList(newFilter);
} }
else if (searchChar == 7) // Close else if (searchChar == 7) //! Close
{ {
show_searchwindow = false; show_searchwindow = false;
searchBtn->StopEffect(); searchBtn->StopEffect();
} }
else if (searchChar == 8) // Backspace else if (searchChar == 8) //! Backspace
{ {
int len = wcslen(gameList.GetCurrentFilter()); int len = wcslen(gameList.GetCurrentFilter());
wchar_t newFilter[len + 1]; wchar_t newFilter[len + 1];
if (gameList.GetCurrentFilter()) wcscpy(newFilter, gameList.GetCurrentFilter()); if (gameList.GetCurrentFilter()) wcscpy(newFilter, gameList.GetCurrentFilter());
newFilter[len > 0 ? len - 1 : 0] = 0; newFilter[len > 0 ? len - 1 : 0] = 0;
gameList.FilterList(newFilter); gameList.FilterList(newFilter);
if(len == 1)
Settings.gridRows = GridRowsPreSearch; //! restore old rows amount so we don't stay on one row
} }
ReloadBrowser(); ReloadBrowser();
return MENU_NONE; return MENU_NONE;

View File

@ -34,6 +34,7 @@ class GameBrowseMenu : public GuiWindow
int returnMenu; int returnMenu;
int gameSelectedOld; int gameSelectedOld;
int gameClicked; int gameClicked;
int GridRowsPreSearch;
time_t lastrawtime; time_t lastrawtime;
bool show_searchwindow; bool show_searchwindow;
wchar_t searchChar; wchar_t searchChar;

View File

@ -10,10 +10,12 @@
#include <string.h> #include <string.h>
#include <ogcsys.h> #include <ogcsys.h>
#include <ogc/machine/processor.h> #include <ogc/machine/processor.h>
#include <fcntl.h>
#include "prompts/PromptWindows.h" #include "prompts/PromptWindows.h"
#include "language/gettext.h" #include "language/gettext.h"
#include "settings/CSettings.h" #include "settings/CSettings.h"
#include "utils/timer.h"
#include "networkops.h" #include "networkops.h"
#include "main.h" #include "main.h"
#include "http.h" #include "http.h"
@ -294,6 +296,62 @@ void CloseConnection()
} }
} }
/****************************************************************************
* Test if connection to the address is available (PING)
***************************************************************************/
bool CheckConnection(const char *url, float timeout)
{
//Check if the url starts with "http://", if not it is not considered a valid url
if (strncmp(url, "http://", strlen("http://")) != 0)
return false;
//Locate the path part of the url by searching for '/' past "http://"
char *path = strchr(url + strlen("http://"), '/');
//At the very least the url has to end with '/', ending with just a domain is invalid
if (path == NULL)
return false;
//Extract the domain part out of the url
int domainlength = path - url - strlen("http://");
if (domainlength == 0)
return false;
char domain[domainlength + 1];
strlcpy(domain, url + strlen("http://"), domainlength + 1);
//Parsing of the URL is done, start making an actual connection
u32 ipaddress = getipbynamecached(domain);
if (ipaddress == 0)
return false;
//Initialize socket
s32 connection = net_socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
if (connection < 0) return connection;
s32 flags = net_fcntl(connection, F_GETFL, 0);
if (flags >= 0) flags = net_fcntl(connection, F_SETFL, flags | 4);
struct sockaddr_in connect_addr;
memset(&connect_addr, 0, sizeof(connect_addr));
connect_addr.sin_family = AF_INET;
connect_addr.sin_port = 80;
connect_addr.sin_addr.s_addr = getipbynamecached(domain);
Timer netTime;
int res = -1;
while(res < 0 && res != -127 && netTime.elapsed() < timeout)
{
res = net_connect(connection, (struct sockaddr*) &connect_addr, sizeof(connect_addr));
usleep(1000);
}
net_close(connection);
return !(res < 0 && res != -127);
}
/**************************************************************************** /****************************************************************************
* NetworkWait * NetworkWait
***************************************************************************/ ***************************************************************************/

View File

@ -15,6 +15,7 @@ bool IsNetworkInit(void);
char * GetNetworkIP(void); char * GetNetworkIP(void);
char * GetIncommingIP(void); char * GetIncommingIP(void);
bool ShutdownWC24(); bool ShutdownWC24();
bool CheckConnection(const char *url, float timeout = 5.0f);
s32 network_request(s32 connection, const char * request, char * filename); s32 network_request(s32 connection, const char * request, char * filename);
s32 network_read(s32 connection, u8 *buf, u32 len); s32 network_read(s32 connection, u8 *buf, u32 len);
s32 download_request(const char * url, char * filename = NULL); s32 download_request(const char * url, char * filename = NULL);

View File

@ -222,12 +222,19 @@ void ThemeDownloader::SetupMainButtons()
ShowProgress(tr("Downloading pagelist:"), "www.spiffy360.com", tr("Please wait..."), 0, 1); ShowProgress(tr("Downloading pagelist:"), "www.spiffy360.com", tr("Please wait..."), 0, 1);
if(!CheckConnection(ThemeListURL.c_str()))
{
ShowError(tr("Connection to server timed out."));
return;
}
ThemeList = new Theme_List(ThemeListURL.c_str()); ThemeList = new Theme_List(ThemeListURL.c_str());
if (ThemeList->GetThemeCount() == 0) if (ThemeList->GetThemeCount() == 0)
{ {
WindowPrompt(tr( "No themes found on the site." ), 0, "OK"); WindowPrompt(tr( "No themes found on the site." ), 0, "OK");
returnMenu = MENU_SETTINGS; returnMenu = MENU_SETTINGS;
ProgressStop();
} }
for(int i = 0; i < ThemeList->GetThemeCount(); ++i) for(int i = 0; i < ThemeList->GetThemeCount(); ++i)
@ -369,7 +376,10 @@ void ThemeDownloader::MainButtonClicked(int button)
{ {
result = DownloadTheme(downloadlink, title); result = DownloadTheme(downloadlink, title);
if (result == 2) if (result == 2)
{
returnMenu = MENU_THEMEDOWNLOADER; returnMenu = MENU_THEMEDOWNLOADER;
leave = true;
}
} }
mainWindow->SetState(STATE_DISABLED); mainWindow->SetState(STATE_DISABLED);
promptWindow.SetState(STATE_DEFAULT); promptWindow.SetState(STATE_DEFAULT);
@ -475,6 +485,7 @@ int ThemeDownloader::DownloadTheme(const char *url, const char *title)
if (Theme::Load(real_themepath)) if (Theme::Load(real_themepath))
{ {
snprintf(Settings.theme, sizeof(Settings.theme), real_themepath); snprintf(Settings.theme, sizeof(Settings.theme), real_themepath);
Theme::Reload();
result = 2; result = 2;
} }

View File

@ -23,6 +23,7 @@
***************************************************************************/ ***************************************************************************/
#include <algorithm> #include <algorithm>
#include <string> #include <string>
#include <wctype.h>
#include <malloc.h> #include <malloc.h>
#include "usbloader/wbfs.h" #include "usbloader/wbfs.h"
#include "settings/newtitles.h" #include "settings/newtitles.h"
@ -172,8 +173,12 @@ int GameList::FilterList(const wchar_t * gameFilter)
if (gameName) if (gameName)
{ {
if (wcslen(gameName) > GameFilter.size() && AvailableSearchChars.find(gameName[GameFilter.size()]) == std::string::npos) if (wcslen(gameName) > GameFilter.size() &&
AvailableSearchChars.find(towupper(gameName[GameFilter.size()])) == std::string::npos &&
AvailableSearchChars.find(towlower(gameName[GameFilter.size()])) == std::string::npos)
{
AvailableSearchChars.push_back(gameName[GameFilter.size()]); AvailableSearchChars.push_back(gameName[GameFilter.size()]);
}
delete [] gameName; delete [] gameName;
} }
@ -211,8 +216,13 @@ int GameList::LoadUnfiltered()
wchar_t *gameName = charToWideChar(GameTitles.GetTitle(header)); wchar_t *gameName = charToWideChar(GameTitles.GetTitle(header));
if (gameName) if (gameName)
{ {
if (wcslen(gameName) > GameFilter.size() && AvailableSearchChars.find(gameName[GameFilter.size()]) == std::string::npos) if (wcslen(gameName) > GameFilter.size() &&
AvailableSearchChars.find(towupper(gameName[GameFilter.size()])) == std::string::npos &&
AvailableSearchChars.find(towlower(gameName[GameFilter.size()])) == std::string::npos)
{
AvailableSearchChars.push_back(gameName[GameFilter.size()]); AvailableSearchChars.push_back(gameName[GameFilter.size()]);
}
delete [] gameName; delete [] gameName;
} }