!16 解决wayland下应用打开过程中阻塞开始菜单问题

Merge pull request !16 from lixueman/openkylin/yangtze
This commit is contained in:
zhaikangning 2022-09-02 08:20:29 +00:00 committed by Gitee
commit d2c9b3bab8
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
13 changed files with 23 additions and 71 deletions

6
debian/changelog vendored
View File

@ -1,3 +1,9 @@
ukui-menu (3.1.1-ok4~0831) yangtze; urgency=medium
* close-cd # 131373 【wayland】【软件更新器】点击打开软件更新器后开始菜单过6s左右才退出;
-- lixueman <lixueman@kylinos.cn> Wed, 31 Aug 2022 00:52:08 +0800
ukui-menu (3.1.1-ok4~0818) yangtze; urgency=medium ukui-menu (3.1.1-ok4~0818) yangtze; urgency=medium
* close-cd #125159 修改全屏下固定到收藏不生效问题 * close-cd #125159 修改全屏下固定到收藏不生效问题

View File

@ -2,6 +2,7 @@
#include "klistview.h" #include "klistview.h"
#include "utility.h" #include "utility.h"
#include <QScrollBar> #include <QScrollBar>
#include <QtConcurrent/QtConcurrent>
#include "rightclickmenu.h" #include "rightclickmenu.h"
KListView::KListView(QWidget *parent): KListView::KListView(QWidget *parent):
@ -42,11 +43,10 @@ void KListView::updateData(QStringList data)
void KListView::onClicked(QModelIndex index) void KListView::onClicked(QModelIndex index)
{ {
QVariant var = listmodel->data(index, Qt::DisplayRole); QVariant var = listmodel->data(index, Qt::DisplayRole);
if (var.isValid()) { if (var.isValid()) {
QString desktopfp = var.value<QString>(); QString desktopfp = var.value<QString>();
Q_EMIT sendHideMainWindowSignal(); Q_EMIT sendHideMainWindowSignal();
execApp(desktopfp); QtConcurrent::run(execApp, QString(desktopfp));
} }
} }

View File

@ -21,6 +21,7 @@
#include "utility.h" #include "utility.h"
#include <QDebug> #include <QDebug>
#include <QDesktopServices> #include <QDesktopServices>
#include <QtConcurrent/QtConcurrent>
ListView::ListView(QWidget *parent/*, int width, int height, int module*/): ListView::ListView(QWidget *parent/*, int width, int height, int module*/):
KListView(parent) KListView(parent)
@ -108,7 +109,7 @@ void ListView::onClicked(QModelIndex index)
Q_EMIT sendAppClassificationBtnClicked(); Q_EMIT sendAppClassificationBtnClicked();
} else { } else {
Q_EMIT sendHideMainWindowSignal(); Q_EMIT sendHideMainWindowSignal();
execApp(desktopfp); QtConcurrent::run(execApp, QString(desktopfp));
} }
} }
} }

View File

@ -22,6 +22,7 @@
#include <syslog.h> #include <syslog.h>
#include <QPushButton> #include <QPushButton>
#include <QGSettings> #include <QGSettings>
#include <QtConcurrent/QtConcurrent>
RightListView::RightListView(QWidget *parent): RightListView::RightListView(QWidget *parent):
KListView(parent) KListView(parent)
@ -128,12 +129,12 @@ void RightListView::keyPressEvent(QKeyEvent *e)
void RightListView::onClicked(QModelIndex index) void RightListView::onClicked(QModelIndex index)
{ {
Q_EMIT sendHideMainWindowSignal();
QVariant var = listmodel->data(index, Qt::DisplayRole); QVariant var = listmodel->data(index, Qt::DisplayRole);
QString desktopfp = var.value<QStringList>().at(0); QString desktopfp = var.value<QStringList>().at(0);
if (var.isValid()) { if (var.isValid()) {
QString desktopfp = var.value<QString>(); QString desktopfp = var.value<QString>();
execApp(desktopfp); Q_EMIT sendHideMainWindowSignal();
QtConcurrent::run(execApp, QString(desktopfp));
} }
} }

View File

