[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [tellico] src/fetch: Move static hashes to member variables
From:       Robby Stephenson <null () kde ! org>
Date:       2017-04-30 21:28:26
Message-ID: E1d4wOI-0001xq-Tv () code ! kde ! org
[Download RAW message or body]

Git commit ff3b030e3b7fb56429342f0ca411cb11ae1d5c7e by Robby Stephenson.
Committed on 30/04/2017 at 20:47.
Pushed by rstephenson into branch 'master'.

Move static hashes to member variables

M  +180  -186  src/fetch/igdbfetcher.cpp
M  +6    -6    src/fetch/igdbfetcher.h

https://commits.kde.org/tellico/ff3b030e3b7fb56429342f0ca411cb11ae1d5c7e

diff --git a/src/fetch/igdbfetcher.cpp b/src/fetch/igdbfetcher.cpp
index a9d15316..7fbce943 100644
--- a/src/fetch/igdbfetcher.cpp
+++ b/src/fetch/igdbfetcher.cpp
@@ -56,22 +56,15 @@ namespace {
 using namespace Tellico;
 using Tellico::Fetch::IGDBFetcher;
 
-QHash<int, QString> IGDBFetcher::s_genreHash;
-QHash<int, QString> IGDBFetcher::s_platformHash;
-QHash<QString, QString> IGDBFetcher::s_companyHash;
-QHash<QString, QString> IGDBFetcher::s_esrbHash;
-QHash<QString, QString> IGDBFetcher::s_pegiHash;
-
 IGDBFetcher::IGDBFetcher(QObject* parent_)
     : Fetcher(parent_), m_started(false), m_apiKey(QLatin1String(IGDB_API_KEY)) {
   //  setLimit(IGDB_MAX_RETURNS_TOTAL);
-  if(s_genreHash.isEmpty()) {
+  if(m_genreHash.isEmpty()) {
     populateHashes();
   }
 }
 
 IGDBFetcher::~IGDBFetcher() {
-  myDebug() << "destroyed IGDBFetcher";
 }
 
 QString IGDBFetcher::source() const {
@@ -261,7 +254,7 @@ void IGDBFetcher::slotComplete(KJob* job_) {
 void IGDBFetcher::populateEntry(Data::EntryPtr entry_, const QVariantMap& \
resultMap_) {  entry_->setField(QLatin1String("title"), value(resultMap_, "name"));
   entry_->setField(QLatin1String("description"), value(resultMap_, "summary"));
-  entry_->setField(QLatin1String("certification"), \
s_esrbHash.value(value(resultMap_, "esrb", "rating"))); +  \
entry_->setField(QLatin1String("certification"), m_esrbHash.value(value(resultMap_, \
"esrb", "rating")));  entry_->setField(QLatin1String("pub-id"), value(resultMap_, \
"publishers"));  entry_->setField(QLatin1String("dev-id"), value(resultMap_, \
"developers"));  
@@ -274,7 +267,7 @@ void IGDBFetcher::populateEntry(Data::EntryPtr entry_, const \
QVariantMap& result  QVariantList genreIDs = \
resultMap_.value(QLatin1String("genres")).toList();  QStringList genres;
   foreach(const QVariant& id, genreIDs) {
-    QString g = s_genreHash.value(id.toInt());
+    QString g = m_genreHash.value(id.toInt());
     if(!g.isEmpty()) {
       genres << g;
     }
@@ -286,7 +279,7 @@ void IGDBFetcher::populateEntry(Data::EntryPtr entry_, const \
QVariantMap& result  QVariantMap releaseMap = releases.at(0).toMap();
     // for now just grab the year of the first release
     entry_->setField(QLatin1String("year"), value(releaseMap, "y"));
-    const QString platform = \
s_platformHash.value(releaseMap.value(QLatin1String("platform")).toInt()); +    const \
QString platform = m_platformHash.value(releaseMap.value(QLatin1String("platform")).toInt());
                
     if(platform == QLatin1String("Nintendo Entertainment System (NES)")) {
       entry_->setField(QLatin1String("platform"), i18n("Nintendo"));
     } else if(platform == QLatin1String("Nintendo PlayStation")) {
@@ -319,7 +312,7 @@ void IGDBFetcher::populateEntry(Data::EntryPtr entry_, const \
QVariantMap& result  }
 
   if(optionalFields().contains(QLatin1String("pegi"))) {
-    entry_->setField(QLatin1String("pegi"), s_pegiHash.value(value(resultMap_, \
"pegi", "rating"))); +    entry_->setField(QLatin1String("pegi"), \
m_pegiHash.value(value(resultMap_, "pegi", "rating")));  }
 
   if(optionalFields().contains(QLatin1String("igdb"))) {
@@ -328,8 +321,8 @@ void IGDBFetcher::populateEntry(Data::EntryPtr entry_, const \
QVariantMap& result  }
 
 QString IGDBFetcher::companyName(const QString& companyId_) const {
-  if(s_companyHash.contains(companyId_)) {
-    return s_companyHash.value(companyId_);
+  if(m_companyHash.contains(companyId_)) {
+    return m_companyHash.value(companyId_);
   }
   QUrl u(QString::fromLatin1(IGDB_API_URL));
   u.setPath(u.path() + QLatin1String("companies/") + companyId_);
@@ -362,7 +355,7 @@ QString IGDBFetcher::companyName(const QString& companyId_) const \
{  
   QJsonDocument doc = QJsonDocument::fromJson(data);
   const QString company = value(doc.array().toVariantList().at(0).toMap(), "name");
-  s_companyHash.insert(companyId_, company);
+  m_companyHash.insert(companyId_, company);
   return company;
 }
 
@@ -370,6 +363,178 @@ Tellico::Fetch::ConfigWidget* \
IGDBFetcher::configWidget(QWidget* parent_) const  return new \
IGDBFetcher::ConfigWidget(parent_, this);  }
 
+
+// Use member hash for certain field names for now.
+// Don't expect IGDB values to change. This avoids exponentially multiplying the \
number of API calls +void IGDBFetcher::populateHashes() {
+  m_genreHash.insert(2,  QLatin1String("Point-and-click"));
+  m_genreHash.insert(4,  QLatin1String("Fighting"));
+  m_genreHash.insert(5,  QLatin1String("Shooter"));
+  m_genreHash.insert(7,  QLatin1String("Music"));
+  m_genreHash.insert(8,  QLatin1String("Platform"));
+  m_genreHash.insert(9,  QLatin1String("Puzzle"));
+  m_genreHash.insert(10, QLatin1String("Racing"));
+  m_genreHash.insert(11, QLatin1String("Real Time Strategy (RTS)"));
+  m_genreHash.insert(12, QLatin1String("Role-playing (RPG)"));
+  m_genreHash.insert(13, QLatin1String("Simulator"));
+  m_genreHash.insert(14, QLatin1String("Sport"));
+  m_genreHash.insert(15, QLatin1String("Strategy"));
+  m_genreHash.insert(16, QLatin1String("Turn-based strategy (TBS)"));
+  m_genreHash.insert(24, QLatin1String("Tactical"));
+  m_genreHash.insert(25, QLatin1String("Hack and slash/Beat 'em up"));
+  m_genreHash.insert(26, QLatin1String("Quiz/Trivia"));
+  m_genreHash.insert(30, QLatin1String("Pinball"));
+  m_genreHash.insert(31, QLatin1String("Adventure"));
+  m_genreHash.insert(32, QLatin1String("Indie"));
+  m_genreHash.insert(33, QLatin1String("Arcade"));
+
+  m_platformHash.insert(3, QLatin1String("Linux"));
+  m_platformHash.insert(4, QLatin1String("Nintendo 64"));
+  m_platformHash.insert(5, QLatin1String("Wii"));
+  m_platformHash.insert(6, QLatin1String("PC (Microsoft Windows)"));
+  m_platformHash.insert(7, QLatin1String("PlayStation"));
+  m_platformHash.insert(8, QLatin1String("PlayStation 2"));
+  m_platformHash.insert(9, QLatin1String("PlayStation 3"));
+  m_platformHash.insert(11, QLatin1String("Xbox"));
+  m_platformHash.insert(12, QLatin1String("Xbox 360"));
+  m_platformHash.insert(13, QLatin1String("PC DOS"));
+  m_platformHash.insert(14, QLatin1String("Mac"));
+  m_platformHash.insert(15, QLatin1String("Commodore C64/128"));
+  m_platformHash.insert(16, QLatin1String("Amiga"));
+  m_platformHash.insert(18, QLatin1String("Nintendo Entertainment System (NES)"));
+  m_platformHash.insert(19, QLatin1String("Super Nintendo Entertainment System \
(SNES)")); +  m_platformHash.insert(20, QLatin1String("Nintendo DS"));
+  m_platformHash.insert(21, QLatin1String("Nintendo GameCube"));
+  m_platformHash.insert(22, QLatin1String("Game Boy Color"));
+  m_platformHash.insert(23, QLatin1String("Dreamcast"));
+  m_platformHash.insert(24, QLatin1String("Game Boy Advance"));
+  m_platformHash.insert(25, QLatin1String("Amstrad CPC"));
+  m_platformHash.insert(26, QLatin1String("ZX Spectrum"));
+  m_platformHash.insert(27, QLatin1String("MSX"));
+  m_platformHash.insert(29, QLatin1String("Sega Mega Drive/Genesis"));
+  m_platformHash.insert(30, QLatin1String("Sega 32X"));
+  m_platformHash.insert(32, QLatin1String("Sega Saturn"));
+  m_platformHash.insert(33, QLatin1String("Game Boy"));
+  m_platformHash.insert(34, QLatin1String("Android"));
+  m_platformHash.insert(35, QLatin1String("Sega Game Gear"));
+  m_platformHash.insert(36, QLatin1String("Xbox Live Arcade"));
+  m_platformHash.insert(37, QLatin1String("Nintendo 3DS"));
+  m_platformHash.insert(38, QLatin1String("PlayStation Portable"));
+  m_platformHash.insert(39, QLatin1String("iOS"));
+  m_platformHash.insert(41, QLatin1String("Wii U"));
+  m_platformHash.insert(42, QLatin1String("N-Gage"));
+  m_platformHash.insert(44, QLatin1String("Tapwave Zodiac"));
+  m_platformHash.insert(45, QLatin1String("PlayStation Network"));
+  m_platformHash.insert(46, QLatin1String("PlayStation Vita"));
+  m_platformHash.insert(47, QLatin1String("Virtual Console (Nintendo)"));
+  m_platformHash.insert(48, QLatin1String("PlayStation 4"));
+  m_platformHash.insert(49, QLatin1String("Xbox One"));
+  m_platformHash.insert(50, QLatin1String("3DO Interactive Multiplayer"));
+  m_platformHash.insert(51, QLatin1String("Family Computer Disk System"));
+  m_platformHash.insert(52, QLatin1String("Arcade"));
+  m_platformHash.insert(53, QLatin1String("MSX2"));
+  m_platformHash.insert(55, QLatin1String("Mobile"));
+  m_platformHash.insert(56, QLatin1String("WiiWare"));
+  m_platformHash.insert(57, QLatin1String("WonderSwan"));
+  m_platformHash.insert(58, QLatin1String("Super Famicom"));
+  m_platformHash.insert(59, QLatin1String("Atari 2600"));
+  m_platformHash.insert(60, QLatin1String("Atari 7800"));
+  m_platformHash.insert(61, QLatin1String("Atari Lynx"));
+  m_platformHash.insert(62, QLatin1String("Atari Jaguar"));
+  m_platformHash.insert(63, QLatin1String("Atari ST/STE"));
+  m_platformHash.insert(64, QLatin1String("Sega Master System"));
+  m_platformHash.insert(65, QLatin1String("Atari 8-bit"));
+  m_platformHash.insert(66, QLatin1String("Atari 5200"));
+  m_platformHash.insert(67, QLatin1String("Intellivision"));
+  m_platformHash.insert(68, QLatin1String("ColecoVision"));
+  m_platformHash.insert(69, QLatin1String("BBC Microcomputer System"));
+  m_platformHash.insert(70, QLatin1String("Vectrex"));
+  m_platformHash.insert(71, QLatin1String("Commodore VIC-20"));
+  m_platformHash.insert(72, QLatin1String("Ouya"));
+  m_platformHash.insert(73, QLatin1String("BlackBerry OS"));
+  m_platformHash.insert(74, QLatin1String("Windows Phone"));
+  m_platformHash.insert(75, QLatin1String("Apple II"));
+  m_platformHash.insert(77, QLatin1String("Sharp X1"));
+  m_platformHash.insert(78, QLatin1String("Sega CD"));
+  m_platformHash.insert(79, QLatin1String("Neo Geo MVS"));
+  m_platformHash.insert(80, QLatin1String("Neo Geo AES"));
+  m_platformHash.insert(82, QLatin1String("Web browser"));
+  m_platformHash.insert(84, QLatin1String("SG-1000"));
+  m_platformHash.insert(85, QLatin1String("Donner Model 30"));
+  m_platformHash.insert(86, QLatin1String("TurboGrafx-16/PC Engine"));
+  m_platformHash.insert(87, QLatin1String("Virtual Boy"));
+  m_platformHash.insert(88, QLatin1String("Odyssey"));
+  m_platformHash.insert(89, QLatin1String("Microvision"));
+  m_platformHash.insert(90, QLatin1String("Commodore PET"));
+  m_platformHash.insert(91, QLatin1String("Bally Astrocade"));
+  m_platformHash.insert(92, QLatin1String("SteamOS"));
+  m_platformHash.insert(93, QLatin1String("Commodore 16"));
+  m_platformHash.insert(94, QLatin1String("Commodore Plus/4"));
+  m_platformHash.insert(95, QLatin1String("PDP-1"));
+  m_platformHash.insert(96, QLatin1String("PDP-10"));
+  m_platformHash.insert(97, QLatin1String("PDP-8"));
+  m_platformHash.insert(98, QLatin1String("DEC GT40"));
+  m_platformHash.insert(99, QLatin1String("Family Computer"));
+  m_platformHash.insert(100, QLatin1String("Analogue electronics"));
+  m_platformHash.insert(101, QLatin1String("Ferranti Nimrod Computer"));
+  m_platformHash.insert(102, QLatin1String("EDSAC"));
+  m_platformHash.insert(103, QLatin1String("PDP-7"));
+  m_platformHash.insert(104, QLatin1String("HP 2100"));
+  m_platformHash.insert(105, QLatin1String("HP 3000"));
+  m_platformHash.insert(106, QLatin1String("SDS Sigma 7"));
+  m_platformHash.insert(107, QLatin1String("Call-A-Computer time-shared mainframe \
computer system")); +  m_platformHash.insert(108, QLatin1String("PDP-11"));
+  m_platformHash.insert(109, QLatin1String("CDC Cyber 70"));
+  m_platformHash.insert(110, QLatin1String("PLATO"));
+  m_platformHash.insert(111, QLatin1String("Imlac PDS-1"));
+  m_platformHash.insert(112, QLatin1String("Microcomputer"));
+  m_platformHash.insert(113, QLatin1String("OnLive Game System"));
+  m_platformHash.insert(114, QLatin1String("Amiga CD32"));
+  m_platformHash.insert(115, QLatin1String("Apple IIGS"));
+  m_platformHash.insert(116, QLatin1String("Acorn Archimedes"));
+  m_platformHash.insert(117, QLatin1String("Philips CD-i"));
+  m_platformHash.insert(118, QLatin1String("FM Towns"));
+  m_platformHash.insert(119, QLatin1String("Neo Geo Pocket"));
+  m_platformHash.insert(120, QLatin1String("Neo Geo Pocket Color"));
+  m_platformHash.insert(121, QLatin1String("Sharp X68000"));
+  m_platformHash.insert(122, QLatin1String("Nuon"));
+  m_platformHash.insert(123, QLatin1String("WonderSwan Color"));
+  m_platformHash.insert(124, QLatin1String("SwanCrystal"));
+  m_platformHash.insert(125, QLatin1String("PC-8801"));
+  m_platformHash.insert(126, QLatin1String("TRS-80"));
+  m_platformHash.insert(127, QLatin1String("Fairchild Channel F"));
+  m_platformHash.insert(128, QLatin1String("PC Engine SuperGrafx"));
+  m_platformHash.insert(129, QLatin1String("Texas Instruments TI-99"));
+  m_platformHash.insert(130, QLatin1String("Nintendo Switch"));
+  m_platformHash.insert(131, QLatin1String("Nintendo PlayStation"));
+  m_platformHash.insert(132, QLatin1String("Amazon Fire TV"));
+  m_platformHash.insert(133, QLatin1String("Philips Videopac G7000"));
+  m_platformHash.insert(134, QLatin1String("Acorn Electron"));
+  m_platformHash.insert(135, QLatin1String("Hyper Neo Geo 64"));
+  m_platformHash.insert(136, QLatin1String("Neo Geo CD"));
+
+  // cheat by grabbing i18n values from default collection
+  Data::CollPtr c(new Data::GameCollection(true));
+  QStringList esrb = c->fieldByName(QLatin1String("certification"))->allowed();
+  Q_ASSERT(esrb.size() == 8);
+  while(esrb.size() < 8) {
+    esrb << QString();
+  }
+  m_esrbHash.insert(QLatin1String("1"), esrb.at(7));
+  m_esrbHash.insert(QLatin1String("2"), esrb.at(6));
+  m_esrbHash.insert(QLatin1String("3"), esrb.at(5));
+  m_esrbHash.insert(QLatin1String("4"), esrb.at(4));
+  m_esrbHash.insert(QLatin1String("5"), esrb.at(3));
+  m_esrbHash.insert(QLatin1String("6"), esrb.at(2));
+  m_esrbHash.insert(QLatin1String("7"), esrb.at(1));
+
+  m_pegiHash.insert(QLatin1String("1"), QLatin1String("PEGI 3"));
+  m_pegiHash.insert(QLatin1String("2"), QLatin1String("PEGI 7"));
+  m_pegiHash.insert(QLatin1String("3"), QLatin1String("PEGI 12"));
+  m_pegiHash.insert(QLatin1String("4"), QLatin1String("PEGI 16"));
+  m_pegiHash.insert(QLatin1String("5"), QLatin1String("PEGI 18"));
+}
+
 QString IGDBFetcher::defaultName() {
   return i18n("Internet Game Database (IGDB.com)");
 }
@@ -470,177 +635,6 @@ QString IGDBFetcher::value(const QVariantMap& map, const char* \
object, const cha  }
 }
 
-// Be lazy. Use static hash for certain field names for now.
-// Don't expect IGDB values to change. This avoids exponentially multiplying the \
                number of API calls
-void IGDBFetcher::populateHashes() {
-  s_genreHash.insert(2,  QLatin1String("Point-and-click"));
-  s_genreHash.insert(4,  QLatin1String("Fighting"));
-  s_genreHash.insert(5,  QLatin1String("Shooter"));
-  s_genreHash.insert(7,  QLatin1String("Music"));
-  s_genreHash.insert(8,  QLatin1String("Platform"));
-  s_genreHash.insert(9,  QLatin1String("Puzzle"));
-  s_genreHash.insert(10, QLatin1String("Racing"));
-  s_genreHash.insert(11, QLatin1String("Real Time Strategy (RTS)"));
-  s_genreHash.insert(12, QLatin1String("Role-playing (RPG)"));
-  s_genreHash.insert(13, QLatin1String("Simulator"));
-  s_genreHash.insert(14, QLatin1String("Sport"));
-  s_genreHash.insert(15, QLatin1String("Strategy"));
-  s_genreHash.insert(16, QLatin1String("Turn-based strategy (TBS)"));
-  s_genreHash.insert(24, QLatin1String("Tactical"));
-  s_genreHash.insert(25, QLatin1String("Hack and slash/Beat 'em up"));
-  s_genreHash.insert(26, QLatin1String("Quiz/Trivia"));
-  s_genreHash.insert(30, QLatin1String("Pinball"));
-  s_genreHash.insert(31, QLatin1String("Adventure"));
-  s_genreHash.insert(32, QLatin1String("Indie"));
-  s_genreHash.insert(33, QLatin1String("Arcade"));
-
-  s_platformHash.insert(3, QLatin1String("Linux"));
-  s_platformHash.insert(4, QLatin1String("Nintendo 64"));
-  s_platformHash.insert(5, QLatin1String("Wii"));
-  s_platformHash.insert(6, QLatin1String("PC (Microsoft Windows)"));
-  s_platformHash.insert(7, QLatin1String("PlayStation"));
-  s_platformHash.insert(8, QLatin1String("PlayStation 2"));
-  s_platformHash.insert(9, QLatin1String("PlayStation 3"));
-  s_platformHash.insert(11, QLatin1String("Xbox"));
-  s_platformHash.insert(12, QLatin1String("Xbox 360"));
-  s_platformHash.insert(13, QLatin1String("PC DOS"));
-  s_platformHash.insert(14, QLatin1String("Mac"));
-  s_platformHash.insert(15, QLatin1String("Commodore C64/128"));
-  s_platformHash.insert(16, QLatin1String("Amiga"));
-  s_platformHash.insert(18, QLatin1String("Nintendo Entertainment System (NES)"));
-  s_platformHash.insert(19, QLatin1String("Super Nintendo Entertainment System \
                (SNES)"));
-  s_platformHash.insert(20, QLatin1String("Nintendo DS"));
-  s_platformHash.insert(21, QLatin1String("Nintendo GameCube"));
-  s_platformHash.insert(22, QLatin1String("Game Boy Color"));
-  s_platformHash.insert(23, QLatin1String("Dreamcast"));
-  s_platformHash.insert(24, QLatin1String("Game Boy Advance"));
-  s_platformHash.insert(25, QLatin1String("Amstrad CPC"));
-  s_platformHash.insert(26, QLatin1String("ZX Spectrum"));
-  s_platformHash.insert(27, QLatin1String("MSX"));
-  s_platformHash.insert(29, QLatin1String("Sega Mega Drive/Genesis"));
-  s_platformHash.insert(30, QLatin1String("Sega 32X"));
-  s_platformHash.insert(32, QLatin1String("Sega Saturn"));
-  s_platformHash.insert(33, QLatin1String("Game Boy"));
-  s_platformHash.insert(34, QLatin1String("Android"));
-  s_platformHash.insert(35, QLatin1String("Sega Game Gear"));
-  s_platformHash.insert(36, QLatin1String("Xbox Live Arcade"));
-  s_platformHash.insert(37, QLatin1String("Nintendo 3DS"));
-  s_platformHash.insert(38, QLatin1String("PlayStation Portable"));
-  s_platformHash.insert(39, QLatin1String("iOS"));
-  s_platformHash.insert(41, QLatin1String("Wii U"));
-  s_platformHash.insert(42, QLatin1String("N-Gage"));
-  s_platformHash.insert(44, QLatin1String("Tapwave Zodiac"));
-  s_platformHash.insert(45, QLatin1String("PlayStation Network"));
-  s_platformHash.insert(46, QLatin1String("PlayStation Vita"));
-  s_platformHash.insert(47, QLatin1String("Virtual Console (Nintendo)"));
-  s_platformHash.insert(48, QLatin1String("PlayStation 4"));
-  s_platformHash.insert(49, QLatin1String("Xbox One"));
-  s_platformHash.insert(50, QLatin1String("3DO Interactive Multiplayer"));
-  s_platformHash.insert(51, QLatin1String("Family Computer Disk System"));
-  s_platformHash.insert(52, QLatin1String("Arcade"));
-  s_platformHash.insert(53, QLatin1String("MSX2"));
-  s_platformHash.insert(55, QLatin1String("Mobile"));
-  s_platformHash.insert(56, QLatin1String("WiiWare"));
-  s_platformHash.insert(57, QLatin1String("WonderSwan"));
-  s_platformHash.insert(58, QLatin1String("Super Famicom"));
-  s_platformHash.insert(59, QLatin1String("Atari 2600"));
-  s_platformHash.insert(60, QLatin1String("Atari 7800"));
-  s_platformHash.insert(61, QLatin1String("Atari Lynx"));
-  s_platformHash.insert(62, QLatin1String("Atari Jaguar"));
-  s_platformHash.insert(63, QLatin1String("Atari ST/STE"));
-  s_platformHash.insert(64, QLatin1String("Sega Master System"));
-  s_platformHash.insert(65, QLatin1String("Atari 8-bit"));
-  s_platformHash.insert(66, QLatin1String("Atari 5200"));
-  s_platformHash.insert(67, QLatin1String("Intellivision"));
-  s_platformHash.insert(68, QLatin1String("ColecoVision"));
-  s_platformHash.insert(69, QLatin1String("BBC Microcomputer System"));
-  s_platformHash.insert(70, QLatin1String("Vectrex"));
-  s_platformHash.insert(71, QLatin1String("Commodore VIC-20"));
-  s_platformHash.insert(72, QLatin1String("Ouya"));
-  s_platformHash.insert(73, QLatin1String("BlackBerry OS"));
-  s_platformHash.insert(74, QLatin1String("Windows Phone"));
-  s_platformHash.insert(75, QLatin1String("Apple II"));
-  s_platformHash.insert(77, QLatin1String("Sharp X1"));
-  s_platformHash.insert(78, QLatin1String("Sega CD"));
-  s_platformHash.insert(79, QLatin1String("Neo Geo MVS"));
-  s_platformHash.insert(80, QLatin1String("Neo Geo AES"));
-  s_platformHash.insert(82, QLatin1String("Web browser"));
-  s_platformHash.insert(84, QLatin1String("SG-1000"));
-  s_platformHash.insert(85, QLatin1String("Donner Model 30"));
-  s_platformHash.insert(86, QLatin1String("TurboGrafx-16/PC Engine"));
-  s_platformHash.insert(87, QLatin1String("Virtual Boy"));
-  s_platformHash.insert(88, QLatin1String("Odyssey"));
-  s_platformHash.insert(89, QLatin1String("Microvision"));
-  s_platformHash.insert(90, QLatin1String("Commodore PET"));
-  s_platformHash.insert(91, QLatin1String("Bally Astrocade"));
-  s_platformHash.insert(92, QLatin1String("SteamOS"));
-  s_platformHash.insert(93, QLatin1String("Commodore 16"));
-  s_platformHash.insert(94, QLatin1String("Commodore Plus/4"));
-  s_platformHash.insert(95, QLatin1String("PDP-1"));
-  s_platformHash.insert(96, QLatin1String("PDP-10"));
-  s_platformHash.insert(97, QLatin1String("PDP-8"));
-  s_platformHash.insert(98, QLatin1String("DEC GT40"));
-  s_platformHash.insert(99, QLatin1String("Family Computer"));
-  s_platformHash.insert(100, QLatin1String("Analogue electronics"));
-  s_platformHash.insert(101, QLatin1String("Ferranti Nimrod Computer"));
-  s_platformHash.insert(102, QLatin1String("EDSAC"));
-  s_platformHash.insert(103, QLatin1String("PDP-7"));
-  s_platformHash.insert(104, QLatin1String("HP 2100"));
-  s_platformHash.insert(105, QLatin1String("HP 3000"));
-  s_platformHash.insert(106, QLatin1String("SDS Sigma 7"));
-  s_platformHash.insert(107, QLatin1String("Call-A-Computer time-shared mainframe \
                computer system"));
-  s_platformHash.insert(108, QLatin1String("PDP-11"));
-  s_platformHash.insert(109, QLatin1String("CDC Cyber 70"));
-  s_platformHash.insert(110, QLatin1String("PLATO"));
-  s_platformHash.insert(111, QLatin1String("Imlac PDS-1"));
-  s_platformHash.insert(112, QLatin1String("Microcomputer"));
-  s_platformHash.insert(113, QLatin1String("OnLive Game System"));
-  s_platformHash.insert(114, QLatin1String("Amiga CD32"));
-  s_platformHash.insert(115, QLatin1String("Apple IIGS"));
-  s_platformHash.insert(116, QLatin1String("Acorn Archimedes"));
-  s_platformHash.insert(117, QLatin1String("Philips CD-i"));
-  s_platformHash.insert(118, QLatin1String("FM Towns"));
-  s_platformHash.insert(119, QLatin1String("Neo Geo Pocket"));
-  s_platformHash.insert(120, QLatin1String("Neo Geo Pocket Color"));
-  s_platformHash.insert(121, QLatin1String("Sharp X68000"));
-  s_platformHash.insert(122, QLatin1String("Nuon"));
-  s_platformHash.insert(123, QLatin1String("WonderSwan Color"));
-  s_platformHash.insert(124, QLatin1String("SwanCrystal"));
-  s_platformHash.insert(125, QLatin1String("PC-8801"));
-  s_platformHash.insert(126, QLatin1String("TRS-80"));
-  s_platformHash.insert(127, QLatin1String("Fairchild Channel F"));
-  s_platformHash.insert(128, QLatin1String("PC Engine SuperGrafx"));
-  s_platformHash.insert(129, QLatin1String("Texas Instruments TI-99"));
-  s_platformHash.insert(130, QLatin1String("Nintendo Switch"));
-  s_platformHash.insert(131, QLatin1String("Nintendo PlayStation"));
-  s_platformHash.insert(132, QLatin1String("Amazon Fire TV"));
-  s_platformHash.insert(133, QLatin1String("Philips Videopac G7000"));
-  s_platformHash.insert(134, QLatin1String("Acorn Electron"));
-  s_platformHash.insert(135, QLatin1String("Hyper Neo Geo 64"));
-  s_platformHash.insert(136, QLatin1String("Neo Geo CD"));
-
-  // cheat by grabbing i18n values from default collection
-  Data::CollPtr c(new Data::GameCollection(true));
-  QStringList esrb = c->fieldByName(QLatin1String("certification"))->allowed();
-  Q_ASSERT(esrb.size() == 8);
-  while(esrb.size() < 8) {
-    esrb << QString();
-  }
-  s_esrbHash.insert(QLatin1String("1"), esrb.at(7));
-  s_esrbHash.insert(QLatin1String("2"), esrb.at(6));
-  s_esrbHash.insert(QLatin1String("3"), esrb.at(5));
-  s_esrbHash.insert(QLatin1String("4"), esrb.at(4));
-  s_esrbHash.insert(QLatin1String("5"), esrb.at(3));
-  s_esrbHash.insert(QLatin1String("6"), esrb.at(2));
-  s_esrbHash.insert(QLatin1String("7"), esrb.at(1));
-
-  s_pegiHash.insert(QLatin1String("1"), QLatin1String("PEGI 3"));
-  s_pegiHash.insert(QLatin1String("2"), QLatin1String("PEGI 7"));
-  s_pegiHash.insert(QLatin1String("3"), QLatin1String("PEGI 12"));
-  s_pegiHash.insert(QLatin1String("4"), QLatin1String("PEGI 16"));
-  s_pegiHash.insert(QLatin1String("5"), QLatin1String("PEGI 18"));
-}
-
 QPointer<KIO::StoredTransferJob> IGDBFetcher::igdbJob(const QUrl& url_, const \
QString& apiKey_) {  QPointer<KIO::StoredTransferJob> job = KIO::storedGet(url_, \
KIO::NoReload, KIO::HideProgressInfo);  \
job->addMetaData(QLatin1String("customHTTPHeader"), QLatin1String("X-Mashape-Key: ") \
                + apiKey_);
diff --git a/src/fetch/igdbfetcher.h b/src/fetch/igdbfetcher.h
index c68aaade..dd8ea3c4 100644
--- a/src/fetch/igdbfetcher.h
+++ b/src/fetch/igdbfetcher.h
@@ -89,11 +89,11 @@ private:
   virtual void search() Q_DECL_OVERRIDE;
   virtual FetchRequest updateRequest(Data::EntryPtr entry) Q_DECL_OVERRIDE;
   void populateEntry(Data::EntryPtr entry, const QVariantMap& resultMap);
+  void populateHashes();
   QString companyName(const QString& companyId) const;
 
   static QString value(const QVariantMap& map, const char* name);
   static QString value(const QVariantMap& map, const char* object, const char* \
                name);
-  static void populateHashes();
   static QPointer<KIO::StoredTransferJob> igdbJob(const QUrl& url, const QString& \
apiKey);  
   bool m_started;
@@ -102,11 +102,11 @@ private:
   QHash<int, Data::EntryPtr> m_entries;
   QPointer<KIO::StoredTransferJob> m_job;
 
-  static QHash<int, QString> s_genreHash;
-  static QHash<int, QString> s_platformHash;
-  static QHash<QString, QString> s_companyHash;
-  static QHash<QString, QString> s_esrbHash;
-  static QHash<QString, QString> s_pegiHash;
+  QHash<int, QString> m_genreHash;
+  QHash<int, QString> m_platformHash;
+  QHash<QString, QString> m_esrbHash;
+  QHash<QString, QString> m_pegiHash;
+  mutable QHash<QString, QString> m_companyHash;
 };
 
 class IGDBFetcher::ConfigWidget : public Fetch::ConfigWidget {


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic