Exemplo n.º 1
0
    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);")
Exemplo n.º 2
0
 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
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
    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)
Exemplo n.º 8
0
    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()
Exemplo n.º 9
0
    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);")
Exemplo n.º 10
0
    def stopSeq(self):
        self.runLine.setText("Macro aborted.")

        Elements.ABORT = True
        QtTools.ABORT_SIGNALED = True
        QtTools.AbortTimers()