Skip to content

Commit 5aeb226

Browse files
committed
Plugins::WebBrowser: add custom command
1 parent 1164f4d commit 5aeb226

File tree

4 files changed

+34
-16
lines changed

4 files changed

+34
-16
lines changed

Plugins/WebBrowser/AddressCompleter.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,9 @@ void CAddressCompleter::onItemClicked(QListWidgetItem *item)
404404
QString keyword = url.mid(8);
405405
qDebug(log) << "emit searchRequested:" << keyword;
406406
emit searchRequested(keyword);
407-
} else {
407+
} if(url.startsWith("@")) {
408+
emit sigCommand(url);
409+
}else {
408410
qDebug(log) << "emit urlSelected:" << url;
409411
emit urlSelected(url);
410412
}

Plugins/WebBrowser/AddressCompleter.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ class CAddressCompleter : public QWidget
4848
signals:
4949
void urlSelected(const QString &url);
5050
void searchRequested(const QString &keyword);
51+
void sigCommand(const QString& szCmd);
5152

5253
protected:
5354
bool eventFilter(QObject *watched, QEvent *event) override;

Plugins/WebBrowser/FrmWebBrowser.cpp

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,17 @@ CFrmWebBrowser::CFrmWebBrowser(CParameterWebBrowser *pPara, bool bMenuBar, QWidg
181181
}
182182
});
183183
Q_ASSERT(check);
184+
check = connect(pAddressCompleter, &CAddressCompleter::sigCommand,
185+
this, [&](const QString& cmd) {
186+
if(cmd.startsWith("@setting")) {
187+
188+
} else if(cmd.startsWith("@history")) {
189+
190+
} else if(cmd.startsWith("@bookmark")) {
191+
slotBookmark();
192+
}
193+
});
194+
Q_ASSERT(check);
184195

185196
m_pAddBookmark = m_pToolBar->addAction(
186197
QIcon::fromTheme("user-bookmarks"),
@@ -773,21 +784,7 @@ int CFrmWebBrowser::InitMenu(QMenu *pMenu)
773784
pMenuBookmark->setIcon(QIcon::fromTheme("user-bookmarks"));
774785
pMenu->addMenu(pMenuBookmark);
775786
pMenuBookmark->addAction(m_pAddBookmark);
776-
pMenuBookmark->addAction(tr("Manage Bookmark "), this, [&]{
777-
CFrmBookmark* pBookmark = new CFrmBookmark(m_pPara);
778-
if(!pBookmark) return;
779-
pBookmark->setAttribute(Qt::WA_DeleteOnClose);
780-
connect(this, &CFrmWebBrowser::destroyed, pBookmark, &CFrmBookmark::close);
781-
connect(pBookmark, &CFrmBookmark::openUrlRequested, this, [&](const QString& url) {
782-
CFrmWebView* pWeb = CurrentView();
783-
if(!pWeb) {
784-
pWeb = qobject_cast<CFrmWebView*>(CreateWindow(QWebEnginePage::WebBrowserTab));
785-
}
786-
if(pWeb)
787-
pWeb->load(url);
788-
});
789-
RC_SHOW_WINDOW(pBookmark);
790-
});
787+
pMenuBookmark->addAction(tr("Manage Bookmark "), this, &CFrmWebBrowser::slotBookmark);
791788
pMenu->addAction(tr("History"), this, [&]() {
792789
CFrmHistory* pHistory = new CFrmHistory(m_pPara);
793790
if(!pHistory) return;
@@ -1300,3 +1297,20 @@ void CFrmWebBrowser::slotAddBookmark()
13001297
Q_ASSERT(check);
13011298
RC_SHOW_WINDOW(pAdd);
13021299
}
1300+
1301+
void CFrmWebBrowser::slotBookmark()
1302+
{
1303+
CFrmBookmark* pBookmark = new CFrmBookmark(m_pPara);
1304+
if(!pBookmark) return;
1305+
pBookmark->setAttribute(Qt::WA_DeleteOnClose);
1306+
connect(this, &CFrmWebBrowser::destroyed, pBookmark, &CFrmBookmark::close);
1307+
connect(pBookmark, &CFrmBookmark::openUrlRequested, this, [&](const QString& url) {
1308+
CFrmWebView* pWeb = CurrentView();
1309+
if(!pWeb) {
1310+
pWeb = qobject_cast<CFrmWebView*>(CreateWindow(QWebEnginePage::WebBrowserTab));
1311+
}
1312+
if(pWeb)
1313+
pWeb->load(url);
1314+
});
1315+
RC_SHOW_WINDOW(pBookmark);
1316+
}

Plugins/WebBrowser/FrmWebBrowser.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ private Q_SLOTS:
6969
void slotRecordTimeout();
7070

7171
void slotAddBookmark();
72+
void slotBookmark();
7273

7374
public Q_SLOTS:
7475
void slotFullScreen(bool bFullScreen);

0 commit comments

Comments
 (0)