def _LoadImage(self, img_label, name_label, cache_name): """ Subroutine of countLoadImage & searchLoadImage. Loads from external images and config widgets accordingly. :param img_label: QLabel to display image. :param name_label: QLabel to display image name. :param cache_name: string key for cached image name. :return: return false on TypeError. """ try: img, file_name, self.recentDir["Image"] = QtTools.loadImage( self, self.recentDir["Image"]) except TypeError: return except ValueError: return else: if img is not None: self.cachedImage[cache_name] = img name_label.setText(file_name) img_label.setPixmap( QtTools.setPix(img).scaled(*QtTools.IMG_CONVERT)) img_label.setStyleSheet( "background-color: rgba(40, 40, 40, 255);")
def setItems(item_list): """ Coroutine to generate respective items from given method lists. """ for name in item_list: item = QtTools.MethodItemWidget(iconSet(name), name) yield item
def AddToSequence(self, tgt=None): """ store object in seqStorage AND call AddToListWidget to display it on ListWidget. :param tgt: If not specified, will create new object from selected method. """ if tgt is None: target = self.selectedMethod() try: self._configObject(target) except AttributeError as err: QtTools.LoggingEmitter.info("AddToSequence: " + err.args[0]) QtTools.LoggingEmitter.info( "AddToSequence: Object config Failed.") return except IndexError as err: QtTools.LoggingEmitter.info(err.args[0]) QtTools.LoggingEmitter.info("Object config Failed.") return else: obj = target else: obj = tgt QtTools.AddToListWidget(obj, self.sequenceList) self.seqStorage.append(obj) self.sequenceList.setCurrentRow(self.seqStorage.index(obj)) self._comboBoxUpdateNew() self._updateToSelected(obj)
def editSelected(self): QtTools.LoggingEmitter.debug(f"Edit: {self.selectedElement().name}") self._configObject(self.selectedElement(), clear_text=False) self._comboBoxUpdateNew() item = QtTools.GenerateWidget(self.selectedElement()) self.sequenceList.setItemWidget(self.sequenceList.currentItem(), item)
def areaInject(self): self.runLine.setText("Press f2 at 2 diagonal corner.") area = QtTools.getCaptureArea() self.runLine.setText(str(area)) return area
def updateHistory(self, obj=None): try: widget = self.currentSeq.itemWidget(self.currentSeq.item(0)) except RuntimeError: QtTools.LoggingEmitter.warning( "RuntimeError: Widget already destroyed.") widget = QtTools.GenerateWidget(self.source) try: QtTools.AddToListWidget(widget.source, self.sequenceList, 0) except AttributeError: pass finally: try: self.currentSeq.clear() except RuntimeError as err: QtTools.LoggingEmitter.warning(f"RuntimeError: {err}") pass if obj: QtTools.AddToListWidget(obj, self.currentSeq)
def __init__(self, version, date): super(AboutWindow, self).__init__() self.setupUi(self) image_path = QtTools.ICON_LOCATION + QtTools.ABOUT_IMAGE self.label.setPixmap( QtTools.setPix(Toolset.PathData.relative(image_path))) source = self.versionArea.toHtml() source = source.replace("DATE", version) source = source.replace("VERSION", date) self.versionArea.setHtml(source)
def moveOrder(self, up=True): """ Move up or down selected element. """ sel_idx = self.sequenceList.currentRow() move_idx = (sel_idx - 1) if up else (sel_idx + 1) try: if move_idx == -1: # Qt set -1 as false, sadly. raise IndexError element_move = self.seqStorage[move_idx] except IndexError: QtTools.LoggingEmitter.debug("Move " + ("up" if up else "down") + ":") QtTools.LoggingEmitter.debug("Cannot move selected object.") else: element_current = self.seqStorage[sel_idx] self.seqStorage[sel_idx], self.seqStorage[move_idx] = ( element_move, element_current, ) item_move = self.sequenceList.item(move_idx) item_sel = self.sequenceList.currentItem() widget_move = QtTools.GenerateWidget(element_move) widget_sel = QtTools.GenerateWidget(element_current) self.sequenceList.setItemWidget(item_move, widget_sel) self.sequenceList.setItemWidget(item_sel, widget_move) self.sequenceList.setCurrentRow(move_idx) self._updateToSelected()
def _ImageUpdateToObject(img_label, name_label, obj): """ Update image from image inside object. Similar roles with _LoadImage. :param img_label: QLabel to display image. :param name_label: QLabel to display image name. :param obj: MacroMethod _Image subclasses. Expects PIL type Image inside. """ if obj is None: img_label.clear() name_label.setText("No Image") img_label.setStyleSheet( "background-color: rgba(240, 240, 240, 255);") else: img_label.setPixmap( QtTools.setPix(obj.targetImage).scaled(*QtTools.IMG_CONVERT)) img_label.setStyleSheet("background-color: rgba(40, 40, 40, 255);")
def stopSeq(self): self.runLine.setText("Macro aborted.") Elements.ABORT = True QtTools.ABORT_SIGNALED = True QtTools.AbortTimers()