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(
QDesktopServices.DataLocation)
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.videoFormats = Core.appendUppercase([
'*.mp4',

10
main.py
View File

@ -63,8 +63,14 @@ if __name__ == "__main__":
import atexit
import signal
window = uic.loadUi(os.path.join(
os.path.dirname(os.path.realpath(__file__)), "mainwindow.ui"))
if getattr(sys, 'frozen', False):
# 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()
desc = QtGui.QDesktopWidget()
dpi = desc.physicalDpiX()

View File

@ -1,7 +1,7 @@
from queue import Queue
from PyQt4 import QtCore, QtGui, uic
from PyQt4.QtCore import QSettings, Qt
from PyQt4.QtGui import QMenu
from PyQt4.QtGui import QMenu, QShortcut
import sys
import os
import signal
@ -39,14 +39,14 @@ class PreviewWindow(QtGui.QLabel):
self.repaint()
class MainWindow(QtCore.QObject):
class MainWindow(QtGui.QMainWindow):
newTask = QtCore.pyqtSignal(list)
processTask = QtCore.pyqtSignal()
videoTask = QtCore.pyqtSignal(str, str, list)
def __init__(self, window, project):
QtCore.QObject.__init__(self)
QtGui.QMainWindow.__init__(self)
# print('main thread id: {}'.format(QtCore.QThread.currentThreadId()))
self.window = window
@ -63,9 +63,7 @@ class MainWindow(QtCore.QObject):
LoadDefaultSettings(self)
self.presetManager = PresetManager(
uic.loadUi(
os.path.join(os.path.dirname(os.path.realpath(__file__)),
'presetmanager.ui')),
self)
os.path.join(self.core.wd, 'presetmanager.ui')), self)
if not os.path.exists(self.dataDir):
os.makedirs(self.dataDir)
@ -143,7 +141,7 @@ class MainWindow(QtCore.QObject):
window.spinBox_aBitrate.valueChanged.connect(self.updateCodecSettings)
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)
# Make component buttons
@ -242,6 +240,29 @@ class MainWindow(QtCore.QObject):
self.openProject(self.currentProject, prompt=False)
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):
self.timer.stop()
self.previewThread.quit()
@ -506,6 +527,16 @@ class MainWindow(QtCore.QObject):
stackedWidget.setCurrentIndex(newRow)
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):
'''Drop event for the component listwidget'''
componentList = self.window.listWidget_componentList

View File

@ -23,7 +23,7 @@ class Worker(QtCore.QObject):
self.stackedWidget = parent.window.stackedWidget
self.background = Image.new("RGBA", (1920, 1080), (0, 0, 0, 0))
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)
def createPreviewImage(self, components):

View File

@ -1,30 +1,51 @@
from cx_Freeze import setup, Executable
import sys
# Dependencies are automatically detected, but it might need
# fine tuning.
buildOptions = dict(packages = [], excludes = [
"apport",
"apt",
"ctypes",
"curses",
"distutils",
"email",
"html",
"http",
"json",
"xmlrpc",
"nose"
], include_files = ["main.ui"])
import sys
base = 'Win32GUI' if sys.platform=='win32' else None
buildOptions = dict(
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 = [
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',
description = 'a little GUI tool to render visualization videos of audio files',
options = dict(build_exe = buildOptions),
executables = executables)
setup(
name='audio-visualizer-python',
version='1.0',
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):
background = Image.new("RGBA", (1920, 1080), (0, 0, 0, 0))
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))
while not self.stopped: