From 5dc6255b433b4ecf3ed12e907e7b81ecc635c2bd Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Sun, 13 Nov 2016 15:47:49 +0100 Subject: [PATCH 1/3] CMovieBrowser: unfify and reduce flicker effects of connect line Connectline object can handle hide behavior itself. --- src/gui/moviebrowser/mb.cpp | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/src/gui/moviebrowser/mb.cpp b/src/gui/moviebrowser/mb.cpp index a021f4ad0..4a768d856 100644 --- a/src/gui/moviebrowser/mb.cpp +++ b/src/gui/moviebrowser/mb.cpp @@ -1440,8 +1440,6 @@ void CMovieBrowser::refreshMovieInfo(void) { TRACE("[mb]->%s m_vMovieInfo.size %d\n", __func__, m_vMovieInfo.size()); - hideDetailsLine(); - // clear m_pcInfo1 text before new init m_pcInfo1->clear(); @@ -1502,18 +1500,12 @@ void CMovieBrowser::refreshMovieInfo(void) void CMovieBrowser::hideDetailsLine() { - refreshDetailsLine(-1); + if (m_detailsLine) + m_detailsLine->hide(); } void CMovieBrowser::refreshDetailsLine(int pos) { - if (m_detailsLine) - { - m_detailsLine->kill(); - delete m_detailsLine; - m_detailsLine = NULL; - } - if (pos >= 0) { int fheight = g_Font[SNeutrinoSettings::FONT_TYPE_MOVIEBROWSER_LIST]->getHeight(); @@ -1525,8 +1517,10 @@ void CMovieBrowser::refreshDetailsLine(int pos) int ypos2 = m_cBoxFrameInfo1.iY + (m_cBoxFrameInfo1.iHeight/2); if (m_detailsLine == NULL) - m_detailsLine = new CComponentsDetailLine(xpos, ypos1, ypos2, fheight/2, m_cBoxFrameInfo1.iHeight-2*RADIUS_LARGE); - m_detailsLine->paint(false); + m_detailsLine = new CComponentsDetailLine(); + + m_detailsLine->setDimensionsAll(xpos, ypos1, ypos2, fheight/2, m_cBoxFrameInfo1.iHeight-2*RADIUS_LARGE); + m_detailsLine->paint(true); } } From 2f23aaedea8d219f068f569929f26d6804509e34 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Mon, 14 Nov 2016 10:09:34 +0100 Subject: [PATCH 2/3] - moviebrowser: add PREVPLAYDATE/RECORDDATE sort buttons to footer --- src/gui/moviebrowser/mb.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/gui/moviebrowser/mb.cpp b/src/gui/moviebrowser/mb.cpp index 4a768d856..0a59121f2 100644 --- a/src/gui/moviebrowser/mb.cpp +++ b/src/gui/moviebrowser/mb.cpp @@ -2014,6 +2014,18 @@ bool CMovieBrowser::onButtonPressMainFrame(neutrino_msg_t msg) CMenuWidget m(LOCALE_MOVIEBROWSER_FOOT_SORT, NEUTRINO_ICON_SETTINGS); m.addIntroItems(); + // add PREVPLAYDATE/RECORDDATE sort buttons to footer + m.addKey(CRCInput::RC_red, selector, to_string(MB_INFO_PREVPLAYDATE).c_str()); + m.addKey(CRCInput::RC_green, selector, to_string(MB_INFO_RECORDDATE).c_str()); + + button_label footerButtons[] = { + { NEUTRINO_ICON_BUTTON_RED, LOCALE_MOVIEBROWSER_INFO_PREVPLAYDATE}, + { NEUTRINO_ICON_BUTTON_GREEN, LOCALE_MOVIEBROWSER_INFO_RECORDDATE} + }; + int footerButtonsCount = sizeof(footerButtons) / sizeof(button_label); + + m.setFooter(footerButtons, footerButtonsCount); + // just show sorting options for displayed rows; sorted by rows for (int row = 0; row < MB_MAX_ROWS && row < m_settings.browserRowNr; row++) { @@ -2022,6 +2034,10 @@ bool CMovieBrowser::onButtonPressMainFrame(neutrino_msg_t msg) if (sortBy[i] == NULL) continue; + // already added to footer + if (i == MB_INFO_PREVPLAYDATE || i == MB_INFO_RECORDDATE) + continue; + if (m_settings.browserRowItem[row] == i) m.addItem(new CMenuForwarder(g_Locale->getText(m_localizedItemName[i]), true, NULL, selector, to_string(i).c_str(), CRCInput::convertDigitToKey(directkey++))); } From 99c57d30751643342edc9f87720645063ef2e181 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Mon, 14 Nov 2016 19:27:09 +0100 Subject: [PATCH 3/3] src/gui/widget/menue.cpp try fix hide info_box (in channellist) --- src/gui/widget/menue.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index 25b9cc6eb..ad783f396 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -1429,7 +1429,7 @@ void CMenuWidget::paintHint(int pos) if (details_line) details_line->hide(); /* clear info box */ - if ((info_box) && (pos < 0)) + if ((info_box) && ((pos < 0) || savescreen)) savescreen ? info_box->hide() : info_box->kill(); if (info_box) hint_painted = info_box->isPainted();