Skip to content

Commit 8fb4ebb

Browse files
committed
fix: plugin WebSearchPy
1 parent c899f2f commit 8fb4ebb

File tree

4 files changed

+127
-98
lines changed

4 files changed

+127
-98
lines changed

src/PluginPy/ExportPy.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,12 +84,10 @@ void objectReceiver(py::object obj) {
8484

8585
else if (py::isinstance<exportpy::Plugin*>(obj)) {
8686
std::cout << "objectReceiver, got Plugin ptr" << std::endl;
87-
8887
}
8988

9089
else if (py::isinstance<exportpy::Plugin>(obj)) {
9190
std::cout << "objectReceiver, got Plugin" << std::endl;
92-
9391
}
9492

9593
else {

src/Plugins/WebSearchPy/WebSearch/WebSearchGui.py

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11

2-
from PyQt5 import QtCore, QtGui, QtWidgets
3-
from PyQt5.QtCore import QVariant
4-
from PyQt5.QtWidgets import QApplication, QWidget, QDialog, QFileDialog
2+
import logging as log
3+
4+
from PySide6 import QtCore, QtGui, QtWidgets
5+
from PySide6.QtWidgets import QApplication
6+
from PySide6.QtWidgets import QWidget, QTableWidgetItem
57

68
from .ui_websearch import *
7-
#from .ui_pydiry_new_entry import *
89

910
import launchy
1011

11-
class WebSearchUi(QWidget):
12+
class WebSearchGui(QWidget):
1213
def __init__(self, parent=None, settingName=None):
1314
QtWidgets.QWidget.__init__(self, parent)
1415
self.settingName = settingName
@@ -20,24 +21,24 @@ def __init__(self, parent=None, settingName=None):
2021

2122
size = settings.beginReadArray(self.settingName)
2223
if size <= 0:
23-
print("WebSearchUi, load default setting")
24+
log.debug("WebSearchGui, load default setting")
2425
from .Defaults import defaultSetting as defSet
2526
table.setRowCount(len(defSet.keys()))
2627
for i, item in enumerate(defSet):
27-
print("i:", i, "item:", item)
28-
keyItem = QtWidgets.QTableWidgetItem( item )
29-
nameItem = QtWidgets.QTableWidgetItem( defSet[item]['name'] )
30-
urlItem = QtWidgets.QTableWidgetItem( defSet[item]['url'] )
28+
log.debug("WebSearchGui, i: %s, item: %s" % (i, item))
29+
keyItem = QTableWidgetItem( item )
30+
nameItem = QTableWidgetItem( defSet[item]['name'] )
31+
urlItem = QTableWidgetItem( defSet[item]['url'] )
3132
table.setItem(i, 0, keyItem)
3233
table.setItem(i, 1, nameItem)
3334
table.setItem(i, 2, urlItem)
3435
else:
3536
table.setRowCount(size)
3637
for i in range(0, size):
3738
settings.setArrayIndex(i);
38-
keyItem = QtWidgets.QTableWidgetItem( settings.value("key") )
39-
nameItem = QtWidgets.QTableWidgetItem( settings.value("name") )
40-
urlItem = QtWidgets.QTableWidgetItem( settings.value("url") )
39+
keyItem = QTableWidgetItem( settings.value("key") )
40+
nameItem = QTableWidgetItem( settings.value("name") )
41+
urlItem = QTableWidgetItem( settings.value("url") )
4142
table.setItem(i, 0, keyItem)
4243
table.setItem(i, 1, nameItem)
4344
table.setItem(i, 2, urlItem)
@@ -64,16 +65,16 @@ def removeEntry_clicked(self):
6465
self.ui.entriesTable.removeRow(currentRow)
6566

6667
def writeSettings(self):
67-
print("WebSearchUi, writeSettings")
68+
log.debug("WebSearchGui, writeSettings")
6869
settings = launchy.settings
6970
table = self.ui.entriesTable
7071

7172
# Remove all empty rows
7273
itemsToRemove = []
7374
for i in range(0, table.rowCount()):
74-
keyItem = table.item(i,0)
75-
nameItem = table.item(i,1)
76-
urlItem = table.item(i,2)
75+
keyItem = table.item(i, 0)
76+
nameItem = table.item(i, 1)
77+
urlItem = table.item(i, 2)
7778
if keyItem == None or nameItem == None or urlItem == None:
7879
itemsToRemove.append(i)
7980
elif keyItem.text() == "" or nameItem.text() == "" or urlItem == "":
@@ -84,11 +85,11 @@ def writeSettings(self):
8485

8586
# Add all rows to the dirs array
8687
settings.remove(self.settingName)
87-
print("WebSearchUi, settingName", self.settingName)
88+
log.debug("WebSearchUi, settingName: %s" % self.settingName)
8889
settings.beginWriteArray(self.settingName)
8990
for i in range(0, table.rowCount()):
9091
settings.setArrayIndex(i)
91-
settings.setValue("key", QVariant(table.item(i,0).text().lower()))
92-
settings.setValue("name", QVariant(table.item(i,1).text()))
93-
settings.setValue("url", QVariant(table.item(i,2).text()))
92+
settings.setValue("key", (table.item(i,0).text().lower()))
93+
settings.setValue("name", (table.item(i,1).text()))
94+
settings.setValue("url", (table.item(i,2).text()))
9495
settings.endArray()
Lines changed: 77 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,101 @@
11
# -*- coding: utf-8 -*-
22

3-
# Form implementation generated from reading ui file 'websearch.ui'
4-
#
5-
# Created by: PyQt5 UI code generator 5.11.2
6-
#
7-
# WARNING! All changes made in this file will be lost!
3+
################################################################################
4+
## Form generated from reading UI file 'websearch.ui'
5+
##
6+
## Created by: Qt User Interface Compiler version 6.5.3
7+
##
8+
## WARNING! All changes made in this file will be lost when recompiling UI file!
9+
################################################################################
810

9-
from PyQt5 import QtCore, QtGui, QtWidgets
11+
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
12+
QMetaObject, QObject, QPoint, QRect,
13+
QSize, QTime, QUrl, Qt)
14+
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
15+
QFont, QFontDatabase, QGradient, QIcon,
16+
QImage, QKeySequence, QLinearGradient, QPainter,
17+
QPalette, QPixmap, QRadialGradient, QTransform)
18+
from PySide6.QtWidgets import (QApplication, QHBoxLayout, QHeaderView, QPushButton,
19+
QSizePolicy, QSpacerItem, QTableWidget, QTableWidgetItem,
20+
QVBoxLayout, QWidget)
1021

