class GoogleImagesDownloader(QtGui.QMainWindow): def __init__(self, parent=None): super(GoogleImagesDownloader, self).__init__(parent) self.webDriverUtils = WebDriverUtils() self.downloadUtils = DownloadUtils() self.save_dir = os.getcwd() self.ui = Ui_MainWindow() self.ui.setupUi(self) self.ui.delete_button.clicked.connect(self.delete_on_click) self.ui.save_button.clicked.connect(self.save_on_click) self.ui.next_image_button.clicked.connect(self.next_image_on_click) self.ui.previous_image_button.clicked.connect(self.previous_image_on_click) self.ui.search_button.clicked.connect(self.search_on_click) self.ui.save_dir_button.clicked.connect(self.save_dir_on_click) self.add_action('d', self.next_image_on_click) self.add_action('a', self.previous_image_on_click) self.add_action('s', self.save_on_click) def closeEvent(self, event): print('On_close') self.webDriverUtils.close() def add_action(self, shortcut, method_name): action = QtGui.QAction(self) action.setShortcut(shortcut) action.setShortcutContext(QtCore.Qt.ApplicationShortcut) self.addAction(action) QtCore.QObject.connect(action, QtCore.SIGNAL("triggered()"), method_name) def next_image_on_click(self): print('Next Image') raw_image = self.downloadUtils.get_next_image() while not raw_image: raw_image = self.downloadUtils.get_next_image() self.update_image_view(raw_image) self.update_current_image_index_label() def previous_image_on_click(self): print('Previous Image') raw_image = self.downloadUtils.get_previous_image() self.update_image_view(raw_image) self.update_current_image_index_label() def update_image_view(self, raw_image): qimage = ImageQt(Image.open(io.BytesIO(raw_image))) pixmap = QtGui.QPixmap.fromImage(qimage).scaled(800, 800, aspectRatioMode=QtCore.Qt.KeepAspectRatio, transformMode=QtCore.Qt.SmoothTransformation) self.ui.image_view.setPixmap(pixmap) def save_on_click(self): print('Saving Image...') saved_filename = self.downloadUtils.save_current_image(self.save_dir) self.update_saved_images_count_label() def delete_on_click(self): print('Deleting Image...') self.downloadUtils.delete_current_image() self.update_saved_images_count_label() def update_saved_images_count_label(self): count = self.downloadUtils.get_saved_images_count() self.ui.saved_images_count_label.setText(count) def search_on_click(self): print('Searching') search_text = self.ui.search_term_text_box.text().strip() new_images_list = self.webDriverUtils.get_image_urls_from_google_images(search_text) for url, _ in new_images_list: self.ui.loaded_url.addItem(str(url)) self.downloadUtils.update_url_list(new_images_list) self.update_current_image_index_label() print(search_text) def update_current_image_index_label(self): count = self.downloadUtils.get_url_count() current_index = self.downloadUtils.get_current_image_index() self.ui.current_image_index_label.setText(str(count)+' \ '+str(current_index)) def save_dir_on_click(self): print('changing save dir') open_dir = QtGui.QFileDialog.getExistingDirectory(self, "Open Directory", self.save_dir, QtGui.QFileDialog.ShowDirsOnly | QtGui.QFileDialog.DontResolveSymlinks).strip() print(open_dir) if not open_dir == 0: print('New Folder : ' + open_dir) self.save_dir = open_dir