ukui-menu/0001-Fixed-application-icon-dragging-problem.patch
2022-08-04 02:57:50 +08:00

1039 lines
45 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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