ukui-menu/0001-Fixed-application-icon-dragging-problem.patch

1039 lines
45 KiB
Diff
Raw Normal View History

From e1ac89bb3883bef193b5544f9152096a11d17849 Mon Sep 17 00:00:00 2001
From: liuhao-startmenu <liuhao@kylinos.cn>
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;i<listview->model()->rowCount();i++)
+ {
+ QVariant var=listview->model()->index(i,0).data(Qt::DisplayRole);
+ QString path=var.value<QStringList>().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>(QStringList()<<desktopfp<<"1"),Qt::DisplayRole);
+ QStandardItemModel* listmodel=qobject_cast<QStandardItemModel*>(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;i<listview->model()->rowCount();i++)
+ {
+ QVariant var=listview->model()->index(i,0).data(Qt::DisplayRole);
+ QString path=var.value<QStringList>().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<QStringList>().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;i<listview->model()->rowCount();i++)
+ {
+ QVariant var=listview->model()->index(i,0).data(Qt::DisplayRole);
+ QString path=var.value<QString>();
+ if(QString::compare(path,desktopfp)==0)
+ {
+ listview->model()->removeRow(i);
+ break;
+ }
+ }
+ setting->beginGroup("lockapplication");
+ QStandardItem* item=new QStandardItem;
+ item->setData(QVariant::fromValue<QString>(desktopfp),Qt::DisplayRole);
+ QStandardItemModel* listmodel=qobject_cast<QStandardItemModel*>(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;i<listview->model()->rowCount();i++)
+ {
+ QVariant var=listview->model()->index(i,0).data(Qt::DisplayRole);
+ QString path=var.value<QString>();
+ 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<QString>();
+ 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(beginPos<endPos)
{
if(endPos-scrollarea->verticalScrollBar()->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<QString>(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<QString>(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<QStringList>(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<QStringList>(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<QStringList> 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