1122
class Ui_WebSearchWidget(object):
1223
def setupUi(self, WebSearchWidget):
13-
WebSearchWidget.setObjectName("WebSearchWidget")
24+
if not WebSearchWidget.objectName():
25+
WebSearchWidget.setObjectName(u"WebSearchWidget")
1426
WebSearchWidget.resize(647, 360)
15-
self.verticalLayout = QtWidgets.QVBoxLayout(WebSearchWidget)
16-
self.verticalLayout.setObjectName("verticalLayout")
17-
self.entriesTable = QtWidgets.QTableWidget(WebSearchWidget)
18-
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
27+
self.verticalLayout = QVBoxLayout(WebSearchWidget)
28+
self.verticalLayout.setObjectName(u"verticalLayout")
29+
self.entriesTable = QTableWidget(WebSearchWidget)
30+
if (self.entriesTable.columnCount() < 3):
31+
self.entriesTable.setColumnCount(3)
32+
__qtablewidgetitem = QTableWidgetItem()
33+
self.entriesTable.setHorizontalHeaderItem(0, __qtablewidgetitem)
34+
__qtablewidgetitem1 = QTableWidgetItem()
35+
self.entriesTable.setHorizontalHeaderItem(1, __qtablewidgetitem1)
36+
__qtablewidgetitem2 = QTableWidgetItem()
37+
self.entriesTable.setHorizontalHeaderItem(2, __qtablewidgetitem2)
38+
self.entriesTable.setObjectName(u"entriesTable")
39+
sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
1940
sizePolicy.setHorizontalStretch(0)
2041
sizePolicy.setVerticalStretch(0)
2142
sizePolicy.setHeightForWidth(self.entriesTable.sizePolicy().hasHeightForWidth())
2243
self.entriesTable.setSizePolicy(sizePolicy)
23-
self.entriesTable.setObjectName("entriesTable")
24-
self.entriesTable.setColumnCount(3)
25-
self.entriesTable.setRowCount(0)
26-
item = QtWidgets.QTableWidgetItem()
27-
self.entriesTable.setHorizontalHeaderItem(0, item)
28-
item = QtWidgets.QTableWidgetItem()
29-
self.entriesTable.setHorizontalHeaderItem(1, item)
30-
item = QtWidgets.QTableWidgetItem()
31-
self.entriesTable.setHorizontalHeaderItem(2, item)
3244
self.entriesTable.horizontalHeader().setStretchLastSection(True)
3345
self.entriesTable.verticalHeader().setStretchLastSection(False)
46+
3447
self.verticalLayout.addWidget(self.entriesTable)
35-
self.horizontalLayout = QtWidgets.QHBoxLayout()
36-
self.horizontalLayout.setObjectName("horizontalLayout")
37-
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
38-
self.horizontalLayout.addItem(spacerItem)
39-
self.addEntryButton = QtWidgets.QPushButton(WebSearchWidget)
40-
self.addEntryButton.setObjectName("addEntryButton")
48+
49+
self.horizontalLayout = QHBoxLayout()
50+
self.horizontalLayout.setObjectName(u"horizontalLayout")
51+
self.horizontalSpacer_4 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
52+
53+
self.horizontalLayout.addItem(self.horizontalSpacer_4)
54+
55+
self.addEntryButton = QPushButton(WebSearchWidget)
56+
self.addEntryButton.setObjectName(u"addEntryButton")
57+
4158
self.horizontalLayout.addWidget(self.addEntryButton)
42-
spacerItem1 = QtWidgets.QSpacerItem(58, 17, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
43-
self.horizontalLayout.addItem(spacerItem1)
44-
self.removeEntryButton = QtWidgets.QPushButton(WebSearchWidget)
45-
self.removeEntryButton.setObjectName("removeEntryButton")
59+
60+
self.horizontalSpacer = QSpacerItem(58, 17, QSizePolicy.Expanding, QSizePolicy.Minimum)
61+
62+
self.horizontalLayout.addItem(self.horizontalSpacer)
63+
64+
self.removeEntryButton = QPushButton(WebSearchWidget)
65+
self.removeEntryButton.setObjectName(u"removeEntryButton")
66+
4667
self.horizontalLayout.addWidget(self.removeEntryButton)
47-
spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
48-
self.horizontalLayout.addItem(spacerItem2)
68+
69+
self.horizontalSpacer_5 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
70+
71+
self.horizontalLayout.addItem(self.horizontalSpacer_5)
72+
73+
4974
self.verticalLayout.addLayout(self.horizontalLayout)
5075

76+
5177
self.retranslateUi(WebSearchWidget)
5278
self.addEntryButton.clicked.connect(WebSearchWidget.addEntry_clicked)
5379
self.removeEntryButton.clicked.connect(WebSearchWidget.removeEntry_clicked)
54-
QtCore.QMetaObject.connectSlotsByName(WebSearchWidget)
80+
81+
QMetaObject.connectSlotsByName(WebSearchWidget)
82+
# setupUi
5583

5684
def retranslateUi(self, WebSearchWidget):
57-
_translate = QtCore.QCoreApplication.translate
58-
WebSearchWidget.setWindowTitle(_translate("WebSearchWidget", "WebSearchPy - Search items from web"))
59-
item = self.entriesTable.horizontalHeaderItem(0)
60-
item.setText(_translate("WebSearchWidget", "Key"))
61-
item = self.entriesTable.horizontalHeaderItem(1)
62-
item.setText(_translate("WebSearchWidget", "Name"))
63-
item = self.entriesTable.horizontalHeaderItem(2)
64-
item.setText(_translate("WebSearchWidget", "Url"))
65-
self.addEntryButton.setToolTip(_translate("WebSearchWidget", "Add a new entry"))
66-
self.addEntryButton.setText(_translate("WebSearchWidget", "+"))
67-
self.removeEntryButton.setToolTip(_translate("WebSearchWidget", "Remove the selected entry"))
68-
self.removeEntryButton.setText(_translate("WebSearchWidget", "-"))
85+
WebSearchWidget.setWindowTitle(QCoreApplication.translate("WebSearchWidget", u"WebSearchPy - Search items from web", None))
86+
___qtablewidgetitem = self.entriesTable.horizontalHeaderItem(0)
87+
___qtablewidgetitem.setText(QCoreApplication.translate("WebSearchWidget", u"Key", None));
88+
___qtablewidgetitem1 = self.entriesTable.horizontalHeaderItem(1)
89+
___qtablewidgetitem1.setText(QCoreApplication.translate("WebSearchWidget", u"Name", None));
90+
___qtablewidgetitem2 = self.entriesTable.horizontalHeaderItem(2)
91+
___qtablewidgetitem2.setText(QCoreApplication.translate("WebSearchWidget", u"Url", None));
92+
#if QT_CONFIG(tooltip)
93+
self.addEntryButton.setToolTip(QCoreApplication.translate("WebSearchWidget", u"Add a new entry", None))
94+
#endif // QT_CONFIG(tooltip)
95+
self.addEntryButton.setText(QCoreApplication.translate("WebSearchWidget", u"+", None))
96+
#if QT_CONFIG(tooltip)
97+
self.removeEntryButton.setToolTip(QCoreApplication.translate("WebSearchWidget", u"Remove the selected entry", None))
98+
#endif // QT_CONFIG(tooltip)
99+
self.removeEntryButton.setText(QCoreApplication.translate("WebSearchWidget", u"-", None))
100+
# retranslateUi
69101

src/Plugins/WebSearchPy/WebSearchPy.py

Lines changed: 28 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,28 @@
11

22
import urllib
3-
import urllib.parse
4-
#import subprocess
53
import webbrowser
64

7-
from PyQt5 import QtCore, QtGui, QtWidgets
8-
from PyQt5.QtCore import QVariant
9-
from sip import wrapinstance, unwrapinstance
5+
import logging as log
106

11-
import launchy
12-
from WebSearch import WebSearchGui
7+
from PySide6 import QtCore, QtGui, QtWidgets
8+
from PySide6.QtWidgets import QWidget, QApplication
9+
from shiboken6 import wrapInstance, getCppPointer
1310

14-
class WebSearchPy(launchy.Plugin):
11+
from launchy import Plugin, CatItem
12+
from launchy import settings as lSettings
13+
14+
import WebSearch
15+
from WebSearch.WebSearchGui import WebSearchGui
16+
17+
class WebSearchPy(Plugin):
1518
settingName = "WebSearchPy"
1619
searchEngine = {}
1720
def __init__(self):
18-
launchy.Plugin.__init__(self)
19-
self.hash = launchy.hash(self.getName())
21+
Plugin.__init__(self)
2022

2123
def init(self):
2224
self.__readConfig()
2325

24-
def getID(self):
25-
return int(self.hash)
26-
2726
def getName(self):
2827
return "WebSearchPy"
2928

@@ -36,38 +35,37 @@ def getIcon(self):
3635
def getLabels(self, inputDataList):
3736
query = inputDataList[0].getText()
3837
if query in self.searchEngine.keys():
39-
inputDataList[-1].setLabel(self.hash);
38+
inputDataList[-1].setPlugin(self.getName())
4039

4140
def getResults(self, inputDataList, resultsList):
42-
if not inputDataList[-1].hasLabel(self.hash):
41+
if inputDataList[-1].getPlugin() != self.getName():
4342
return
4443
query = inputDataList[0].getText()
4544
keyword = inputDataList[-1].getText()
4645
if query in self.searchEngine.keys():
4746
resultsList.push_front(
48-
launchy.CatItem("%s: %s search"
49-
% (self.getName(),
50-
self.searchEngine.get(query).get("name")),
51-
keyword,
52-
self.getID(),
53-
self.getIcon()))
47+
CatItem("%s: %s search" % (self.getName(), self.searchEngine.get(query).get("name")),
48+
keyword, self.getName(), self.getIcon()))
5449

