mirror of
https://github.com/RetroDECK/ES-DE.git
synced 2025-02-18 12:55:38 +00:00
fix badges in detailed view.
This commit is contained in:
parent
7820a94442
commit
c08bdda008
|
@ -56,7 +56,6 @@ DetailedGameListView::DetailedGameListView(Window* window, FileData* root)
|
||||||
addChild(&mImage);
|
addChild(&mImage);
|
||||||
|
|
||||||
// Metadata labels + values.
|
// Metadata labels + values.
|
||||||
addChild(&mBadges);
|
|
||||||
mLblRating.setText("Rating: ");
|
mLblRating.setText("Rating: ");
|
||||||
addChild(&mLblRating);
|
addChild(&mLblRating);
|
||||||
addChild(&mRating);
|
addChild(&mRating);
|
||||||
|
@ -75,6 +74,7 @@ DetailedGameListView::DetailedGameListView(Window* window, FileData* root)
|
||||||
mLblPlayers.setText("Players: ");
|
mLblPlayers.setText("Players: ");
|
||||||
addChild(&mLblPlayers);
|
addChild(&mLblPlayers);
|
||||||
addChild(&mPlayers);
|
addChild(&mPlayers);
|
||||||
|
addChild(&mBadges);
|
||||||
mLblLastPlayed.setText("Last played: ");
|
mLblLastPlayed.setText("Last played: ");
|
||||||
addChild(&mLblLastPlayed);
|
addChild(&mLblLastPlayed);
|
||||||
mLastPlayed.setDisplayRelative(true);
|
mLastPlayed.setDisplayRelative(true);
|
||||||
|
@ -111,8 +111,7 @@ DetailedGameListView::DetailedGameListView(Window* window, FileData* root)
|
||||||
initMDValues();
|
initMDValues();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DetailedGameListView::onThemeChanged(const std::shared_ptr<ThemeData>& theme)
|
void DetailedGameListView::onThemeChanged(const std::shared_ptr<ThemeData>& theme) {
|
||||||
{
|
|
||||||
BasicGameListView::onThemeChanged(theme);
|
BasicGameListView::onThemeChanged(theme);
|
||||||
|
|
||||||
using namespace ThemeFlags;
|
using namespace ThemeFlags;
|
||||||
|
@ -122,10 +121,12 @@ void DetailedGameListView::onThemeChanged(const std::shared_ptr<ThemeData>& them
|
||||||
POSITION | ThemeFlags::SIZE | Z_INDEX | ROTATION | VISIBLE);
|
POSITION | ThemeFlags::SIZE | Z_INDEX | ROTATION | VISIBLE);
|
||||||
mImage.applyTheme(theme, getName(), "md_image",
|
mImage.applyTheme(theme, getName(), "md_image",
|
||||||
POSITION | ThemeFlags::SIZE | Z_INDEX | ROTATION | VISIBLE);
|
POSITION | ThemeFlags::SIZE | Z_INDEX | ROTATION | VISIBLE);
|
||||||
|
mBadges.applyTheme(theme, getName(), "md_badges",
|
||||||
|
POSITION | ThemeFlags::SIZE | Z_INDEX | DIRECTION | VISIBLE);
|
||||||
mName.applyTheme(theme, getName(), "md_name", ALL);
|
mName.applyTheme(theme, getName(), "md_name", ALL);
|
||||||
|
|
||||||
initMDLabels();
|
initMDLabels();
|
||||||
std::vector<TextComponent*> labels = getMDLabels();
|
std::vector<TextComponent *> labels = getMDLabels();
|
||||||
assert(labels.size() == 8);
|
assert(labels.size() == 8);
|
||||||
std::vector<std::string> lblElements = {
|
std::vector<std::string> lblElements = {
|
||||||
"md_lbl_rating", "md_lbl_releasedate", "md_lbl_developer", "md_lbl_publisher",
|
"md_lbl_rating", "md_lbl_releasedate", "md_lbl_developer", "md_lbl_publisher",
|
||||||
|
@ -135,11 +136,11 @@ void DetailedGameListView::onThemeChanged(const std::shared_ptr<ThemeData>& them
|
||||||
labels[i]->applyTheme(theme, getName(), lblElements[i], ALL);
|
labels[i]->applyTheme(theme, getName(), lblElements[i], ALL);
|
||||||
|
|
||||||
initMDValues();
|
initMDValues();
|
||||||
std::vector<GuiComponent*> values = getMDValues();
|
std::vector<GuiComponent *> values = getMDValues();
|
||||||
assert(values.size() == 8);
|
assert(values.size() == 9);
|
||||||
std::vector<std::string> valElements = {"md_rating", "md_releasedate", "md_developer",
|
std::vector<std::string> valElements = {"md_rating", "md_releasedate", "md_developer",
|
||||||
"md_publisher", "md_genre", "md_players",
|
"md_publisher", "md_genre", "md_players",
|
||||||
"md_lastplayed", "md_playcount"};
|
"md_badges", "md_lastplayed", "md_playcount"};
|
||||||
|
|
||||||
for (unsigned int i = 0; i < values.size(); i++)
|
for (unsigned int i = 0; i < values.size(); i++)
|
||||||
values[i]->applyTheme(theme, getName(), valElements[i], ALL ^ ThemeFlags::TEXT);
|
values[i]->applyTheme(theme, getName(), valElements[i], ALL ^ ThemeFlags::TEXT);
|
||||||
|
@ -206,6 +207,8 @@ void DetailedGameListView::initMDValues()
|
||||||
mLastPlayed.setFont(defaultFont);
|
mLastPlayed.setFont(defaultFont);
|
||||||
mPlayCount.setFont(defaultFont);
|
mPlayCount.setFont(defaultFont);
|
||||||
|
|
||||||
|
mBadges.setSize(defaultFont->getHeight() * 5.0f, static_cast<float>(defaultFont->getHeight()));
|
||||||
|
|
||||||
float bottom = 0.0f;
|
float bottom = 0.0f;
|
||||||
|
|
||||||
const float colSize = (mSize.x * 0.48f) / 2.0f;
|
const float colSize = (mSize.x * 0.48f) / 2.0f;
|
||||||
|
@ -275,6 +278,7 @@ void DetailedGameListView::updateInfoPanel()
|
||||||
mGenre.setVisible(false);
|
mGenre.setVisible(false);
|
||||||
mLblPlayers.setVisible(false);
|
mLblPlayers.setVisible(false);
|
||||||
mPlayers.setVisible(false);
|
mPlayers.setVisible(false);
|
||||||
|
mBadges.setVisible(false);
|
||||||
mLblLastPlayed.setVisible(false);
|
mLblLastPlayed.setVisible(false);
|
||||||
mLastPlayed.setVisible(false);
|
mLastPlayed.setVisible(false);
|
||||||
mLblPlayCount.setVisible(false);
|
mLblPlayCount.setVisible(false);
|
||||||
|
@ -293,6 +297,7 @@ void DetailedGameListView::updateInfoPanel()
|
||||||
mGenre.setVisible(true);
|
mGenre.setVisible(true);
|
||||||
mLblPlayers.setVisible(true);
|
mLblPlayers.setVisible(true);
|
||||||
mPlayers.setVisible(true);
|
mPlayers.setVisible(true);
|
||||||
|
mBadges.setVisible(true);
|
||||||
mLblLastPlayed.setVisible(true);
|
mLblLastPlayed.setVisible(true);
|
||||||
mLastPlayed.setVisible(true);
|
mLastPlayed.setVisible(true);
|
||||||
mLblPlayCount.setVisible(true);
|
mLblPlayCount.setVisible(true);
|
||||||
|
@ -379,6 +384,18 @@ void DetailedGameListView::updateInfoPanel()
|
||||||
mPublisher.setValue(file->metadata.get("publisher"));
|
mPublisher.setValue(file->metadata.get("publisher"));
|
||||||
mGenre.setValue(file->metadata.get("genre"));
|
mGenre.setValue(file->metadata.get("genre"));
|
||||||
mPlayers.setValue(file->metadata.get("players"));
|
mPlayers.setValue(file->metadata.get("players"));
|
||||||
|
|
||||||
|
// Generate badges slots value based on the game metadata.
|
||||||
|
std::stringstream ss;
|
||||||
|
ss << (file->metadata.get("favorite").compare("true") ? "" : "favorite ");
|
||||||
|
ss << (file->metadata.get("completed").compare("true") ? "" : "completed ");
|
||||||
|
ss << (file->metadata.get("kidgame").compare("true") ? "" : "kidgame ");
|
||||||
|
ss << (file->metadata.get("broken").compare("true") ? "" : "broken ");
|
||||||
|
std::string slots = ss.str();
|
||||||
|
if (!slots.empty())
|
||||||
|
slots.pop_back();
|
||||||
|
mBadges.setValue(slots);
|
||||||
|
|
||||||
mName.setValue(file->metadata.get("name"));
|
mName.setValue(file->metadata.get("name"));
|
||||||
|
|
||||||
if (file->getType() == GAME) {
|
if (file->getType() == GAME) {
|
||||||
|
@ -386,8 +403,7 @@ void DetailedGameListView::updateInfoPanel()
|
||||||
mLastPlayed.setValue(file->metadata.get("lastplayed"));
|
mLastPlayed.setValue(file->metadata.get("lastplayed"));
|
||||||
mPlayCount.setValue(file->metadata.get("playcount"));
|
mPlayCount.setValue(file->metadata.get("playcount"));
|
||||||
}
|
}
|
||||||
}
|
} else if (file->getType() == FOLDER) {
|
||||||
else if (file->getType() == FOLDER) {
|
|
||||||
if (!hideMetaDataFields) {
|
if (!hideMetaDataFields) {
|
||||||
mLastPlayed.setValue(file->metadata.get("lastplayed"));
|
mLastPlayed.setValue(file->metadata.get("lastplayed"));
|
||||||
mLblPlayCount.setVisible(false);
|
mLblPlayCount.setVisible(false);
|
||||||
|
@ -449,6 +465,7 @@ std::vector<GuiComponent*> DetailedGameListView::getMDValues()
|
||||||
ret.push_back(&mPublisher);
|
ret.push_back(&mPublisher);
|
||||||
ret.push_back(&mGenre);
|
ret.push_back(&mGenre);
|
||||||
ret.push_back(&mPlayers);
|
ret.push_back(&mPlayers);
|
||||||
|
ret.push_back(&mBadges);
|
||||||
ret.push_back(&mLastPlayed);
|
ret.push_back(&mLastPlayed);
|
||||||
ret.push_back(&mPlayCount);
|
ret.push_back(&mPlayCount);
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
@ -248,7 +248,6 @@ void VideoGameListView::initMDValues()
|
||||||
mGenre.setFont(defaultFont);
|
mGenre.setFont(defaultFont);
|
||||||
mPlayers.setFont(defaultFont);
|
mPlayers.setFont(defaultFont);
|
||||||
|
|
||||||
// TODO: Set appropriate default height.
|
|
||||||
mBadges.setSize(defaultFont->getHeight() * 5.0f, static_cast<float>(defaultFont->getHeight()));
|
mBadges.setSize(defaultFont->getHeight() * 5.0f, static_cast<float>(defaultFont->getHeight()));
|
||||||
|
|
||||||
mLastPlayed.setFont(defaultFont);
|
mLastPlayed.setFont(defaultFont);
|
||||||
|
|
Loading…
Reference in a new issue