2021-10-27 11:37:55 +08:00
|
|
|
#include "web-search-plugin.h"
|
|
|
|
#include "global-settings.h"
|
|
|
|
|
2021-12-14 14:43:35 +08:00
|
|
|
using namespace UkuiSearch;
|
2021-10-27 11:37:55 +08:00
|
|
|
WebSearchPlugin::WebSearchPlugin(QObject *parent) : QObject(parent)
|
|
|
|
{
|
|
|
|
SearchPluginIface::Actioninfo open { 0, tr("Start browser search")};
|
|
|
|
m_actionInfo << open;
|
|
|
|
initDetailPage();
|
|
|
|
}
|
|
|
|
|
2021-12-14 14:43:35 +08:00
|
|
|
const QString UkuiSearch::WebSearchPlugin::name()
|
2021-10-27 11:37:55 +08:00
|
|
|
{
|
|
|
|
return "Web Page";
|
|
|
|
}
|
|
|
|
|
2021-12-14 14:43:35 +08:00
|
|
|
const QString UkuiSearch::WebSearchPlugin::description()
|
2021-10-27 11:37:55 +08:00
|
|
|
{
|
|
|
|
return tr("Web Page");
|
|
|
|
}
|
|
|
|
|
2021-12-14 14:43:35 +08:00
|
|
|
QString UkuiSearch::WebSearchPlugin::getPluginName()
|
2021-10-27 11:37:55 +08:00
|
|
|
{
|
|
|
|
return tr("Web Page");
|
|
|
|
}
|
|
|
|
|
2021-12-14 14:43:35 +08:00
|
|
|
void UkuiSearch::WebSearchPlugin::KeywordSearch(QString keyword, DataQueue<UkuiSearch::SearchPluginIface::ResultInfo> *searchResult)
|
2021-10-27 11:37:55 +08:00
|
|
|
{
|
|
|
|
m_keyWord = keyword;
|
|
|
|
ResultInfo resultInfo;
|
|
|
|
resultInfo.name = m_keyWord;
|
|
|
|
resultInfo.type = 0;
|
|
|
|
resultInfo.icon = QIcon(":/res/icons/search-web-icon.svg");
|
|
|
|
resultInfo.actionKey = m_keyWord;
|
|
|
|
searchResult->enqueue(resultInfo);
|
|
|
|
}
|
|
|
|
|
2022-02-12 14:20:55 +08:00
|
|
|
void WebSearchPlugin::stopSearch()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2021-12-14 14:43:35 +08:00
|
|
|
QList<UkuiSearch::SearchPluginIface::Actioninfo> UkuiSearch::WebSearchPlugin::getActioninfo(int type)
|
2021-10-27 11:37:55 +08:00
|
|
|
{
|
|
|
|
return m_actionInfo;
|
|
|
|
}
|
|
|
|
|
2021-12-14 14:43:35 +08:00
|
|
|
void UkuiSearch::WebSearchPlugin::openAction(int actionkey, QString key, int type)
|
2021-10-27 11:37:55 +08:00
|
|
|
{
|
|
|
|
QString address;
|
|
|
|
QString engine = GlobalSettings::getInstance()->getValue("web_engine").toString();
|
|
|
|
if(!engine.isEmpty()) {
|
|
|
|
if(engine == "360") {
|
|
|
|
address = "https://so.com/s?q=" + m_keyWord; //360
|
|
|
|
} else if(engine == "sougou") {
|
|
|
|
address = "https://www.sogou.com/web?query=" + m_keyWord; //搜狗
|
|
|
|
} else {
|
|
|
|
address = "http://baidu.com/s?word=" + m_keyWord; //百度
|
|
|
|
}
|
|
|
|
} else { //默认值
|
|
|
|
address = "http://baidu.com/s?word=" + m_keyWord ; //百度
|
|
|
|
}
|
|
|
|
QDesktopServices::openUrl(address);
|
|
|
|
}
|
|
|
|
|
2021-12-14 14:43:35 +08:00
|
|
|
QWidget *UkuiSearch::WebSearchPlugin::detailPage(const UkuiSearch::SearchPluginIface::ResultInfo &ri)
|
2021-10-27 11:37:55 +08:00
|
|
|
{
|
|
|
|
return m_detailPage;
|
|
|
|
}
|
|
|
|
|
2021-12-14 14:43:35 +08:00
|
|
|
void UkuiSearch::WebSearchPlugin::initDetailPage()
|
2021-10-27 11:37:55 +08:00
|
|
|
{
|
|
|
|
m_detailPage = new QWidget();
|
|
|
|
m_detailPage->setFixedWidth(360);
|
|
|
|
m_detailPage->setAttribute(Qt::WA_TranslucentBackground);
|
|
|
|
m_detailLyt = new QVBoxLayout(m_detailPage);
|
|
|
|
m_detailLyt->setContentsMargins(8, 0, 16, 0);
|
|
|
|
m_iconLabel = new QLabel(m_detailPage);
|
|
|
|
m_iconLabel->setAlignment(Qt::AlignCenter);
|
|
|
|
QString type = GlobalSettings::getInstance()->getValue(STYLE_NAME_KEY).toString();
|
|
|
|
if (type == "ukui-dark") {
|
|
|
|
m_iconLabel->setPixmap(QIcon(":/res/icons/search-web-dark.svg").pixmap(100, 96));
|
|
|
|
} else {
|
|
|
|
m_iconLabel->setPixmap(QIcon(":/res/icons/search-web-default.svg").pixmap(100, 96));
|
|
|
|
}
|
|
|
|
connect(qApp, &QApplication::paletteChanged, this, [=] () {
|
|
|
|
QString type = GlobalSettings::getInstance()->getValue(STYLE_NAME_KEY).toString();
|
|
|
|
if (type == "ukui-dark") {
|
|
|
|
m_iconLabel->setPixmap(QIcon(":/res/icons/search-web-dark.svg").pixmap(100, 96));
|
|
|
|
} else {
|
|
|
|
m_iconLabel->setPixmap(QIcon(":/res/icons/search-web-default.svg").pixmap(100, 96));
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
m_actionFrame = new QFrame(m_detailPage);
|
|
|
|
m_actionFrameLyt = new QVBoxLayout(m_actionFrame);
|
|
|
|
m_actionFrameLyt->setContentsMargins(0, 0, 0, 0);
|
|
|
|
m_actionFrameLyt->setAlignment(Qt::AlignCenter);
|
|
|
|
m_actionLabel1 = new ActionLabel(tr("Start browser search"), m_currentActionKey, m_actionFrame);
|
|
|
|
m_actionLabel1->adjustSize();
|
|
|
|
|
|
|
|
m_actionFrameLyt->addWidget(m_actionLabel1);;
|
|
|
|
m_actionFrame->setLayout(m_actionFrameLyt);
|
|
|
|
|
|
|
|
m_detailLyt->addSpacing(166);
|
|
|
|
m_detailLyt->addWidget(m_iconLabel);
|
|
|
|
m_detailLyt->addSpacing(6);
|
|
|
|
m_detailLyt->addWidget(m_actionFrame);
|
|
|
|
m_detailPage->setLayout(m_detailLyt);
|
|
|
|
m_detailLyt->addStretch();
|
|
|
|
|
|
|
|
connect(m_actionLabel1, &ActionLabel::actionTriggered, [ & ](){
|
|
|
|
openAction(0, m_currentActionKey, 0);
|
|
|
|
});
|
|
|
|
}
|