5550
def launchItem(self, inputDataList, catItem):
5651
if len(inputDataList) == 2:
5752
key = inputDataList[0].getText()
5853
query = inputDataList[-1].getText()
5954
url = self.getUrl(key, query)
60-
print('WebSerach, launchyItem:', key, query, url)
55+
log.debug('WebSerachPy::launchyItem, key: %s, query: %s url: %s'
56+
% (key, query, url))
6157
webbrowser.open(url)
6258
return True
6359

6460
def doDialog(self, parentWidgetPtr):
65-
parentWidget = wrapinstance(parentWidgetPtr, QtWidgets.QWidget)
66-
self.widget = WebSearchGui.WebSearchUi(parentWidget, self.settingName)
61+
log.debug('WebSearchPy::doDialog ...')
62+
parentWidget = wrapInstance(parentWidgetPtr, QWidget)
63+
self.widget = WebSearchGui(parentWidget, self.settingName)
6764
self.widget.show()
68-
return unwrapinstance(self.widget);
65+
return getCppPointer(self.widget)[0]
6966

7067
def endDialog(self, accept):
68+
log.debug('WebSearchPy::endDialog ...')
7169
self.widget.hide()
7270
if accept:
7371
self.widget.writeSettings()
@@ -76,25 +74,25 @@ def endDialog(self, accept):
7674
self.widget = None
7775

