Merge branch 'feature-newgui' into newgui-commandline

This commit is contained in:
Brianna 2017-06-23 07:12:40 -04:00 committed by GitHub
commit 7d4fb78438
6 changed files with 97 additions and 33 deletions

View File

@ -22,7 +22,13 @@ class Core():
self.dataDir = QDesktopServices.storageLocation( self.dataDir = QDesktopServices.storageLocation(
QDesktopServices.DataLocation) QDesktopServices.DataLocation)
self.presetDir = os.path.join(self.dataDir, 'presets') self.presetDir = os.path.join(self.dataDir, 'presets')
self.wd = os.path.dirname(os.path.realpath(__file__)) if getattr(sys, 'frozen', False):
# frozen
self.wd = os.path.dirname(sys.executable)
else:
# unfrozen
self.wd = os.path.dirname(os.path.realpath(__file__))
self.loadEncoderOptions() self.loadEncoderOptions()
self.videoFormats = Core.appendUppercase([ self.videoFormats = Core.appendUppercase([
'*.mp4', '*.mp4',

10
main.py
View File

@ -63,8 +63,14 @@ if __name__ == "__main__":
import atexit import atexit
import signal import signal
window = uic.loadUi(os.path.join( if getattr(sys, 'frozen', False):
os.path.dirname(os.path.realpath(__file__)), "mainwindow.ui")) # frozen
wd = os.path.dirname(sys.executable)
else:
# unfrozen
wd = os.path.dirname(os.path.realpath(__file__))
window = uic.loadUi(os.path.join(wd, "mainwindow.ui"))
# window.adjustSize() # window.adjustSize()
desc = QtGui.QDesktopWidget() desc = QtGui.QDesktopWidget()
dpi = desc.physicalDpiX() dpi = desc.physicalDpiX()

View File

@ -1,7 +1,7 @@
from queue import Queue from queue import Queue
from PyQt4 import QtCore, QtGui, uic from PyQt4 import QtCore, QtGui, uic
from PyQt4.QtCore import QSettings, Qt from PyQt4.QtCore import QSettings, Qt
from PyQt4.QtGui import QMenu from PyQt4.QtGui import QMenu, QShortcut
import sys import sys
import os import os
import signal import signal
@ -39,14 +39,14 @@ class PreviewWindow(QtGui.QLabel):
self.repaint() self.repaint()
class MainWindow(QtCore.QObject): class MainWindow(QtGui.QMainWindow):
newTask = QtCore.pyqtSignal(list) newTask = QtCore.pyqtSignal(list)
processTask = QtCore.pyqtSignal() processTask = QtCore.pyqtSignal()
videoTask = QtCore.pyqtSignal(str, str, list) videoTask = QtCore.pyqtSignal(str, str, list)
def __init__(self, window, project): def __init__(self, window, project):
QtCore.QObject.__init__(self) QtGui.QMainWindow.__init__(self)
# print('main thread id: {}'.format(QtCore.QThread.currentThreadId())) # print('main thread id: {}'.format(QtCore.QThread.currentThreadId()))
self.window = window self.window = window
@ -63,9 +63,7 @@ class MainWindow(QtCore.QObject):
LoadDefaultSettings(self) LoadDefaultSettings(self)
self.presetManager = PresetManager( self.presetManager = PresetManager(
uic.loadUi( uic.loadUi(
os.path.join(os.path.dirname(os.path.realpath(__file__)), os.path.join(self.core.wd, 'presetmanager.ui')), self)
'presetmanager.ui')),
self)
if not os.path.exists(self.dataDir): if not os.path.exists(self.dataDir):
os.makedirs(self.dataDir) os.makedirs(self.dataDir)
@ -143,7 +141,7 @@ class MainWindow(QtCore.QObject):
window.spinBox_aBitrate.valueChanged.connect(self.updateCodecSettings) window.spinBox_aBitrate.valueChanged.connect(self.updateCodecSettings)
self.previewWindow = PreviewWindow(self, os.path.join( self.previewWindow = PreviewWindow(self, os.path.join(
os.path.dirname(os.path.realpath(__file__)), "background.png")) self.core.wd, "background.png"))
window.verticalLayout_previewWrapper.addWidget(self.previewWindow) window.verticalLayout_previewWrapper.addWidget(self.previewWindow)
# Make component buttons # Make component buttons
@ -242,6 +240,29 @@ class MainWindow(QtCore.QObject):
self.openProject(self.currentProject, prompt=False) self.openProject(self.currentProject, prompt=False)
self.drawPreview(True) self.drawPreview(True)
# Setup Hotkeys
QtGui.QShortcut("Ctrl+S", self.window, self.saveCurrentProject)
QtGui.QShortcut("Ctrl+A", self.window, self.openSaveProjectDialog)
QtGui.QShortcut("Ctrl+O", self.window, self.openOpenProjectDialog)
QtGui.QShortcut("Ctrl+N", self.window, self.createNewProject)
QtGui.QShortcut("Ctrl+T", self.window, activated=lambda:
self.window.pushButton_addComponent.click())
QtGui.QShortcut("Ctrl+Space", self.window, activated=lambda:
self.window.listWidget_componentList.setFocus())
QtGui.QShortcut("Ctrl+Shift+S", self.window,
self.presetManager.openSavePresetDialog)
QtGui.QShortcut("Ctrl+Shift+C", self.window,
self.presetManager.clearPreset)
QtGui.QShortcut("Ctrl+Up", self.window,
activated=lambda: self.moveComponent(-1))
QtGui.QShortcut("Ctrl+Down", self.window,
activated=lambda: self.moveComponent(1))
QtGui.QShortcut("Ctrl+Home", self.window, self.moveComponentTop)
QtGui.QShortcut("Ctrl+End", self.window, self.moveComponentBottom)
QtGui.QShortcut("Ctrl+r", self.window, self.removeComponent)
def cleanUp(self): def cleanUp(self):
self.timer.stop() self.timer.stop()
self.previewThread.quit() self.previewThread.quit()
@ -506,6 +527,16 @@ class MainWindow(QtCore.QObject):
stackedWidget.setCurrentIndex(newRow) stackedWidget.setCurrentIndex(newRow)
self.drawPreview() self.drawPreview()
def moveComponentTop(self):
componentList = self.window.listWidget_componentList
row = -componentList.currentRow()
self.moveComponent(row)
def moveComponentBottom(self):
componentList = self.window.listWidget_componentList
row = len(componentList)-1
self.moveComponent(row)
def dragComponent(self, event): def dragComponent(self, event):
'''Drop event for the component listwidget''' '''Drop event for the component listwidget'''
componentList = self.window.listWidget_componentList componentList = self.window.listWidget_componentList

View File

@ -23,7 +23,7 @@ class Worker(QtCore.QObject):
self.stackedWidget = parent.window.stackedWidget self.stackedWidget = parent.window.stackedWidget
self.background = Image.new("RGBA", (1920, 1080), (0, 0, 0, 0)) self.background = Image.new("RGBA", (1920, 1080), (0, 0, 0, 0))
self.background.paste(Image.open(os.path.join( self.background.paste(Image.open(os.path.join(
os.path.dirname(os.path.realpath(__file__)), "background.png"))) self.core.wd, "background.png")))
@pyqtSlot(str, list) @pyqtSlot(str, list)
def createPreviewImage(self, components): def createPreviewImage(self, components):

View File

@ -1,30 +1,51 @@
from cx_Freeze import setup, Executable from cx_Freeze import setup, Executable
import sys
# Dependencies are automatically detected, but it might need # Dependencies are automatically detected, but it might need
# fine tuning. # fine tuning.
buildOptions = dict(packages = [], excludes = [
"apport",
"apt",
"ctypes",
"curses",
"distutils",
"email",
"html",
"http",
"json",
"xmlrpc",
"nose"
], include_files = ["main.ui"])
import sys buildOptions = dict(
base = 'Win32GUI' if sys.platform=='win32' else None packages=[],
excludes=[
"apport",
"apt",
"curses",
"distutils",
"email",
"html",
"http",
"xmlrpc",
"nose"
],
include_files=[
"mainwindow.ui",
"presetmanager.ui",
"background.png",
"encoder-options.json",
"components/"
],
includes=[
'numpy.core._methods',
'numpy.lib.format'
]
)
base = 'Win32GUI' if sys.platform == 'win32' else None
executables = [ executables = [
Executable('main.py', base=base, targetName = 'audio-visualizer-python') Executable(
'main.py',
base=base,
targetName='audio-visualizer-python'
)
] ]
setup(name='audio-visualizer-python',
version = '1.0', setup(
description = 'a little GUI tool to render visualization videos of audio files', name='audio-visualizer-python',
options = dict(build_exe = buildOptions), version='1.0',
executables = executables) description='GUI tool to render visualization videos of audio files',
options=dict(build_exe=buildOptions),
executables=executables
)

View File

@ -68,7 +68,7 @@ class Worker(QtCore.QObject):
def previewDispatch(self): def previewDispatch(self):
background = Image.new("RGBA", (1920, 1080), (0, 0, 0, 0)) background = Image.new("RGBA", (1920, 1080), (0, 0, 0, 0))
background.paste(Image.open(os.path.join( background.paste(Image.open(os.path.join(
os.path.dirname(os.path.realpath(__file__)), "background.png"))) self.core.wd, "background.png")))
background = background.resize((self.width, self.height)) background = background.resize((self.width, self.height))
while not self.stopped: while not self.stopped: