fade animation
This commit is contained in:
parent
007ec565e1
commit
8f57a6d36a
|
@ -109,6 +109,63 @@ class TextSorterDialog(QtGui.QWidget, Ui_TextSorterDialog):
|
||||||
self.text_list.setCurrentIndex(index)
|
self.text_list.setCurrentIndex(index)
|
||||||
self.text_list.clicked.emit(index)
|
self.text_list.clicked.emit(index)
|
||||||
|
|
||||||
|
class FadeAnimation(QtCore.QObject):
|
||||||
|
animation_started = QtCore.pyqtSignal()
|
||||||
|
animation_finished = QtCore.pyqtSignal()
|
||||||
|
animation_stopped = QtCore.pyqtSignal()
|
||||||
|
|
||||||
|
def __init__(self, live_text, fade_steps=6, parent=None):
|
||||||
|
super(FadeAnimation, self).__init__(parent)
|
||||||
|
self.live_text = live_text
|
||||||
|
self.fade_steps = fade_steps
|
||||||
|
self.current_alpha = 255
|
||||||
|
self.timer = None
|
||||||
|
|
||||||
|
|
||||||
|
def start_animation(self):
|
||||||
|
print "start_animation"
|
||||||
|
self.animation_started.emit()
|
||||||
|
|
||||||
|
if self.current_alpha == 255:
|
||||||
|
self.fade_delta = 255 / self.fade_steps
|
||||||
|
else:
|
||||||
|
self.fade_delta = -255 / self.fade_steps
|
||||||
|
self.timer = QtCore.QTimer(self)
|
||||||
|
self.timer.timeout.connect(self.slot_animate)
|
||||||
|
self.timer.start(100)
|
||||||
|
|
||||||
|
|
||||||
|
def slot_animate(self):
|
||||||
|
print "slot_animate"
|
||||||
|
print "current_alpha", self.current_alpha
|
||||||
|
if self.fade_delta > 0:
|
||||||
|
if self.current_alpha > 0:
|
||||||
|
self.live_text.setStyleSheet("color:%d, %d, %d;" % (self.current_alpha, self.current_alpha,self.current_alpha))
|
||||||
|
self.current_alpha -= self.fade_delta
|
||||||
|
else:
|
||||||
|
self.live_text.setStyleSheet("color:black;")
|
||||||
|
self.current_alpha = 0
|
||||||
|
self.timer.stop()
|
||||||
|
self.timer.timeout.disconnect(self.slot_animate)
|
||||||
|
self.timer.deleteLater()
|
||||||
|
self.timer = None
|
||||||
|
self.animation_finished.emit()
|
||||||
|
print "animation_finished"
|
||||||
|
else:
|
||||||
|
if self.current_alpha < 255:
|
||||||
|
self.live_text.setStyleSheet("color:%d,%d, %d;" % (self.current_alpha, self.current_alpha,self.current_alpha))
|
||||||
|
self.current_alpha -= self.fade_delta
|
||||||
|
else:
|
||||||
|
self.live_text.setStyleSheet("color:white")
|
||||||
|
self.current_alpha = 255
|
||||||
|
self.timer.stop()
|
||||||
|
self.timer.timeout.disconnect(self.slot_animate)
|
||||||
|
self.timer.deleteLater()
|
||||||
|
self.timer = None
|
||||||
|
self.animation_finished.emit()
|
||||||
|
print "animation_finished"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class TextAnimation(QtCore.QObject):
|
class TextAnimation(QtCore.QObject):
|
||||||
animation_started = QtCore.pyqtSignal()
|
animation_started = QtCore.pyqtSignal()
|
||||||
|
@ -229,11 +286,14 @@ class MainWindow(KMainWindow, Ui_MainWindow):
|
||||||
self.animation = TextAnimation(self)
|
self.animation = TextAnimation(self)
|
||||||
self.db_dirty = False
|
self.db_dirty = False
|
||||||
self.is_animate = False
|
self.is_animate = False
|
||||||
|
self.fade_animation = None
|
||||||
|
|
||||||
self.is_auto_publish = False
|
self.is_auto_publish = False
|
||||||
|
|
||||||
self.setupUi(self)
|
self.setupUi(self)
|
||||||
|
|
||||||
|
self.fade_animation = FadeAnimation(self.live_text, 6, self)
|
||||||
|
|
||||||
self.font = QtGui.QFont("monospace", self.default_size)
|
self.font = QtGui.QFont("monospace", self.default_size)
|
||||||
self.font.setStyleHint(QtGui.QFont.TypeWriter)
|
self.font.setStyleHint(QtGui.QFont.TypeWriter)
|
||||||
|
|
||||||
|
@ -274,6 +334,7 @@ class MainWindow(KMainWindow, Ui_MainWindow):
|
||||||
self.preview_size_action.triggered[QtGui.QAction].connect(self.slot_preview_font_size)
|
self.preview_size_action.triggered[QtGui.QAction].connect(self.slot_preview_font_size)
|
||||||
self.live_size_action.triggered[QtGui.QAction].connect(self.slot_live_font_size)
|
self.live_size_action.triggered[QtGui.QAction].connect(self.slot_live_font_size)
|
||||||
|
|
||||||
|
self.fade_action.triggered.connect(self.slot_fade)
|
||||||
self.next_action.triggered.connect(self.slot_next_item)
|
self.next_action.triggered.connect(self.slot_next_item)
|
||||||
self.previous_action.triggered.connect(self.slot_previous_item)
|
self.previous_action.triggered.connect(self.slot_previous_item)
|
||||||
|
|
||||||
|
@ -434,6 +495,12 @@ class MainWindow(KMainWindow, Ui_MainWindow):
|
||||||
spacer = KToolBarSpacerAction(self.action_collection)
|
spacer = KToolBarSpacerAction(self.action_collection)
|
||||||
self.action_collection.addAction("1_spacer", spacer)
|
self.action_collection.addAction("1_spacer", spacer)
|
||||||
|
|
||||||
|
self.fade_action = self.action_collection.addAction("fade_action")
|
||||||
|
#icon = QtGui.QIcon.fromTheme(_fromUtf8("go-previous-view-page"))
|
||||||
|
#self.fade_action.setIcon(icon)
|
||||||
|
self.fade_action.setIconText("fade")
|
||||||
|
self.fade_action.setShortcut(KShortcut(QtGui.QKeySequence(QtCore.Qt.ALT + QtCore.Qt.Key_F)), KAction.ShortcutTypes(KAction.ActiveShortcut | KAction.DefaultShortcut))
|
||||||
|
|
||||||
self.previous_action = self.action_collection.addAction("previous_action")
|
self.previous_action = self.action_collection.addAction("previous_action")
|
||||||
icon = QtGui.QIcon.fromTheme(_fromUtf8("go-previous-view-page"))
|
icon = QtGui.QIcon.fromTheme(_fromUtf8("go-previous-view-page"))
|
||||||
self.previous_action.setIcon(icon)
|
self.previous_action.setIcon(icon)
|
||||||
|
@ -596,6 +663,10 @@ class MainWindow(KMainWindow, Ui_MainWindow):
|
||||||
self.preview_text.clear()
|
self.preview_text.clear()
|
||||||
self.slot_set_preview_defaults()
|
self.slot_set_preview_defaults()
|
||||||
|
|
||||||
|
def slot_fade(self):
|
||||||
|
if self.fade_animation.timer is None:
|
||||||
|
self.fade_animation.start_animation()
|
||||||
|
|
||||||
def fill_combo_box(self):
|
def fill_combo_box(self):
|
||||||
self.text_combo.clear()
|
self.text_combo.clear()
|
||||||
for preview, text in self.model.text_db:
|
for preview, text in self.model.text_db:
|
||||||
|
|
Loading…
Reference in New Issue