mirror of
https://github.com/FunKey-Project/RetroFE.git
synced 2025-12-13 02:08:52 +01:00
select correct item in ReloadableScrollingText and ReloadableText when scroll is detected
Signed-off-by: Vincent-FK <vincent.buso@funkey-project.com>
This commit is contained in:
parent
7950bffc2e
commit
bcac9e6f4d
@ -33,9 +33,10 @@ Image * ImageBuilder::CreateImage(std::string path, Page &p, std::string name, f
|
|||||||
std::string prefix = Utils::combinePath(path, name);
|
std::string prefix = Utils::combinePath(path, name);
|
||||||
std::string file;
|
std::string file;
|
||||||
|
|
||||||
printf(" findMatchingFile, prefix = %s, file = %s\n", prefix.c_str(), file.c_str());
|
//printf(" findMatchingFile, prefix = %s, extensions = %s\n", prefix.c_str(), extensions.c_str());
|
||||||
if(Utils::findMatchingFile(prefix, extensions, file))
|
if(Utils::findMatchingFile(prefix, extensions, file))
|
||||||
{
|
{
|
||||||
|
//printf(" fFound Matching File, prefix = %s, file = %s\n", prefix.c_str(), file.c_str());
|
||||||
image = new Image(file, "", p, scaleX, scaleY, dithering);
|
image = new Image(file, "", p, scaleX, scaleY, dithering);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -414,13 +414,9 @@ void ReloadableMedia::reloadTexture( bool previousItem )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// if image and artwork was not specified, fall back to displaying text
|
// if image and artwork was not specified, image fall back
|
||||||
if(!loadedComponent_ && imageFallback_)
|
if(!loadedComponent_ && imageFallback_)
|
||||||
{
|
{
|
||||||
//loadedComponent_ = new Text(selectedItem->fullTitle, page, FfntInst_, scaleX_, scaleY_);
|
|
||||||
/*baseViewInfo.ImageWidth = loadedComponent_->baseViewInfo.ImageWidth;
|
|
||||||
baseViewInfo.ImageHeight = loadedComponent_->baseViewInfo.ImageHeight;*/
|
|
||||||
|
|
||||||
std::string imagePath;
|
std::string imagePath;
|
||||||
ImageBuilder imageBuild;
|
ImageBuilder imageBuild;
|
||||||
imagePath = Utils::combinePath(Configuration::absolutePath, "collections", collectionName );
|
imagePath = Utils::combinePath(Configuration::absolutePath, "collections", collectionName );
|
||||||
@ -428,19 +424,13 @@ void ReloadableMedia::reloadTexture( bool previousItem )
|
|||||||
loadedComponent_ = imageBuild.CreateImage( imagePath, page, std::string("fallback"), scaleX_, scaleY_, ditheringAuthorized_ );
|
loadedComponent_ = imageBuild.CreateImage( imagePath, page, std::string("fallback"), scaleX_, scaleY_, ditheringAuthorized_ );
|
||||||
}
|
}
|
||||||
|
|
||||||
// if image and artwork was not specified, fall back to displaying text
|
// if image and artwork was not specified, and no image fallback, fall back to displaying text
|
||||||
if(!loadedComponent_ && textFallback_)
|
if(!loadedComponent_ && textFallback_)
|
||||||
{
|
{
|
||||||
loadedComponent_ = new Text(selectedItem->fullTitle, page, FfntInst_, scaleX_, scaleY_);
|
loadedComponent_ = new Text(selectedItem->fullTitle, page, FfntInst_, scaleX_, scaleY_);
|
||||||
baseViewInfo.ImageWidth = loadedComponent_->baseViewInfo.ImageWidth;
|
baseViewInfo.ImageWidth = loadedComponent_->baseViewInfo.ImageWidth;
|
||||||
baseViewInfo.ImageHeight = loadedComponent_->baseViewInfo.ImageHeight;
|
baseViewInfo.ImageHeight = loadedComponent_->baseViewInfo.ImageHeight;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*if(imageAndText_){
|
|
||||||
loadedComponent_ = new Text(selectedItem->fullTitle, page, FfntInst_, scaleX_, scaleY_);
|
|
||||||
baseViewInfo.ImageWidth = loadedComponent_->baseViewInfo.ImageWidth;
|
|
||||||
baseViewInfo.ImageHeight = loadedComponent_->baseViewInfo.ImageHeight;
|
|
||||||
}*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -105,12 +105,17 @@ void ReloadableScrollingText::update(float dt)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (newItemSelected ||
|
// Reload media
|
||||||
(newScrollItemSelected && getMenuScrollReload()))
|
if (newItemSelected)
|
||||||
{
|
{
|
||||||
reloadTexture( );
|
reloadTexture();
|
||||||
newItemSelected = false;
|
newItemSelected = false;
|
||||||
}
|
}
|
||||||
|
else if(newScrollItemSelected && getMenuScrollReload())
|
||||||
|
{
|
||||||
|
reloadTexture(true);
|
||||||
|
newScrollItemSelected = false;
|
||||||
|
}
|
||||||
|
|
||||||
Component::update(dt);
|
Component::update(dt);
|
||||||
}
|
}
|
||||||
@ -141,8 +146,12 @@ void ReloadableScrollingText::initializeFonts( )
|
|||||||
fontInst_->initialize( );
|
fontInst_->initialize( );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void ReloadableScrollingText::reloadTexture( )
|
void ReloadableScrollingText::reloadTexture( )
|
||||||
|
{
|
||||||
|
reloadTexture(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ReloadableScrollingText::reloadTexture( bool previousItem )
|
||||||
{
|
{
|
||||||
needRender_ = true;
|
needRender_ = true;
|
||||||
|
|
||||||
@ -159,11 +168,15 @@ void ReloadableScrollingText::reloadTexture( )
|
|||||||
|
|
||||||
text_.clear( );
|
text_.clear( );
|
||||||
|
|
||||||
Item *selectedItem = page.getSelectedItem( displayOffset_ );
|
/* Select item to reload */
|
||||||
if (!selectedItem)
|
Item *selectedItem = NULL;
|
||||||
{
|
if(previousItem){
|
||||||
return;
|
selectedItem = page.getPreviousSelectedItem(displayOffset_);
|
||||||
}
|
}
|
||||||
|
else{
|
||||||
|
selectedItem = page.getSelectedItem(displayOffset_);
|
||||||
|
}
|
||||||
|
if(!selectedItem) return;
|
||||||
|
|
||||||
config_.getProperty( "currentCollection", currentCollection_ );
|
config_.getProperty( "currentCollection", currentCollection_ );
|
||||||
|
|
||||||
|
|||||||
@ -36,6 +36,7 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
void reloadTexture( );
|
void reloadTexture( );
|
||||||
|
void reloadTexture( bool previousItem );
|
||||||
void loadText( std::string collection, std::string type, std::string basename, std::string filepath, bool systemMode );
|
void loadText( std::string collection, std::string type, std::string basename, std::string filepath, bool systemMode );
|
||||||
Configuration &config_;
|
Configuration &config_;
|
||||||
bool systemMode_;
|
bool systemMode_;
|
||||||
|
|||||||
@ -58,12 +58,16 @@ ReloadableText::~ReloadableText()
|
|||||||
void ReloadableText::update(float dt)
|
void ReloadableText::update(float dt)
|
||||||
{
|
{
|
||||||
if (newItemSelected ||
|
if (newItemSelected ||
|
||||||
(newScrollItemSelected && getMenuScrollReload()) ||
|
|
||||||
type_ == "time")
|
type_ == "time")
|
||||||
{
|
{
|
||||||
ReloadTexture();
|
ReloadTexture();
|
||||||
newItemSelected = false;
|
newItemSelected = false;
|
||||||
}
|
}
|
||||||
|
else if(newScrollItemSelected && getMenuScrollReload())
|
||||||
|
{
|
||||||
|
ReloadTexture(true);
|
||||||
|
newScrollItemSelected = false;
|
||||||
|
}
|
||||||
|
|
||||||
// needs to be ran at the end to prevent the NewItemSelected flag from being detected
|
// needs to be ran at the end to prevent the NewItemSelected flag from being detected
|
||||||
Component::update(dt);
|
Component::update(dt);
|
||||||
@ -103,7 +107,11 @@ void ReloadableText::deInitializeFonts()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void ReloadableText::ReloadTexture()
|
void ReloadableText::ReloadTexture(){
|
||||||
|
ReloadTexture(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ReloadableText::ReloadTexture( bool previousItem )
|
||||||
{
|
{
|
||||||
if (imageInst_ != NULL)
|
if (imageInst_ != NULL)
|
||||||
{
|
{
|
||||||
@ -111,7 +119,14 @@ void ReloadableText::ReloadTexture()
|
|||||||
imageInst_ = NULL;
|
imageInst_ = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
Item *selectedItem = page.getSelectedItem( displayOffset_ );
|
/* Select item to reload */
|
||||||
|
Item *selectedItem = NULL;
|
||||||
|
if(previousItem){
|
||||||
|
selectedItem = page.getPreviousSelectedItem(displayOffset_);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
selectedItem = page.getSelectedItem(displayOffset_);
|
||||||
|
}
|
||||||
|
|
||||||
if (selectedItem != NULL)
|
if (selectedItem != NULL)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -35,7 +35,8 @@ public:
|
|||||||
void initializeFonts();
|
void initializeFonts();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void ReloadTexture();
|
void ReloadTexture( );
|
||||||
|
void ReloadTexture( bool previousItem );
|
||||||
|
|
||||||
Configuration &config_;
|
Configuration &config_;
|
||||||
Text *imageInst_;
|
Text *imageInst_;
|
||||||
|
|||||||
@ -148,8 +148,6 @@ void Page::onNewItemSelected()
|
|||||||
if(!(activeMenu_.size() > 0 && activeMenu_[0])) return;
|
if(!(activeMenu_.size() > 0 && activeMenu_[0])) return;
|
||||||
selectedItem_ = activeMenu_[0]->getSelectedItem();
|
selectedItem_ = activeMenu_[0]->getSelectedItem();
|
||||||
|
|
||||||
//printf("onNewItemSelected\n");
|
|
||||||
|
|
||||||
for(MenuVector_T::iterator it = menus_.begin(); it != menus_.end(); it++)
|
for(MenuVector_T::iterator it = menus_.begin(); it != menus_.end(); it++)
|
||||||
{
|
{
|
||||||
for(std::vector<ScrollingList *>::iterator it2 = menus_[std::distance(menus_.begin(), it)].begin(); it2 != menus_[std::distance(menus_.begin(), it)].end(); it2++)
|
for(std::vector<ScrollingList *>::iterator it2 = menus_[std::distance(menus_.begin(), it)].begin(); it2 != menus_[std::distance(menus_.begin(), it)].end(); it2++)
|
||||||
@ -172,7 +170,6 @@ void Page::onNewScrollItemSelected()
|
|||||||
|
|
||||||
if(!(activeMenu_.size() > 0 && activeMenu_[0])) return;
|
if(!(activeMenu_.size() > 0 && activeMenu_[0])) return;
|
||||||
selectedItem_ = activeMenu_[0]->getSelectedItem();
|
selectedItem_ = activeMenu_[0]->getSelectedItem();
|
||||||
//printf("onNewScrollItemSelected\n");
|
|
||||||
|
|
||||||
for(std::vector<Component *>::iterator it = LayerComponents.begin(); it != LayerComponents.end(); ++it)
|
for(std::vector<Component *>::iterator it = LayerComponents.begin(); it != LayerComponents.end(); ++it)
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user