Skip to content

Commit d12a6c4

Browse files
committed
Plugins::WebBrowser: add search engine in url box
1 parent 167e653 commit d12a6c4

File tree

6 files changed

+162
-2
lines changed

6 files changed

+162
-2
lines changed

Plugins/WebBrowser/DlgSettings.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ CDlgSettings::CDlgSettings(CParameterWebBrowser *para, QWidget *parent)
1010
: QDialog(parent)
1111
, ui(new Ui::CDlgSettings)
1212
, m_pPara(para)
13+
, m_pSearchModel(nullptr)
1314
{
1415
ui->setupUi(this);
1516
ui->leName->setText(m_pPara->GetName());
@@ -20,6 +21,19 @@ CDlgSettings::CDlgSettings(CParameterWebBrowser *para, QWidget *parent)
2021
ui->leTabUrl->setText(m_pPara->GetTabUrl());
2122
ui->leDownloadFolder->setText(m_pPara->GetDownloadFolder());
2223
ui->cbOpenPreious->setChecked(m_pPara->GetOpenPrevious());
24+
25+
m_pSearchModel = new QStandardItemModel(this);
26+
auto searchList = m_pPara->GetSearchEngineList();
27+
foreach(auto i, searchList)
28+
{
29+
QStandardItem* item = new QStandardItem(i);
30+
m_pSearchModel->appendRow(item);
31+
}
32+
ui->lstSearchEngine->setModel(m_pSearchModel);
33+
int index = searchList.indexOf(m_pPara->GetSearchEngine());
34+
QModelIndex indexModel;
35+
indexModel = m_pSearchModel->index(index, 0);
36+
ui->lstSearchEngine->setCurrentIndex(indexModel);
2337
}
2438

2539
CDlgSettings::~CDlgSettings()
@@ -34,6 +48,11 @@ void CDlgSettings::accept()
3448
m_pPara->SetTabUrl(ui->leTabUrl->text());
3549
m_pPara->SetDownloadFolder(ui->leDownloadFolder->text());
3650
m_pPara->SetOpenPrevious(ui->cbOpenPreious->isChecked());
51+
auto index = ui->lstSearchEngine->currentIndex();
52+
if(index.isValid()) {
53+
auto search = m_pSearchModel->item(index.row())->text();
54+
m_pPara->SetSearchEngine(search);
55+
}
3756
QDialog::accept();
3857
}
3958

Plugins/WebBrowser/DlgSettings.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Author: Kang Lin <[email protected]>
22
#pragma once
33
#include <QDialog>
4+
#include <QStandardItemModel>
45
#include "ParameterWebBrowser.h"
56

67
namespace Ui {
@@ -26,4 +27,5 @@ private slots:
2627
private:
2728
Ui::CDlgSettings *ui;
2829
CParameterWebBrowser* m_pPara;
30+
QStandardItemModel* m_pSearchModel;
2931
};

Plugins/WebBrowser/DlgSettings.ui

Lines changed: 64 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<item row="0" column="0">
1818
<widget class="QTabWidget" name="tabWidget">
1919
<property name="currentIndex">
20-
<number>0</number>
20+
<number>1</number>
2121
</property>
2222
<widget class="QWidget" name="General">
2323
<attribute name="title">
@@ -109,6 +109,69 @@
109109
</item>
110110
</layout>
111111
</widget>
112+
<widget class="QWidget" name="Search">
113+
<attribute name="title">
114+
<string>Search</string>
115+
</attribute>
116+
<layout class="QGridLayout" name="gridLayout_3">
117+
<item row="0" column="0">
118+
<widget class="QListView" name="lstSearchEngine"/>
119+
</item>
120+
<item row="1" column="0">
121+
<layout class="QHBoxLayout" name="horizontalLayout_5">
122+
<item>
123+
<spacer name="horizontalSpacer">
124+
<property name="orientation">
125+
<enum>Qt::Orientation::Horizontal</enum>
126+
</property>
127+
<property name="sizeHint" stdset="0">
128+
<size>
129+
<width>40</width>
130+
<height>20</height>
131+
</size>
132+
</property>
133+
</spacer>
134+
</item>
135+
<item>
136+
<widget class="QPushButton" name="pbAdd">
137+
<property name="sizePolicy">
138+
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
139+
<horstretch>0</horstretch>
140+
<verstretch>0</verstretch>
141+
</sizepolicy>
142+
</property>
143+
<property name="text">
144+
<string>Add</string>
145+
</property>
146+
<property name="icon">
147+
<iconset theme="list-add"/>
148+
</property>
149+
</widget>
150+
</item>
151+
<item>
152+
<widget class="QPushButton" name="pbEdit">
153+
<property name="text">
154+
<string>Edit</string>
155+
</property>
156+
<property name="icon">
157+
<iconset theme="edit"/>
158+
</property>
159+
</widget>
160+
</item>
161+
<item>
162+
<widget class="QPushButton" name="pbRemove">
163+
<property name="text">
164+
<string>Remove</string>
165+
</property>
166+
<property name="icon">
167+
<iconset theme="list-remove"/>
168+
</property>
169+
</widget>
170+
</item>
171+
</layout>
172+
</item>
173+
</layout>
174+
</widget>
112175
</widget>
113176
</item>
114177
<item row="1" column="0">

