feat: 标题栏菜单添加清除缓存按钮

特殊情况下会出现打开页面与预期不符的情况,需要清除缓存文件夹

Log: 标题栏菜单添加清除缓存按钮;整理代码;重新启用自定义关于窗口
This commit is contained in:
ut003880
2022-01-05 19:02:27 +08:00
parent e084d58377
commit 1db592eb50
9 changed files with 367 additions and 283 deletions

View File

@@ -2,21 +2,19 @@
Widget::Widget(QString szUrl, QWidget *parent)
: QWidget(parent)
, m_webEngineView(new WebEngineView)
, m_webEngineView(new WebEngineView(this))
, m_spinner(new DSpinner(this))
, mainLayout(new QStackedLayout(this))
, m_szUrl(szUrl)
, m_spinner(new DSpinner)
, main(new QHBoxLayout)
{
m_spinner->setFixedSize(96, 96);
setLayout(main);
m_webEngineView->setObjectName(QStringLiteral("webEngineView"));
m_webEngineView->setEnabled(true);
m_webEngineView->setAutoFillBackground(false);
m_webEngineView->setZoomFactor(1.0);
QWebEnginePage *page = new QWebEnginePage;
QWebEnginePage *page = new QWebEnginePage(m_webEngineView);
m_webEngineView->setPage(page);
m_webEngineView->setUrl(QUrl(nullptr));
@@ -24,12 +22,26 @@ Widget::Widget(QString szUrl, QWidget *parent)
m_webEngineView->setUrl(QUrl(m_szUrl));
}
QWidget *spinnerWidget = new QWidget(this);
QHBoxLayout *spinnerLayout = new QHBoxLayout(spinnerWidget);
spinnerLayout->setMargin(0);
spinnerLayout->setSpacing(0);
spinnerLayout->setAlignment(Qt::AlignCenter);
spinnerLayout->addStretch();
spinnerLayout->addWidget(m_spinner);
spinnerLayout->addStretch();
mainLayout->addWidget(spinnerWidget);
mainLayout->addWidget(m_webEngineView);
connect(m_webEngineView, &QWebEngineView::loadStarted, this, &Widget::on_loadStarted);
connect(m_webEngineView, &QWebEngineView::loadFinished, this, &Widget::on_loadFinished);
}
Widget::~Widget()
{
delete m_webEngineView;
delete m_spinner;
}
QWebEnginePage *Widget::getPage()
@@ -52,29 +64,14 @@ void Widget::refresh()
m_webEngineView->reload();
}
void Widget::clearLayout(QLayout *layout)
{
QLayoutItem *item;
while ((item = layout->takeAt(0)) != nullptr) {
delete item;
}
}
void Widget::on_loadStarted()
{
clearLayout(main);
main->addStretch();
main->addWidget(m_spinner);
main->addStretch();
mainLayout->setCurrentIndex(0);
m_spinner->start();
}
void Widget::on_loadFinished()
{
m_spinner->stop();
clearLayout(main);
main->addWidget(m_webEngineView);
mainLayout->setCurrentIndex(1);
}