mirror of
https://github.com/xiaoyifang/goldendict-ng.git
synced 2024-11-27 19:24:08 +00:00
1
This commit is contained in:
parent
43c982cf8a
commit
c6387df392
|
@ -85,7 +85,144 @@ QString ArticleView::scrollToFromDictionaryId( QString const & dictionaryId )
|
||||||
Q_ASSERT( !isScrollTo( dictionaryId ) );
|
Q_ASSERT( !isScrollTo( dictionaryId ) );
|
||||||
return scrollToPrefix + dictionaryId;
|
return scrollToPrefix + dictionaryId;
|
||||||
}
|
}
|
||||||
|
ArticleView::ArticleView( QWidget * parent,
|
||||||
|
ArticleNetworkAccessManager & nm,
|
||||||
|
AudioPlayerPtr const & audioPlayer_,
|
||||||
|
Config::Class const & cfg_ ):
|
||||||
|
QWidget( parent ),
|
||||||
|
articleNetMgr( nm ),
|
||||||
|
audioPlayer( audioPlayer_ ),
|
||||||
|
cfg( cfg_ )
|
||||||
|
{
|
||||||
|
// setup GUI
|
||||||
|
setupWebview();
|
||||||
|
}
|
||||||
|
void ArticleView::setupWebview()
|
||||||
|
{ // setup GUI
|
||||||
|
this->webview = new ArticleWebView( this );
|
||||||
|
this->ftsSearchPanel = new FtsSearchPanel( this );
|
||||||
|
this->searchPanel = new SearchPanel( this );
|
||||||
|
this->searchPanel->hide();
|
||||||
|
this->ftsSearchPanel->hide();
|
||||||
|
// Layout
|
||||||
|
auto * mainLayout = new QVBoxLayout( this );
|
||||||
|
mainLayout->addWidget( this->webview );
|
||||||
|
mainLayout->addWidget( this->ftsSearchPanel );
|
||||||
|
mainLayout->addWidget( this->searchPanel );
|
||||||
|
|
||||||
|
this->webview->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding );
|
||||||
|
this->ftsSearchPanel->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Minimum );
|
||||||
|
this->searchPanel->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Minimum );
|
||||||
|
|
||||||
|
mainLayout->setContentsMargins( 0, 0, 0, 0 );
|
||||||
|
|
||||||
|
// end UI setup
|
||||||
|
|
||||||
|
connect( this->searchPanel->previous, &QPushButton::clicked, this, &ArticleView::on_searchPrevious_clicked );
|
||||||
|
connect( this->searchPanel->next, &QPushButton::clicked, this, &ArticleView::on_searchNext_clicked );
|
||||||
|
connect( this->searchPanel->close, &QPushButton::clicked, this, &ArticleView::on_searchCloseButton_clicked );
|
||||||
|
connect( this->searchPanel->caseSensitive, &QCheckBox::toggled, this, &ArticleView::on_searchCaseSensitive_clicked );
|
||||||
|
connect( this->searchPanel->lineEdit, &QLineEdit::textEdited, this, &ArticleView::on_searchText_textEdited );
|
||||||
|
connect( this->searchPanel->lineEdit, &QLineEdit::returnPressed, this, &ArticleView::on_searchText_returnPressed );
|
||||||
|
connect( this->ftsSearchPanel->next, &QPushButton::clicked, this, &ArticleView::on_ftsSearchNext_clicked );
|
||||||
|
connect( this->ftsSearchPanel->previous, &QPushButton::clicked, this, &ArticleView::on_ftsSearchPrevious_clicked );
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
this->webview->setUp( const_cast< Config::Class * >( &this->cfg ) );
|
||||||
|
|
||||||
|
this->syncBackgroundColorWithCfgDarkReader();
|
||||||
|
|
||||||
|
this->goBackAction.setShortcut( QKeySequence( "Alt+Left" ) );
|
||||||
|
this->webview->addAction( &this->goBackAction );
|
||||||
|
connect( &this->goBackAction, &QAction::triggered, this, &ArticleView::back );
|
||||||
|
|
||||||
|
this->goForwardAction.setShortcut( QKeySequence( "Alt+Right" ) );
|
||||||
|
this->webview->addAction( &this->goForwardAction );
|
||||||
|
connect( &this->goForwardAction, &QAction::triggered, this, &ArticleView::forward );
|
||||||
|
|
||||||
|
this->webview->pageAction( QWebEnginePage::Copy )->setShortcut( QKeySequence::Copy );
|
||||||
|
this->webview->addAction( this->webview->pageAction( QWebEnginePage::Copy ) );
|
||||||
|
|
||||||
|
QAction * selectAll = this->webview->pageAction( QWebEnginePage::SelectAll );
|
||||||
|
selectAll->setShortcut( QKeySequence::SelectAll );
|
||||||
|
selectAll->setShortcutContext( Qt::WidgetWithChildrenShortcut );
|
||||||
|
this->webview->addAction( selectAll );
|
||||||
|
|
||||||
|
this->webview->setContextMenuPolicy( Qt::CustomContextMenu );
|
||||||
|
|
||||||
|
connect( this->webview, &QWebEngineView::loadFinished, this, &ArticleView::loadFinished );
|
||||||
|
|
||||||
|
connect( this->webview, &ArticleWebView::linkClicked, this, &ArticleView::linkClicked );
|
||||||
|
|
||||||
|
connect( this->webview->page(), &QWebEnginePage::titleChanged, this, &ArticleView::handleTitleChanged );
|
||||||
|
|
||||||
|
connect( this->webview, &QWidget::customContextMenuRequested, this, &ArticleView::contextMenuRequested );
|
||||||
|
|
||||||
|
connect( this->webview->page(), &QWebEnginePage::linkHovered, this, &ArticleView::linkHovered );
|
||||||
|
|
||||||
|
connect( this->webview, &ArticleWebView::doubleClicked, this, &ArticleView::doubleClicked );
|
||||||
|
|
||||||
|
this->pasteAction.setShortcut( QKeySequence::Paste );
|
||||||
|
this->webview->addAction( &this->pasteAction );
|
||||||
|
connect( &this->pasteAction, &QAction::triggered, this, &ArticleView::pasteTriggered );
|
||||||
|
|
||||||
|
this->articleUpAction.setShortcut( QKeySequence( "Alt+Up" ) );
|
||||||
|
this->webview->addAction( &this->articleUpAction );
|
||||||
|
connect( &this->articleUpAction, &QAction::triggered, this, &ArticleView::moveOneArticleUp );
|
||||||
|
|
||||||
|
this->articleDownAction.setShortcut( QKeySequence( "Alt+Down" ) );
|
||||||
|
this->webview->addAction( &this->articleDownAction );
|
||||||
|
connect( &this->articleDownAction, &QAction::triggered, this, &ArticleView::moveOneArticleDown );
|
||||||
|
|
||||||
|
this->selectCurrentArticleAction.setShortcut( QKeySequence( "Ctrl+Shift+A" ) );
|
||||||
|
this->selectCurrentArticleAction.setText( tr( "Select Current Article" ) );
|
||||||
|
this->webview->addAction( &this->selectCurrentArticleAction );
|
||||||
|
connect( &this->selectCurrentArticleAction, &QAction::triggered, this, &ArticleView::selectCurrentArticle );
|
||||||
|
|
||||||
|
this->copyAsTextAction.setShortcut( QKeySequence( "Ctrl+Shift+C" ) );
|
||||||
|
this->copyAsTextAction.setText( tr( "Copy as text" ) );
|
||||||
|
this->webview->addAction( &this->copyAsTextAction );
|
||||||
|
connect( &this->copyAsTextAction, &QAction::triggered, this, &ArticleView::copyAsText );
|
||||||
|
|
||||||
|
this->inspectAction.setShortcut( QKeySequence( Qt::Key_F12 ) );
|
||||||
|
this->inspectAction.setText( tr( "Inspect" ) );
|
||||||
|
this->webview->addAction( &this->inspectAction );
|
||||||
|
|
||||||
|
|
||||||
|
connect( &this->inspectAction, &QAction::triggered, this, &ArticleView::inspectElement );
|
||||||
|
|
||||||
|
this->webview->installEventFilter( this );
|
||||||
|
this->searchPanel->installEventFilter( this );
|
||||||
|
this->ftsSearchPanel->installEventFilter( this );
|
||||||
|
|
||||||
|
QWebEngineSettings * settings = this->webview->settings();
|
||||||
|
settings->setUnknownUrlSchemePolicy( QWebEngineSettings::UnknownUrlSchemePolicy::DisallowUnknownUrlSchemes );
|
||||||
|
#if ( QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) )
|
||||||
|
settings->defaultSettings()->setAttribute( QWebEngineSettings::LocalContentCanAccessRemoteUrls, true );
|
||||||
|
settings->defaultSettings()->setAttribute( QWebEngineSettings::LocalContentCanAccessFileUrls, true );
|
||||||
|
settings->defaultSettings()->setAttribute( QWebEngineSettings::ErrorPageEnabled, false );
|
||||||
|
settings->defaultSettings()->setAttribute( QWebEngineSettings::LinksIncludedInFocusChain, false );
|
||||||
|
settings->defaultSettings()->setAttribute( QWebEngineSettings::PlaybackRequiresUserGesture, false );
|
||||||
|
settings->defaultSettings()->setAttribute( QWebEngineSettings::JavascriptCanAccessClipboard, true );
|
||||||
|
settings->defaultSettings()->setAttribute( QWebEngineSettings::PrintElementBackgrounds, false );
|
||||||
|
#else
|
||||||
|
settings->setAttribute( QWebEngineSettings::LocalContentCanAccessRemoteUrls, true );
|
||||||
|
settings->setAttribute( QWebEngineSettings::LocalContentCanAccessFileUrls, true );
|
||||||
|
settings->setAttribute( QWebEngineSettings::ErrorPageEnabled, false );
|
||||||
|
settings->setAttribute( QWebEngineSettings::LinksIncludedInFocusChain, false );
|
||||||
|
settings->setAttribute( QWebEngineSettings::PlaybackRequiresUserGesture, false );
|
||||||
|
settings->setAttribute( QWebEngineSettings::JavascriptCanAccessClipboard, true );
|
||||||
|
settings->setAttribute( QWebEngineSettings::PrintElementBackgrounds, false );
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
this->expandOptionalParts = this->cfg.preferences.alwaysExpandOptionalParts;
|
||||||
|
#ifndef Q_OS_MACOS
|
||||||
|
this->webview->grabGesture( Gestures::GDPinchGestureType );
|
||||||
|
this->webview->grabGesture( Gestures::GDSwipeGestureType );
|
||||||
|
#endif
|
||||||
|
}
|
||||||
ArticleView::ArticleView( QWidget * parent,
|
ArticleView::ArticleView( QWidget * parent,
|
||||||
ArticleNetworkAccessManager & nm,
|
ArticleNetworkAccessManager & nm,
|
||||||
AudioPlayerPtr const & audioPlayer_,
|
AudioPlayerPtr const & audioPlayer_,
|
||||||
|
@ -115,133 +252,11 @@ ArticleView::ArticleView( QWidget * parent,
|
||||||
translateLine( translateLine_ )
|
translateLine( translateLine_ )
|
||||||
{
|
{
|
||||||
// setup GUI
|
// setup GUI
|
||||||
webview = new ArticleWebView( this );
|
setupWebview();
|
||||||
ftsSearchPanel = new FtsSearchPanel( this );
|
|
||||||
searchPanel = new SearchPanel( this );
|
|
||||||
searchPanel->hide();
|
|
||||||
ftsSearchPanel->hide();
|
|
||||||
// Layout
|
|
||||||
auto * mainLayout = new QVBoxLayout( this );
|
|
||||||
mainLayout->addWidget( webview );
|
|
||||||
mainLayout->addWidget( ftsSearchPanel );
|
|
||||||
mainLayout->addWidget( searchPanel );
|
|
||||||
|
|
||||||
webview->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding );
|
auto html = this->articleNetMgr.getHtml( ResourceType::UNTITLE );
|
||||||
ftsSearchPanel->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Minimum );
|
|
||||||
searchPanel->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Minimum );
|
|
||||||
|
|
||||||
mainLayout->setContentsMargins( 0, 0, 0, 0 );
|
|
||||||
|
|
||||||
// end UI setup
|
|
||||||
|
|
||||||
connect( searchPanel->previous, &QPushButton::clicked, this, &ArticleView::on_searchPrevious_clicked );
|
|
||||||
connect( searchPanel->next, &QPushButton::clicked, this, &ArticleView::on_searchNext_clicked );
|
|
||||||
connect( searchPanel->close, &QPushButton::clicked, this, &ArticleView::on_searchCloseButton_clicked );
|
|
||||||
connect( searchPanel->caseSensitive, &QCheckBox::toggled, this, &ArticleView::on_searchCaseSensitive_clicked );
|
|
||||||
connect( searchPanel->lineEdit, &QLineEdit::textEdited, this, &ArticleView::on_searchText_textEdited );
|
|
||||||
connect( searchPanel->lineEdit, &QLineEdit::returnPressed, this, &ArticleView::on_searchText_returnPressed );
|
|
||||||
connect( ftsSearchPanel->next, &QPushButton::clicked, this, &ArticleView::on_ftsSearchNext_clicked );
|
|
||||||
connect( ftsSearchPanel->previous, &QPushButton::clicked, this, &ArticleView::on_ftsSearchPrevious_clicked );
|
|
||||||
|
|
||||||
//
|
|
||||||
|
|
||||||
webview->setUp( const_cast< Config::Class * >( &cfg ) );
|
|
||||||
|
|
||||||
syncBackgroundColorWithCfgDarkReader();
|
|
||||||
|
|
||||||
goBackAction.setShortcut( QKeySequence( "Alt+Left" ) );
|
|
||||||
webview->addAction( &goBackAction );
|
|
||||||
connect( &goBackAction, &QAction::triggered, this, &ArticleView::back );
|
|
||||||
|
|
||||||
goForwardAction.setShortcut( QKeySequence( "Alt+Right" ) );
|
|
||||||
webview->addAction( &goForwardAction );
|
|
||||||
connect( &goForwardAction, &QAction::triggered, this, &ArticleView::forward );
|
|
||||||
|
|
||||||
webview->pageAction( QWebEnginePage::Copy )->setShortcut( QKeySequence::Copy );
|
|
||||||
webview->addAction( webview->pageAction( QWebEnginePage::Copy ) );
|
|
||||||
|
|
||||||
QAction * selectAll = webview->pageAction( QWebEnginePage::SelectAll );
|
|
||||||
selectAll->setShortcut( QKeySequence::SelectAll );
|
|
||||||
selectAll->setShortcutContext( Qt::WidgetWithChildrenShortcut );
|
|
||||||
webview->addAction( selectAll );
|
|
||||||
|
|
||||||
webview->setContextMenuPolicy( Qt::CustomContextMenu );
|
|
||||||
|
|
||||||
connect( webview, &QWebEngineView::loadFinished, this, &ArticleView::loadFinished );
|
|
||||||
|
|
||||||
connect( webview, &ArticleWebView::linkClicked, this, &ArticleView::linkClicked );
|
|
||||||
|
|
||||||
connect( webview->page(), &QWebEnginePage::titleChanged, this, &ArticleView::handleTitleChanged );
|
|
||||||
|
|
||||||
connect( webview, &QWidget::customContextMenuRequested, this, &ArticleView::contextMenuRequested );
|
|
||||||
|
|
||||||
connect( webview->page(), &QWebEnginePage::linkHovered, this, &ArticleView::linkHovered );
|
|
||||||
|
|
||||||
connect( webview, &ArticleWebView::doubleClicked, this, &ArticleView::doubleClicked );
|
|
||||||
|
|
||||||
pasteAction.setShortcut( QKeySequence::Paste );
|
|
||||||
webview->addAction( &pasteAction );
|
|
||||||
connect( &pasteAction, &QAction::triggered, this, &ArticleView::pasteTriggered );
|
|
||||||
|
|
||||||
articleUpAction.setShortcut( QKeySequence( "Alt+Up" ) );
|
|
||||||
webview->addAction( &articleUpAction );
|
|
||||||
connect( &articleUpAction, &QAction::triggered, this, &ArticleView::moveOneArticleUp );
|
|
||||||
|
|
||||||
articleDownAction.setShortcut( QKeySequence( "Alt+Down" ) );
|
|
||||||
webview->addAction( &articleDownAction );
|
|
||||||
connect( &articleDownAction, &QAction::triggered, this, &ArticleView::moveOneArticleDown );
|
|
||||||
|
|
||||||
selectCurrentArticleAction.setShortcut( QKeySequence( "Ctrl+Shift+A" ) );
|
|
||||||
selectCurrentArticleAction.setText( tr( "Select Current Article" ) );
|
|
||||||
webview->addAction( &selectCurrentArticleAction );
|
|
||||||
connect( &selectCurrentArticleAction, &QAction::triggered, this, &ArticleView::selectCurrentArticle );
|
|
||||||
|
|
||||||
copyAsTextAction.setShortcut( QKeySequence( "Ctrl+Shift+C" ) );
|
|
||||||
copyAsTextAction.setText( tr( "Copy as text" ) );
|
|
||||||
webview->addAction( ©AsTextAction );
|
|
||||||
connect( ©AsTextAction, &QAction::triggered, this, &ArticleView::copyAsText );
|
|
||||||
|
|
||||||
inspectAction.setShortcut( QKeySequence( Qt::Key_F12 ) );
|
|
||||||
inspectAction.setText( tr( "Inspect" ) );
|
|
||||||
webview->addAction( &inspectAction );
|
|
||||||
|
|
||||||
|
|
||||||
connect( &inspectAction, &QAction::triggered, this, &ArticleView::inspectElement );
|
|
||||||
|
|
||||||
webview->installEventFilter( this );
|
|
||||||
searchPanel->installEventFilter( this );
|
|
||||||
ftsSearchPanel->installEventFilter( this );
|
|
||||||
|
|
||||||
QWebEngineSettings * settings = webview->settings();
|
|
||||||
settings->setUnknownUrlSchemePolicy( QWebEngineSettings::UnknownUrlSchemePolicy::DisallowUnknownUrlSchemes );
|
|
||||||
#if ( QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) )
|
|
||||||
settings->defaultSettings()->setAttribute( QWebEngineSettings::LocalContentCanAccessRemoteUrls, true );
|
|
||||||
settings->defaultSettings()->setAttribute( QWebEngineSettings::LocalContentCanAccessFileUrls, true );
|
|
||||||
settings->defaultSettings()->setAttribute( QWebEngineSettings::ErrorPageEnabled, false );
|
|
||||||
settings->defaultSettings()->setAttribute( QWebEngineSettings::LinksIncludedInFocusChain, false );
|
|
||||||
settings->defaultSettings()->setAttribute( QWebEngineSettings::PlaybackRequiresUserGesture, false );
|
|
||||||
settings->defaultSettings()->setAttribute( QWebEngineSettings::JavascriptCanAccessClipboard, true );
|
|
||||||
settings->defaultSettings()->setAttribute( QWebEngineSettings::PrintElementBackgrounds, false );
|
|
||||||
#else
|
|
||||||
settings->setAttribute( QWebEngineSettings::LocalContentCanAccessRemoteUrls, true );
|
|
||||||
settings->setAttribute( QWebEngineSettings::LocalContentCanAccessFileUrls, true );
|
|
||||||
settings->setAttribute( QWebEngineSettings::ErrorPageEnabled, false );
|
|
||||||
settings->setAttribute( QWebEngineSettings::LinksIncludedInFocusChain, false );
|
|
||||||
settings->setAttribute( QWebEngineSettings::PlaybackRequiresUserGesture, false );
|
|
||||||
settings->setAttribute( QWebEngineSettings::JavascriptCanAccessClipboard, true );
|
|
||||||
settings->setAttribute( QWebEngineSettings::PrintElementBackgrounds, false );
|
|
||||||
#endif
|
|
||||||
|
|
||||||
auto html = articleNetMgr.getHtml( ResourceType::UNTITLE );
|
|
||||||
|
|
||||||
webview->setHtml( QString::fromStdString( html ) );
|
|
||||||
|
|
||||||
expandOptionalParts = cfg.preferences.alwaysExpandOptionalParts;
|
|
||||||
#ifndef Q_OS_MACOS
|
|
||||||
webview->grabGesture( Gestures::GDPinchGestureType );
|
|
||||||
webview->grabGesture( Gestures::GDSwipeGestureType );
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
this->webview->setHtml( QString::fromStdString( html ) );
|
||||||
connect( GlobalBroadcaster::instance(), &GlobalBroadcaster::dictionaryChanges, this, &ArticleView::setActiveDictIds );
|
connect( GlobalBroadcaster::instance(), &GlobalBroadcaster::dictionaryChanges, this, &ArticleView::setActiveDictIds );
|
||||||
connect( GlobalBroadcaster::instance(), &GlobalBroadcaster::dictionaryClear, this, &ArticleView::dictionaryClear );
|
connect( GlobalBroadcaster::instance(), &GlobalBroadcaster::dictionaryClear, this, &ArticleView::dictionaryClear );
|
||||||
|
|
||||||
|
@ -2165,6 +2180,11 @@ void ArticleView::clearContent()
|
||||||
|
|
||||||
webview->setHtml( QString::fromStdString( html ) );
|
webview->setHtml( QString::fromStdString( html ) );
|
||||||
}
|
}
|
||||||
|
void ArticleView::load( QString url )
|
||||||
|
{
|
||||||
|
webview->load( QUrl( url ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
ResourceToSaveHandler::ResourceToSaveHandler( ArticleView * view, QString fileName ):
|
ResourceToSaveHandler::ResourceToSaveHandler( ArticleView * view, QString fileName ):
|
||||||
QObject( view ),
|
QObject( view ),
|
||||||
|
|
|
@ -96,7 +96,10 @@ public:
|
||||||
QLineEdit const * translateLine,
|
QLineEdit const * translateLine,
|
||||||
QAction * dictionaryBarToggled = nullptr,
|
QAction * dictionaryBarToggled = nullptr,
|
||||||
unsigned currentGroupId = 0 );
|
unsigned currentGroupId = 0 );
|
||||||
|
explicit ArticleView( QWidget * parent,
|
||||||
|
ArticleNetworkAccessManager & nm,
|
||||||
|
AudioPlayerPtr const & audioPlayer_,
|
||||||
|
Config::Class const & cfg_ );
|
||||||
|
|
||||||
void setCurrentGroupId( unsigned currengGrgId );
|
void setCurrentGroupId( unsigned currengGrgId );
|
||||||
unsigned getCurrentGroupId();
|
unsigned getCurrentGroupId();
|
||||||
|
@ -109,7 +112,7 @@ public:
|
||||||
|
|
||||||
~ArticleView();
|
~ArticleView();
|
||||||
|
|
||||||
|
void load( QString url );
|
||||||
/// Returns "gdfrom-" + dictionaryId.
|
/// Returns "gdfrom-" + dictionaryId.
|
||||||
static QString scrollToFromDictionaryId( QString const & dictionaryId );
|
static QString scrollToFromDictionaryId( QString const & dictionaryId );
|
||||||
|
|
||||||
|
@ -412,6 +415,7 @@ private:
|
||||||
QString getMutedForGroup( unsigned group );
|
QString getMutedForGroup( unsigned group );
|
||||||
|
|
||||||
QStringList getMutedDictionaries( unsigned group );
|
QStringList getMutedDictionaries( unsigned group );
|
||||||
|
void setupWebview();
|
||||||
};
|
};
|
||||||
|
|
||||||
class ResourceToSaveHandler: public QObject
|
class ResourceToSaveHandler: public QObject
|
||||||
|
|
|
@ -4370,12 +4370,14 @@ void MainWindow::showFTSIndexingName( QString const & name )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::openWebsiteInNewTab( QString const & name, QString const & url )
|
void MainWindow::openWebsiteInNewTab( QString name, QString url )
|
||||||
{
|
{
|
||||||
QString escaped = Utils::escapeAmps( name );
|
QString escaped = Utils::escapeAmps( name );
|
||||||
|
|
||||||
auto view = new QWebEngineView( this );
|
auto * view = new ArticleView( this, articleNetMgr, audioPlayerFactory.player(), cfg );
|
||||||
view->load( QUrl( url ) );
|
|
||||||
|
connect( view, &ArticleView::inspectSignal, this, &MainWindow::inspectElement );
|
||||||
|
view->load( url );
|
||||||
int index = cfg.preferences.newTabsOpenAfterCurrentOne ? ui.tabWidget->currentIndex() + 1 : ui.tabWidget->count();
|
int index = cfg.preferences.newTabsOpenAfterCurrentOne ? ui.tabWidget->currentIndex() + 1 : ui.tabWidget->count();
|
||||||
|
|
||||||
ui.tabWidget->insertTab( index, view, escaped );
|
ui.tabWidget->insertTab( index, view, escaped );
|
||||||
|
|
|
@ -293,7 +293,7 @@ private slots:
|
||||||
void openDictionaryFolder( QString const & id );
|
void openDictionaryFolder( QString const & id );
|
||||||
|
|
||||||
void showFTSIndexingName( QString const & name );
|
void showFTSIndexingName( QString const & name );
|
||||||
void openWebsiteInNewTab( QString const & name, QString const & url );
|
void openWebsiteInNewTab( QString name, QString url );
|
||||||
|
|
||||||
void handleAddToFavoritesButton();
|
void handleAddToFavoritesButton();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue