From 8223162ab4dc41525cd054a70eb0eabe8723b489 Mon Sep 17 00:00:00 2001 From: huayadong Date: Thu, 4 Aug 2022 02:57:50 +0800 Subject: [PATCH] Fixed application icon dragging problem --- ...ed-application-icon-dragging-problem.patch | 1038 +++++++++++++++++ ukui-menu.spec | 7 +- 2 files changed, 1044 insertions(+), 1 deletion(-) create mode 100644 0001-Fixed-application-icon-dragging-problem.patch diff --git a/0001-Fixed-application-icon-dragging-problem.patch b/0001-Fixed-application-icon-dragging-problem.patch new file mode 100644 index 0000000..a68e839 --- /dev/null +++ b/0001-Fixed-application-icon-dragging-problem.patch @@ -0,0 +1,1038 @@ +From e1ac89bb3883bef193b5544f9152096a11d17849 Mon Sep 17 00:00:00 2001 +From: liuhao-startmenu +Date: Fri, 3 Apr 2020 18:08:57 +0800 +Subject: [PATCH] Fixed application icon dragging problem + +--- + src/CommonUseWidget/commonusewidget.cpp | 61 +++++++++- + src/CommonUseWidget/commonusewidget.h | 14 ++- + src/CommonUseWidget/fullcommonusewidget.cpp | 58 +++++++++- + src/CommonUseWidget/fullcommonusewidget.h | 14 ++- + src/FunctionWidget/fullfunctionwidget.cpp | 17 +-- + src/FunctionWidget/fullfunctionwidget.h | 2 +- + src/FunctionWidget/functionwidget.cpp | 2 +- + src/FunctionWidget/functionwidget.h | 4 +- + src/LetterWidget/fullletterwidget.cpp | 6 +- + src/LetterWidget/fullletterwidget.h | 2 +- + src/LetterWidget/letterwidget.cpp | 2 +- + src/LetterWidget/letterwidget.h | 4 +- + src/MainViewWidget/mainviewwidget.cpp | 72 ++++++++---- + src/RightClickMenu/rightclickmenu.cpp | 29 ++--- + src/RightClickMenu/rightclickmenu.h | 108 +++++++++--------- + .../fullsearchresultwidget.cpp | 2 +- + .../fullsearchresultwidget.h | 3 +- + src/SearchResultWidget/searchresultwidget.cpp | 2 +- + src/SearchResultWidget/searchresultwidget.h | 2 +- + src/UtilityFunction/fulllistview.cpp | 18 +-- + src/UtilityFunction/fulllistview.h | 8 +- + src/UtilityFunction/listview.cpp | 15 ++- + src/UtilityFunction/listview.h | 10 +- + 23 files changed, 300 insertions(+), 155 deletions(-) + +diff --git a/src/CommonUseWidget/commonusewidget.cpp b/src/CommonUseWidget/commonusewidget.cpp +index b216247..d932ada 100644 +--- a/src/CommonUseWidget/commonusewidget.cpp ++++ b/src/CommonUseWidget/commonusewidget.cpp +@@ -69,9 +69,10 @@ void CommonUseWidget::initAppListWidget() + listview=new ListView(this,this->width()-4,this->height(),0); + mainLayout->addWidget(listview); + connect(listview,SIGNAL(sendItemClickedSignal(QStringList)),this,SLOT(execApplication(QStringList))); +- connect(listview,SIGNAL(sendUpdateAppListSignal()),this,SIGNAL(sendUpdateAppListSignal())); ++ connect(listview,SIGNAL(sendUpdateAppListSignal(QString,int)),this,SIGNAL(sendUpdateAppListSignal(QString,int))); ++ connect(listview,SIGNAL(removeListItemSignal(QString)),this,SIGNAL(removeListItemSignal(QString))); ++ connect(listview,SIGNAL(removeListAllItemSignal()),this,SIGNAL(removeListAllItemSignal())); + connect(listview,SIGNAL(sendHideMainWindowSignal()),this,SIGNAL(sendHideMainWindowSignal())); +- + } + + /** +@@ -103,17 +104,67 @@ void CommonUseWidget::execApplication(QStringList arg) + /** + * 更新应用列表槽函数 + */ +-void CommonUseWidget::updateListViewSlot() ++void CommonUseWidget::updateListViewSlot(QString desktopfp, int type) ++{ ++ for(int i=0;imodel()->rowCount();i++) ++ { ++ QVariant var=listview->model()->index(i,0).data(Qt::DisplayRole); ++ QString path=var.value().at(0); ++ if(QString::compare(path,desktopfp)==0) ++ { ++ listview->model()->removeRow(i); ++ break; ++ } ++ } ++ setting->beginGroup("lockapplication"); ++ QStandardItem* item=new QStandardItem; ++ item->setData(QVariant::fromValue(QStringList()<(listview->model()); ++ if(type==0) ++ listmodel->insertRow(setting->allKeys().size()-1,item); ++ else ++ listmodel->insertRow(setting->allKeys().size(),item); ++ setting->endGroup(); ++} ++ ++void CommonUseWidget::updateListViewAllSlot() + { + getCommonUseAppList(); + listview->updateData(data); + } + ++void CommonUseWidget::removeListItemSlot(QString desktopfp) ++{ ++ for(int i=0;imodel()->rowCount();i++) ++ { ++ QVariant var=listview->model()->index(i,0).data(Qt::DisplayRole); ++ QString path=var.value().at(0); ++ if(QString::compare(path,desktopfp)==0) ++ { ++ listview->model()->removeRow(i); ++ break; ++ } ++ } ++} ++ ++void CommonUseWidget::removeListAllItemSlot() ++{ ++ setting->beginGroup("lockapplication"); ++ for(int i=listview->model()->rowCount()-1;i>=0;i--) ++ { ++ QVariant var=listview->model()->index(i,0).data(Qt::DisplayRole); ++ QString desktopfp=var.value().at(0); ++ QFileInfo fileInfo(desktopfp); ++ QString desktopfn=fileInfo.fileName(); ++ if(!setting->contains(desktopfn)) ++ listview->model()->removeRow(i); ++ } ++ setting->endGroup(); ++} ++ + void CommonUseWidget::getCommonUseAppList() + { +-// QStringList lockdesktopfnList; + QStringList desktopfnList; +-// lockdesktopfnList.clear(); + desktopfnList.clear(); + setting->beginGroup("lockapplication"); + QStringList lockdesktopfnList=setting->allKeys(); +diff --git a/src/CommonUseWidget/commonusewidget.h b/src/CommonUseWidget/commonusewidget.h +index 84dedcd..ae4a6f2 100644 +--- a/src/CommonUseWidget/commonusewidget.h ++++ b/src/CommonUseWidget/commonusewidget.h +@@ -68,12 +68,22 @@ protected: + void getCommonUseAppList();//获取常用应用列表 + + private Q_SLOTS: +- void updateListViewSlot();//更新应用列表槽函数 ++ /** ++ * @brief 更新单个item槽函数 ++ * @param desktopfp为desktop文件路径 ++ * @param type为0时表示固定,为1时表示取消固定 ++ */ ++ void updateListViewSlot(QString desktopfp,int type); + void execApplication(QStringList arg);//执行应用程序 ++ void removeListItemSlot(QString desktopfp);//删除单个item ++ void removeListAllItemSlot();//删除所有非固定item ++ void updateListViewAllSlot();//更新应用列表槽函数 + + Q_SIGNALS: + void sendHideMainWindowSignal();//向MainViewWidget发送隐藏主窗口信号 +- void sendUpdateAppListSignal();//向FullCommonUseWidget发送更新应用列表信号 ++ void sendUpdateAppListSignal(QString desktopfp,int type);//向FullCommonUseWidget发送更新应用列表信号 ++ void removeListItemSignal(QString desktopfp); ++ void removeListAllItemSignal(); + }; + + #endif // COMMONUSEWIDGET_H +diff --git a/src/CommonUseWidget/fullcommonusewidget.cpp b/src/CommonUseWidget/fullcommonusewidget.cpp +index d6bb171..a56316e 100644 +--- a/src/CommonUseWidget/fullcommonusewidget.cpp ++++ b/src/CommonUseWidget/fullcommonusewidget.cpp +@@ -63,7 +63,9 @@ void FullCommonUseWidget::initAppListWidget() + listview=new FullListView(this,0); + mainLayout->addWidget(listview); + connect(listview,SIGNAL(sendItemClickedSignal(QString)),this,SLOT(execApplication(QString))); +- connect(listview,SIGNAL(sendUpdateAppListSignal()),this,SIGNAL(sendUpdateAppListSignal())); ++ connect(listview,SIGNAL(sendUpdateAppListSignal(QString,int)),this,SIGNAL(sendUpdateAppListSignal(QString,int))); ++ connect(listview,SIGNAL(removeListItemSignal(QString)),this,SIGNAL(removeListItemSignal(QString))); ++ connect(listview,SIGNAL(removeListAllItemSignal()),this,SIGNAL(removeListAllItemSignal())); + connect(listview,SIGNAL(sendHideMainWindowSignal()),this,SIGNAL(sendHideMainWindowSignal())); + } + +@@ -92,12 +94,64 @@ void FullCommonUseWidget::execApplication(QString appname) + /** + * 更新应用列表 + */ +-void FullCommonUseWidget::updateListViewSlot() ++void FullCommonUseWidget::updateListViewSlot(QString desktopfp, int type) ++{ ++ for(int i=0;imodel()->rowCount();i++) ++ { ++ QVariant var=listview->model()->index(i,0).data(Qt::DisplayRole); ++ QString path=var.value(); ++ if(QString::compare(path,desktopfp)==0) ++ { ++ listview->model()->removeRow(i); ++ break; ++ } ++ } ++ setting->beginGroup("lockapplication"); ++ QStandardItem* item=new QStandardItem; ++ item->setData(QVariant::fromValue(desktopfp),Qt::DisplayRole); ++ QStandardItemModel* listmodel=qobject_cast(listview->model()); ++ if(type==0) ++ listmodel->insertRow(setting->allKeys().size()-1,item); ++ else ++ listmodel->insertRow(setting->allKeys().size(),item); ++ setting->endGroup(); ++} ++ ++void FullCommonUseWidget::updateListViewAllSlot() + { + getCommonUseAppList(); + listview->updateData(data); + } + ++void FullCommonUseWidget::removeListItemSlot(QString desktopfp) ++{ ++ for(int i=0;imodel()->rowCount();i++) ++ { ++ QVariant var=listview->model()->index(i,0).data(Qt::DisplayRole); ++ QString path=var.value(); ++ if(QString::compare(path,desktopfp)==0) ++ { ++ listview->model()->removeRow(i); ++ break; ++ } ++ } ++} ++ ++void FullCommonUseWidget::removeListAllItemSlot() ++{ ++ setting->beginGroup("lockapplication"); ++ for(int i=listview->model()->rowCount()-1;i>=0;i--) ++ { ++ QVariant var=listview->model()->index(i,0).data(Qt::DisplayRole); ++ QString desktopfp=var.value(); ++ QFileInfo fileInfo(desktopfp); ++ QString desktopfn=fileInfo.fileName(); ++ if(!setting->contains(desktopfn)) ++ listview->model()->removeRow(i); ++ } ++ setting->endGroup(); ++} ++ + void FullCommonUseWidget::getCommonUseAppList() + { + QStringList desktopfnList; +diff --git a/src/CommonUseWidget/fullcommonusewidget.h b/src/CommonUseWidget/fullcommonusewidget.h +index c5a7d4e..9b7627c 100644 +--- a/src/CommonUseWidget/fullcommonusewidget.h ++++ b/src/CommonUseWidget/fullcommonusewidget.h +@@ -70,12 +70,22 @@ protected: + void getCommonUseAppList();//获取常用应用列表 + + private Q_SLOTS: +- void updateListViewSlot();//更新应用列表槽函数 ++ /** ++ * @brief 更新单个item槽函数 ++ * @param desktopfp为desktop文件路径 ++ * @param type为0时表示固定,为1时表示取消固定 ++ */ ++ void updateListViewSlot(QString desktopfp,int type); + void execApplication(QString appname);//执行应用程序 ++ void removeListItemSlot(QString desktopfp);//删除单个item ++ void removeListAllItemSlot();//删除所有非固定item ++ void updateListViewAllSlot();//更新应用列表槽函数 + + Q_SIGNALS: +- void sendUpdateAppListSignal();//向CommonUseWidget发送更新应用列表信号 ++ void sendUpdateAppListSignal(QString desktopfp,int type);//向CommonUseWidget发送更新应用列表信号 + void sendHideMainWindowSignal();//向MainViewWidget发送隐藏主窗口信号 ++ void removeListItemSignal(QString desktopfp); ++ void removeListAllItemSignal(); + }; + + #endif // FULLCOMMONUSEWIDGET_H +diff --git a/src/FunctionWidget/fullfunctionwidget.cpp b/src/FunctionWidget/fullfunctionwidget.cpp +index 8c0e29d..18f9c0f 100644 +--- a/src/FunctionWidget/fullfunctionwidget.cpp ++++ b/src/FunctionWidget/fullfunctionwidget.cpp +@@ -259,7 +259,7 @@ void FullFunctionWidget::insertAppList(QStringList appnamelist) + } + listview->addData(data); + connect(listview,SIGNAL(sendItemClickedSignal(QString)),this,SLOT(execApplication(QString))); +- connect(listview,SIGNAL(sendFixedOrUnfixedSignal()),this,SIGNAL(sendUpdateAppListSignal())); ++ connect(listview,SIGNAL(sendFixedOrUnfixedSignal(QString,int)),this,SIGNAL(sendUpdateAppListSignal(QString,int))); + connect(listview,SIGNAL(sendHideMainWindowSignal()),this,SIGNAL(sendHideMainWindowSignal())); + } + +@@ -307,18 +307,6 @@ void FullFunctionWidget::updateAppListView() + delete wid; + delete child; + } +- +-// for(int i=iconlistscrollareawidLayout->count()-2;i>0;i--) +-// { +-// if((child = iconlistscrollareawidLayout->takeAt(i)) != 0) +-// { +-// QWidget* wid=child->widget(); +-// iconlistscrollareawidLayout->removeWidget(wid); +-// wid->setParent(nullptr); +-// delete wid; +-// delete child; +-// } +-// } + initIconListScrollArea(); + } + +@@ -444,8 +432,8 @@ void FullFunctionWidget::btnGroupClickedSlot(QAbstractButton *btn) + { + beforebtnPos=scrollarea->verticalScrollBar()->sliderPosition(); + endPos=classificationbtnrowlist.at(num).toInt(); ++ scrollarea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + timer->start(1); +-// scrollarea->verticalScrollBar()->setSliderPosition(pos); + } + + QSvgRenderer* svgRender = new QSvgRenderer; +@@ -493,6 +481,7 @@ void FullFunctionWidget::timeOutSlot() + scrollarea->verticalScrollBar()->sliderPosition()>=scrollarea->verticalScrollBar()->maximum()) + { + timer->stop(); ++ scrollarea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); + connect(scrollarea->verticalScrollBar(),SIGNAL(valueChanged(int)), + this,SLOT(valueChangedSlot(int))); + } +diff --git a/src/FunctionWidget/fullfunctionwidget.h b/src/FunctionWidget/fullfunctionwidget.h +index 1a1b7d6..224949c 100644 +--- a/src/FunctionWidget/fullfunctionwidget.h ++++ b/src/FunctionWidget/fullfunctionwidget.h +@@ -114,7 +114,7 @@ private Q_SLOTS: + void valueChangedSlot(int value);//滑动条滚动槽函数 + + Q_SIGNALS: +- void sendUpdateAppListSignal();//向常用软件模块发送更新应用列表信号 ++ void sendUpdateAppListSignal(QString desktopfp,int type);//向常用软件模块发送更新应用列表信号 + void sendHideMainWindowSignal();//向MainViewWidget发送隐藏主窗口信号 + }; + +diff --git a/src/FunctionWidget/functionwidget.cpp b/src/FunctionWidget/functionwidget.cpp +index a524b47..9d96dc6 100644 +--- a/src/FunctionWidget/functionwidget.cpp ++++ b/src/FunctionWidget/functionwidget.cpp +@@ -66,7 +66,7 @@ void FunctionWidget::initAppListWidget() + mainLayout->addWidget(applistview); + fillAppListView(); + connect(applistview,SIGNAL(sendItemClickedSignal(QStringList)),this,SLOT(recvItemClickedSlot(QStringList))); +- connect(applistview,SIGNAL(sendFixedOrUnfixedSignal()),this,SIGNAL(sendUpdateAppListSignal())); ++ connect(applistview,SIGNAL(sendFixedOrUnfixedSignal(QString,int)),this,SIGNAL(sendUpdateAppListSignal(QString,int))); + connect(applistview,SIGNAL(sendHideMainWindowSignal()),this,SIGNAL(sendHideMainWindowSignal())); + + } +diff --git a/src/FunctionWidget/functionwidget.h b/src/FunctionWidget/functionwidget.h +index 7b8d0f9..940aa30 100644 +--- a/src/FunctionWidget/functionwidget.h ++++ b/src/FunctionWidget/functionwidget.h +@@ -79,10 +79,8 @@ private Q_SLOTS: + + Q_SIGNALS: + void sendClassificationbtnList(QStringList list);//向FunctionButtonWidget界面发送分类按钮列表 +- void sendUpdateAppListSignal();//向常用软件模块发送更新应用列表信号 ++ void sendUpdateAppListSignal(QString desktopfp,int type);//向常用软件模块发送更新应用列表信号 + void sendHideMainWindowSignal();//向MainViewWidget发送隐藏主窗口信号 +- +- + }; + + #endif // FUNCTIONWIDGET_H +diff --git a/src/LetterWidget/fullletterwidget.cpp b/src/LetterWidget/fullletterwidget.cpp +index 9fc863c..254a6a5 100644 +--- a/src/LetterWidget/fullletterwidget.cpp ++++ b/src/LetterWidget/fullletterwidget.cpp +@@ -135,7 +135,7 @@ void FullLetterWidget::fillAppList() + listview->addData(data); + + connect(listview,SIGNAL(sendItemClickedSignal(QString)),this,SLOT(execApplication(QString))); +- connect(listview,SIGNAL(sendFixedOrUnfixedSignal()),this,SIGNAL(sendUpdateAppListSignal())); ++ connect(listview,SIGNAL(sendFixedOrUnfixedSignal(QString,int)),this,SIGNAL(sendUpdateAppListSignal(QString,int))); + connect(listview,SIGNAL(sendHideMainWindowSignal()),this,SIGNAL(sendHideMainWindowSignal())); + } + } +@@ -314,8 +314,8 @@ void FullLetterWidget::btnGroupClickedSlot(QAbstractButton *btn) + { + beginPos=scrollarea->verticalScrollBar()->sliderPosition(); + endPos=letterbtnrowlist.at(num).toInt(); ++ scrollarea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + timer->start(1); +-// scrollarea->verticalScrollBar()->setSliderPosition(pos); + } + } + else{ +@@ -326,7 +326,6 @@ void FullLetterWidget::btnGroupClickedSlot(QAbstractButton *btn) + + void FullLetterWidget::timeOutSlot() + { +- + if(beginPosverticalScrollBar()->sliderPosition()<50) +@@ -345,6 +344,7 @@ void FullLetterWidget::timeOutSlot() + scrollarea->verticalScrollBar()->sliderPosition()>=scrollarea->verticalScrollBar()->maximum()) + { + timer->stop(); ++ scrollarea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); + connect(scrollarea->verticalScrollBar(),SIGNAL(valueChanged(int)), + this,SLOT(valueChangedSlot(int))); + } +diff --git a/src/LetterWidget/fullletterwidget.h b/src/LetterWidget/fullletterwidget.h +index 503e7ca..3329822 100644 +--- a/src/LetterWidget/fullletterwidget.h ++++ b/src/LetterWidget/fullletterwidget.h +@@ -112,7 +112,7 @@ private Q_SLOTS: + void valueChangedSlot(int value);//滑动条滚动槽函数 + + Q_SIGNALS: +- void sendUpdateAppListSignal();//向常用软件模块发送更新应用列表信号 ++ void sendUpdateAppListSignal(QString desktopfp,int type);//向常用软件模块发送更新应用列表信号 + void sendHideMainWindowSignal();//向MainViewWidget发送隐藏主窗口信号 + }; + +diff --git a/src/LetterWidget/letterwidget.cpp b/src/LetterWidget/letterwidget.cpp +index c69cfc4..c515b66 100644 +--- a/src/LetterWidget/letterwidget.cpp ++++ b/src/LetterWidget/letterwidget.cpp +@@ -87,7 +87,7 @@ void LetterWidget::initAppListWidget() + mainLayout->addWidget(applistview); + fillAppListView(); + connect(applistview,SIGNAL(sendItemClickedSignal(QStringList)),this,SLOT(recvItemClickedSlot(QStringList))); +- connect(applistview,SIGNAL(sendFixedOrUnfixedSignal()),this,SIGNAL(sendUpdateAppListSignal())); ++ connect(applistview,SIGNAL(sendFixedOrUnfixedSignal(QString,int)),this,SIGNAL(sendUpdateAppListSignal(QString,int))); + connect(applistview,SIGNAL(sendHideMainWindowSignal()),this,SIGNAL(sendHideMainWindowSignal())); + + } +diff --git a/src/LetterWidget/letterwidget.h b/src/LetterWidget/letterwidget.h +index 4e323ad..c3ce86f 100644 +--- a/src/LetterWidget/letterwidget.h ++++ b/src/LetterWidget/letterwidget.h +@@ -74,10 +74,8 @@ private Q_SLOTS: + + Q_SIGNALS: + void sendLetterBtnList(QStringList list);//向LetterButtonWidget发送字母按钮列表 +- void sendUpdateAppListSignal();//向常用软件模块发送更新应用列表信号 ++ void sendUpdateAppListSignal(QString desktopfp,int type);//向常用软件模块发送更新应用列表信号 + void sendHideMainWindowSignal();//向MainViewWidget发送隐藏主窗口信号 +- +- + }; + + #endif // LETTERWIDGET_H +diff --git a/src/MainViewWidget/mainviewwidget.cpp b/src/MainViewWidget/mainviewwidget.cpp +index ed354fa..507a867 100644 +--- a/src/MainViewWidget/mainviewwidget.cpp ++++ b/src/MainViewWidget/mainviewwidget.cpp +@@ -81,24 +81,28 @@ void MainViewWidget::initWidget() + pUkuiMenuInterface=new UkuiMenuInterface; + + //进程开启,刷新常用软件界面 +- connect(this,SIGNAL(viewOpenedSignal()),fullcommonusewid,SLOT(updateListViewSlot())); +- connect(this,SIGNAL(viewOpenedSignal()),commonusewid,SLOT(updateListViewSlot())); ++ connect(this,SIGNAL(viewOpenedSignal()),fullcommonusewid,SLOT(updateListViewAllSlot())); ++ connect(this,SIGNAL(viewOpenedSignal()),commonusewid,SLOT(updateListViewAllSlot())); + + //常用软件界面删除操作,刷新界面 +- connect(commonusewid,SIGNAL(sendUpdateAppListSignal()),fullcommonusewid,SLOT(updateListViewSlot())); +- connect(fullcommonusewid,SIGNAL(sendUpdateAppListSignal()),commonusewid,SLOT(updateListViewSlot())); ++ connect(commonusewid,SIGNAL(sendUpdateAppListSignal(QString,int)),fullcommonusewid,SLOT(updateListViewSlot(QString,int))); ++ connect(fullcommonusewid,SIGNAL(sendUpdateAppListSignal(QString,int)),commonusewid,SLOT(updateListViewSlot(QString,int))); ++ connect(commonusewid,SIGNAL(removeListItemSignal(QString)),fullcommonusewid,SLOT(removeListItemSlot(QString))); ++ connect(fullcommonusewid,SIGNAL(removeListItemSignal(QString)),commonusewid,SLOT(removeListItemSlot(QString))); ++ connect(commonusewid,SIGNAL(removeListAllItemSignal()),fullcommonusewid,SLOT(removeListAllItemSlot())); ++ connect(fullcommonusewid,SIGNAL(removeListAllItemSignal()),commonusewid,SLOT(removeListAllItemSlot())); + + //字母排序、功能分类界面、搜索界面固定或取消固定到常用软件,刷新常用软件界面 +- connect(letterwid,SIGNAL(sendUpdateAppListSignal()),commonusewid,SLOT(updateListViewSlot())); +- connect(fullletterwid,SIGNAL(sendUpdateAppListSignal()),commonusewid,SLOT(updateListViewSlot())); +- connect(functionwid,SIGNAL(sendUpdateAppListSignal()),commonusewid,SLOT(updateListViewSlot())); +- connect(fullfunctionwid,SIGNAL(sendUpdateAppListSignal()),commonusewid,SLOT(updateListViewSlot())); +- connect(letterwid,SIGNAL(sendUpdateAppListSignal()),fullcommonusewid,SLOT(updateListViewSlot())); +- connect(fullletterwid,SIGNAL(sendUpdateAppListSignal()),fullcommonusewid,SLOT(updateListViewSlot())); +- connect(functionwid,SIGNAL(sendUpdateAppListSignal()),fullcommonusewid,SLOT(updateListViewSlot())); +- connect(fullfunctionwid,SIGNAL(sendUpdateAppListSignal()),fullcommonusewid,SLOT(updateListViewSlot())); +- connect(searchresultwid,SIGNAL(sendUpdateAppListSignal()),commonusewid,SLOT(updateListViewSlot())); +- connect(fullsearchresultwid,SIGNAL(sendUpdateAppListSignal()),fullcommonusewid,SLOT(updateListViewSlot())); ++ connect(letterwid,SIGNAL(sendUpdateAppListSignal(QString,int)),commonusewid,SLOT(updateListViewSlot(QString,int))); ++ connect(fullletterwid,SIGNAL(sendUpdateAppListSignal(QString,int)),commonusewid,SLOT(updateListViewSlot(QString,int))); ++ connect(functionwid,SIGNAL(sendUpdateAppListSignal(QString,int)),commonusewid,SLOT(updateListViewSlot(QString,int))); ++ connect(fullfunctionwid,SIGNAL(sendUpdateAppListSignal(QString,int)),commonusewid,SLOT(updateListViewSlot(QString,int))); ++ connect(letterwid,SIGNAL(sendUpdateAppListSignal(QString,int)),fullcommonusewid,SLOT(updateListViewSlot(QString,int))); ++ connect(fullletterwid,SIGNAL(sendUpdateAppListSignal(QString,int)),fullcommonusewid,SLOT(updateListViewSlot(QString,int))); ++ connect(functionwid,SIGNAL(sendUpdateAppListSignal(QString,int)),fullcommonusewid,SLOT(updateListViewSlot(QString,int))); ++ connect(fullfunctionwid,SIGNAL(sendUpdateAppListSignal(QString,int)),fullcommonusewid,SLOT(updateListViewSlot(QString,int))); ++ connect(searchresultwid,SIGNAL(sendUpdateAppListSignal(QString,int)),commonusewid,SLOT(updateListViewSlot(QString,int))); ++ connect(fullsearchresultwid,SIGNAL(sendUpdateAppListSignal(QString,int)),fullcommonusewid,SLOT(updateListViewSlot(QString,int))); + + //监控.desktop文件目录 + fileWatcher=new QFileSystemWatcher(this); +@@ -108,8 +112,8 @@ void MainViewWidget::initWidget() + connect(this,SIGNAL(directoryChangedSignal()),fullletterwid,SLOT(updateAppListView())); + connect(this,SIGNAL(directoryChangedSignal()),functionwid,SLOT(updateAppListView())); + connect(this,SIGNAL(directoryChangedSignal()),fullfunctionwid,SLOT(updateAppListView())); +- connect(this,SIGNAL(directoryChangedSignal()),commonusewid,SLOT(updateListViewSlot())); +- connect(this,SIGNAL(directoryChangedSignal()),fullcommonusewid,SLOT(updateListViewSlot())); ++ connect(this,SIGNAL(directoryChangedSignal()),commonusewid,SLOT(updateListViewAllSlot())); ++ connect(this,SIGNAL(directoryChangedSignal()),fullcommonusewid,SLOT(updateListViewAllSlot())); + + //发送隐藏主界面信号 + connect(commonusewid,SIGNAL(sendHideMainWindowSignal()),this,SIGNAL(sendHideMainWindowSignal())); +@@ -404,6 +408,11 @@ void MainViewWidget::loadMaxMainView() + */ + void MainViewWidget::loadCommonUseWidget() + { ++ fullcommonusewid->widgetMakeZero(); ++ letterwid->widgetMakeZero(); ++ fullletterwid->widgetMakeZero(); ++ functionwid->widgetMakeZero(); ++ fullfunctionwid->widgetMakeZero(); + QLayoutItem *child; + if((child = mainLayout->takeAt(1)) != nullptr) { + QWidget* childwid=child->widget(); +@@ -414,7 +423,6 @@ void MainViewWidget::loadCommonUseWidget() + } + + } +- commonusewid->widgetMakeZero(); + mainLayout->addWidget(commonusewid); + widgetState=1; + saveCurrentWidState=1; +@@ -425,6 +433,11 @@ void MainViewWidget::loadCommonUseWidget() + */ + void MainViewWidget::loadLetterWidget() + { ++ commonusewid->widgetMakeZero(); ++ fullcommonusewid->widgetMakeZero(); ++ fullletterwid->widgetMakeZero(); ++ functionwid->widgetMakeZero(); ++ fullfunctionwid->widgetMakeZero(); + QLayoutItem *child; + if((child = mainLayout->takeAt(1)) != nullptr) { + QWidget* childwid=child->widget(); +@@ -435,7 +448,6 @@ void MainViewWidget::loadLetterWidget() + } + + } +- letterwid->widgetMakeZero(); + mainLayout->addWidget(letterwid); + widgetState=2; + saveCurrentWidState=2; +@@ -446,6 +458,11 @@ void MainViewWidget::loadLetterWidget() + */ + void MainViewWidget::loadFunctionWidget() + { ++ commonusewid->widgetMakeZero(); ++ fullcommonusewid->widgetMakeZero(); ++ letterwid->widgetMakeZero(); ++ fullletterwid->widgetMakeZero(); ++ fullfunctionwid->widgetMakeZero(); + QLayoutItem *child; + if((child = mainLayout->takeAt(1)) != nullptr) { + QWidget* childwid=child->widget(); +@@ -456,7 +473,6 @@ void MainViewWidget::loadFunctionWidget() + } + + } +- functionwid->widgetMakeZero(); + mainLayout->addWidget(functionwid); + widgetState=3; + saveCurrentWidState=3; +@@ -468,6 +484,11 @@ void MainViewWidget::loadFunctionWidget() + */ + void MainViewWidget::loadFullCommonUseWidget() + { ++ commonusewid->widgetMakeZero(); ++ letterwid->widgetMakeZero(); ++ fullletterwid->widgetMakeZero(); ++ functionwid->widgetMakeZero(); ++ fullfunctionwid->widgetMakeZero(); + QLayoutItem *child; + if((child = mainLayout->takeAt(1)) != nullptr) { + QWidget* childwid=child->widget(); +@@ -478,7 +499,6 @@ void MainViewWidget::loadFullCommonUseWidget() + } + + } +- fullcommonusewid->widgetMakeZero(); + mainLayout->addWidget(fullcommonusewid); + widgetState=1; + saveCurrentWidState=1; +@@ -489,6 +509,11 @@ void MainViewWidget::loadFullCommonUseWidget() + */ + void MainViewWidget::loadFullLetterWidget() + { ++ commonusewid->widgetMakeZero(); ++ fullcommonusewid->widgetMakeZero(); ++ letterwid->widgetMakeZero(); ++ functionwid->widgetMakeZero(); ++ fullfunctionwid->widgetMakeZero(); + QLayoutItem *child; + if((child = mainLayout->takeAt(1)) != nullptr) { + QWidget* childwid=child->widget(); +@@ -498,7 +523,6 @@ void MainViewWidget::loadFullLetterWidget() + childwid->setParent(nullptr); + } + } +- fullletterwid->widgetMakeZero(); + mainLayout->addWidget(fullletterwid); + widgetState=2; + saveCurrentWidState=2; +@@ -509,6 +533,11 @@ void MainViewWidget::loadFullLetterWidget() + */ + void MainViewWidget::loadFullFunctionWidget() + { ++ commonusewid->widgetMakeZero(); ++ fullcommonusewid->widgetMakeZero(); ++ letterwid->widgetMakeZero(); ++ fullletterwid->widgetMakeZero(); ++ functionwid->widgetMakeZero(); + QLayoutItem *child; + if((child = mainLayout->takeAt(1)) != nullptr) { + QWidget* childwid=child->widget(); +@@ -519,7 +548,6 @@ void MainViewWidget::loadFullFunctionWidget() + } + + } +- fullfunctionwid->widgetMakeZero(); + mainLayout->addWidget(fullfunctionwid); + widgetState=3; + saveCurrentWidState=3; +diff --git a/src/RightClickMenu/rightclickmenu.cpp b/src/RightClickMenu/rightclickmenu.cpp +index f21459e..4ec4e71 100644 +--- a/src/RightClickMenu/rightclickmenu.cpp ++++ b/src/RightClickMenu/rightclickmenu.cpp +@@ -37,6 +37,21 @@ RightClickMenu::RightClickMenu(QWidget *parent): + OtherListAction=new QWidgetAction(othermenu); + OtherListWid=new QWidget(); + ++ //关机按钮右键菜单 ++ shutdownmenu=new QMenu(this); ++ shutdownmenu->setLayoutDirection(Qt::LeftToRight); ++ shutdownmenu->setFixedSize(250+2,36*5+12+2); ++ LockScreenAction=new QWidgetAction(shutdownmenu); ++ LockScreenWid=new QWidget(); ++ SwitchUserAction=new QWidgetAction(shutdownmenu); ++ SwitchUserWid=new QWidget(); ++ LogOutAction=new QWidgetAction(shutdownmenu); ++ LogOutWid=new QWidget(); ++ RebootAction=new QWidgetAction(shutdownmenu); ++ RebootWid=new QWidget(); ++ ShutDownAction=new QWidgetAction(shutdownmenu); ++ ShutDownWid=new QWidget(); ++ + //常用应用按钮右键菜单 + cuappbtnmenu=new QMenu(this); + cuappbtnmenu->setLayoutDirection(Qt::LeftToRight); +@@ -365,40 +380,26 @@ void RightClickMenu::addAppBtnAction() + //关机按钮右键菜单 + void RightClickMenu::addShutdownAction() + { +- shutdownmenu=new QMenu(this); +- shutdownmenu->setLayoutDirection(Qt::LeftToRight); +- shutdownmenu->setFixedSize(250+2,36*5+12+2); +- +- LockScreenAction=new QWidgetAction(shutdownmenu); +- LockScreenWid=new QWidget(); + initWidgetAction(LockScreenWid,":/data/img/sidebarwidget/lock.svg",tr("Lock")); + LockScreenAction->setDefaultWidget(LockScreenWid); + shutdownmenu->addAction(LockScreenAction); + connect(LockScreenAction,SIGNAL(triggered()),this,SLOT(lockScreenActionTriggerSlot())); + +- SwitchUserAction=new QWidgetAction(shutdownmenu); +- SwitchUserWid=new QWidget(); + initWidgetAction(SwitchUserWid,"",tr("Switch user")); + SwitchUserAction->setDefaultWidget(SwitchUserWid); + shutdownmenu->addAction(SwitchUserAction); + connect(SwitchUserAction,SIGNAL(triggered()),this,SLOT(switchUserActionTriggerSlot())); + +- LogOutAction=new QWidgetAction(shutdownmenu); +- LogOutWid=new QWidget(); + initWidgetAction(LogOutWid,"",tr("Sign out")); + LogOutAction->setDefaultWidget(LogOutWid); + shutdownmenu->addAction(LogOutAction); + connect(LogOutAction,SIGNAL(triggered()),this,SLOT(logoutActionTriggerSlot())); + +- RebootAction=new QWidgetAction(shutdownmenu); +- RebootWid=new QWidget(); + initWidgetAction(RebootWid,"",tr("Restart")); + RebootAction->setDefaultWidget(RebootWid); + shutdownmenu->addAction(RebootAction); + connect(RebootAction,SIGNAL(triggered()),this,SLOT(rebootActionTriggerSlot())); + +- ShutDownAction=new QWidgetAction(shutdownmenu); +- ShutDownWid=new QWidget(); + initWidgetAction(ShutDownWid,":/data/img/sidebarwidget/shutdown.svg",tr("Shut down")); + ShutDownAction->setDefaultWidget(ShutDownWid); + shutdownmenu->addAction(ShutDownAction); +diff --git a/src/RightClickMenu/rightclickmenu.h b/src/RightClickMenu/rightclickmenu.h +index 2fc790a..17f73fb 100644 +--- a/src/RightClickMenu/rightclickmenu.h ++++ b/src/RightClickMenu/rightclickmenu.h +@@ -66,61 +66,61 @@ private: + QWidgetAction* separatorAction_4=nullptr; + QWidgetAction* separatorAction_5=nullptr; + +- QMenu* cuappbtnmenu; +- QWidgetAction* CuFix2CommonUseAction; +- QWidget* CuFix2CommonUseWid; +- QWidgetAction* CuUnfixed4CommonUseAction; +- QWidget* CuUnfixed4CommonUseWid; +- QWidgetAction* CuFix2TaskBarAction; +- QWidget* CuFix2TaskBarWid; +- QWidgetAction* CuUnfixed4TaskBarAction; +- QWidget* CuUnfixed4TaskBarWid; +- QWidgetAction* CuAdd2DesktopAction; +- QWidget* CuAdd2DesktopWid; +- QWidgetAction* CuDeleteAction; +- QWidget* CuDeleteWid; ++ QMenu* cuappbtnmenu=nullptr; ++ QWidgetAction* CuFix2CommonUseAction=nullptr; ++ QWidget* CuFix2CommonUseWid=nullptr; ++ QWidgetAction* CuUnfixed4CommonUseAction=nullptr; ++ QWidget* CuUnfixed4CommonUseWid=nullptr; ++ QWidgetAction* CuFix2TaskBarAction=nullptr; ++ QWidget* CuFix2TaskBarWid=nullptr; ++ QWidgetAction* CuUnfixed4TaskBarAction=nullptr; ++ QWidget* CuUnfixed4TaskBarWid=nullptr; ++ QWidgetAction* CuAdd2DesktopAction=nullptr; ++ QWidget* CuAdd2DesktopWid=nullptr; ++ QWidgetAction* CuDeleteAction=nullptr; ++ QWidget* CuDeleteWid=nullptr; + QWidgetAction* CuDeleteAllAction; +- QWidget* CuDeleteAllWid; +- QWidgetAction* CuUninstallAction; +- QWidget* CuUninstallWid; +- QWidgetAction* CuAttributeAction; +- QWidget* CuAttributeWid; +- +- QMenu* appbtnmenu; +- QWidgetAction* Fix2CommonUseAction; +- QWidget* Fix2CommonUseWid; +- QWidgetAction* Unfixed4CommonUseAction; +- QWidget* Unfixed4CommonUseWid; +- QWidgetAction* Fix2TaskBarAction; +- QWidget* Fix2TaskBarWid; +- QWidgetAction* Unfixed4TaskBarAction; +- QWidget* Unfixed4TaskBarWid; +- QWidgetAction* Add2DesktopAction; +- QWidget* Add2DesktopWid; +- QWidgetAction* UninstallAction; +- QWidget* UninstallWid; +- QWidgetAction* AttributeAction; +- QWidget* AttributeWid; +- +- QMenu* shutdownmenu; +- QWidgetAction* LockScreenAction; +- QWidget* LockScreenWid; +- QWidgetAction* SwitchUserAction; +- QWidget* SwitchUserWid; +- QWidgetAction* LogOutAction; +- QWidget* LogOutWid; +- QWidgetAction* RebootAction; +- QWidget* RebootWid; +- QWidgetAction* ShutDownAction; +- QWidget* ShutDownWid; +- +- QMenu* othermenu; +- QWidgetAction* OtherFix2TaskBarAction; +- QWidget* OtherFix2TaskBarWid; +- QWidgetAction* OtherUnfix2TaskBarAction; +- QWidget* OtherUnfix2TaskBarWid; +- QWidgetAction* OtherListAction; +- QWidget* OtherListWid; ++ QWidget* CuDeleteAllWid=nullptr; ++ QWidgetAction* CuUninstallAction=nullptr; ++ QWidget* CuUninstallWid=nullptr; ++ QWidgetAction* CuAttributeAction=nullptr; ++ QWidget* CuAttributeWid=nullptr; ++ ++ QMenu* appbtnmenu=nullptr; ++ QWidgetAction* Fix2CommonUseAction=nullptr; ++ QWidget* Fix2CommonUseWid=nullptr; ++ QWidgetAction* Unfixed4CommonUseAction=nullptr; ++ QWidget* Unfixed4CommonUseWid=nullptr; ++ QWidgetAction* Fix2TaskBarAction=nullptr; ++ QWidget* Fix2TaskBarWid=nullptr; ++ QWidgetAction* Unfixed4TaskBarAction=nullptr; ++ QWidget* Unfixed4TaskBarWid=nullptr; ++ QWidgetAction* Add2DesktopAction=nullptr; ++ QWidget* Add2DesktopWid=nullptr; ++ QWidgetAction* UninstallAction=nullptr; ++ QWidget* UninstallWid=nullptr; ++ QWidgetAction* AttributeAction=nullptr; ++ QWidget* AttributeWid=nullptr; ++ ++ QMenu* shutdownmenu=nullptr; ++ QWidgetAction* LockScreenAction=nullptr; ++ QWidget* LockScreenWid=nullptr; ++ QWidgetAction* SwitchUserAction=nullptr; ++ QWidget* SwitchUserWid=nullptr; ++ QWidgetAction* LogOutAction=nullptr; ++ QWidget* LogOutWid=nullptr; ++ QWidgetAction* RebootAction=nullptr; ++ QWidget* RebootWid=nullptr; ++ QWidgetAction* ShutDownAction=nullptr; ++ QWidget* ShutDownWid=nullptr; ++ ++ QMenu* othermenu=nullptr; ++ QWidgetAction* OtherFix2TaskBarAction=nullptr; ++ QWidget* OtherFix2TaskBarWid=nullptr; ++ QWidgetAction* OtherUnfix2TaskBarAction=nullptr; ++ QWidget* OtherUnfix2TaskBarWid=nullptr; ++ QWidgetAction* OtherListAction=nullptr; ++ QWidget* OtherListWid=nullptr; + + UkuiMenuInterface* pUkuiMenuInterface=nullptr; + +diff --git a/src/SearchResultWidget/fullsearchresultwidget.cpp b/src/SearchResultWidget/fullsearchresultwidget.cpp +index b67572f..8259d4c 100644 +--- a/src/SearchResultWidget/fullsearchresultwidget.cpp ++++ b/src/SearchResultWidget/fullsearchresultwidget.cpp +@@ -56,7 +56,7 @@ void FullSearchResultWidget::initWidget() + pUkuiMenuInterface=new UkuiMenuInterface; + + connect(listview,SIGNAL(sendItemClickedSignal(QString)),this,SLOT(execApplication(QString))); +- connect(listview,SIGNAL(sendFixedOrUnfixedSignal()),this,SIGNAL(sendUpdateAppListSignal())); ++ connect(listview,SIGNAL(sendFixedOrUnfixedSignal(QString,int)),this,SIGNAL(sendUpdateAppListSignal(QString,int))); + connect(listview,SIGNAL(sendHideMainWindowSignal()),this,SIGNAL(sendHideMainWindowSignal())); + } + +diff --git a/src/SearchResultWidget/fullsearchresultwidget.h b/src/SearchResultWidget/fullsearchresultwidget.h +index 6d7f06a..756340f 100644 +--- a/src/SearchResultWidget/fullsearchresultwidget.h ++++ b/src/SearchResultWidget/fullsearchresultwidget.h +@@ -59,9 +59,8 @@ private Q_SLOTS: + void execApplication(QString appname);//执行应用程序 + + Q_SIGNALS: +- void sendUpdateAppListSignal();//向CommonUseWidget发送更新应用列表信号 ++ void sendUpdateAppListSignal(QString desktopfp,int type);//向CommonUseWidget发送更新应用列表信号 + void sendHideMainWindowSignal();//向MainViewWidget发送隐藏主窗口信号 +- + }; + + #endif // FULLSEARCHRESULTWIDGET_H +diff --git a/src/SearchResultWidget/searchresultwidget.cpp b/src/SearchResultWidget/searchresultwidget.cpp +index 2a8bc35..115e8e4 100644 +--- a/src/SearchResultWidget/searchresultwidget.cpp ++++ b/src/SearchResultWidget/searchresultwidget.cpp +@@ -54,7 +54,7 @@ void SearchResultWidget::initWidget() + pUkuiMenuInterface=new UkuiMenuInterface; + + connect(listview,SIGNAL(sendItemClickedSignal(QStringList)),this,SLOT(execApplication(QStringList))); +- connect(listview,SIGNAL(sendFixedOrUnfixedSignal()),this,SIGNAL(sendUpdateAppListSignal())); ++ connect(listview,SIGNAL(sendFixedOrUnfixedSignal(QString,int)),this,SIGNAL(sendUpdateAppListSignal(QString,int))); + connect(listview,SIGNAL(sendHideMainWindowSignal()),this,SIGNAL(sendHideMainWindowSignal())); + } + +diff --git a/src/SearchResultWidget/searchresultwidget.h b/src/SearchResultWidget/searchresultwidget.h +index 944391b..af43ebf 100644 +--- a/src/SearchResultWidget/searchresultwidget.h ++++ b/src/SearchResultWidget/searchresultwidget.h +@@ -61,7 +61,7 @@ private Q_SLOTS: + void execApplication(QStringList arg);//执行应用程序 + + Q_SIGNALS: +- void sendUpdateAppListSignal();//向常用软件模块发送更新应用列表信号 ++ void sendUpdateAppListSignal(QString desktopfp,int type);//向常用软件模块发送更新应用列表信号 + void sendHideMainWindowSignal();//向MainViewWidget发送隐藏主窗口信号 + }; + +diff --git a/src/UtilityFunction/fulllistview.cpp b/src/UtilityFunction/fulllistview.cpp +index 75845c7..76c6d18 100644 +--- a/src/UtilityFunction/fulllistview.cpp ++++ b/src/UtilityFunction/fulllistview.cpp +@@ -67,6 +67,8 @@ void FullListView::initWidget() + this->setTextElideMode(Qt::ElideRight); + this->setMouseTracking(true); + this->setFocusPolicy(Qt::NoFocus); ++// this->setAcceptDrops(false); ++ this->setMovement(QListView::Static); + // this->setUpdatesEnabled(true); + + // this->setSpacing(32); +@@ -123,10 +125,10 @@ void FullListView::rightClickedSlot() + if(module>0) + { + int ret=menu->showAppBtnMenu(desktopfp); +- if(ret==1 || ret==2) +- { +- Q_EMIT sendFixedOrUnfixedSignal(); +- } ++ if(ret==1) ++ Q_EMIT sendFixedOrUnfixedSignal(desktopfp,0); ++ if(ret==2) ++ Q_EMIT sendFixedOrUnfixedSignal(desktopfp,1); + if(ret==6) + Q_EMIT sendHideMainWindowSignal(); + if(ret==7) +@@ -143,7 +145,7 @@ void FullListView::rightClickedSlot() + item->setData(QVariant::fromValue(desktopfp),Qt::DisplayRole); + listmodel->insertRow(setting->childKeys().size()-1,item); + setting->endGroup(); +- Q_EMIT sendUpdateAppListSignal(); ++ Q_EMIT sendUpdateAppListSignal(desktopfp,0); + } + if(ret==2) + { +@@ -153,7 +155,7 @@ void FullListView::rightClickedSlot() + item->setData(QVariant::fromValue(desktopfp),Qt::DisplayRole); + listmodel->insertRow(setting->childKeys().size(),item); + setting->endGroup(); +- Q_EMIT sendUpdateAppListSignal(); ++ Q_EMIT sendUpdateAppListSignal(desktopfp,1); + } + + if(ret==7) +@@ -162,7 +164,7 @@ void FullListView::rightClickedSlot() + if(ret==8) + { + listmodel->removeRow(index.row()); +- Q_EMIT sendUpdateAppListSignal(); ++ Q_EMIT removeListItemSignal(desktopfp); + } + + if(ret==9) +@@ -178,7 +180,7 @@ void FullListView::rightClickedSlot() + listmodel->removeRow(i); + } + setting->endGroup(); +- Q_EMIT sendUpdateAppListSignal(); ++ Q_EMIT removeListAllItemSignal(); + } + if(ret==6) + Q_EMIT sendHideMainWindowSignal(); +diff --git a/src/UtilityFunction/fulllistview.h b/src/UtilityFunction/fulllistview.h +index 0739694..14a58e9 100644 +--- a/src/UtilityFunction/fulllistview.h ++++ b/src/UtilityFunction/fulllistview.h +@@ -49,7 +49,7 @@ private: + QStandardItemModel* listmodel=nullptr; + int module=0; + +- RightClickMenu* menu;//右键菜单 ++ RightClickMenu* menu=nullptr;//右键菜单 + QSettings *setting=nullptr; + QStringList data; + +@@ -61,8 +61,10 @@ private Q_SLOTS: + + Q_SIGNALS: + void sendItemClickedSignal(QString arg);//向字母排序或功能分类模块发送item点击信号 +- void sendFixedOrUnfixedSignal();//向字母排序、功能分类发送固定或者取消固定信号 +- void sendUpdateAppListSignal();//向FullCommonUseWidget发送更新应用列表信号 ++ void sendFixedOrUnfixedSignal(QString desktopfp,int type);//向字母排序、功能分类发送固定或者取消固定信号 ++ void sendUpdateAppListSignal(QString desktopfp,int type);//向FullCommonUseWidget发送更新应用列表信号 ++ void removeListItemSignal(QString desktopfp); ++ void removeListAllItemSignal(); + void sendHideMainWindowSignal(); + }; + +diff --git a/src/UtilityFunction/listview.cpp b/src/UtilityFunction/listview.cpp +index 2b1b58e..4c9ec08 100644 +--- a/src/UtilityFunction/listview.cpp ++++ b/src/UtilityFunction/listview.cpp +@@ -63,6 +63,7 @@ void ListView::initWidget() + this->setViewMode(QListView::ListMode); + this->setContextMenuPolicy(Qt::CustomContextMenu); + this->setFocusPolicy(Qt::NoFocus); ++ this->setMovement(QListView::Static); + connect(this,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(rightClickedSlot())); + connect(this,SIGNAL(clicked(QModelIndex)),this,SLOT(onClicked(QModelIndex))); + +@@ -118,8 +119,10 @@ void ListView::rightClickedSlot() + if(strlist.at(1).toInt()==1) + { + int ret=menu->showAppBtnMenu(strlist.at(0)); +- if(ret==1 || ret==2) +- Q_EMIT sendFixedOrUnfixedSignal(); ++ if(ret==1) ++ Q_EMIT sendFixedOrUnfixedSignal(strlist.at(0),0); ++ if(ret==2) ++ Q_EMIT sendFixedOrUnfixedSignal(strlist.at(0),1); + if(ret==6) + Q_EMIT sendHideMainWindowSignal(); + if(ret==7) +@@ -137,7 +140,7 @@ void ListView::rightClickedSlot() + item->setData(QVariant::fromValue(strlist),Qt::DisplayRole); + listmodel->insertRow(setting->allKeys().size()-1,item); + setting->endGroup(); +- Q_EMIT sendUpdateAppListSignal(); ++ Q_EMIT sendUpdateAppListSignal(strlist.at(0),0); + } + if(ret==2) + { +@@ -147,7 +150,7 @@ void ListView::rightClickedSlot() + item->setData(QVariant::fromValue(strlist),Qt::DisplayRole); + listmodel->insertRow(setting->allKeys().size(),item); + setting->endGroup(); +- Q_EMIT sendUpdateAppListSignal(); ++ Q_EMIT sendUpdateAppListSignal(strlist.at(0),1); + } + + if(ret==7) +@@ -156,7 +159,7 @@ void ListView::rightClickedSlot() + if(ret==8) + { + listmodel->removeRow(index.row()); +- Q_EMIT sendUpdateAppListSignal(); ++ Q_EMIT removeListItemSignal(strlist.at(0)); + } + if(ret==9) + { +@@ -171,7 +174,7 @@ void ListView::rightClickedSlot() + listmodel->removeRow(i); + } + setting->endGroup(); +- Q_EMIT sendUpdateAppListSignal(); ++ Q_EMIT removeListAllItemSignal(); + } + + if(ret==6) +diff --git a/src/UtilityFunction/listview.h b/src/UtilityFunction/listview.h +index d4b7813..07e8693 100644 +--- a/src/UtilityFunction/listview.h ++++ b/src/UtilityFunction/listview.h +@@ -45,15 +45,13 @@ protected: + void leaveEvent(QEvent* e) Q_DECL_OVERRIDE; + + private: +-// ListModel* model=nullptr; + QStandardItemModel* listmodel=nullptr; + int w=0; + int h=0; + int module=0; + UkuiMenuInterface* pUkuiMenuInterface=nullptr; +-// QStringList rowlist;//存放分类字母所在行 + +- RightClickMenu* menu;//右键菜单 ++ RightClickMenu* menu=nullptr;//右键菜单 + QSettings *setting=nullptr; + QVector data; + ItemDelegate* m_delegate=nullptr; +@@ -64,8 +62,10 @@ private Q_SLOTS: + + Q_SIGNALS: + void sendItemClickedSignal(QStringList arg);//向字母排序或功能分类模块发送item点击信号 +- void sendFixedOrUnfixedSignal();//向字母排序、功能分类发送固定或者取消固定信号 +- void sendUpdateAppListSignal();//向CommonUseWidget发送更新应用列表信号 ++ void sendFixedOrUnfixedSignal(QString desktopfp,int type);//向字母排序、功能分类发送固定或者取消固定信号 ++ void sendUpdateAppListSignal(QString desktopfp,int type);//向CommonUseWidget发送更新应用列表信号 ++ void removeListItemSignal(QString desktopfp); ++ void removeListAllItemSignal(); + void sendHideMainWindowSignal(); + }; + +-- +2.33.0 + diff --git a/ukui-menu.spec b/ukui-menu.spec index 55d08bf..e47a256 100644 --- a/ukui-menu.spec +++ b/ukui-menu.spec @@ -2,7 +2,7 @@ Name: ukui-menu Version: 3.0.2 -Release: 10 +Release: 11 Summary: Advanced ukui menu License: GPL-3.0-or-later URL: http://www.ukui.org @@ -10,6 +10,7 @@ Source0: %{name}-%{version}.tar.gz Patch0: 0001-Fixed-size-problem-with-multiple-screens.patch Patch1: 0002-Optimize-the-interaction-strategy-with-the-taskbar.patch Patch2: 0003-Fixed-right-click-exception-popover-problem.patch +Patch3: 0001-Fixed-application-icon-dragging-problem.patch BuildRequires: qt5-qtbase-devel BuildRequires: libqtxdg-devel @@ -45,6 +46,7 @@ Requires: accountsservice %patch0 -p1 %patch1 -p1 %patch2 -p1 +%patch3 -p1 %build mkdir build && cd build @@ -66,6 +68,9 @@ rm -rf $RPM_BUILD_ROOT ##%{_datadir}/ukui-menu/translations/ %changelog +* Wed Aug 8 2022 huayadong - 3.0.2-9 +- Fixed application icon dragging problem + * Wed Aug 8 2022 huayadong - 3.0.2-9 - Fixed right click exception popover problem