Plugins/WebBrowser/FrmWebBrowser.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#include <QWebEngineProfile>
1010
#include <QWebEngineSettings>
1111
#include <QWebEngineFindTextResult>
12+
#include <QRegularExpression>
1213
#if QT_VERSION >= QT_VERSION_CHECK(6, 9, 0)
1314
#include <QWebEngineProfileBuilder>
1415
#endif
@@ -679,6 +680,16 @@ void CFrmWebBrowser::slotViewCloseRequested()
679680
void CFrmWebBrowser::slotReturnPressed()
680681
{
681682
QUrl u = QUrl::fromUserInput(m_pUrlLineEdit->text());
683+
qDebug(log) << u << m_pUrlLineEdit->text();
684+
if(u.isEmpty()) {
685+
QString szSearch;
686+
if(m_pPara) {
687+
szSearch = m_pPara->GetSearchEngine();
688+
u = szSearch.replace(m_pPara->GetSearchRelaceString(),
689+
QUrl::toPercentEncoding(m_pUrlLineEdit->text()));
690+
}
691+
}
692+
qDebug(log) << u << m_pUrlLineEdit->text();
682693
emit sigInformation(u.toString());
683694
CFrmWebView* pWeb = CurrentView();
684695
if(!pWeb)

Plugins/WebBrowser/ParameterWebBrowser.cpp

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,12 @@ CParameterWebBrowser::CParameterWebBrowser(QObject *parent, const QString &szPre
1010
, m_bOpenPrevious(false)
1111
{
1212
m_szDownloadFolder = QStandardPaths::writableLocation(QStandardPaths::DownloadLocation);
13+
SetSearchEngine("https://cn.bing.com/search?q=%s");
14+
SetSearchRelaceString("%s");
15+
QStringList searchEngines;
16+
searchEngines << "https://cn.bing.com/search?q=%s";
17+
searchEngines << "https://www.google.com/search?q=%s";
18+
SetSearchEngineList(searchEngines);
1319
}
1420

1521
CParameterWebBrowser::~CParameterWebBrowser()
@@ -22,6 +28,9 @@ int CParameterWebBrowser::OnLoad(QSettings &set)
2228
SetTabUrl(set.value("Url/Tab", GetTabUrl()).toString());
2329
SetOpenPrevious(set.value("OpenPrevious/Enable", GetOpenPrevious()).toBool());
2430
SetDownloadFolder(set.value("Download/Folder", GetDownloadFolder()).toString());
31+
SetSearchEngine(set.value("SearchEngine", GetSearchEngine()).toString());
32+
SetSearchRelaceString(set.value("SearchEngine/SearchEngine", GetSearchRelaceString()).toString());
33+
SetSearchEngineList(set.value("SearchEngine/List", GetSearchEngineList()).toStringList());
2534
return nRet;
2635
}
2736

@@ -32,6 +41,9 @@ int CParameterWebBrowser::OnSave(QSettings &set)
3241
set.setValue("Url/Tab", GetTabUrl());
3342
set.setValue("OpenPrevious/Enable", GetOpenPrevious());
3443
set.setValue("Download/Folder", GetDownloadFolder());
44+
set.setValue("SearchEngine", GetSearchEngine());
45+
set.setValue("SearchEngine/SearchEngine", GetSearchRelaceString());
46+
set.setValue("SearchEngine/List", GetSearchEngineList());
3547
return nRet;
3648
}
3749

@@ -93,3 +105,42 @@ int CParameterWebBrowser::SetDownloadFolder(const QString& folder)
93105
SetModified(true);
94106
return 0;
95107
}
108+
109+
QString CParameterWebBrowser::GetSearchEngine() const
110+
{
111+
return m_szSearchEngine;
112+
}
113+
114+
void CParameterWebBrowser::SetSearchEngine(const QString &newSearchEngine)
115+
{
116+
if(m_szSearchEngine == newSearchEngine)
117+
return;
118+
m_szSearchEngine = newSearchEngine;
119+
SetModified(true);
120+
}
121+
122+
QString CParameterWebBrowser::GetSearchRelaceString() const
123+
{
124+
return m_szSearchRelaceString;
125+
}
126+
127+
void CParameterWebBrowser::SetSearchRelaceString(const QString &newSearchRelaceString)
128+
{
129+
if(m_szSearchRelaceString == newSearchRelaceString)
130+
return;
131+
m_szSearchRelaceString = newSearchRelaceString;
132+
SetModified(true);
133+
}
134+
135+
QStringList CParameterWebBrowser::GetSearchEngineList() const
136+
{
137+
return m_SearchEngineList;
138+
}
139+
140+
void CParameterWebBrowser::SetSearchEngineList(const QStringList &newSearchEngineList)
141+
{
142+
if(m_SearchEngineList == newSearchEngineList)
143+
return;
144+
m_SearchEngineList = newSearchEngineList;
145+
SetModified(true);
146+
}

Plugins/WebBrowser/ParameterWebBrowser.h

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,21 @@ class CParameterWebBrowser : public CParameterOperate
3030
int SetDownloadFolder(const QString& folder);
3131
private:
3232
QString m_szDownloadFolder;
33-
33+
public:
34+
QString GetSearchEngine() const;
35+
void SetSearchEngine(const QString &newSearchEngine);
36+
private:
37+
QString m_szSearchEngine;
38+
public:
39+
QString GetSearchRelaceString() const;
40+
void SetSearchRelaceString(const QString &newSearchRelaceString);
41+
private:
42+
QString m_szSearchRelaceString;
43+
public:
44+
QStringList GetSearchEngineList() const;
45+
void SetSearchEngineList(const QStringList &newSearchEngineList);
46+
private:
47+
QStringList m_SearchEngineList;
3448
// CParameter interface
3549
protected:
3650
virtual int OnLoad(QSettings &set) override;

0 commit comments

Comments
 (0)