window update
parent
6f7e0548a8
commit
85c27690ad
|
@ -34,6 +34,9 @@ __root__ = __settings__.getAddonInfo('path')
|
||||||
|
|
||||||
log('SYS ARGV: ' + str(sys.argv))
|
log('SYS ARGV: ' + str(sys.argv))
|
||||||
|
|
||||||
|
#https://github.com/xbmc/xbmc/blob/8d4a5bba55638dfd0bdc5e7de34f3e5293f99933/xbmc/input/Key.h
|
||||||
|
ACTION_STOP = 13
|
||||||
|
ACTION_PLAYER_PLAY = 79
|
||||||
|
|
||||||
class MultiChoiceDialog(pyxbmct.AddonDialogWindow):
|
class MultiChoiceDialog(pyxbmct.AddonDialogWindow):
|
||||||
__settings__ = sys.modules["__main__"].__settings__
|
__settings__ = sys.modules["__main__"].__settings__
|
||||||
|
@ -48,7 +51,6 @@ class MultiChoiceDialog(pyxbmct.AddonDialogWindow):
|
||||||
def __init__(self, title=""):
|
def __init__(self, title=""):
|
||||||
super(MultiChoiceDialog, self).__init__(title)
|
super(MultiChoiceDialog, self).__init__(title)
|
||||||
self.setGeometry(1280, 720, 9, 16)
|
self.setGeometry(1280, 720, 9, 16)
|
||||||
self.selected = []
|
|
||||||
self.set_controls()
|
self.set_controls()
|
||||||
self.connect_controls()
|
self.connect_controls()
|
||||||
self.set_navigation()
|
self.set_navigation()
|
||||||
|
@ -63,27 +65,30 @@ class MultiChoiceDialog(pyxbmct.AddonDialogWindow):
|
||||||
self.placeControl(self.button_search, 0, 5, 1, 2)
|
self.placeControl(self.button_search, 0, 5, 1, 2)
|
||||||
self.button_history = pyxbmct.Button("History")
|
self.button_history = pyxbmct.Button("History")
|
||||||
self.placeControl(self.button_history, 0, 7, 1, 2)
|
self.placeControl(self.button_history, 0, 7, 1, 2)
|
||||||
|
self.button_controlcenter = pyxbmct.Button("Control\r\nCenter")
|
||||||
|
self.placeControl(self.button_controlcenter, 0, 9, 1, 2)
|
||||||
self.right_menu()
|
self.right_menu()
|
||||||
|
|
||||||
self.listing = pyxbmct.List(_imageWidth=40, _imageHeight=40, _itemTextXOffset=10, _itemTextYOffset=2, _itemHeight=40, _space=2, _alignmentY=4)
|
self.listing = pyxbmct.List(_imageWidth=40, _imageHeight=40, _itemTextXOffset=10, _itemTextYOffset=2, _itemHeight=40, _space=2, _alignmentY=4)
|
||||||
self.placeControl(self.listing, 1, 0, 8, 14)
|
self.placeControl(self.listing, 1, 0, 8, 14)
|
||||||
|
|
||||||
|
|
||||||
def connect_controls(self):
|
def connect_controls(self):
|
||||||
self.connect(self.listing, self.press)
|
self.connect(self.listing, self.right_press1)
|
||||||
self.connect(self.button_history, self.history)
|
self.connect(self.button_history, self.history)
|
||||||
self.connect(self.button_search, self.search)
|
self.connect(self.button_search, self.search)
|
||||||
|
self.connect(self.button_controlcenter, self.controlCenter)
|
||||||
#self.connectEventList([ACTION_ENTER], self.search)
|
#self.connectEventList([ACTION_ENTER], self.search)
|
||||||
|
|
||||||
def set_navigation(self):
|
def set_navigation(self):
|
||||||
#Top menu
|
#Top menu
|
||||||
self.input_search.setNavigation(self.listing, self.listing, self.button_right1, self.button_search)
|
self.input_search.setNavigation(self.listing, self.listing, self.button_right1, self.button_search)
|
||||||
self.button_search.setNavigation(self.listing, self.listing, self.input_search, self.button_history)
|
self.button_search.setNavigation(self.listing, self.listing, self.input_search, self.button_history)
|
||||||
self.button_history.setNavigation(self.listing, self.listing, self.button_search, self.button_right1)
|
self.button_history.setNavigation(self.listing, self.listing, self.button_search, self.button_controlcenter)
|
||||||
|
self.button_controlcenter.setNavigation(self.listing, self.listing, self.button_history, self.button_right1)
|
||||||
#Listing
|
#Listing
|
||||||
self.listing.setNavigation(self.input_search, self.input_search, self.input_search, self.button_right1)
|
self.listing.setNavigation(self.input_search, self.input_search, self.input_search, self.button_right1)
|
||||||
#Right menu
|
#Right menu
|
||||||
self.button_right1.setNavigation(self.button_history, self.button_right2, self.listing, self.input_search)
|
self.button_right1.setNavigation(self.button_controlcenter, self.button_right2, self.listing, self.input_search)
|
||||||
self.button_right2.setNavigation(self.button_right1, self.button_right3, self.listing, self.input_search)
|
self.button_right2.setNavigation(self.button_right1, self.button_right3, self.listing, self.input_search)
|
||||||
self.button_right3.setNavigation(self.button_right2, self.button_right4, self.listing, self.input_search)
|
self.button_right3.setNavigation(self.button_right2, self.button_right4, self.listing, self.input_search)
|
||||||
self.button_right4.setNavigation(self.button_right3, self.button_right5, self.listing, self.input_search)
|
self.button_right4.setNavigation(self.button_right3, self.button_right5, self.listing, self.input_search)
|
||||||
|
@ -95,8 +100,6 @@ class MultiChoiceDialog(pyxbmct.AddonDialogWindow):
|
||||||
else:
|
else:
|
||||||
self.setFocus(self.input_search)
|
self.setFocus(self.input_search)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def setAnimation(self, control):
|
def setAnimation(self, control):
|
||||||
# Set fade animation for all add-on window controls
|
# Set fade animation for all add-on window controls
|
||||||
control.setAnimations([('WindowOpen', 'effect=fade start=0 end=100 time=500',),
|
control.setAnimations([('WindowOpen', 'effect=fade start=0 end=100 time=500',),
|
||||||
|
@ -126,9 +129,10 @@ class MultiChoiceDialog(pyxbmct.AddonDialogWindow):
|
||||||
#log(title)
|
#log(title)
|
||||||
self.drawItem(title, 'search_item', link, image)
|
self.drawItem(title, 'search_item', link, image)
|
||||||
|
|
||||||
def press(self):
|
def right_press1(self):
|
||||||
item = self.listing.getSelectedItem()
|
item = self.listing.getSelectedItem()
|
||||||
params = json.loads(item.getLabel2())
|
params = json.loads(item.getLabel2())
|
||||||
|
log('right_press1 params: ' + str(params))
|
||||||
mode = params.get('mode')
|
mode = params.get('mode')
|
||||||
filename = item.getfilename()
|
filename = item.getfilename()
|
||||||
label = item.getLabel()
|
label = item.getLabel()
|
||||||
|
@ -142,12 +146,35 @@ class MultiChoiceDialog(pyxbmct.AddonDialogWindow):
|
||||||
self.last_action()
|
self.last_action()
|
||||||
elif mode == 'torrent_play':
|
elif mode == 'torrent_play':
|
||||||
action = 'playTorrent'
|
action = 'playTorrent'
|
||||||
log('params: '+str(params))
|
|
||||||
url = self.form_link(action, params)
|
url = self.form_link(action, params)
|
||||||
log('url: '+url)
|
log('url: '+url)
|
||||||
xbmc.executebuiltin('xbmc.RunPlugin("%s")' % (url))
|
xbmc.executebuiltin('xbmc.RunPlugin("%s")' % (url))
|
||||||
self.close()
|
self.close()
|
||||||
|
|
||||||
|
def right_press2(self):
|
||||||
|
item = self.listing.getSelectedItem()
|
||||||
|
params = json.loads(item.getLabel2())
|
||||||
|
log('right_press2 params: ' + str(params))
|
||||||
|
mode = params.get('mode')
|
||||||
|
if mode == 'torrent_play':
|
||||||
|
action = 'downloadFilesList'
|
||||||
|
link = {'ind': str(params.get('url'))}
|
||||||
|
url = self.form_link(action, link)
|
||||||
|
log('url: ' + url)
|
||||||
|
xbmc.executebuiltin('xbmc.RunPlugin("%s")' % (url))
|
||||||
|
|
||||||
|
def right_press3(self):
|
||||||
|
item = self.listing.getSelectedItem()
|
||||||
|
params = json.loads(item.getLabel2())
|
||||||
|
log('right_press3 params: ' + str(params))
|
||||||
|
mode = params.get('mode')
|
||||||
|
if mode == 'torrent_play':
|
||||||
|
action = 'downloadLibtorrent'
|
||||||
|
link = {'ind': str(params.get('url'))}
|
||||||
|
url = self.form_link(action, link)
|
||||||
|
log('url: ' + url)
|
||||||
|
xbmc.executebuiltin('xbmc.RunPlugin("%s")' % (url))
|
||||||
|
|
||||||
def open_torrent(self, link, tdir = None):
|
def open_torrent(self, link, tdir = None):
|
||||||
#cache
|
#cache
|
||||||
if link != self.last_link:
|
if link != self.last_link:
|
||||||
|
@ -194,20 +221,25 @@ class MultiChoiceDialog(pyxbmct.AddonDialogWindow):
|
||||||
self.button_right4 = pyxbmct.Button("Empty")
|
self.button_right4 = pyxbmct.Button("Empty")
|
||||||
self.button_right5 = pyxbmct.Button("Empty")
|
self.button_right5 = pyxbmct.Button("Empty")
|
||||||
self.button_right6 = pyxbmct.Button("Empty")
|
self.button_right6 = pyxbmct.Button("Empty")
|
||||||
|
self.connect(self.button_right1, self.right_press1)
|
||||||
|
self.connect(self.button_right2, self.right_press2)
|
||||||
|
self.connect(self.button_right3, self.right_press3)
|
||||||
|
#self.connect(self.button_right4, self.right_press2)
|
||||||
|
#self.connect(self.button_right5, self.right_press2)
|
||||||
|
#self.connect(self.button_right6, self.right_press2)
|
||||||
|
|
||||||
elif mode == 'search':
|
elif mode == 'search':
|
||||||
self.right_buttons_count = 3
|
self.right_buttons_count = 3
|
||||||
self.button_right1.setLabel("Open")
|
self.button_right1.setLabel("Open")
|
||||||
self.connect(self.button_right1, self.press)
|
self.connect(self.button_right1, self.right_press1)
|
||||||
self.connect(self.button_right1, self.press)
|
self.button_right2.setLabel(self.localize('Download via T-client'))
|
||||||
self.button_right2.setLabel("Open2")
|
self.connect(self.button_right2, self.right_press2)
|
||||||
self.button_right3.setLabel("Open3")
|
self.button_right3.setLabel(self.localize('Download via Libtorrent'))
|
||||||
|
self.connect(self.button_right3, self.right_press3)
|
||||||
|
|
||||||
elif mode == 'history':
|
elif mode == 'history':
|
||||||
self.right_buttons_count = 5
|
self.right_buttons_count = 5
|
||||||
self.button_right1.setLabel("Search")
|
self.button_right1.setLabel("Search")
|
||||||
self.connect(self.button_right1, self.history_search)
|
|
||||||
self.connect(self.button_right1, self.history_search)
|
|
||||||
self.button_right2.setLabel("Open2")
|
self.button_right2.setLabel("Open2")
|
||||||
self.button_right3.setLabel("Open3")
|
self.button_right3.setLabel("Open3")
|
||||||
self.button_right4.setLabel("Open2")
|
self.button_right4.setLabel("Open2")
|
||||||
|
@ -249,6 +281,10 @@ class MultiChoiceDialog(pyxbmct.AddonDialogWindow):
|
||||||
|
|
||||||
return url
|
return url
|
||||||
|
|
||||||
|
def controlCenter(self):
|
||||||
|
xbmc.executebuiltin(
|
||||||
|
'xbmc.RunScript(%s,)' % os.path.join(__root__, 'controlcenter.py'))
|
||||||
|
|
||||||
def log(msg):
|
def log(msg):
|
||||||
try:
|
try:
|
||||||
xbmc.log("### [%s]: %s" % (__plugin__,msg,), level=xbmc.LOGNOTICE )
|
xbmc.log("### [%s]: %s" % (__plugin__,msg,), level=xbmc.LOGNOTICE )
|
||||||
|
|
Loading…
Reference in New Issue