修正搜索功能的几个BUG

Merge pull request  from 枯叶蚊/search
This commit is contained in:
忘记、过去 2020-12-12 14:48:02 +08:00 committed by Gitee
commit 1a18a51d3c
3 changed files with 43 additions and 37 deletions

@ -1,20 +1,16 @@
#include "image_show.h"
#include <QScreen> // Qt5 不再建议使用 QDesktopWidget
#include <QHBoxLayout>
#include <QDebug>
#include <QPainter>
#include <DDialog>
#include <DBlurEffectWidget>
#include <DWidgetUtil>
#include <DApplication>
#include <QDesktopWidget>
DWIDGET_USE_NAMESPACE
image_show::image_show(QWidget *parent)
: QWidget(parent)
image_show::image_show(QWidget *parent) : QWidget(parent)
{
QHBoxLayout *layout = new QHBoxLayout;
QHBoxLayout *layout=new QHBoxLayout;
layout->addWidget(m_label);
setLayout(layout);
m_label->setText("layout");
@ -23,22 +19,16 @@ image_show::image_show(QWidget *parent)
void image_show::setImage(QPixmap image)
{
QImage screen0;
screen0 = image.toImage();
// QPainter painter(&screen0);
screen0=image.toImage();
// QPainter painter(&screen0);
QImage re_screen1;
QImage re_screen0 = screen0.scaled(QSize(400,300),Qt::KeepAspectRatio,Qt::SmoothTransformation);
// 获取主屏幕尺寸
desktop_w = DApplication::primaryScreen()->geometry().width();
desktop_h = DApplication::primaryScreen()->geometry().height();
if(screen0.width() > (desktop_w - 20) || screen0.height() > (desktop_h - 20))
{
re_screen1 = screen0.scaled(QSize(desktop_w - 20, desktop_h - 20), Qt::KeepAspectRatio, Qt::SmoothTransformation);
m_image = QPixmap::fromImage(re_screen1);
}
else
{
QImage re_screen0=screen0.scaled(QSize(400,300),Qt::KeepAspectRatio,Qt::SmoothTransformation);
desktop_w=DApplication::desktop()->width();
desktop_h=DApplication::desktop()->height();
if(screen0.width()>(desktop_w-20) || screen0.height()>(desktop_h-20)){
re_screen1=screen0.scaled(QSize(desktop_w-20,desktop_h-20),Qt::KeepAspectRatio,Qt::SmoothTransformation);
m_image=QPixmap::fromImage(re_screen1);
}else {
m_image=image;
}
@ -47,12 +37,10 @@ void image_show::setImage(QPixmap image)
void image_show::mousePressEvent(QMouseEvent *)
{
m_dialog->setimage(m_image);
m_dialog->showFullScreen();
m_dialog->setimage(m_image);
m_dialog->showFullScreen();
m_dialog->setFixedSize(desktop_w,desktop_h);
m_dialog->move(0,0);/*
moveToCenter(m_dialog);*/
// 识别主屏幕尺寸并设置 widget 大小
m_dialog->setFixedSize(desktop_w, desktop_h);
m_dialog->move(0,0);
// moveToCenter(m_dialog);
}

@ -73,7 +73,8 @@ Widget::Widget(DBlurEffectWidget *parent) :
connect(&appinfoLoadThread, &SpkAppInfoLoaderThread::finishAllLoading, this, &Widget::sltAppinfoFinish, Qt::ConnectionType::BlockingQueuedConnection);
// 搜索事件
connect(searchEdit,&DSearchEdit::editingFinished,this,[=](){
connect(searchEdit,&DSearchEdit::returnPressed ,this,[=](){
qDebug() << "触发了搜索,呜啦啦啦!";
QString searchtext=searchEdit->text();
if(searchtext!=""){
qDebug()<<searchEdit->text();
@ -458,6 +459,11 @@ void Widget::chooseLeftMenu(int index)
{
nowMenu=index;
// 菜单切换时,清除搜索栏的内容
if (!searchEdit->text().isEmpty()) {
searchEdit->clear();
}
updateUI();
if(QLocale::system().name() == "zh_CN")
left_list[index]->setStyleSheet("color:#FFFFFF;background-color:"+main_color.name()+";border-radius:8;border:0px;");
@ -484,6 +490,7 @@ void Widget::chooseLeftMenu(int index)
}else if (index==13) {
ui->stackedWidget->setCurrentIndex(1);
}
}
void Widget::setfoot(int h)
@ -732,7 +739,7 @@ void Widget::searchApp(QString text)
return;
// 关键字搜索处理
httpClient->get("http://search.deepinos.org.cn/appinfo/search")
httpClient->get("https://search.deepinos.org.cn/appinfo/search")
.header("content-type", "application/json")
.queryParam("keyword", text)
.onResponse([this](QByteArray result) {
@ -792,7 +799,6 @@ void Widget::displaySearchApp(QJsonArray array)
});
}
ui->applist_scrollarea->widget()->setLayout(applist_grid);
qDebug() << "显示结果了吗????喵喵喵";
}
void Widget::downloadIconsFinished(int arraysize)
@ -803,6 +809,7 @@ void Widget::downloadIconsFinished(int arraysize)
count = 0;
mutex.unlock();
}
ui->applist_scrollarea->widget()->setLayout(applist_grid);
}
void Widget::httpReadyRead()
@ -967,7 +974,17 @@ void Widget::on_pushButton_return_clicked()
// return;
// }
appinfoLoadThread.requestInterruption();
chooseLeftMenu(nowMenu);
// 检测是否是从搜索页面进入到应用详情页的,根据搜索栏是否有关键词判断
if (searchEdit->text().isEmpty()) {
ui->webEngineView->back();
ui->stackedWidget->setCurrentIndex(0);
} else {
ui->stackedWidget->setCurrentIndex(4);
}
// chooseLeftMenu(nowMenu);
// if(themeIsDark){
// QString darkurl=menuUrl[nowMenu].toString();
// QStringList tmp=darkurl.split("/");
@ -1172,7 +1189,8 @@ void Widget::opensetting()
void Widget::openUrl(QUrl u)
{
QString app=serverUrl + "store"+u.path()+"/app.json";
ui->webEngineView->setUrl(app);
// ui->webEngineView->setUrl(app);
emit ui->webEngineView->urlChanged(app);
}
void Widget::on_pushButton_website_clicked()

@ -365,11 +365,11 @@
<number>0</number>
</property>
<item>
<widget class="QWebEngineView" name="webEngineView">
<widget class="QWebEngineView" name="webEngineView" native="true">
<property name="contextMenuPolicy">
<enum>Qt::DefaultContextMenu</enum>
</property>
<property name="url">
<property name="url" stdset="0">
<url>
<string>about:blank</string>
</url>