- moviebrowser: fix filter selection

This commit is contained in:
svenhoefer
2016-10-31 23:07:27 +01:00
parent 0b504f8c60
commit fc6e8fbbca
2 changed files with 41 additions and 34 deletions

View File

@@ -543,10 +543,10 @@ void CMovieBrowser::initFrames(void)
m_cBoxFrameInfo2.iWidth = m_cBoxFrame.iWidth - m_cBoxFrameBrowserList.iWidth; m_cBoxFrameInfo2.iWidth = m_cBoxFrame.iWidth - m_cBoxFrameBrowserList.iWidth;
m_cBoxFrameInfo2.iHeight = m_cBoxFrameBrowserList.iHeight; m_cBoxFrameInfo2.iHeight = m_cBoxFrameBrowserList.iHeight;
m_cBoxFrameFilter.iX = m_cBoxFrameBrowserList.iX; m_cBoxFrameFilter.iX = m_cBoxFrameInfo1.iX;
m_cBoxFrameFilter.iY = m_cBoxFrameBrowserList.iY; m_cBoxFrameFilter.iY = m_cBoxFrameInfo1.iY;
m_cBoxFrameFilter.iWidth = m_cBoxFrameBrowserList.iWidth; m_cBoxFrameFilter.iWidth = m_cBoxFrameInfo1.iWidth;
m_cBoxFrameFilter.iHeight = m_cBoxFrameBrowserList.iHeight; m_cBoxFrameFilter.iHeight = m_cBoxFrameInfo1.iHeight;
} }
void CMovieBrowser::initRows(void) void CMovieBrowser::initRows(void)
@@ -1124,7 +1124,7 @@ int CMovieBrowser::paint(void)
m_pcLastRecord = new CListFrame(&m_recordListLines, font, CListFrame::SCROLL | CListFrame::HEADER_LINE | CListFrame::TITLE, m_pcLastRecord = new CListFrame(&m_recordListLines, font, CListFrame::SCROLL | CListFrame::HEADER_LINE | CListFrame::TITLE,
&m_cBoxFrameLastRecordList, g_Locale->getText(LOCALE_MOVIEBROWSER_HEAD_RECORDLIST), &m_cBoxFrameLastRecordList, g_Locale->getText(LOCALE_MOVIEBROWSER_HEAD_RECORDLIST),
g_Font[SNeutrinoSettings::FONT_TYPE_MOVIEBROWSER_HEAD]); g_Font[SNeutrinoSettings::FONT_TYPE_MOVIEBROWSER_HEAD]);
m_pcFilter = new CListFrame(&m_FilterLines, font, CListFrame::SCROLL | CListFrame::TITLE, m_pcFilter = new CListFrame(&m_FilterLines, g_Font[SNeutrinoSettings::FONT_TYPE_MOVIEBROWSER_INFO], CListFrame::SCROLL | CListFrame::TITLE,
&m_cBoxFrameFilter, g_Locale->getText(LOCALE_MOVIEBROWSER_HEAD_FILTER), &m_cBoxFrameFilter, g_Locale->getText(LOCALE_MOVIEBROWSER_HEAD_FILTER),
g_Font[SNeutrinoSettings::FONT_TYPE_MOVIEBROWSER_HEAD]); g_Font[SNeutrinoSettings::FONT_TYPE_MOVIEBROWSER_HEAD]);
m_pcInfo1 = new CTextBox(" ", g_Font[SNeutrinoSettings::FONT_TYPE_MOVIEBROWSER_INFO], CTextBox::TOP | CTextBox::SCROLL, &m_cBoxFrameInfo1); m_pcInfo1 = new CTextBox(" ", g_Font[SNeutrinoSettings::FONT_TYPE_MOVIEBROWSER_INFO], CTextBox::TOP | CTextBox::SCROLL, &m_cBoxFrameInfo1);
@@ -1339,9 +1339,6 @@ void CMovieBrowser::initMovieCover(void)
// we have to align cover to box width // we have to align cover to box width
cover_w = movieCoverBox.iWidth - 2*OFFSET_INNER_MID - OFFSET_SHADOW; cover_w = movieCoverBox.iWidth - 2*OFFSET_INNER_MID - OFFSET_SHADOW;
TRACE("[mb]->%s:%d m_windowFocus == MB_FOCUS_BROWSER\n", __func__, __LINE__);
} }
else else
{ {
@@ -1349,9 +1346,6 @@ void CMovieBrowser::initMovieCover(void)
// we have to align cover to box height // we have to align cover to box height
cover_h = movieCoverBox.iHeight - 2*OFFSET_INNER_MID - OFFSET_SHADOW; cover_h = movieCoverBox.iHeight - 2*OFFSET_INNER_MID - OFFSET_SHADOW;
TRACE("[mb]->%s:%d m_windowFocus != MB_FOCUS_BROWSER\n", __func__, __LINE__);
} }
std::string cover_file; std::string cover_file;
@@ -1391,8 +1385,6 @@ void CMovieBrowser::initMovieCover(void)
m_movieCover->doPaintBg(false); m_movieCover->doPaintBg(false);
} }
TRACE("[mb]->%s:%d m_windowFocus: %d\n", __func__, __LINE__, m_windowFocus);
// always align positions and dimensions // always align positions and dimensions
if (m_windowFocus == MB_FOCUS_BROWSER && m_settings.browserAdditional) if (m_windowFocus == MB_FOCUS_BROWSER && m_settings.browserAdditional)
{ {
@@ -1400,6 +1392,7 @@ TRACE("[mb]->%s:%d m_windowFocus: %d\n", __func__, __LINE__, m_windowFocus);
cover_w /= 2; // cover is upright, so we use just half width first cover_w /= 2; // cover is upright, so we use just half width first
m_movieCover->setHeight(0); // force recalculation m_movieCover->setHeight(0); // force recalculation
TRACE("[mb]->%s:%d m_movieCover->getHeight(): %d\n", __func__, __LINE__, m_movieCover->getHeight());
m_movieCover->setWidth(cover_w, true); m_movieCover->setWidth(cover_w, true);
if (m_movieCover->getHeight() > movieCoverBox.iHeight/3) if (m_movieCover->getHeight() > movieCoverBox.iHeight/3)
m_movieCover->setHeight(movieCoverBox.iHeight/3, true); // use maximal one third of box height m_movieCover->setHeight(movieCoverBox.iHeight/3, true); // use maximal one third of box height
@@ -1433,7 +1426,15 @@ void CMovieBrowser::refreshMovieCover(void)
TRACE("[mb]->%s:%d\n", __func__, __LINE__); TRACE("[mb]->%s:%d\n", __func__, __LINE__);
if (m_movieCover) if (m_movieCover)
m_movieCover->paint(CC_SAVE_SCREEN_NO); m_movieCover->paint(CC_SAVE_SCREEN_YES);
}
void CMovieBrowser::hideMovieCover(void)
{
TRACE("[mb]->%s:%d\n", __func__, __LINE__);
if (m_movieCover)
m_movieCover->hide();
} }
void CMovieBrowser::refreshMovieInfo(void) void CMovieBrowser::refreshMovieInfo(void)
@@ -1442,22 +1443,20 @@ void CMovieBrowser::refreshMovieInfo(void)
hideDetailsLine(); hideDetailsLine();
//reset text before new init, m_pcInfo1 must be clean // clear m_pcInfo1 text before new init
std::string emptytext = " "; m_pcInfo1->clear();
m_pcInfo1->setText(&emptytext);
if (m_windowFocus == MB_FOCUS_BROWSER && m_settings.browserAdditional)
{
m_pcInfo1->setTextFont(g_Font[SNeutrinoSettings::FONT_TYPE_MOVIEBROWSER_LIST]);
// clear m_pcInfo2 text, reset position and dimensions before new init
m_pcInfo2->movePosition(m_cBoxFrameInfo2.iX, m_cBoxFrameInfo2.iY);
m_pcInfo2->setWindowMaxDimensions(m_cBoxFrameInfo2.iWidth, m_cBoxFrameInfo2.iHeight); m_pcInfo2->setWindowMaxDimensions(m_cBoxFrameInfo2.iWidth, m_cBoxFrameInfo2.iHeight);
m_pcInfo2->setWindowMinDimensions(m_cBoxFrameInfo2.iWidth, m_cBoxFrameInfo2.iHeight); m_pcInfo2->setWindowMinDimensions(m_cBoxFrameInfo2.iWidth, m_cBoxFrameInfo2.iHeight);
m_pcInfo2->movePosition(m_cBoxFrameInfo2.iX, m_cBoxFrameInfo2.iY); m_pcInfo2->clear();
m_pcInfo2->setText(&emptytext);
} if (m_windowFocus == MB_FOCUS_BROWSER && m_settings.browserAdditional)
m_pcInfo1->setTextFont(g_Font[SNeutrinoSettings::FONT_TYPE_MOVIEBROWSER_LIST]);
else else
m_pcInfo1->setTextFont(g_Font[SNeutrinoSettings::FONT_TYPE_MOVIEBROWSER_INFO]); m_pcInfo1->setTextFont(g_Font[SNeutrinoSettings::FONT_TYPE_MOVIEBROWSER_INFO]);
if (m_vMovieInfo.empty() || m_movieSelectionHandler == NULL) if (m_vMovieInfo.empty() || m_movieSelectionHandler == NULL)
return; return;
@@ -1476,22 +1475,23 @@ void CMovieBrowser::refreshMovieInfo(void)
cover_y_offset += 2*OFFSET_INNER_MID; cover_y_offset += 2*OFFSET_INNER_MID;
} }
std::string pcInfo_content; std::string pcInfo1_content = " ";
if (m_windowFocus == MB_FOCUS_BROWSER && m_settings.browserAdditional) if (m_windowFocus == MB_FOCUS_BROWSER && m_settings.browserAdditional)
{ {
m_pcInfo2->setWindowMaxDimensions(m_cBoxFrameInfo2.iWidth, m_cBoxFrameInfo2.iHeight - cover_y_offset); m_pcInfo2->setWindowMaxDimensions(m_cBoxFrameInfo2.iWidth, m_cBoxFrameInfo2.iHeight - cover_y_offset);
m_pcInfo2->setWindowMinDimensions(m_cBoxFrameInfo2.iWidth, m_cBoxFrameInfo2.iHeight - cover_y_offset); m_pcInfo2->setWindowMinDimensions(m_cBoxFrameInfo2.iWidth, m_cBoxFrameInfo2.iHeight - cover_y_offset);
m_pcInfo2->movePosition(m_cBoxFrameInfo2.iX, m_cBoxFrameInfo2.iY + cover_y_offset); m_pcInfo2->movePosition(m_cBoxFrameInfo2.iX, m_cBoxFrameInfo2.iY + cover_y_offset);
m_pcInfo2->setText(&m_movieSelectionHandler->epgInfo2); m_pcInfo2->setText(&m_movieSelectionHandler->epgInfo2);
pcInfo_content = m_movieSelectionHandler->epgInfo1;
pcInfo_content += "\n"; pcInfo1_content = m_movieSelectionHandler->epgInfo1;
pcInfo_content += m_movieSelectionHandler->channelName; pcInfo1_content += "\n";
pcInfo1_content += m_movieSelectionHandler->channelName;
} }
else else
{ {
pcInfo_content = m_movieSelectionHandler->epgInfo2; pcInfo1_content = m_movieSelectionHandler->epgInfo2;
} }
m_pcInfo1->setText(&pcInfo_content, m_cBoxFrameInfo1.iWidth - cover_x_offset); m_pcInfo1->setText(&pcInfo1_content, m_cBoxFrameInfo1.iWidth - cover_x_offset);
updateInfoSelection(); updateInfoSelection();
@@ -2533,7 +2533,12 @@ void CMovieBrowser::onSetGUIWindow(MB_GUI gui)
m_showMovieInfo = false; m_showMovieInfo = false;
m_pcInfo1->hide(); m_pcInfo1->hide();
m_pcInfo2->hide(); if (m_windowFocus == MB_FOCUS_BROWSER && m_settings.browserAdditional)
{
hideMovieCover();
m_pcInfo2->clear();
}
hideDetailsLine();
m_pcFilter->paint(); m_pcFilter->paint();
onSetFocus(MB_FOCUS_FILTER); onSetFocus(MB_FOCUS_FILTER);
@@ -2587,6 +2592,7 @@ void CMovieBrowser::onSetFocus(MB_FOCUS new_focus)
m_pcFilter->showSelection(true); m_pcFilter->showSelection(true);
updateMovieSelection(); updateMovieSelection();
if (m_windowFocus != MB_FOCUS_FILTER)
updateInfoSelection(); updateInfoSelection();
refreshFoot(); refreshFoot();
} }

View File

@@ -293,6 +293,7 @@ class CMovieBrowser : public CMenuTarget
void refreshChannelLogo(void); //P1 void refreshChannelLogo(void); //P1
void initMovieCover(void); //P1 void initMovieCover(void); //P1
void refreshMovieCover(void); //P1 void refreshMovieCover(void); //P1
void hideMovieCover(void); //P1
int refreshFoot(bool show = true); //P2 int refreshFoot(bool show = true); //P2
void refreshTitle(void); //P2 void refreshTitle(void); //P2
void refreshInfo(void); // P2 void refreshInfo(void); // P2