diff --git a/mythtv/libs/libmythtv/tv_actions.h b/mythtv/libs/libmythtv/tv_actions.h index eecf714..ff501ad 100644 --- a/mythtv/libs/libmythtv/tv_actions.h +++ b/mythtv/libs/libmythtv/tv_actions.h @@ -31,6 +31,7 @@ #define ACTION_VIEWSCHEDULED "VIEWSCHEDULED" #define ACTION_PREVRECORDED "PREVRECORDED" #define ACTION_SIGNALMON "SIGNALMON" +#define ACTION_BOOKMARK "BOOKMARK" /* Navigation */ #define ACTION_JUMPPREV "JUMPPREV" diff --git a/mythtv/libs/libmythtv/tv_play.cpp b/mythtv/libs/libmythtv/tv_play.cpp index d6fcb27..90af3f1 100644 --- a/mythtv/libs/libmythtv/tv_play.cpp +++ b/mythtv/libs/libmythtv/tv_play.cpp @@ -828,6 +828,8 @@ void TV::InitKeys(void) "Display scheduled recording list"), ""); REG_KEY("TV Playback", ACTION_PREVRECORDED, QT_TRANSLATE_NOOP("MythControls", "Display previously recorded episodes"), ""); + REG_KEY("TV Playback", ACTION_BOOKMARK, QT_TRANSLATE_NOOP("MythControls", + "Add or Remove Bookmark"), "Ctrl+K,Space,Return,Enter"); REG_KEY("TV Playback", ACTION_SIGNALMON, QT_TRANSLATE_NOOP("MythControls", "Monitor Signal Quality"), "Alt+F7"); REG_KEY("TV Playback", ACTION_JUMPTODVDROOTMENU, @@ -5043,7 +5045,7 @@ bool TV::ActivePostQHandleAction(PlayerContext *ctx, const QStringList &actions) bool isdvd = state == kState_WatchingDVD; bool isdisc = isdvd || state == kState_WatchingBD; - if (has_action(ACTION_SELECT, actions)) + if (has_action(ACTION_BOOKMARK, actions)) { if (!islivetv || !CommitQueuedInput(ctx)) { @@ -11065,6 +11067,14 @@ void TV::OSDDialogEvent(int result, QString text, QString action) DoQueueTranscode(actx, "Medium Quality"); else if (action == "QUEUETRANSCODE_LOW") DoQueueTranscode(actx, "Low Quality"); + else if (action == ACTION_BOOKMARK) + ActivePostQHandleAction(actx, QStringList(ACTION_BOOKMARK)); + else if (action == ACTION_JUMPBKMRK) + { + bool isDVD = actx->buffer && actx->buffer->IsDVD(); + bool isMenuOrStill = actx->buffer && actx->buffer->IsInDiscMenuOrStillFrame(); + ActiveHandleAction(actx, QStringList(ACTION_JUMPBKMRK), isDVD, isMenuOrStill); + } else { LOG(VB_GENERAL, LOG_ERR, LOC + diff --git a/mythtv/programs/mythfrontend/progdetails.cpp b/mythtv/programs/mythfrontend/progdetails.cpp index 6540cd3..802919b 100644 --- a/mythtv/programs/mythfrontend/progdetails.cpp +++ b/mythtv/programs/mythfrontend/progdetails.cpp @@ -137,7 +137,7 @@ bool ProgDetails::keyPressEvent(QKeyEvent *event) QString action = actions[i]; handled = true; - if (action == "INFO") + if (action == "INFO" || action == "SELECT") { m_infoList.Toggle(); updatePage(); diff --git a/mythtv/programs/mythfrontend/videodlg.cpp b/mythtv/programs/mythfrontend/videodlg.cpp index 9100a2a..266b4ad 100644 --- a/mythtv/programs/mythfrontend/videodlg.cpp +++ b/mythtv/programs/mythfrontend/videodlg.cpp @@ -2472,7 +2472,10 @@ void VideoDialog::VideoMenu() m_menuPopup = new MythDialogBox(menu, m_popupStack, "videomenupopup"); if (m_menuPopup->Create()) + { m_popupStack->AddScreen(m_menuPopup); + connect(m_menuPopup, SIGNAL(Closed(QString,int)), SLOT(popupClosed(QString,int))); + } else delete m_menuPopup; } @@ -2536,11 +2539,28 @@ void VideoDialog::DisplayMenu() m_menuPopup = new MythDialogBox(menu, m_popupStack, "videomenupopup"); if (m_menuPopup->Create()) + { m_popupStack->AddScreen(m_menuPopup); + connect(m_menuPopup, SIGNAL(Closed(QString,int)), SLOT(popupClosed(QString,int))); + } else delete m_menuPopup; } +// Switch from the display menu to the actions menu on second +// menu press + +void VideoDialog::popupClosed(QString which, int result) +{ + m_menuPopup = NULL; + + if (result == -2) + { + if (which == "display") + VideoMenu(); + } +} + /** \fn VideoDialog::CreateViewMenu() * \brief Create a MythMenu for MythVideo Views. * \return MythMenu. diff --git a/mythtv/programs/mythfrontend/videodlg.h b/mythtv/programs/mythfrontend/videodlg.h index 9c4f54c..ff996f6 100644 --- a/mythtv/programs/mythfrontend/videodlg.h +++ b/mythtv/programs/mythfrontend/videodlg.h @@ -112,6 +112,8 @@ class VideoDialog : public MythScreenType MythMenu* CreateSettingsMenu(); MythMenu* CreateMetadataBrowseMenu(); + void popupClosed(QString which, int reason); + void PromptToScan(); void ChangeFilter(); diff --git a/mythtv/themes/default/menu_playback.xml b/mythtv/themes/default/menu_playback.xml index 7dc85ad..b87db78 100644 --- a/mythtv/themes/default/menu_playback.xml +++ b/mythtv/themes/default/menu_playback.xml @@ -175,6 +175,8 @@