diff --git a/trimage-icon.png b/trimage-icon.png index f83e333..74d6b75 100644 Binary files a/trimage-icon.png and b/trimage-icon.png differ diff --git a/trimage.py b/trimage.py index e749b67..d0a3ba6 100644 --- a/trimage.py +++ b/trimage.py @@ -40,16 +40,18 @@ class StartQT4(QMainWindow): self.recompress_files) QObject.connect(self.quit_shortcut, SIGNAL("activated()"), qApp, SLOT('quit()')) + QObject.connect(self.ui.processedfiles, SIGNAL("fileDropEvent"), + self.file_drop) def commandline_options(self): """Set up the command line options.""" parser = OptionParser(version="%prog 1.0", description="GUI front-end to compress png and jpg images via " - "optipng and jpegoptim") + "optipng, advpng and jpegoptim") parser.add_option("-f", "--file", action="store", type="string", dest="filename", help="image to compress") parser.add_option("-d", "--directory", action="store", type="string", - dest="directory", help="directory of images to compress") + dest="directory", help="directory of images to compress", ) options, args = parser.parse_args() @@ -76,9 +78,12 @@ class StartQT4(QMainWindow): if self.checkname(image): self.compress_file(image) - def file_drop(self, files): - #TODO implement file drop handling - print("booya") + def file_drop(self, image): + """Get a file from the drag and drop handler and send it to + compress_file.""" + if self.checkname(image): + self.compress_file(image) + def checkname(self, name): """Check if the file is a jpg or png.""" @@ -123,9 +128,9 @@ class StartQT4(QMainWindow): elif path.splitext(str(filename))[1].lower() in [".png"]: # don't do advpng yet - #runstr = ('optipng -force -o7 "' + str(filename) - #+ '"; advpng -z4 "' + str(filename) + '"') - runstr = 'optipng -force -o7 "' + str(filename) + '"' + runstr = ('optipng -force -o7 "' + str(filename) + + '"; advpng -z4 "' + str(filename) + '"') + #runstr = 'optipng -force -o7 "' + str(filename) + '"' runfile = system(runstr) if runfile == 0: diff --git a/ui.py b/ui.py index 4571875..265ff44 100644 --- a/ui.py +++ b/ui.py @@ -1,11 +1,11 @@ -from PyQt4 import QtCore, QtGui -from PyQt4.QtCore import QUrl, QString +from PyQt4.QtCore import * +from PyQt4.QtGui import * DEBUG = True -class TrimageTableView(QtGui.QTableView): +class TrimageTableView(QTableView): def __init__(self, parent=None): super(TrimageTableView, self).__init__(parent) @@ -28,85 +28,83 @@ class TrimageTableView(QtGui.QTableView): files = str(event.mimeData().data("text/uri-list")).strip().split() for i, file in enumerate(files): files[i] = QUrl(QString(file)).toLocalFile() - if DEBUG: - for file in files: - print("Drop received: %s" % file) - + for file in files: + self.emit(SIGNAL("fileDropEvent"), (file)) class Ui_trimage(object): def setupUi(self, trimage): trimage.setObjectName("trimage") trimage.resize(600, 170) - trimage.setWindowIcon(QtGui.QIcon("trimage-icon.png")) + trimage.setWindowIcon(QIcon("trimage-icon.png")) - self.centralwidget = QtGui.QWidget(trimage) + self.centralwidget = QWidget(trimage) self.centralwidget.setObjectName("centralwidget") - self.gridLayout_2 = QtGui.QGridLayout(self.centralwidget) + self.gridLayout_2 = 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 = QWidget(self.centralwidget) self.widget.setEnabled(True) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred) + sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(1) sizePolicy.setVerticalStretch(1) sizePolicy.setHeightForWidth(self.widget.sizePolicy().hasHeightForWidth()) self.widget.setSizePolicy(sizePolicy) self.widget.setObjectName("widget") - self.verticalLayout = QtGui.QVBoxLayout(self.widget) + self.verticalLayout = QVBoxLayout(self.widget) self.verticalLayout.setSpacing(0) self.verticalLayout.setMargin(0) self.verticalLayout.setObjectName("verticalLayout") - self.frame = QtGui.QFrame(self.widget) + self.frame = QFrame(self.widget) self.frame.setObjectName("frame") - self.verticalLayout_2 = QtGui.QVBoxLayout(self.frame) + self.verticalLayout_2 = 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 = QHBoxLayout() self.horizontalLayout.setSpacing(0) self.horizontalLayout.setMargin(10) self.horizontalLayout.setObjectName("horizontalLayout") - self.addfiles = QtGui.QPushButton(self.frame) - font = QtGui.QFont() + self.addfiles = QPushButton(self.frame) + font = QFont() font.setPointSize(9) self.addfiles.setFont(font) - self.addfiles.setCursor(QtCore.Qt.PointingHandCursor) - icon = QtGui.QIcon() - icon.addPixmap(QtGui.QPixmap("list-add.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.addfiles.setCursor(Qt.PointingHandCursor) + icon = QIcon() + icon.addPixmap(QPixmap("list-add.png"), QIcon.Normal, QIcon.Off) self.addfiles.setIcon(icon) self.addfiles.setObjectName("addfiles") self.addfiles.setAcceptDrops(True) self.horizontalLayout.addWidget(self.addfiles) - self.label = QtGui.QLabel(self.frame) - font = QtGui.QFont() + self.label = QLabel(self.frame) + font = QFont() font.setPointSize(8) self.label.setFont(font) - self.label.setFrameShadow(QtGui.QFrame.Plain) + self.label.setFrameShadow(QFrame.Plain) self.label.setMargin(1) self.label.setIndent(10) self.label.setObjectName("label") self.horizontalLayout.addWidget(self.label) - spacerItem = QtGui.QSpacerItem(498, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + spacerItem = QSpacerItem(498, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem) - self.recompress = QtGui.QPushButton(self.frame) - font = QtGui.QFont() + self.recompress = QPushButton(self.frame) + font = QFont() font.setPointSize(9) self.recompress.setFont(font) - self.recompress.setCursor(QtCore.Qt.PointingHandCursor) + self.recompress.setCursor(Qt.PointingHandCursor) - icon1 = QtGui.QIcon() - icon1.addPixmap(QtGui.QPixmap("view-refresh.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + icon1 = QIcon() + icon1.addPixmap(QPixmap("view-refresh.png"), QIcon.Normal, QIcon.Off) self.recompress.setIcon(icon1) self.recompress.setCheckable(False) @@ -116,36 +114,36 @@ class Ui_trimage(object): self.processedfiles = TrimageTableView(self.frame) self.processedfiles.setEnabled(True) - self.processedfiles.setFrameShape(QtGui.QFrame.NoFrame) - self.processedfiles.setFrameShadow(QtGui.QFrame.Plain) + self.processedfiles.setFrameShape(QFrame.NoFrame) + self.processedfiles.setFrameShadow(QFrame.Plain) self.processedfiles.setLineWidth(0) self.processedfiles.setMidLineWidth(0) - self.processedfiles.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) + self.processedfiles.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) self.processedfiles.setTabKeyNavigation(True) self.processedfiles.setAlternatingRowColors(True) - self.processedfiles.setTextElideMode(QtCore.Qt.ElideRight) + self.processedfiles.setTextElideMode(Qt.ElideRight) self.processedfiles.setShowGrid(True) - self.processedfiles.setGridStyle(QtCore.Qt.NoPen) + self.processedfiles.setGridStyle(Qt.NoPen) self.processedfiles.setSortingEnabled(False) self.processedfiles.setObjectName("processedfiles") self.processedfiles.resizeColumnsToContents() - self.processedfiles.setSelectionMode(QtGui.QAbstractItemView.NoSelection) + self.processedfiles.setSelectionMode(QAbstractItemView.NoSelection) self.verticalLayout_2.addWidget(self.processedfiles) self.verticalLayout.addWidget(self.frame) self.gridLayout_2.addWidget(self.widget, 0, 0, 1, 1) trimage.setCentralWidget(self.centralwidget) self.retranslateUi(trimage) - QtCore.QMetaObject.connectSlotsByName(trimage) + QMetaObject.connectSlotsByName(trimage) def retranslateUi(self, trimage): - trimage.setWindowTitle(QtGui.QApplication.translate("trimage", "Trimage image compressor", None, QtGui.QApplication.UnicodeUTF8)) - self.addfiles.setToolTip(QtGui.QApplication.translate("trimage", "Add file to the compression list", None, QtGui.QApplication.UnicodeUTF8)) - self.addfiles.setText(QtGui.QApplication.translate("trimage", "&Add and compress", None, QtGui.QApplication.UnicodeUTF8)) - self.addfiles.setShortcut(QtGui.QApplication.translate("trimage", "Alt+A", None, QtGui.QApplication.UnicodeUTF8)) - self.label.setText(QtGui.QApplication.translate("trimage", "Drag and drop images onto the table", None, QtGui.QApplication.UnicodeUTF8)) - self.recompress.setToolTip(QtGui.QApplication.translate("trimage", "Recompress selected images", None, QtGui.QApplication.UnicodeUTF8)) - self.recompress.setText(QtGui.QApplication.translate("trimage", "&Recompress", None, QtGui.QApplication.UnicodeUTF8)) - self.recompress.setShortcut(QtGui.QApplication.translate("trimage", "Alt+R", None, QtGui.QApplication.UnicodeUTF8)) - self.processedfiles.setToolTip(QtGui.QApplication.translate("trimage", "Drag files in here", None, QtGui.QApplication.UnicodeUTF8)) - self.processedfiles.setWhatsThis(QtGui.QApplication.translate("trimage", "Drag files in here", None, QtGui.QApplication.UnicodeUTF8)) + trimage.setWindowTitle(QApplication.translate("trimage", "Trimage image compressor", None, QApplication.UnicodeUTF8)) + self.addfiles.setToolTip(QApplication.translate("trimage", "Add file to the compression list", None, QApplication.UnicodeUTF8)) + self.addfiles.setText(QApplication.translate("trimage", "&Add and compress", None, QApplication.UnicodeUTF8)) + self.addfiles.setShortcut(QApplication.translate("trimage", "Alt+A", None, QApplication.UnicodeUTF8)) + self.label.setText(QApplication.translate("trimage", "Drag and drop images onto the table", None, QApplication.UnicodeUTF8)) + self.recompress.setToolTip(QApplication.translate("trimage", "Recompress selected images", None, QApplication.UnicodeUTF8)) + self.recompress.setText(QApplication.translate("trimage", "&Recompress", None, QApplication.UnicodeUTF8)) + self.recompress.setShortcut(QApplication.translate("trimage", "Alt+R", None, QApplication.UnicodeUTF8)) + self.processedfiles.setToolTip(QApplication.translate("trimage", "Drag files in here", None, QApplication.UnicodeUTF8)) + self.processedfiles.setWhatsThis(QApplication.translate("trimage", "Drag files in here", None, QApplication.UnicodeUTF8))