goldendict-ng/article_inspect.cpp

50 lines
1.4 KiB
C++
Raw Normal View History

#include "article_inspect.h"
#include <QCloseEvent>
2022-03-26 13:31:04 +00:00
#if (QT_VERSION > QT_VERSION_CHECK(6,0,0))
#include <QWebEngineContextMenuRequest>
2022-03-26 13:31:04 +00:00
#endif
ArticleInspector::ArticleInspector( QWidget * parent ) : QWidget( parent, Qt::WindowType::Window )
{
setWindowTitle(tr("Inspect"));
setAttribute( Qt::WidgetAttribute::WA_DeleteOnClose, false );
QVBoxLayout * v = new QVBoxLayout( this );
v->setSpacing( 0 );
v->setContentsMargins( 0, 0, 0, 0 );
viewContainer = new QWebEngineView( this );
v->addWidget( viewContainer );
resize(800,600);
}
2022-08-08 12:48:46 +00:00
void ArticleInspector::setInspectPage( QWebEnginePage * page )
{
2022-08-18 14:30:04 +00:00
qDebug() << page->lifecycleState();
2022-08-04 13:11:13 +00:00
viewContainer->page()->setInspectedPage( page );
2022-08-10 11:42:52 +00:00
#if( QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) )
2022-08-04 13:11:13 +00:00
page->triggerAction( QWebEnginePage::InspectElement );
#else
// without this line, application will crash on qt6.2 ,see https://bugreports.qt.io/browse/QTBUG-101724
// and seems to hangup forever on qt6.3.0 ,so the best solution for now is to comment out the following lines.
2022-08-10 11:42:52 +00:00
static bool first{ true };
if( first )
{
qDebug()<<"inspector,phase first time";
first = false;
}
else
{
qDebug()<<"inspector,phase not first time";
page->triggerAction( QWebEnginePage::InspectElement );
}
#endif
raise();
show();
2022-08-18 14:30:04 +00:00
qDebug() << "inspector finished";
}
void ArticleInspector::closeEvent( QCloseEvent * )
{
viewContainer->page()->setInspectedPage(nullptr);
}