2022-03-04 15:25:11 +00:00
|
|
|
#include "article_inspect.h"
|
|
|
|
#include <QCloseEvent>
|
2022-03-26 13:31:04 +00:00
|
|
|
#if (QT_VERSION > QT_VERSION_CHECK(6,0,0))
|
2022-03-25 15:35:39 +00:00
|
|
|
#include <QWebEngineContextMenuRequest>
|
2022-03-26 13:31:04 +00:00
|
|
|
#endif
|
2022-06-23 12:05:59 +00:00
|
|
|
ArticleInspector::ArticleInspector( QWidget * parent ) : QWidget( parent, Qt::WindowType::Window )
|
2022-03-04 15:25:11 +00:00
|
|
|
{
|
2022-05-20 09:18:38 +00:00
|
|
|
setWindowTitle(tr("Inspect"));
|
2022-03-04 15:25:11 +00:00
|
|
|
setAttribute( Qt::WidgetAttribute::WA_DeleteOnClose, false );
|
|
|
|
QVBoxLayout * v = new QVBoxLayout( this );
|
|
|
|
v->setSpacing( 0 );
|
|
|
|
v->setContentsMargins( 0, 0, 0, 0 );
|
2022-05-28 05:11:08 +00:00
|
|
|
viewContainer = new QWebEngineView( this );
|
|
|
|
v->addWidget( viewContainer );
|
2022-05-20 09:18:38 +00:00
|
|
|
|
2022-08-21 05:59:30 +00:00
|
|
|
setInspectPage( nullptr );
|
2022-05-20 09:18:38 +00:00
|
|
|
resize(800,600);
|
2022-03-04 15:25:11 +00:00
|
|
|
}
|
|
|
|
|
2022-08-08 12:48:46 +00:00
|
|
|
void ArticleInspector::setInspectPage( QWebEnginePage * page )
|
2022-03-04 15:25:11 +00:00
|
|
|
{
|
2022-08-04 13:11:13 +00:00
|
|
|
viewContainer->page()->setInspectedPage( page );
|
2022-08-21 05:59:30 +00:00
|
|
|
|
|
|
|
if( !page )
|
|
|
|
{
|
|
|
|
qDebug() << "set inspected page to nullptr";
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
qDebug() << page->lifecycleState();
|
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
|
2022-03-25 15:35:39 +00:00
|
|
|
// without this line, application will crash on qt6.2 ,see https://bugreports.qt.io/browse/QTBUG-101724
|
2022-06-28 12:57:33 +00:00
|
|
|
// 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 );
|
|
|
|
}
|
2022-06-15 00:12:27 +00:00
|
|
|
#endif
|
|
|
|
|
2022-03-04 15:25:11 +00:00
|
|
|
raise();
|
|
|
|
show();
|
2022-08-18 14:30:04 +00:00
|
|
|
qDebug() << "inspector finished";
|
2022-03-04 15:25:11 +00:00
|
|
|
}
|
|
|
|
|
2022-03-25 15:35:39 +00:00
|
|
|
void ArticleInspector::closeEvent( QCloseEvent * )
|
2022-03-04 15:25:11 +00:00
|
|
|
{
|
2022-05-28 05:11:08 +00:00
|
|
|
viewContainer->page()->setInspectedPage(nullptr);
|
2022-03-04 15:25:11 +00:00
|
|
|
}
|