@ -147,7 +147,6 @@ void FullCommonUseWidget::initAppListWidget()
m_listView->installEventFilter(this); m_listView->installEventFilter(this);
m_scrollAreaWidLayout->addWidget(m_listView); m_scrollAreaWidLayout->addWidget(m_listView);
m_listView->setFixedWidth(m_scrollAreaWid->width()); m_listView->setFixedWidth(m_scrollAreaWid->width());
connect(m_listView, &FullListView::sendItemClickedSignal, this, &FullCommonUseWidget::execApplication);
connect(m_listView, &FullListView::sendUpdateAppListSignal, this, &FullCommonUseWidget::updateListViewSlot); connect(m_listView, &FullListView::sendUpdateAppListSignal, this, &FullCommonUseWidget::updateListViewSlot);
connect(m_listView, &FullListView::sendCollectViewUpdate, this, &FullCommonUseWidget::sendCollectViewUpdate); connect(m_listView, &FullListView::sendCollectViewUpdate, this, &FullCommonUseWidget::sendCollectViewUpdate);
connect(m_listView, &FullListView::sendHideMainWindowSignal, this, &FullCommonUseWidget::sendHideMainWindowSignal); connect(m_listView, &FullListView::sendHideMainWindowSignal, this, &FullCommonUseWidget::sendHideMainWindowSignal);
@ -185,15 +184,6 @@ void FullCommonUseWidget::fillAppList()
resizeScrollAreaControls(); resizeScrollAreaControls();
} }
/**
*
*/
void FullCommonUseWidget::execApplication(QString desktopfp)
{
Q_EMIT sendHideMainWindowSignal();
execApp(desktopfp);
}
void FullCommonUseWidget::selectFirstItem() void FullCommonUseWidget::selectFirstItem()
{ {
m_listView->setCurrentIndex(m_listView->model()->index(0, 0)); m_listView->setCurrentIndex(m_listView->model()->index(0, 0));

View File

@ -102,11 +102,6 @@ protected:
bool eventFilter(QObject *watched, QEvent *event); bool eventFilter(QObject *watched, QEvent *event);
public Q_SLOTS: public Q_SLOTS:
/**
* @brief Open the application
* @param arg: Desktop file path
*/
void execApplication(QString desktopfp);
/** /**
* @brief Update the application list slot function * @brief Update the application list slot function
*/ */

View File

@ -208,21 +208,11 @@ void FullFunctionWidget::insertAppList(QStringList desktopfplist)
} }
listview->addData(m_data); listview->addData(m_data);
connect(listview, &FullListView::sendItemClickedSignal, this, &FullFunctionWidget::execApplication);
connect(listview, &FullListView::sendHideMainWindowSignal, this, &FullFunctionWidget::sendHideMainWindowSignal); connect(listview, &FullListView::sendHideMainWindowSignal, this, &FullFunctionWidget::sendHideMainWindowSignal);
connect(listview, &FullListView::sendUpdateAppListSignal, this, &FullFunctionWidget::sendUpdateCommonView); connect(listview, &FullListView::sendUpdateAppListSignal, this, &FullFunctionWidget::sendUpdateCommonView);
connect(listview, &FullListView::sendCollectViewUpdate, this, &FullFunctionWidget::sendCollectViewUpdate); connect(listview, &FullListView::sendCollectViewUpdate, this, &FullFunctionWidget::sendCollectViewUpdate);
} }
/**
*
*/
void FullFunctionWidget::execApplication(QString desktopfp)
{
Q_EMIT sendHideMainWindowSignal();
execApp(desktopfp);
}
void FullFunctionWidget::on_setAreaScrollBarValue(int value) void FullFunctionWidget::on_setAreaScrollBarValue(int value)
{ {
// m_scrollArea->verticalScrollBar()->setMaximum(maxmumValue); // m_scrollArea->verticalScrollBar()->setMaximum(maxmumValue);

View File

@ -142,11 +142,6 @@ protected:
bool eventFilter(QObject *watched, QEvent *event); bool eventFilter(QObject *watched, QEvent *event);
public Q_SLOTS: public Q_SLOTS:
/**
* @brief Open the application
* @param arg: Desktop file path
*/
void execApplication(QString desktopfp);
/** /**
* @brief Respond to button click * @brief Respond to button click
* @param btn: QButtonGroup button * @param btn: QButtonGroup button

View File

@ -206,7 +206,6 @@ void FullLetterWidget::fillAppList()
} }
listview->addData(m_data); listview->addData(m_data);
connect(listview, &FullListView::sendItemClickedSignal, this, &FullLetterWidget::execApplication);
connect(listview, &FullListView::sendHideMainWindowSignal, this, &FullLetterWidget::sendHideMainWindowSignal); connect(listview, &FullListView::sendHideMainWindowSignal, this, &FullLetterWidget::sendHideMainWindowSignal);
connect(listview, &FullListView::sendUpdateAppListSignal, this, &FullLetterWidget::sendUpdateCommonView); connect(listview, &FullListView::sendUpdateAppListSignal, this, &FullLetterWidget::sendUpdateCommonView);
connect(listview, &FullListView::sendCollectViewUpdate, this, &FullLetterWidget::sendCollectViewUpdate); connect(listview, &FullListView::sendCollectViewUpdate, this, &FullLetterWidget::sendCollectViewUpdate);
@ -216,15 +215,6 @@ void FullLetterWidget::fillAppList()
resizeScrollAreaControls(); resizeScrollAreaControls();
} }
/**
*
*/
void FullLetterWidget::execApplication(QString desktopfp)
{
Q_EMIT sendHideMainWindowSignal();
execApp(desktopfp);
}
void FullLetterWidget::on_setAreaScrollBarValue(int value) void FullLetterWidget::on_setAreaScrollBarValue(int value)
{ {
// m_scrollArea->verticalScrollBar()->setMaximum(maxmumValue); // m_scrollArea->verticalScrollBar()->setMaximum(maxmumValue);

View File

@ -147,11 +147,6 @@ public Q_SLOTS:
* @param btn: QButtonGroup button * @param btn: QButtonGroup button
*/ */
void btnGroupClickedSlot(QAbstractButton *btn); void btnGroupClickedSlot(QAbstractButton *btn);
/**
* @brief Open the application
* @param arg: Desktop file path
*/
void execApplication(QString desktopfp);
/** /**
* @brief Update application list slot function * @brief Update application list slot function
*/ */

View File

@ -136,7 +136,6 @@ void FullSearchResultWidget::initAppListWidget()
m_listView->installEventFilter(this); m_listView->installEventFilter(this);
m_scrollAreaWidLayout->addWidget(m_listView); m_scrollAreaWidLayout->addWidget(m_listView);
m_listView->setFixedWidth(m_scrollArea->width()); m_listView->setFixedWidth(m_scrollArea->width());
connect(m_listView, &FullListView::sendItemClickedSignal, this, &FullSearchResultWidget::execApplication);
connect(m_listView, &FullListView::sendHideMainWindowSignal, this, &FullSearchResultWidget::sendHideMainWindowSignal); connect(m_listView, &FullListView::sendHideMainWindowSignal, this, &FullSearchResultWidget::sendHideMainWindowSignal);
connect(m_listView, &FullListView::sendSetslidebar, this, &FullSearchResultWidget::onSetSlider); connect(m_listView, &FullListView::sendSetslidebar, this, &FullSearchResultWidget::onSetSlider);
connect(m_listView, &FullListView::sendCollectViewUpdate, this, &FullSearchResultWidget::sendCollectViewUpdate); connect(m_listView, &FullListView::sendCollectViewUpdate, this, &FullSearchResultWidget::sendCollectViewUpdate);
@ -148,14 +147,6 @@ void FullSearchResultWidget::fillAppList()
m_listView->addData(m_data); m_listView->addData(m_data);
resizeScrollAreaControls(); resizeScrollAreaControls();
} }
/**
*
*/
void FullSearchResultWidget::execApplication(QString desktopfp)
{
Q_EMIT sendHideMainWindowSignal();
execApp(desktopfp);
}
void FullSearchResultWidget::updateAppListView(QVector<QStringList> arg) void FullSearchResultWidget::updateAppListView(QVector<QStringList> arg)
{ {

View File

@ -90,11 +90,6 @@ protected:
bool eventFilter(QObject *watched, QEvent *event); bool eventFilter(QObject *watched, QEvent *event);
public Q_SLOTS: public Q_SLOTS:
/**
* @brief Open the application
* @param arg: Desktop file path
*/
void execApplication(QString desktopfp);
void selectFirstItemTab(); void selectFirstItemTab();

View File

@ -28,6 +28,7 @@
#include <QApplication> #include <QApplication>
#include <QDBusInterface> #include <QDBusInterface>
#include <QScreen> #include <QScreen>
#include <QtConcurrent/QtConcurrent>
#include "ukuimenuinterface.h" #include "ukuimenuinterface.h"
#define DATABASENAME QDir::homePath()+"/.config/ukui/"+"UkuiMenu.db" #define DATABASENAME QDir::homePath()+"/.config/ukui/"+"UkuiMenu.db"
@ -710,14 +711,16 @@ bool deleteAppRecord(QString desktopfn)
void execApp(QString desktopfp) void execApp(QString desktopfp)
{ {
QDBusReply<bool> result;
if (QDBusConnection::connectToBus(QDBusConnection::SessionBus, QString("com.kylin.AppManager")).isConnected()) {
QDBusInterface iface("com.kylin.AppManager", "/com/kylin/AppManager", "com.kylin.AppManager");
if (iface.isValid()) {
result = iface.call("LaunchApp", desktopfp);
myDebug() << "LaunchApp desktopFile:" << desktopfp;
}
}
QDBusInterface iface("com.kylin.AppManager", if (!result.isValid() || !result) {
"/com/kylin/AppManager",
"com.kylin.AppManager",
QDBusConnection::sessionBus());
QDBusReply<bool> res = iface.call("LaunchApp", desktopfp);
if (!res.isValid() || !res) {
UkuiMenuInterface interface; UkuiMenuInterface interface;