Trimage/trimage.py

71 lines
2 KiB
Python

import sys
from PyQt4 import QtCore, QtGui
from ui import Ui_trimage
class StartQT4(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.ui = Ui_trimage()
self.ui.setupUi(self)
self.quit_shortcut = QtGui.QShortcut(QtGui.QKeySequence("Ctrl+Q"), self); # todo use standardKey Quit.
# connect signals with slots
QtCore.QObject.connect(self.ui.addfiles, QtCore.SIGNAL("clicked()"), self.file_dialog)
QtCore.QObject.connect(self.ui.recompress, QtCore.SIGNAL("clicked()"), self.recompress_files)
QtCore.QObject.connect(self.quit_shortcut, QtCore.SIGNAL("activated()"), QtGui.qApp, QtCore.SLOT('quit()'))
# set recompress to false
self.ui.recompress.setEnabled(False)
def file_dialog(self):
fd = QtGui.QFileDialog(self)
images = fd.getOpenFileNames(self,
"Select one or more image files to compress",
"", # directory
"Image files (*.png *.gif *.jpg)")
for image in images:
self.compress_file(image)
def enable_recompress(self):
self.ui.recompress.setEnabled(True)
def recompress_files(self):
# get list of currently processed files
# reprocess them
# update columnview
self.setWindowTitle("check too!")
def compress_file(self, filename):
oldfile = QtCore.QFileInfo(filename);
name = oldfile.fileName()
oldfilesize = oldfile.size()
if name.endsWith("jpg"):
self.jpg = True
# run jpegoptim
else:
self.jpg = False
#run optipng
newfile = oldfile
newfilesize = newfile.size()
ratio = 100 - (newfilesize / oldfilesize * 100)
ratio_str = "%.1f%%" % ratio
# get new file size
# add to columnview name, newsize, ratio_str,
def add_to_tableview(self, filename, filesize, ratio):
# update table view with file info
self.setWindowTitle("check too!")
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = StartQT4()
myapp.show()
sys.exit(app.exec_())