From ee61d4374fd7ad363d0fd0dd52a4fe6801d63b82 Mon Sep 17 00:00:00 2001 From: kos Date: Tue, 6 Nov 2012 11:27:51 +0900 Subject: [PATCH] [browser] update. - fix mode icon bug. - add bookmark(manual) on solo2/duo2. --- lib/python/Plugins/Extensions/HbbTV/bookmark.py | 36 +++++++++++---- lib/python/Plugins/Extensions/HbbTV/plugin.py | 61 +++++++++++++++++-------- 2 files changed, 70 insertions(+), 27 deletions(-) diff --git a/lib/python/Plugins/Extensions/HbbTV/bookmark.py b/lib/python/Plugins/Extensions/HbbTV/bookmark.py index dcfe2f0..59951e6 100644 --- a/lib/python/Plugins/Extensions/HbbTV/bookmark.py +++ b/lib/python/Plugins/Extensions/HbbTV/bookmark.py @@ -1,11 +1,12 @@ class BookmarkData: - def __init__(self, _id, _title, _url, _parent): + def __init__(self, _id, _title, _url, _parent, _type): self.mId = _id self.mTitle = _title self.mUrl = _url self.mParent = _parent + self.mType = _type def dump(self, _intent=' '): - print "%s-> %d, %s, %s, %d" % (_intent, self.mId, self.mTitle, self.mUrl, self.mParent) + print "%s-> %d, %s, %s, %d, %d" % (_intent, self.mId, self.mTitle, self.mUrl, self.mParent, self.mType) class CategoryData: def __init__(self, _id, _name): @@ -118,13 +119,20 @@ class BookmarkManager(SimpleConfigParser): SimpleConfigParser.__init__(self) self.mBookmarkRoot = None - self.mDebugEnable = False + self.mDebugEnable = True import os if not os.path.exists(_dbFileName): + f = file('/proc/stb/info/vumodel') + model = f.read().strip() + f.close() + manualmode = (model == "solo2" or model == "duo2") + os.system('echo "[__SYS__]" > %s'%(_dbFileName)) os.system('echo "category_current_idx = 1" >> %s'%(_dbFileName)) - os.system('echo "bookmark_current_idx = 1" >> %s'%(_dbFileName)) + if manualmode : + os.system('echo "bookmark_current_idx = 2" >> %s'%(_dbFileName)) + else: os.system('echo "bookmark_current_idx = 1" >> %s'%(_dbFileName)) os.system('echo "[c-1]" >> %s'%(_dbFileName)) os.system('echo "id = 1" >> %s'%(_dbFileName)) os.system('echo "name = My favorite" >> %s'%(_dbFileName)) @@ -133,7 +141,14 @@ class BookmarkManager(SimpleConfigParser): os.system('echo "id = 1" >> %s'%(_dbFileName)) os.system('echo "parent = 1" >> %s'%(_dbFileName)) os.system('echo "title = Vuplus Home" >> %s'%(_dbFileName)) - + os.system('echo "type = 0" >> %s'%(_dbFileName)) + if manualmode : + os.system('echo "[b-2]" >> %s'%(_dbFileName)) + os.system('echo "url = file:///usr/local/manual/main.html" >> %s'%(_dbFileName)) + os.system('echo "id = 2" >> %s'%(_dbFileName)) + os.system('echo "parent = 1" >> %s'%(_dbFileName)) + os.system('echo "title = User Manual" >> %s'%(_dbFileName)) + os.system('echo "type = 1" >> %s'%(_dbFileName)) self.init(_dbFileName) def message(self, format, params=None): @@ -151,18 +166,19 @@ class BookmarkManager(SimpleConfigParser): return 'b-%d' % (self.mBookmarkRoot[key].mBookmarks[key2].mId) return None - def addBookmark(self, _title, _url, _parent): + def addBookmark(self, _title, _url, _parent, _type): if self.getBookmark(_title) is not None: return False i = self.mBookmarkCurrentIdx + 1 s = "b-%d" % (i,) - self.message("add bookmark : %s, %s, %d", (_title, _url, _parent,)) + self.message("add bookmark : %s, %s, %d, %d", (_title, _url, _parent, _type,)) self.mConfig.add_section(s) self.setNumber(s, 'id', i) self.setString(s, 'title', _title) self.setString(s, 'url', _url) self.setNumber(s, 'parent', _parent) + self.setNumber(s, 'type', _type) self.setNumber('__SYS__', 'bookmark_current_idx', i) self._save() @@ -177,10 +193,11 @@ class BookmarkManager(SimpleConfigParser): def updateBookmark(self, _bookmark): self.populate() s = "b-%d" % (_bookmark.mId) - self.message("update bookmark : %s, %s, %d", (_bookmark.mTitle, _bookmark.mUrl, _bookmark.mParent,)) + self.message("update bookmark : %s, %s, %d, %d", (_bookmark.mTitle, _bookmark.mUrl, _bookmark.mParent, _bookmark.mType,)) self.setString(s, 'title', _bookmark.mTitle) self.setString(s, 'url', _bookmark.mUrl) self.setNumber(s, 'parent', _bookmark.mParent) + self.setNumber(s, 'type', _bookmark.mType) self._save() def getCategory(self, _name): @@ -246,8 +263,9 @@ class BookmarkManager(SimpleConfigParser): t = self.getString(s, 'title') u = self.getString(s, 'url') p = self.getNumber(s, 'parent') + e = self.getNumber(s, 'type') try: - categoryList[p].appendBookmark(BookmarkData(i, t, u, p)) + categoryList[p].appendBookmark(BookmarkData(i, t, u, p, e)) except Exception, e: self._del(s) bx += 1 for key in categoryList.iterkeys(): diff --git a/lib/python/Plugins/Extensions/HbbTV/plugin.py b/lib/python/Plugins/Extensions/HbbTV/plugin.py index 8b6fa06..8bdbaf8 100644 --- a/lib/python/Plugins/Extensions/HbbTV/plugin.py +++ b/lib/python/Plugins/Extensions/HbbTV/plugin.py @@ -9,6 +9,7 @@ from Screens.VirtualKeyBoard import VirtualKeyBoard from Screens.HelpMenu import HelpableScreen from Screens.ChannelSelection import service_types_tv +from Components.Language import language from Components.PluginComponent import plugins from Components.Button import Button from Components.Sources.StaticText import StaticText @@ -1106,30 +1107,37 @@ class OperaBrowserSetting: def __init__(self): self._settingFileName = '/usr/local/hbb-browser/home/setting.ini' self._start = None + self._type = None self._read() def _read(self): f = open(self._settingFileName) for line in f.readlines(): if line.startswith('start='): - self._start = line[6:len(line)-1] + tmp = line[6:len(line)-1].split() + self._start = tmp[0] + if len(tmp) > 1: + self._type = int(tmp[1]) + else: self._type = 0 f.close() def _write(self): tmpstr = [] - tmpstr.append('start=%s\n' % (self._start)) + tmpstr.append('start=%s %d\n' % (self._start, self._type)) f = open(self._settingFileName, 'w') f.writelines(tmpstr) f.close() - def setData(self, start): + def setData(self, start, types=0): self._start = start + self._type = types self._write() def getData(self): return { - 'start':self._start + 'start':self._start, + 'type':self._type, } class OperaBrowserPreferenceWindow(ConfigListScreen, Screen): skin= """ - + @@ -1167,7 +1175,9 @@ class OperaBrowserPreferenceWindow(ConfigListScreen, Screen): def layoutFinished(self): try: - self._startPageUrl = OperaBrowserSetting().getData()['start'] + d = OperaBrowserSetting().getData() + self._startPageUrl = d['start'] + #d['type'] except: self._startPageUrl = 'http://vuplus.com' self.updateStartPageUrl() @@ -1184,7 +1194,10 @@ class OperaBrowserPreferenceWindow(ConfigListScreen, Screen): if strIsEmpty(url): self.session.open(MessageBox, 'Invalid URL!!(Empty)\nPlease, Input to the URL.', type = MessageBox.TYPE_INFO) return - OperaBrowserSetting().setData(url) + mode = 0 + if url.find('/usr/local/manual') > 0: + mode = 1 + OperaBrowserSetting().setData(url, mode) self.close() def keyRed(self): @@ -1335,7 +1348,7 @@ class BookmarkEditWindow(ConfigListScreen, Screen): if strIsEmpty(bookmarkUrl): self["config"].setCurrentIndex(1) return self.showMessageBox("Bookmark URL") - self.mBookmarkManager.addBookmark(bookmarkTitle, bookmarkUrl, self.mData.mParent) + self.mBookmarkManager.addBookmark(bookmarkTitle, bookmarkUrl, self.mData.mParent, 0) else: if strIsEmpty(self.menuItemTitle.value): self["config"].setCurrentIndex(0) @@ -1469,7 +1482,7 @@ class OperaBrowserBookmarkWindow(Screen): if ret is None: return if ret: data = self["bookmarklist"].getCurrent()[1] - OperaBrowserSetting().setData(data.mUrl) + OperaBrowserSetting().setData(data.mUrl, data.mType) msg = "Do you want to set selected url to the Startpage?" self.mSession.openWithCallback(cbSetStartpage, MessageBox, msg, MessageBox.TYPE_YESNO, default=True) @@ -1483,7 +1496,7 @@ class OperaBrowserBookmarkWindow(Screen): return if strIsEmpty(self.mTitle): return - retAdd = self.mBookmarkManager.addBookmark(self.mTitle, self.mUrl, parent.mId) + retAdd = self.mBookmarkManager.addBookmark(self.mTitle, self.mUrl, parent.mId, 0) if not retAdd: msg = "Current page is already exist." self.mSession.open(MessageBox, msg, MessageBox.TYPE_INFO) @@ -1492,7 +1505,7 @@ class OperaBrowserBookmarkWindow(Screen): parent = self.getParentCategory() if parent is None: return - b = BookmarkData(0, '', '', parent.mId) + b = BookmarkData(0, '', '', parent.mId, 0) self.mSession.openWithCallback(self.cbEditWindow, BookmarkEditWindow, 'Add', BookmarkEditWindow.BOOKMARK, b, self.mBookmarkManager) elif data[1] == 3: c = CategoryData(0, '') @@ -1526,7 +1539,14 @@ class OperaBrowserBookmarkWindow(Screen): if len(url) == 0: self.session.open(MessageBox, "Can't open selected bookmark.\n - URL data is empty!!", type = MessageBox.TYPE_INFO) return - self.close(url) + mode = data.mType + if mode: + lang = language.getLanguage() + if lang == 'ru_RU' and os.path.exists('/usr/local/manual/ru_RU'): + url = '/usr/local/manual/ru_RU/main.html' + elif lang == 'de_DE' and os.path.exists('/usr/local/manual/de_DE'): + url = '/usr/local/manual/de_DE/main.html' + self.close((url, mode)) def keyRed(self): self.keyCancel() def keyCancel(self): @@ -1792,6 +1812,7 @@ class OperaBrowser(Screen): self._enableKeyEvent = True #if not self.toggleListViewFlag: # self.keyDown() + self._currentPageUrl = '' self.keyRight() self.keyLeft() @@ -1801,8 +1822,8 @@ class OperaBrowser(Screen): return self.setTitle(title) - def cbUrlText(self, data=None): - print "Inputed Url :", data + def cbUrlText(self, data=None, mode=0): + print "Inputed Url :", data, mode if strIsEmpty(data): return #self.hideSubmenu() @@ -1816,7 +1837,7 @@ class OperaBrowser(Screen): fbClass.getInstance().lock() eRCInput.getInstance().lock() command_util = getCommandUtil() - command_util.sendCommand('OP_BROWSER_OPEN_URL', data) + command_util.sendCommand('OP_BROWSER_OPEN_URL', data, mode) self._terminatedBrowser = False self._enableKeyEvent = False @@ -1826,7 +1847,8 @@ class OperaBrowser(Screen): def _cb_bookmarkWindowClosed(self, data=None): if data is None: return - self.cbUrlText(data) + (url, mode) = data + self.cbUrlText(url, mode) def _cmd_on_OpenUrl(self): global _g_helper @@ -1863,11 +1885,14 @@ class OperaBrowser(Screen): message = "Opera Browser was not running.\nPlease running browser using [File]>[Start/Stop] menu." self.session.open(MessageBox, message, MessageBox.TYPE_INFO) return + mode = 0 start = 'http://vuplus.com' try: - start = OperaBrowserSetting().getData()['start'] + d = OperaBrowserSetting().getData() + start = d['start'] + mode = d['type'] except: pass - self.cbUrlText(start) + self.cbUrlText(start, mode) def _cmd_on_ReturnToBrowser(self): self.keyCancel() -- 2.7.4