diff --git a/InstallationGuide.txt b/InstallationGuide.txt index 4c390ee..8e1c13e 100755 --- a/InstallationGuide.txt +++ b/InstallationGuide.txt @@ -4,7 +4,7 @@ W_HOTBOX INSTALLATION GUIDE FRESH INSTALLATION -------------------------------------------------------------------------------------------- -1 Copy 'W_hotbox.py' and 'W_hotboxManager.py' to a folder that's part of the nuke plugin path. +1 Copy 'W_hotbox.py' and 'W_hotboxManager.py' to a folder that's part of the nuke plugin path. (Usually inside ~/user/.nuke) 2 Append menu.py with the following code: diff --git a/W_hotbox.py b/W_hotbox.py index 74e4c84..1667cb7 100644 --- a/W_hotbox.py +++ b/W_hotbox.py @@ -1,15 +1,15 @@ #---------------------------------------------------------------------------------------------------------- # Wouter Gilsing # woutergilsing@hotmail.com -version = '1.8' -releaseDate = 'April 23 2018' +version = '1.9' +releaseDate = 'March 28 2021' #---------------------------------------------------------------------------------------------------------- #LICENSE #---------------------------------------------------------------------------------------------------------- ''' -Copyright (c) 2016, Wouter Gilsing +Copyright (c) 2016-2021, Wouter Gilsing All rights reserved. Redistribution and use in source and binary forms, with or without @@ -139,7 +139,7 @@ def __init__(self, subMenuMode = False, path = '', name = '', position = ''): lists = [[],[]] for index, item in enumerate(allItems[2:]): - if int((index%4)/2): + if int((index%4)//2): lists[index%2].append(item) else: lists[index%2].insert(0,item) @@ -192,7 +192,7 @@ def __init__(self, subMenuMode = False, path = '', name = '', position = ''): #position self.adjustSize() - self.spwanPosition = QtGui.QCursor().pos() - QtCore.QPoint((self.width()/2),(self.height()/2)) + self.spwanPosition = QtGui.QCursor().pos() - QtCore.QPoint((self.width()//2),(self.height()//2)) #set last position if a fresh instance of the hotbox is launched if position == '' and not subMenuMode: @@ -506,11 +506,12 @@ def validateRule(self, ruleFile): #run rule try: - results = {} - exec(ruleString, {}, results) - - if 'ret' in results.keys(): - result = bool(results['ret']) + scope = {} + exec(ruleString, scope, scope) + + if 'ret' in scope.keys(): + result = bool(scope['ret']) + except: error = traceback.format_exc() @@ -584,7 +585,7 @@ def __init__(self, node = True, name = ''): self.setFixedHeight(height) #resize font based on length of name - fontSize = max(5,(13-(max(0,(len(name) - 11))/2))) + fontSize = int(max(5,(13-(max(0,(len(name) - 11))/2)))) font = QtGui.QFont(preferencesNode.knob('UIFont').value(), fontSize) self.setFont(font) @@ -735,7 +736,9 @@ def invokeButton(self): with nuke.toNode(hotboxInstance.groupRoot): try: - exec self.function + scope = globals().copy() + exec(self.function, scope, scope) + except: printError(traceback.format_exc(), self.filePath, self.text()) @@ -837,7 +840,7 @@ def savePreferencesToFile(): ''' nukeFolder = os.path.expanduser('~') + '/.nuke/' - preferencesFile = nukeFolder + 'preferences%i.%i.nk' %(nuke.NUKE_VERSION_MAJOR,nuke.NUKE_VERSION_MINOR) + preferencesFile = nukeFolder + 'preferences{}.{}.nk'.format(nuke.NUKE_VERSION_MAJOR, nuke.NUKE_VERSION_MINOR) preferencesNode = nuke.toNode('preferences') @@ -1144,7 +1147,7 @@ def updatePreferences(): #re-add all the knobs addPreferences() - #Restore + #restore for knob in currentSettings.keys(): try: preferencesNode.knob(knob).setValue(currentSettings[knob]) @@ -1154,6 +1157,17 @@ def updatePreferences(): #save to file savePreferencesToFile() + # nuke 12.2v4 and 13 bug. The last tab wont be shown. Workaround is to add an extra tab + customTabs = [k.name() for k in preferencesNode.knobs().values() if isinstance(k, nuke.Tab_Knob)] + if customTabs and customTabs[-1] == 'hotboxLabel': + + # make new tab and hide it + dummyTab = nuke.Tab_Knob('hotboxDummyTab', 'Dummy') + dummyTab.setFlag(0x00040000) + + addToPreferences(dummyTab) + + #---------------------------------------------------------------------------------------------------------- #Color #---------------------------------------------------------------------------------------------------------- @@ -1170,14 +1184,19 @@ def rgb2hex(rgbaValues): ''' Convert a color stored as normalized rgb values to a hex. ''' + + rgbaValues = [int(i * 255) for i in rgbaValues] + if len(rgbaValues) < 3: return - return '#%02x%02x%02x' % (rgbaValues[0]*255,rgbaValues[1]*255,rgbaValues[2]*255) + + return '#%02x%02x%02x' % (rgbaValues[0],rgbaValues[1],rgbaValues[2]) def hex2rgb(hexColor): ''' Convert a color stored as hex to rgb values. ''' + hexColor = hexColor.lstrip('#') return tuple(int(hexColor[i:i+2], 16) for i in (0, 2 ,4)) @@ -1309,7 +1328,7 @@ def printError(error, path = '', buttonName = '', rule = False): hotboxError = '\nW_HOTBOX %sERROR: %s%s:\n%s'%('RULE '*int(bool(rule)), '/'.join(buttonName), lineNumber, errorDescription) #print error - print hotboxError + print(hotboxError) nuke.tprint(hotboxError) #---------------------------------------------------------------------------------------------------------- @@ -1360,6 +1379,7 @@ def addMenuItems(): ''' Add items to the Nuke menu ''' + editMenu.addCommand('W_hotbox/Open W_hotbox', showHotbox, shortcut) editMenu.addCommand('W_hotbox/-', '', '') editMenu.addCommand('W_hotbox/Open Hotbox Manager', 'W_hotboxManager.showHotboxManager()') @@ -1455,9 +1475,9 @@ def resetMenuItems(): if len(extraRepositories) > 0: - menubar.addCommand('W_hotbox/-', '', '') + editMenu.addCommand('W_hotbox/-', '', '') for repo in extraRepositories: - menubar.addCommand('W_hotbox/Special/Open Hotbox Manager - %s'%repo[0], 'W_hotboxManager.showHotboxManager(path="%s")'%repo[1]) + editMenu.addCommand('W_hotbox/Special/Open Hotbox Manager - {}'.format(repo[0]), 'W_hotboxManager.showHotboxManager(path="{}")'.format(repo[1])) #---------------------------------------------------------------------------------------------------------- @@ -1466,4 +1486,4 @@ def resetMenuItems(): #---------------------------------------------------------------------------------------------------------- -nuke.tprint('W_hotbox v%s, built %s.\nCopyright (c) 2016-%s Wouter Gilsing. All Rights Reserved.'%(version, releaseDate, releaseDate.split()[-1])) +nuke.tprint('W_hotbox v{}, built {}.\nCopyright (c) 2016-{} Wouter Gilsing. All Rights Reserved.'.format(version, releaseDate, releaseDate.split()[-1])) diff --git a/W_hotboxManager.py b/W_hotboxManager.py index 894d028..4110a6a 100644 --- a/W_hotboxManager.py +++ b/W_hotboxManager.py @@ -1,15 +1,15 @@ #---------------------------------------------------------------------------------------------------------- # Wouter Gilsing # woutergilsing@hotmail.com -version = '1.8' -releaseDate = 'April 23 2018' +version = '1.9' +releaseDate = 'March 28 2021' #---------------------------------------------------------------------------------------------------------- #LICENSE #---------------------------------------------------------------------------------------------------------- ''' -Copyright (c) 2016, Wouter Gilsing +Copyright (c) 2016-2021, Wouter Gilsing All rights reserved. Redistribution and use in source and binary forms, with or without @@ -52,6 +52,9 @@ import re import string import colorsys +import tempfile +import tarfile +import base64 from datetime import datetime as dt from webbrowser import open as openURL @@ -381,7 +384,7 @@ def __init__(self, path = ''): self.adjustSize() screenRes = QtWidgets.QDesktopWidget().screenGeometry() - self.move(QtCore.QPoint(screenRes.width()/2,screenRes.height()/2)-QtCore.QPoint((self.width()/2),(self.height()/2))) + self.move(QtCore.QPoint(screenRes.width()//2,screenRes.height()//2)-QtCore.QPoint((self.width()//2),(self.height()//2))) #-------------------------------------------------------------------------------------------------- #set values @@ -511,7 +514,7 @@ def buildClassesList(self, selectItem = None): if selectItem: #select based on string - if isinstance(selectItem, basestring): + if isinstance(selectItem, str): foundItems = self.classesList.findItems(selectItem, QtCore.Qt.MatchExactly) if foundItems: self.classesList.setCurrentItem(foundItems[0]) @@ -896,48 +899,32 @@ def toggleTemplateMode(self): self.scriptEditorTemplateMenu.enableMenuItems() #-------------------------------------------------------------------------------------------------- - #import/export functions + # import/export functions #-------------------------------------------------------------------------------------------------- - #export + # export def exportHotboxArchive(self): ''' - A method to export a set of buttons to an external current archive. + A method to export a set of buttons to an external archive. ''' - - #create zip - nukeFolder = os.getenv('HOME').replace('\\','/') + '/.nuke/' - currentDate = dt.now().strftime('%Y%m%d%H%M') - tempFolder = nukeFolder + 'W_hotboxArchiveImportTemp_%s/'%currentDate - os.mkdir(tempFolder) - - archiveLocation = tempFolder + 'hotboxArchive_%s.tar.gz'%currentDate - from tarfile import open as openTarArchive - with openTarArchive(archiveLocation, "w:gz") as tar: - tar.add(self.rootLocation, arcname=os.path.basename(self.rootLocation)) + archiveLocation = tempfile.mkstemp()[1] - #read from file - archive = open(archiveLocation) - archiveContent = archive.read() - archive.close() + # write to zip + with tarfile.open(archiveLocation, "w:gz") as tar: + tar.add(self.rootLocation, arcname = os.path.basename(self.rootLocation)) - #if clipboard - if self.clipboardArchive.isChecked(): - - from base64 import b64encode - - encodedArchive = b64encode(archiveContent) + #---------------------------------------------------------------------------------------------- + # file + #---------------------------------------------------------------------------------------------- - #save to clipboard - QtWidgets.QApplication.clipboard().setText(encodedArchive) + if not self.clipboardArchive.isChecked(): - else: #save to file exportFileLocation = nuke.getFilename('Export Archive', '*.hotbox') + if exportFileLocation == None: - shutil.rmtree(tempFolder) return if not exportFileLocation.endswith('.hotbox'): @@ -945,10 +932,39 @@ def exportHotboxArchive(self): shutil.copy(archiveLocation, exportFileLocation) - #delete archive - shutil.rmtree(tempFolder) + nuke.message('Successfully exported archive to \n{}'.format(exportFileLocation)) + + #---------------------------------------------------------------------------------------------- + # clipboard + #---------------------------------------------------------------------------------------------- + + else: + + # nuke 13 + if nuke.NUKE_VERSION_MAJOR > 12: + + # read from file + with open(archiveLocation, 'rb') as tar: + archiveContent = tar.read() + + # convert bytes to text + encodedArchive = str(base64.b64encode(archiveContent)) + encodedArchive = encodedArchive[2:-1] + + # nuke 12 and older + else: + #read from file + with open(archiveLocation) as tar: + archiveContent = tar.read() + + encodedArchive = base64.b64encode(archiveContent) + + # save to clipboard + QtWidgets.QApplication.clipboard().setText(encodedArchive) + def indexArchive(self, location, dict = False): + if dict: fileList = {} else: @@ -1004,10 +1020,13 @@ def importHotboxArchive(self): nukeFolder = os.getenv('HOME').replace('\\','/') + '/.nuke/' currentDate = dt.now().strftime('%Y%m%d%H%M') - tempFolder = nukeFolder + 'W_hotboxArchiveImportTemp_%s/'%currentDate - archiveLocation = tempFolder + 'hotboxArchive_%s.tar.gz'%currentDate - #using a file + archiveLocation = tempfile.mkstemp()[1] + + #---------------------------------------------------------------------------------------------- + # file + #---------------------------------------------------------------------------------------------- + if not self.clipboardArchive.isChecked(): importFileLocation = nuke.getFilename('select to import', '*.hotbox') @@ -1016,34 +1035,58 @@ def importHotboxArchive(self): if not importFileLocation: return - os.mkdir(tempFolder) shutil.copy(importFileLocation, archiveLocation) - #using clipboard + #---------------------------------------------------------------------------------------------- + # clipboard + #---------------------------------------------------------------------------------------------- + else: - os.mkdir(tempFolder) + encodedArchive = QtWidgets.QApplication.clipboard().text() + decodedArchive = base64.b64decode(encodedArchive) - from base64 import b64decode + with open(archiveLocation,'wb') as archive: + archive.write(decodedArchive) - encodedArchive = QtWidgets.QApplication.clipboard().text() - decodedArchive = b64decode(encodedArchive) + #---------------------------------------------------------------------------------------------- + # extract archive + #---------------------------------------------------------------------------------------------- - archive = open(archiveLocation,'w') - archive.write(decodedArchive) - archive.close() + importedArchiveLocation = tempfile.mkdtemp() - #extract archive - from tarfile import open as openTarArchive + # nuke 13 + if nuke.NUKE_VERSION_MAJOR > 12: + # nuke 13 crashes when extracting a tar file... + # therefore we need to run it through a subprocess - archive = openTarArchive(archiveLocation) - importedArchiveLocation = tempFolder + 'archiveExtracted' + currentDate - os.mkdir(importedArchiveLocation) - archive.extractall(importedArchiveLocation) - archive.close() + command = [] + command.append('import tarfile') - importedArchiveLocation += '/' + command.append('with tarfile.open("{}") as archive:'.format(archiveLocation)) + command.append(' archive.extractall("{}")'.format(importedArchiveLocation)) + + command = '\n'.join(command) + + # write to temp file + module = tempfile.mkstemp()[1] + with open(module, 'w') as moduleFile: + moduleFile.write(command) + + # execute temp file + import subprocess + process = subprocess.Popen('python {}'.format(module), shell = True) + process.wait() + + # nuke 12 and odler + else: + + with tarfile.open(archiveLocation) as archive: + archive.extractall(importedArchiveLocation) + #---------------------------------------------------------------------------------------------- + + importedArchiveLocation += '/' importedArchiveLocation = importedArchiveLocation.replace('\\','/') #Make sure the current archive is healthy @@ -1051,7 +1094,6 @@ def importHotboxArchive(self): RepairHotbox(self.rootLocation + i, message = False) #Copy stuff from extracted archive to current hotbox location - importedArchive = self.indexArchive(importedArchiveLocation) currentArchive = self.indexArchive(self.rootLocation, dict = True) @@ -1106,6 +1148,10 @@ def importHotboxArchive(self): #check folders inside existing folder for folder in [dir for dir in os.listdir(baseFolder) if len(dir) == 3 and dir[0] not in ['.','_']]: nameFile = baseFolder + '/' + folder + '/_name.json' + + if not os.path.exists(nameFile): + continue + if open(nameFile).read() == folderName: baseFolder = baseFolder +'/' + folder @@ -1127,9 +1173,6 @@ def importHotboxArchive(self): fileName = str((len(currentFiles) + 1)).zfill(3)+ '.py' shutil.copy(importedArchiveLocation + '/' + i[0], baseFolder + '/' + fileName) - #delete archive - shutil.rmtree(tempFolder) - #reinitiate self.buildClassesList() @@ -1145,6 +1188,7 @@ def closeManager(self): #-------------------------------------------------------------------------------------------------- #open about widget #-------------------------------------------------------------------------------------------------- + def openAboutDialog(self): global aboutDialogInstance if aboutDialogInstance != None: @@ -1383,14 +1427,17 @@ def dragEnterEvent(self, e): else: e.ignore() - def dropEvent(self, e): - print e.mimeData().colorData().rgb() - #find color node = nuke.toNode(nuke.tcl('stack 0')) + if not node: + node = nuke.selectedNode() + + if not node: + return + interfaceColor = node.knob('tile_color').value() if interfaceColor == 0: @@ -1401,7 +1448,6 @@ def dropEvent(self, e): self.setColor(color) - #-------------------------------------------------------------------------------------------------- #Color #-------------------------------------------------------------------------------------------------- @@ -1797,7 +1843,7 @@ def lineNumberAreaWidth(self): digits = 1 maxNum = max(1, self.blockCount()) while (maxNum >= 10): - maxNum /= 10 + maxNum //= 10 digits += 1 space = 7 + self.fontMetrics().width('9') * digits @@ -1895,7 +1941,7 @@ def unindentBackspace(self): #snap to previous indent level spaces = len(textInFront) - for space in range(spaces - ((spaces -1) /4) * 4 -1): + for space in range(spaces - ((spaces -1) // 4) * 4 -1): self.cursor.deletePreviousChar() def indentNewLine(self): @@ -1924,7 +1970,7 @@ def indentNewLine(self): else: break - indentLevel /= 4 + indentLevel //= 4 #find out whether textInFront's last character was a ':' #if that's the case add another indent. @@ -1940,7 +1986,7 @@ def indentNewLine(self): #new line self.insertPlainText('\n') #match indent - self.insertPlainText(' '*(4*indentLevel)) + self.insertPlainText(' '*(4*int(indentLevel))) def indentation(self, mode): ''' @@ -2168,7 +2214,7 @@ def __init__(self, document): 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', - 'raise', 'return', 'try', 'while', 'yield' + 'raise', 'return', 'try', 'while', 'with', 'yield' ] self.operatorKeywords = [ @@ -2419,7 +2465,7 @@ def adjustTemplate(self, script): return script #find current indentation, rounded by 4 - indentLevel = ' '*(4*((len(textBeforeCursor) - len(textBeforeCursorNoIndent))/4)) + indentLevel = ' '* (4*((len(textBeforeCursor) - len(textBeforeCursorNoIndent))//4)) if textBeforeCursorNoIndent != '': script = '\n' + script @@ -3193,7 +3239,7 @@ def __init__(self, currentName, new = False): #move to screen center self.adjustSize() screenRes = QtWidgets.QDesktopWidget().screenGeometry() - self.move(QtCore.QPoint(screenRes.width()/2,screenRes.height()/2)-QtCore.QPoint((self.width()/2),(self.height()/2))) + self.move(QtCore.QPoint(screenRes.width() // 2, screenRes.height() // 2) - QtCore.QPoint((self.width() // 2), (self.height() // 2))) def validateName(self): ''' @@ -3317,7 +3363,7 @@ def __init__(self): #move to screen center self.adjustSize() screenRes = QtWidgets.QDesktopWidget().screenGeometry() - self.move(QtCore.QPoint(screenRes.width()/2,screenRes.height()/2)-QtCore.QPoint((self.width()/2),(self.height()/2))) + self.move(QtCore.QPoint(screenRes.width() // 2,screenRes.height() // 2)-QtCore.QPoint((self.width() // 2),(self.height() // 2))) def mouseReleaseEvent(self,event): ''' @@ -3552,7 +3598,7 @@ def clearHotboxManager(sections = ['Single','Multiple','All','Rules']): clearProgressBar = nuke.ProgressTask('Clearing W_hotbox...') - clearProgressIncrement = 100/(len(sections)*2) + clearProgressIncrement = 100 / (len(sections)*2) clearProgress = 0.0 clearProgressBar.setProgress(int(clearProgress)) diff --git a/W_hotbox_UserGuide_v1.8.pdf b/W_hotbox_UserGuide_v1.9.pdf similarity index 95% rename from W_hotbox_UserGuide_v1.8.pdf rename to W_hotbox_UserGuide_v1.9.pdf index e9861ee..fc95bbd 100644 Binary files a/W_hotbox_UserGuide_v1.8.pdf and b/W_hotbox_UserGuide_v1.9.pdf differ diff --git a/icons/W_hotbox/hotbox_addFolder_clicked.png b/icons/W_hotbox/hotbox_addFolder_clicked.png deleted file mode 100755 index c7ea59f..0000000 Binary files a/icons/W_hotbox/hotbox_addFolder_clicked.png and /dev/null differ diff --git a/icons/W_hotbox/hotbox_addFolder_hover.png b/icons/W_hotbox/hotbox_addFolder_hover.png deleted file mode 100755 index 76d90cb..0000000 Binary files a/icons/W_hotbox/hotbox_addFolder_hover.png and /dev/null differ diff --git a/icons/W_hotbox/hotbox_addFolder_neutral.png b/icons/W_hotbox/hotbox_addFolder_neutral.png deleted file mode 100755 index 40551c5..0000000 Binary files a/icons/W_hotbox/hotbox_addFolder_neutral.png and /dev/null differ diff --git a/icons/W_hotbox/hotbox_add_clicked.png b/icons/W_hotbox/hotbox_add_clicked.png deleted file mode 100755 index a181e00..0000000 Binary files a/icons/W_hotbox/hotbox_add_clicked.png and /dev/null differ diff --git a/icons/W_hotbox/hotbox_add_hover.png b/icons/W_hotbox/hotbox_add_hover.png deleted file mode 100755 index bc90b94..0000000 Binary files a/icons/W_hotbox/hotbox_add_hover.png and /dev/null differ diff --git a/icons/W_hotbox/hotbox_add_neutral.png b/icons/W_hotbox/hotbox_add_neutral.png deleted file mode 100755 index 533db38..0000000 Binary files a/icons/W_hotbox/hotbox_add_neutral.png and /dev/null differ diff --git a/icons/W_hotbox/hotbox_copy_clicked.png b/icons/W_hotbox/hotbox_copy_clicked.png deleted file mode 100755 index 770c25d..0000000 Binary files a/icons/W_hotbox/hotbox_copy_clicked.png and /dev/null differ diff --git a/icons/W_hotbox/hotbox_copy_hover.png b/icons/W_hotbox/hotbox_copy_hover.png deleted file mode 100755 index 275ccae..0000000 Binary files a/icons/W_hotbox/hotbox_copy_hover.png and /dev/null differ diff --git a/icons/W_hotbox/hotbox_copy_neutral.png b/icons/W_hotbox/hotbox_copy_neutral.png deleted file mode 100755 index 858cfc2..0000000 Binary files a/icons/W_hotbox/hotbox_copy_neutral.png and /dev/null differ diff --git a/icons/W_hotbox/hotbox_duplicate_clicked.png b/icons/W_hotbox/hotbox_duplicate_clicked.png deleted file mode 100755 index 3053bcf..0000000 Binary files a/icons/W_hotbox/hotbox_duplicate_clicked.png and /dev/null differ diff --git a/icons/W_hotbox/hotbox_duplicate_hover.png b/icons/W_hotbox/hotbox_duplicate_hover.png deleted file mode 100755 index b4c8b69..0000000 Binary files a/icons/W_hotbox/hotbox_duplicate_hover.png and /dev/null differ diff --git a/icons/W_hotbox/hotbox_duplicate_neutral.png b/icons/W_hotbox/hotbox_duplicate_neutral.png deleted file mode 100755 index 84ea291..0000000 Binary files a/icons/W_hotbox/hotbox_duplicate_neutral.png and /dev/null differ diff --git a/icons/W_hotbox/hotbox_moveDown_clicked.png b/icons/W_hotbox/hotbox_moveDown_clicked.png deleted file mode 100755 index 54062f5..0000000 Binary files a/icons/W_hotbox/hotbox_moveDown_clicked.png and /dev/null differ diff --git a/icons/W_hotbox/hotbox_moveDown_hover.png b/icons/W_hotbox/hotbox_moveDown_hover.png deleted file mode 100755 index 5eff23e..0000000 Binary files a/icons/W_hotbox/hotbox_moveDown_hover.png and /dev/null differ diff --git a/icons/W_hotbox/hotbox_moveDown_neutral.png b/icons/W_hotbox/hotbox_moveDown_neutral.png deleted file mode 100755 index 41cf336..0000000 Binary files a/icons/W_hotbox/hotbox_moveDown_neutral.png and /dev/null differ diff --git a/icons/W_hotbox/hotbox_moveUpLevel_clicked.png b/icons/W_hotbox/hotbox_moveUpLevel_clicked.png deleted file mode 100755 index f2752eb..0000000 Binary files a/icons/W_hotbox/hotbox_moveUpLevel_clicked.png and /dev/null differ diff --git a/icons/W_hotbox/hotbox_moveUpLevel_hover.png b/icons/W_hotbox/hotbox_moveUpLevel_hover.png deleted file mode 100755 index 4b538ab..0000000 Binary files a/icons/W_hotbox/hotbox_moveUpLevel_hover.png and /dev/null differ diff --git a/icons/W_hotbox/hotbox_moveUpLevel_neutral.png b/icons/W_hotbox/hotbox_moveUpLevel_neutral.png deleted file mode 100755 index 0856b9e..0000000 Binary files a/icons/W_hotbox/hotbox_moveUpLevel_neutral.png and /dev/null differ diff --git a/icons/W_hotbox/hotbox_moveUp_clicked.png b/icons/W_hotbox/hotbox_moveUp_clicked.png deleted file mode 100755 index c09ae00..0000000 Binary files a/icons/W_hotbox/hotbox_moveUp_clicked.png and /dev/null differ diff --git a/icons/W_hotbox/hotbox_moveUp_hover.png b/icons/W_hotbox/hotbox_moveUp_hover.png deleted file mode 100755 index a4e8c46..0000000 Binary files a/icons/W_hotbox/hotbox_moveUp_hover.png and /dev/null differ diff --git a/icons/W_hotbox/hotbox_moveUp_neutral.png b/icons/W_hotbox/hotbox_moveUp_neutral.png deleted file mode 100755 index bafc3f2..0000000 Binary files a/icons/W_hotbox/hotbox_moveUp_neutral.png and /dev/null differ diff --git a/icons/W_hotbox/hotbox_paste_clicked.png b/icons/W_hotbox/hotbox_paste_clicked.png deleted file mode 100755 index eb10919..0000000 Binary files a/icons/W_hotbox/hotbox_paste_clicked.png and /dev/null differ diff --git a/icons/W_hotbox/hotbox_paste_hover.png b/icons/W_hotbox/hotbox_paste_hover.png deleted file mode 100755 index 908047f..0000000 Binary files a/icons/W_hotbox/hotbox_paste_hover.png and /dev/null differ diff --git a/icons/W_hotbox/hotbox_paste_neutral.png b/icons/W_hotbox/hotbox_paste_neutral.png deleted file mode 100755 index 7b33cdd..0000000 Binary files a/icons/W_hotbox/hotbox_paste_neutral.png and /dev/null differ diff --git a/icons/W_hotbox/hotbox_paste_rename_clicked.png b/icons/W_hotbox/hotbox_paste_rename_clicked.png deleted file mode 100755 index c96f91c..0000000 Binary files a/icons/W_hotbox/hotbox_paste_rename_clicked.png and /dev/null differ diff --git a/icons/W_hotbox/hotbox_remove_clicked.png b/icons/W_hotbox/hotbox_remove_clicked.png deleted file mode 100755 index 29661ad..0000000 Binary files a/icons/W_hotbox/hotbox_remove_clicked.png and /dev/null differ diff --git a/icons/W_hotbox/hotbox_remove_hover.png b/icons/W_hotbox/hotbox_remove_hover.png deleted file mode 100755 index 6a6bdbf..0000000 Binary files a/icons/W_hotbox/hotbox_remove_hover.png and /dev/null differ diff --git a/icons/W_hotbox/hotbox_remove_neutral.png b/icons/W_hotbox/hotbox_remove_neutral.png deleted file mode 100755 index 2cf90e2..0000000 Binary files a/icons/W_hotbox/hotbox_remove_neutral.png and /dev/null differ diff --git a/icons/W_hotbox/hotbox_remove_neutral_clicked.png b/icons/W_hotbox/hotbox_remove_neutral_clicked.png deleted file mode 100755 index 29661ad..0000000 Binary files a/icons/W_hotbox/hotbox_remove_neutral_clicked.png and /dev/null differ diff --git a/icons/W_hotbox/hotbox_rename_clicked.png b/icons/W_hotbox/hotbox_rename_clicked.png deleted file mode 100755 index 97ae352..0000000 Binary files a/icons/W_hotbox/hotbox_rename_clicked.png and /dev/null differ