7876
def __readConfig(self):
79-
settings = launchy.settings
77+
settings = lSettings
8078
self.searchEngine.clear()
8179

8280
# Read directories from the settings file
8381
size = settings.beginReadArray(self.settingName)
8482
if size <= 0:
85-
print("WebSearchPy, __readConfig, load defaults")
83+
log.debug("WebSearchPy::__readConfig, load defaults")
8684
from WebSearch import Defaults
8785
self.searchEngine.update(Defaults.defaultSetting)
8886
else:
89-
print("WebSearchPy, __readConfig, read from config, count:", size)
87+
log.debug("WebSearchPy::__readConfig, read from config, count: %s" % size)
9088
for i in range(0, size):
9189
settings.setArrayIndex(i)
9290
key = settings.value("key")
9391
name = settings.value("name")
9492
url = settings.value("url")
9593
self.searchEngine[key] = {"name":name, "url": url}
9694
settings.endArray()
97-
print("WebSearchPy, __readConfig:", self.searchEngine)
95+
log.debug("WebSearchPy::__readConfig: %s" % self.searchEngine)
9896

9997
@classmethod
10098
def encodeQuery(cls, query):
@@ -105,7 +103,7 @@ def getUrl(cls, key, query):
105103
url = eval('"%s" %% "%s"'
106104
% (WebSearchPy.searchEngine.get(key).get('url'),
107105
WebSearchPy.encodeQuery(query)))
108-
print("WebSearchPy, getUrl:", url)
106+
log.debug("WebSearchPy::getUrl: %s" % url)
109107
return url
110108

111109

0 commit comments

Comments
 (0)