From 56ffbc709b3bd86a8fd4c16de9e0419bac535167 Mon Sep 17 00:00:00 2001 From: AccentuSoft Date: Wed, 6 Jul 2022 05:43:38 +0300 Subject: [PATCH] Add helper functions to image search engines. --- Core/Interface/MenuBar.py | 59 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/Core/Interface/MenuBar.py b/Core/Interface/MenuBar.py index 6787694..7bad8f5 100644 --- a/Core/Interface/MenuBar.py +++ b/Core/Interface/MenuBar.py @@ -302,6 +302,14 @@ class MenuBar(QtWidgets.QMenuBar): triggered=self.searchOnline) nodeOperationsMenu.addAction(searchOnlineAction) + searchImageOnlineAction = QtGui.QAction("Open Image Reverse Search Engines in Browser", + self, + statusTip="Open Browser tabs running image search engines. This is a " + "helper function to save time, it does not search " + "automatically.", + triggered=self.searchImageOnline) + nodeOperationsMenu.addAction(searchImageOnlineAction) + nodeOperationsMenu.addSeparator() notesToTextFilesAction = QtGui.QAction("Save Notes Fields to Text Files", @@ -1032,6 +1040,20 @@ class MenuBar(QtWidgets.QMenuBar): except KeyError: continue + def searchImageOnline(self) -> None: + selectedURLs = SearchImageEngineDialog(self) + + if selectedURLs.exec_(): + selectedEngineURLs = [] + for engineCheckbox in selectedURLs.searchEngineWidgets: + if engineCheckbox.isChecked(): + selectedEngineURLs.append(engineCheckbox.searchAttr) + for searchEngineURL in selectedEngineURLs: + try: + webbrowser.open(searchEngineURL, new=0, autoraise=False) + except KeyError: + continue + def rearrangeGraph(self) -> None: self.parent().centralWidget().tabbedPane.getCurrentScene().rearrangeGraph() @@ -2728,6 +2750,43 @@ class SearchEngineDialog(QtWidgets.QDialog): layout.addWidget(buttonsWidget) +class SearchImageEngineDialog(QtWidgets.QDialog): + searchEngines = ['https://pimeyes.com/en', 'https://yandex.com/images/', + 'https://www.bing.com/visualsearch ', 'https://www.google.com/imghp', + 'https://tineye.com/'] + + def __init__(self, parent): + super(SearchImageEngineDialog, self).__init__(parent=parent) + self.setWindowTitle('Image Search Engine Lookup') + self.setModal(True) + self.setStyleSheet(Stylesheets.MAIN_WINDOW_STYLESHEET) + + layout = QtWidgets.QVBoxLayout() + self.setLayout(layout) + dialogLabel = QtWidgets.QLabel('Select the image search engines to open in tabs:') + layout.addWidget(dialogLabel) + + self.searchEngineWidgets = [] + + for engine in self.searchEngines: + engineCheckbox = QtWidgets.QCheckBox('/'.join(engine.split('/')[:3])) + engineCheckbox.searchAttr = engine + layout.addWidget(engineCheckbox) + self.searchEngineWidgets.append(engineCheckbox) + + buttonsWidget = QtWidgets.QWidget() + buttonsWidgetLayout = QtWidgets.QHBoxLayout() + buttonsWidget.setLayout(buttonsWidgetLayout) + acceptButton = QtWidgets.QPushButton('Confirm') + cancelButton = QtWidgets.QPushButton('Cancel') + cancelButton.clicked.connect(self.reject) + acceptButton.clicked.connect(self.accept) + buttonsWidgetLayout.addWidget(cancelButton) + buttonsWidgetLayout.addWidget(acceptButton) + + layout.addWidget(buttonsWidget) + + class ScreenshotWebsiteThread(QtCore.QThread): progressSignal = QtCore.Signal(int) cancelled = False