Beispiel #1
0
    def __init__(self):
        super().__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        self.animation = qtc.QPropertyAnimation()
        self.fade_animation = qtc.QPropertyAnimation()
        self.unfade_animation = qtc.QPropertyAnimation()
        self.side_menu_toggle_speed = 800
        self.side_menu_swap_speed = 120
        self.easing_curve = qtc.QEasingCurve(qtc.QEasingCurve.Type.OutQuint)

        self.ui.splitter.setCollapsible(0, True)
        self.ui.splitter.setCollapsible(1, False)

        self.ui.paint_interface = PaintInterface.PaintInterface(
            self.ui.paint_interface_container)
        self.ui.paint_interface_layout = qtw.QVBoxLayout(
            self.ui.paint_interface_container)
        self.ui.paint_interface_layout.setSpacing(0)
        self.ui.paint_interface_layout.addWidget(self.ui.paint_interface)

        self.ui.scrollArea.verticalScrollBar().setStyleSheet(
            'QScrollBar {width:0px;}')
        self.ui.stackedWidget.setCurrentWidget(self.ui.file_page)

        self.ui.file_button.clicked.connect(self.file_information_toggle)
        self.ui.mask_button.clicked.connect(self.mask_settings_toggle)
        self.ui.clip_button.clicked.connect(self.clip_information_toggle)

        self.active_project = Project.Project()
        self.ui.save_project_button.clicked.connect(self.save_project)
        self.ui.output_dir_button.clicked.connect(self.set_output_path)
        self.ui.open_project_button.clicked.connect(self.open_project)
        self.ui.mask_dir_button.clicked.connect(self.set_mask_directory)
        self.ui.image_dir_button.clicked.connect(self.set_clip_directory)
        self.ui.action_open.triggered.connect(self.open_project)
        self.ui.action_save_file.triggered.connect(self.save_project)
        self.ui.action_save_as.triggered.connect(self.save_project_as)

        self.update_settings()

        self.ui.next_frame_button.clicked.connect(
            lambda: self.ui.frame_slider.setValue(self.ui.frame_slider.value()
                                                  + 1))
        self.ui.previous_frame_button.clicked.connect(
            lambda: self.ui.frame_slider.setValue(self.ui.frame_slider.value()
                                                  - 1))
        self.ui.frame_slider.valueChanged.connect(self.update_frame)
        self.frame_collection = None

        self.info_opacity = qtw.QGraphicsOpacityEffect(self.ui.info_label)
        self.info_opacity.setOpacity(0)
        self.ui.info_label.setGraphicsEffect(self.info_opacity)
Beispiel #2
0
 def fade_swap_page(self, widget: qtw.QWidget):
     opacity = qtw.QGraphicsOpacityEffect(self.ui.scrollArea)
     self.ui.scrollArea.setGraphicsEffect(opacity)
     self.fade_animation = qtc.QPropertyAnimation(opacity, b'opacity')
     self.fade_animation.setDuration(self.side_menu_swap_speed)
     self.fade_animation.setEndValue(0)
     self.fade_animation.setStartValue(1)
     self.fade_animation.start()
     self.unfade_animation = qtc.QPropertyAnimation(opacity, b'opacity')
     self.unfade_animation.setDuration(self.side_menu_swap_speed)
     self.unfade_animation.setEndValue(1)
     self.unfade_animation.setStartValue(0)
     self.fade_animation.finished.connect(
         lambda: self.ui.stackedWidget.setCurrentWidget(widget))
     self.fade_animation.finished.connect(
         lambda: self.unfade_animation.start())
Beispiel #3
0
 def fade_info(self):
     self.animation = qtc.QPropertyAnimation(self.info_opacity, b'opacity')
     self.animation.setStartValue(1)
     self.animation.setEndValue(0)
     self.animation.setDuration(500)
     self.animation.finished.connect(lambda: self.ui.info_label.setText(''))
     self.info_opacity.setOpacity(1)
     qtc.QTimer.singleShot(1000, lambda: self.animation.start())
Beispiel #4
0
    def slideInWgt(self, newwidget):
        if self.m_active:
            return

        self.m_active = True

        _now = self.currentIndex()
        _next = self.indexOf(newwidget)

        if _now == _next:
            self.m_active = False
            return

        offsetx, offsety = self.frameRect().width(), self.frameRect().height()
        self.widget(_next).setGeometry(self.frameRect())

        if not self.m_direction == Qt.Orientation.Horizontal:
            if _now < _next:
                offsetx, offsety = 0, -offsety
            else:
                offsetx = 0
        else:
            if _now < _next:
                offsetx, offsety = -offsetx, 0
            else:
                offsety = 0

        pnext = self.widget(_next).pos()
        pnow = self.widget(_now).pos()
        self.m_pnow = pnow

        offset = QtCore.QPoint(offsetx, offsety)
        self.widget(_next).move(pnext - offset)
        self.widget(_next).show()
        self.widget(_next).raise_()

        anim_group = QtCore.QParallelAnimationGroup(
            self, finished=self.animationDoneSlot
        )

        for index, start, end in zip(
            (_now, _next), (pnow, pnext - offset), (pnow + offset, pnext)
        ):
            animation = QtCore.QPropertyAnimation(
                self.widget(index),
                b"pos",
                duration=self.m_speed,
                easingCurve=self.m_animationtype,
                startValue=start,
                endValue=end,
            )
            anim_group.addAnimation(animation)

        self.m_next = _next
        self.m_now = _now
        self.m_active = True
        anim_group.start(QtCore.QAbstractAnimation.DeletionPolicy.DeleteWhenStopped)