diff --git a/trimage.py b/trimage.py index d0dd69b..e45d69e 100644 --- a/trimage.py +++ b/trimage.py @@ -1,52 +1,66 @@ import sys from PyQt4 import QtCore, QtGui from ui import Ui_trimage -from os.path import isfile 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.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)") - + "Select one or more image files to compress", + "", # directory + "Image files (*.png *.gif *.jpg)") for image in images: - filename = image - oldfilesize = QtCore.QFileInfo(image).size() - # send image to processing + 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): - # check file extention - # get file size - # run correct command line tool and get reply - # get new file size - # add to columnview - self.setWindowTitle("check too!") - def add_to_columnview(self): - # update column view with file info + 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__": diff --git a/ui.py b/ui.py index 5e4727e..71f8504 100644 --- a/ui.py +++ b/ui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'window.ui' # -# Created: Mon Feb 1 16:48:11 2010 +# Created: Mon Feb 1 19:37:17 2010 # by: PyQt4 UI code generator 4.4.4 # # WARNING! All changes made in this file will be lost! @@ -13,12 +13,15 @@ class Ui_trimage(object): def setupUi(self, trimage): trimage.setObjectName("trimage") trimage.resize(600, 170) + self.centralwidget = QtGui.QWidget(trimage) self.centralwidget.setObjectName("centralwidget") + self.gridLayout_2 = QtGui.QGridLayout(self.centralwidget) self.gridLayout_2.setMargin(0) self.gridLayout_2.setSpacing(0) self.gridLayout_2.setObjectName("gridLayout_2") + self.widget = QtGui.QWidget(self.centralwidget) self.widget.setEnabled(True) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred) @@ -27,20 +30,25 @@ class Ui_trimage(object): sizePolicy.setHeightForWidth(self.widget.sizePolicy().hasHeightForWidth()) self.widget.setSizePolicy(sizePolicy) self.widget.setObjectName("widget") + self.verticalLayout = QtGui.QVBoxLayout(self.widget) self.verticalLayout.setSpacing(0) self.verticalLayout.setMargin(0) self.verticalLayout.setObjectName("verticalLayout") + self.frame = QtGui.QFrame(self.widget) self.frame.setObjectName("frame") + self.verticalLayout_2 = QtGui.QVBoxLayout(self.frame) self.verticalLayout_2.setSpacing(0) self.verticalLayout_2.setMargin(0) self.verticalLayout_2.setObjectName("verticalLayout_2") + self.horizontalLayout = QtGui.QHBoxLayout() self.horizontalLayout.setSpacing(0) self.horizontalLayout.setMargin(10) self.horizontalLayout.setObjectName("horizontalLayout") + self.addfiles = QtGui.QPushButton(self.frame) font = QtGui.QFont() font.setPointSize(9) @@ -51,6 +59,7 @@ class Ui_trimage(object): self.addfiles.setIcon(icon) self.addfiles.setObjectName("addfiles") self.horizontalLayout.addWidget(self.addfiles) + self.label = QtGui.QLabel(self.frame) font = QtGui.QFont() font.setPointSize(8) @@ -60,6 +69,7 @@ class Ui_trimage(object): self.label.setIndent(10) self.label.setObjectName("label") self.horizontalLayout.addWidget(self.label) + spacerItem = QtGui.QSpacerItem(498, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem) self.recompress = QtGui.QPushButton(self.frame) @@ -67,14 +77,17 @@ class Ui_trimage(object): font.setPointSize(9) self.recompress.setFont(font) self.recompress.setCursor(QtCore.Qt.PointingHandCursor) + icon1 = QtGui.QIcon() icon1.addPixmap(QtGui.QPixmap("view-refresh.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.recompress.setIcon(icon1) self.recompress.setCheckable(False) self.recompress.setObjectName("recompress") self.horizontalLayout.addWidget(self.recompress) self.verticalLayout_2.addLayout(self.horizontalLayout) - self.processedfiles = QtGui.QColumnView(self.frame) + + self.processedfiles = QtGui.QTableView(self.frame) self.processedfiles.setEnabled(True) self.processedfiles.setAcceptDrops(True) self.processedfiles.setFrameShape(QtGui.QFrame.NoFrame) @@ -87,6 +100,9 @@ class Ui_trimage(object): self.processedfiles.setDragDropMode(QtGui.QAbstractItemView.DropOnly) self.processedfiles.setAlternatingRowColors(True) self.processedfiles.setTextElideMode(QtCore.Qt.ElideRight) + self.processedfiles.setShowGrid(True) + self.processedfiles.setGridStyle(QtCore.Qt.NoPen) + self.processedfiles.setSortingEnabled(True) self.processedfiles.setObjectName("processedfiles") self.verticalLayout_2.addWidget(self.processedfiles) self.verticalLayout.addWidget(self.frame) diff --git a/window.ui b/window.ui index 0e27adf..066032f 100644 --- a/window.ui +++ b/window.ui @@ -147,7 +147,7 @@ - + true @@ -190,6 +190,27 @@ Qt::ElideRight + + true + + + Qt::NoPen + + + true + + + false + + + false + + + false + + + false +