[browser] update.
authorkos <kos@dev3>
Tue, 6 Nov 2012 02:27:51 +0000 (11:27 +0900)
committerkos <kos@dev3>
Tue, 6 Nov 2012 02:27:51 +0000 (11:27 +0900)
- fix mode icon bug.
- add bookmark(manual) on solo2/duo2.

lib/python/Plugins/Extensions/HbbTV/bookmark.py
lib/python/Plugins/Extensions/HbbTV/plugin.py

index dcfe2f0..59951e6 100644 (file)
@@ -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():
index 8b6fa06..8bdbaf8 100644 (file)
@@ -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=   """
-               <screen position="center,center" size="600,350" title="Proference">
+               <screen position="center,center" size="600,350" title="Preference">
                        <widget name="url" position="5,0" size="590,100" valign="center" font="Regular;20" />
                        <widget name="config" position="0,100" size="600,200" scrollbarMode="showOnDemand" />
 
@@ -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()