From 05558331f7636a692e25083e6957a9bd5371de57 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 30 May 2014 14:57:17 +0400 Subject: [PATCH] gui/hdd_menu.cpp: ask to set recording path after mount (hotplug or format) --- src/gui/hdd_menu.cpp | 45 +++++++++++++++++++++++++++++--------------- src/gui/hdd_menu.h | 1 + 2 files changed, 31 insertions(+), 15 deletions(-) diff --git a/src/gui/hdd_menu.cpp b/src/gui/hdd_menu.cpp index 64c10ff1f..dadb6e0d7 100644 --- a/src/gui/hdd_menu.cpp +++ b/src/gui/hdd_menu.cpp @@ -356,6 +356,30 @@ void CHDDMenuHandler::showHint(std::string &message) delete hintBox; } +void CHDDMenuHandler::setRecordPath(std::string &dev) +{ + std::string newpath = std::string(MOUNT_BASE) + dev + "/movies"; + if (g_settings.network_nfs_recordingdir == newpath) { + printf("CHDDMenuHandler::setRecordPath: recordingdir already set to %s\n", newpath.c_str()); + return; + } + bool old_menu = in_menu; + in_menu = false; + int res = ShowMsg(LOCALE_RECORDINGMENU_DEFDIR, LOCALE_HDD_SET_RECDIR, CMessageBox::mbrNo, CMessageBox::mbYes | CMessageBox::mbNo); + if(res == CMessageBox::mbrYes) { + g_settings.network_nfs_recordingdir = newpath; + CRecordManager::getInstance()->SetDirectory(g_settings.network_nfs_recordingdir); + if(g_settings.timeshiftdir.empty()) + { + std::string timeshiftDir = g_settings.network_nfs_recordingdir + "/.timeshift"; + safe_mkdir(timeshiftDir.c_str()); + printf("New timeshift dir: %s\n", timeshiftDir.c_str()); + CRecordManager::getInstance()->SetTimeshiftDirectory(timeshiftDir); + } + } + in_menu = old_menu; +} + int CHDDMenuHandler::handleMsg(const neutrino_msg_t msg, neutrino_msg_data_t data) { if (msg == NeutrinoMessages::EVT_HOTPLUG) { @@ -399,6 +423,8 @@ int CHDDMenuHandler::handleMsg(const neutrino_msg_t msg, neutrino_msg_data_t dat g_Locale->getText(mounted ? LOCALE_HDD_MOUNT_OK : LOCALE_HDD_MOUNT_FAILED) : g_Locale->getText(LOCALE_HDD_UMOUNTED)); showHint(message); + if (added && tmp != "sr") + setRecordPath(dev); } if (in_menu && !lock_refresh) { show_menu = true; @@ -461,24 +487,13 @@ int CHDDMenuHandler::exec(CMenuTarget* parent, const std::string &actionkey) } else if (actionkey[0] == 'f') { int ret = formatDevice(dev); +#if 0 std::string devname = "/dev/" + dev + getDefaultPart(dev); if (show_menu && is_mounted(devname.c_str())) { - bool old_menu = in_menu; - in_menu = false; - int res = ShowMsg(LOCALE_RECORDINGMENU_DEFDIR, LOCALE_HDD_SET_RECDIR, CMessageBox::mbrNo, CMessageBox::mbYes | CMessageBox::mbNo); - if(res == CMessageBox::mbrYes) { - g_settings.network_nfs_recordingdir = std::string(MOUNT_BASE) + "/" + dev + getDefaultPart(dev) + "/movies"; - CRecordManager::getInstance()->SetDirectory(g_settings.network_nfs_recordingdir); - if(g_settings.timeshiftdir.empty()) - { - std::string timeshiftDir = g_settings.network_nfs_recordingdir + "/.timeshift"; - safe_mkdir(timeshiftDir.c_str()); - printf("New timeshift dir: %s\n", timeshiftDir.c_str()); - CRecordManager::getInstance()->SetTimeshiftDirectory(timeshiftDir); - } - } - in_menu = old_menu; + devname = dev + getDefaultPart(dev); + setRecordPath(devname); } +#endif return ret; } return menu_return::RETURN_REPAINT; diff --git a/src/gui/hdd_menu.h b/src/gui/hdd_menu.h index d073da013..899d0f6e5 100644 --- a/src/gui/hdd_menu.h +++ b/src/gui/hdd_menu.h @@ -92,6 +92,7 @@ class CHDDMenuHandler : public CMenuTarget void showError(neutrino_locale_t err); bool scanDevices(); void showHint(std::string &messsage); + void setRecordPath(std::string &dev); CHDDMenuHandler(); public: