1
mirror of https://invent.kde.org/network/falkon.git synced 2024-11-11 01:22:10 +01:00

Added Show source of selection feature. However, in Qt 4.8 beta it is

buggy, so it is disabled until it will be fixed
This commit is contained in:
nowrep 2011-07-19 22:04:08 +02:00
parent 65d0542dc0
commit b13e71162d
6 changed files with 26 additions and 11 deletions

View File

@ -911,9 +911,9 @@ void QupZilla::showPreferences()
prefs->show(); prefs->show();
} }
void QupZilla::showSource() void QupZilla::showSource(const QString &selectedHtml)
{ {
SourceViewer* source = new SourceViewer(weView()->page()); SourceViewer* source = new SourceViewer(weView()->page(), selectedHtml);
source->show(); source->show();
} }

View File

@ -127,7 +127,7 @@ public slots:
void loadActionUrl(); void loadActionUrl();
void bookmarkPage(); void bookmarkPage();
void loadAddress(QUrl url) { weView()->load(url); locationBar()->setText(url.toEncoded()); } void loadAddress(QUrl url) { weView()->load(url); locationBar()->setText(url.toEncoded()); }
void showSource(); void showSource(const QString& selectedHtml = "");
void showPageInfo(); void showPageInfo();
void receiveMessage(MainApplication::MessageType mes, bool state); void receiveMessage(MainApplication::MessageType mes, bool state);

View File

@ -20,8 +20,8 @@
#include "htmlhighlighter.h" #include "htmlhighlighter.h"
#include "sourceviewersearch.h" #include "sourceviewersearch.h"
SourceViewer::SourceViewer(QWebPage* page, QWidget* parent) : SourceViewer::SourceViewer(QWebPage* page, const QString &selectedHtml) :
QWidget(parent) QWidget(0)
,m_page(page) ,m_page(page)
{ {
setAttribute(Qt::WA_DeleteOnClose); setAttribute(Qt::WA_DeleteOnClose);
@ -94,6 +94,10 @@ SourceViewer::SourceViewer(QWebPage* page, QWidget* parent) :
const QRect screen = QApplication::desktop()->screenGeometry(); const QRect screen = QApplication::desktop()->screenGeometry();
const QRect &size = QWidget::geometry(); const QRect &size = QWidget::geometry();
QWidget::move( (screen.width()-size.width())/2, (screen.height()-size.height())/2 ); QWidget::move( (screen.width()-size.width())/2, (screen.height()-size.height())/2 );
//Highlight selectedHtml
if (!selectedHtml.isEmpty())
m_sourceEdit->find(selectedHtml, QTextDocument::FindWholeWords);
} }
void SourceViewer::save() void SourceViewer::save()
@ -117,7 +121,7 @@ void SourceViewer::save()
void SourceViewer::findText() void SourceViewer::findText()
{ {
if (m_layout->count() > 2) { if (m_layout->count() > 2) {
SourceViewerSearch* search= qobject_cast<SourceViewerSearch*>( m_layout->itemAt(1)->widget() ); SourceViewerSearch* search = qobject_cast<SourceViewerSearch*>( m_layout->itemAt(1)->widget() );
search->activateLineEdit(); search->activateLineEdit();
return; return;
} }

View File

@ -38,7 +38,7 @@ class SourceViewer : public QWidget
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit SourceViewer(QWebPage* page, QWidget* parent = 0); explicit SourceViewer(QWebPage* page, const QString &selectedHtml);
QTextEdit* sourceEdit() { return m_sourceEdit; } QTextEdit* sourceEdit() { return m_sourceEdit; }
signals: signals:

View File

@ -468,7 +468,7 @@ void WebView::contextMenuEvent(QContextMenuEvent* event)
menu->addAction(tr("Send link..."), this, SLOT(sendLinkByMail()))->setData(r.linkUrl()); menu->addAction(tr("Send link..."), this, SLOT(sendLinkByMail()))->setData(r.linkUrl());
menu->addAction(QIcon::fromTheme("edit-copy"), tr("&Copy link address"), this, SLOT(copyLinkToClipboard()))->setData(r.linkUrl()); menu->addAction(QIcon::fromTheme("edit-copy"), tr("&Copy link address"), this, SLOT(copyLinkToClipboard()))->setData(r.linkUrl());
menu->addSeparator(); menu->addSeparator();
if (!page()->selectedText().isEmpty()) if (!selectedText().isEmpty())
menu->addAction(pageAction(QWebPage::Copy)); menu->addAction(pageAction(QWebPage::Copy));
} }
@ -483,7 +483,7 @@ void WebView::contextMenuEvent(QContextMenuEvent* event)
menu->addAction(tr("Send image..."), this, SLOT(sendLinkByMail()))->setData(r.linkUrl()); menu->addAction(tr("Send image..."), this, SLOT(sendLinkByMail()))->setData(r.linkUrl());
menu->addSeparator(); menu->addSeparator();
//menu->addAction(tr("Block image"), this, SLOT(blockImage()))->setData(r.imageUrl().toString()); //menu->addAction(tr("Block image"), this, SLOT(blockImage()))->setData(r.imageUrl().toString());
if (!page()->selectedText().isEmpty()) if (!selectedText().isEmpty())
menu->addAction(pageAction(QWebPage::Copy)); menu->addAction(pageAction(QWebPage::Copy));
} }
@ -534,7 +534,7 @@ void WebView::contextMenuEvent(QContextMenuEvent* event)
menu->addAction(tr("Send page..."), this, SLOT(sendLinkByMail()))->setData(url()); menu->addAction(tr("Send page..."), this, SLOT(sendLinkByMail()))->setData(url());
menu->addSeparator(); menu->addSeparator();
menu->addAction(QIcon::fromTheme("edit-select-all"), tr("Select &all"), this, SLOT(selectAll())); menu->addAction(QIcon::fromTheme("edit-select-all"), tr("Select &all"), this, SLOT(selectAll()));
if (!page()->selectedText().isEmpty()) if (!selectedText().isEmpty())
menu->addAction(pageAction(QWebPage::Copy)); menu->addAction(pageAction(QWebPage::Copy));
menu->addSeparator(); menu->addSeparator();
@ -545,13 +545,18 @@ void WebView::contextMenuEvent(QContextMenuEvent* event)
mApp->plugins()->populateWebViewMenu(menu, this, r); mApp->plugins()->populateWebViewMenu(menu, this, r);
if (!page()->selectedText().isEmpty()) { if (!selectedText().isEmpty()) {
menu->addSeparator(); menu->addSeparator();
QString selectedText = page()->selectedText(); QString selectedText = page()->selectedText();
selectedText.truncate(20); selectedText.truncate(20);
menu->addAction(QIcon(":icons/menu/google.png"), tr("Search \"%1 ..\" on &Google").arg(selectedText), this, SLOT(searchOnGoogle()))->setData(page()->selectedText()); menu->addAction(QIcon(":icons/menu/google.png"), tr("Search \"%1 ..\" on &Google").arg(selectedText), this, SLOT(searchOnGoogle()))->setData(page()->selectedText());
} }
#if QT_VERSION == 0x040800
// if (!selectedHtml().isEmpty())
// menu->addAction(tr("Show source of selection"), this, SLOT(showSourceOfSelection()));
#endif
if (!menu->isEmpty()) { if (!menu->isEmpty()) {
//Prevent choosing first option with double rightclick //Prevent choosing first option with double rightclick
QPoint pos = QCursor::pos(); QPoint pos = QCursor::pos();
@ -635,6 +640,11 @@ void WebView::showSource()
p_QupZilla->showSource(); p_QupZilla->showSource();
} }
void WebView::showSourceOfSelection()
{
p_QupZilla->showSource(selectedHtml());
}
void WebView::downloadLinkToDisk() void WebView::downloadLinkToDisk()
{ {
if (QAction* action = qobject_cast<QAction*>(sender())) { if (QAction* action = qobject_cast<QAction*>(sender())) {

View File

@ -101,6 +101,7 @@ private slots:
void sendLinkByMail(); void sendLinkByMail();
void bookmarkLink(); void bookmarkLink();
void showSource(); void showSource();
void showSourceOfSelection();
void showSiteInfo(); void showSiteInfo();
void getFocus(const QUrl &urla); void getFocus(const QUrl &urla);
void showInspector(); void showInspector();