1012 lines
42 KiB
Diff
1012 lines
42 KiB
Diff
From b4ae3b3b79baab4d8b449d46ceb79ed84ac31a4b Mon Sep 17 00:00:00 2001
|
|
From: liuhao-startmenu <liuhao@kylinos.cn>
|
|
Date: Thu, 2 Apr 2020 20:04:58 +0800
|
|
Subject: [PATCH] Fixed right-click exception popover problem
|
|
|
|
---
|
|
data/img/mainviewwidget/lock-fs.svg | 35 +-------
|
|
data/img/mainviewwidget/lock.svg | 32 +-------
|
|
src/CommonUseWidget/commonusewidget.cpp | 77 +++++++++---------
|
|
src/CommonUseWidget/commonusewidget.h | 2 +-
|
|
src/CommonUseWidget/fullcommonusewidget.cpp | 74 +++++++++--------
|
|
src/CommonUseWidget/fullcommonusewidget.h | 1 +
|
|
src/Interface/ukuimenuinterface.cpp | 33 ++++----
|
|
src/MainViewWidget/mainviewwidget.cpp | 4 +
|
|
src/MainWindow/mainwindow.cpp | 22 +++--
|
|
src/MainWindow/mainwindow.h | 2 +-
|
|
src/MainWindow/mainwindow.ui | 28 ++-----
|
|
src/RightClickMenu/rightclickmenu.cpp | 44 ++++++----
|
|
src/RightClickMenu/rightclickmenu.h | 1 +
|
|
src/SideBarWidget/sidebarwidget.cpp | 24 ------
|
|
src/UtilityFunction/fullitemdelegate.cpp | 10 +--
|
|
src/UtilityFunction/fulllistview.cpp | 89 ++++++++-------------
|
|
src/UtilityFunction/fulllistview.h | 6 --
|
|
src/UtilityFunction/itemdelegate.cpp | 9 ++-
|
|
src/UtilityFunction/listview.cpp | 55 +++++++------
|
|
19 files changed, 218 insertions(+), 330 deletions(-)
|
|
|
|
diff --git a/data/img/mainviewwidget/lock-fs.svg b/data/img/mainviewwidget/lock-fs.svg
|
|
index 9f1b445..71f3141 100644
|
|
--- a/data/img/mainviewwidget/lock-fs.svg
|
|
+++ b/data/img/mainviewwidget/lock-fs.svg
|
|
@@ -1,34 +1 @@
|
|
-<?xml version="1.0" encoding="utf-8"?>
|
|
-<!-- Generator: Adobe Illustrator 24.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
-<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
- viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
|
|
-<style type="text/css">
|
|
- .st0{fill:#607D8B;}
|
|
- .st1{opacity:0.3;enable-background:new ;}
|
|
- .st2{fill:url(#SVGID_1_);}
|
|
- .st3{opacity:0.5;fill:#FDEFBA;enable-background:new ;}
|
|
-</style>
|
|
-<title>画板 1</title>
|
|
-<g id="锁-小">
|
|
- <g id="_32-3">
|
|
- <g id="_512">
|
|
- <g>
|
|
- <g>
|
|
- <path class="st0" d="M8,2c1.6,0,3,1.2,3,2.6V6H5V4.6C5,3.2,6.4,2,8,2 M8,0C5.3,0,3,2.1,3,4.6V8h8.3H13V4.6C13,2.1,10.8,0,8,0
|
|
- L8,0z"/>
|
|
- </g>
|
|
- </g>
|
|
- <path class="st1" d="M2,6h12c1.1,0,2,0.9,2,2v6c0,1.1-0.9,2-2,2H2c-1.1,0-2-0.9-2-2V8C0,6.9,0.9,6,2,6z"/>
|
|
-
|
|
- <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="8" y1="-93.1268" x2="8" y2="-102" gradientTransform="matrix(1 0 0 1 0 108)">
|
|
- <stop offset="0" style="stop-color:#F5A816"/>
|
|
- <stop offset="0.67" style="stop-color:#F9CE4B"/>
|
|
- <stop offset="1" style="stop-color:#FADD60"/>
|
|
- </linearGradient>
|
|
- <path class="st2" d="M3,6h10c1.1,0,2,0.9,2,2v5c0,1.1-0.9,2-2,2H3c-1.1,0-2-0.9-2-2V8C1,6.9,1.9,6,3,6z"/>
|
|
- <rect x="3" y="6" class="st3" width="2" height="9"/>
|
|
- <rect x="11" y="6" class="st3" width="2" height="9"/>
|
|
- </g>
|
|
- </g>
|
|
-</g>
|
|
-</svg>
|
|
+<svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 16 16"><defs><style>.cls-1{opacity:0.3;}.cls-2{opacity:0.1;}.cls-3{fill:#c2c2c2;}.cls-4{fill:url(#未命名的渐变_72);}.cls-5{fill:url(#未命名的渐变_64);}.cls-6{fill:url(#未命名的渐变_10);}.cls-7{fill:url(#未命名的渐变_39);}</style><linearGradient id="未命名的渐变_72" x1="3.15" y1="9.36" x2="11.5" y2="9.36" gradientTransform="translate(8.25 -2.65) rotate(45)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffcd94"/><stop offset="1" stop-color="#ff986a"/></linearGradient><linearGradient id="未命名的渐变_64" x1="5.36" y1="6.47" x2="9.48" y2="6.47" gradientTransform="translate(8.25 -2.65) rotate(45)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffb16a"/><stop offset="0.11" stop-color="#ffc586"/><stop offset="0.22" stop-color="#ffd49b"/><stop offset="0.29" stop-color="#ffd9a3"/><stop offset="0.42" stop-color="#fec98f"/><stop offset="0.66" stop-color="#fcaf6f"/><stop offset="0.86" stop-color="#faa05c"/><stop offset="1" stop-color="#fa9a55"/></linearGradient><linearGradient id="未命名的渐变_10" x1="3.15" y1="3.73" x2="11.5" y2="3.73" gradientTransform="translate(8.25 -2.65) rotate(45)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ff986a"/><stop offset="0.23" stop-color="#ffb16a"/><stop offset="1" stop-color="#ff986a"/></linearGradient><linearGradient id="未命名的渐变_39" x1="3.15" y1="2.3" x2="11.5" y2="2.3" gradientTransform="translate(14.1 -3.17) rotate(90)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffd9a3"/><stop offset="1" stop-color="#ffb16a"/></linearGradient></defs><title>彩色</title><path class="cls-1" d="M12.59,4.37C11,2.74,9.29,1.77,8.85,2.21s-.64,1.91-.14,3.26l-2.2,2.2c-1.34-.51-2.73-.4-3.26.14-.38.38.31,1.7,1.57,3.11L1.91,14.74l.42.43,4-2.81c1.31,1.11,2.5,1.7,2.85,1.35a3.29,3.29,0,0,0,.21-3.07l2.33-2.32a3.32,3.32,0,0,0,3.06-.21C15.19,7.67,14.22,6,12.59,4.37Z"/><path class="cls-2" d="M13.21,5.2C11.58,3.57,9.91,2.61,9.47,3S8.83,5,9.33,6.3L7.13,8.5C5.79,8,4.4,8.11,3.87,8.64c-.38.38.31,1.7,1.57,3.11L2.52,15.58,3,16l4-2.81c1.31,1.12,2.49,1.71,2.85,1.35A3.27,3.27,0,0,0,10,11.48l2.33-2.33a3.27,3.27,0,0,0,3.06-.21C15.81,8.51,14.84,6.83,13.21,5.2Z"/><polygon class="cls-3" points="1.91 13.74 5.07 9.6 6.61 11.13 2.33 14.17 1.91 13.74"/><path class="cls-4" d="M8.22,7.74C6.59,6.11,4,6,3.25,6.81c-.43.43.54,2.11,2.16,3.74s3.31,2.59,3.74,2.16C9.93,11.93,9.85,9.37,8.22,7.74Z"/><path class="cls-5" d="M9.18,4l-3,3c-.25.26.2,1.12,1,1.92s1.66,1.25,1.92,1l3-3Z"/><path class="cls-6" d="M11,4.94c-1.63-1.63-2.6-3.3-2.17-3.73-.77.77-.69,3.33.94,5s4.19,1.71,5,.94C14.32,7.54,12.65,6.57,11,4.94Z"/><ellipse class="cls-7" cx="11.8" cy="4.16" rx="1.11" ry="4.17" transform="translate(0.52 9.56) rotate(-45)"/></svg>
|
|
\ No newline at end of file
|
|
diff --git a/data/img/mainviewwidget/lock.svg b/data/img/mainviewwidget/lock.svg
|
|
index 0ceb0d3..6b3d4bf 100644
|
|
--- a/data/img/mainviewwidget/lock.svg
|
|
+++ b/data/img/mainviewwidget/lock.svg
|
|
@@ -1,31 +1 @@
|
|
-<?xml version="1.0" encoding="utf-8"?>
|
|
-<!-- Generator: Adobe Illustrator 24.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
-<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
- viewBox="0 0 12 12" style="enable-background:new 0 0 12 12;" xml:space="preserve">
|
|
-<style type="text/css">
|
|
- .st0{fill:#607D8B;}
|
|
- .st1{opacity:0.3;}
|
|
- .st2{fill:url(#SVGID_1_);}
|
|
- .st3{opacity:0.5;fill:#FDEFBA;enable-background:new ;}
|
|
-</style>
|
|
-<title>画板 1</title>
|
|
-<g id="锁-小">
|
|
- <g id="_32-3">
|
|
- <g id="_512">
|
|
- <g>
|
|
- <path class="st0" d="M10,7H8.6V6H9V4c0-1.6-1.4-3-3-3C4.3,1,3,2.3,3,4v2h0.4v1H2V4c0-2.2,1.8-4,4-4c2.2,0,4,1.8,4,4V7z"/>
|
|
- </g>
|
|
- <path class="st1" d="M1,4h10c0.6,0,1,0.4,1,1v5c0,1.1-0.9,2-2,2H2c-1.1,0-2-0.9-2-2V5C0,4.4,0.4,4,1,4z"/>
|
|
-
|
|
- <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="6" y1="113.0986" x2="6" y2="120" gradientTransform="matrix(1 0 0 -1 0 124)">
|
|
- <stop offset="0" style="stop-color:#F5A816"/>
|
|
- <stop offset="0.67" style="stop-color:#F9CE4B"/>
|
|
- <stop offset="1" style="stop-color:#FADD60"/>
|
|
- </linearGradient>
|
|
- <path class="st2" d="M2,4h8c0.6,0,1,0.4,1,1v5c0,0.6-0.4,1-1,1H2c-0.6,0-1-0.4-1-1V5C1,4.4,1.4,4,2,4z"/>
|
|
- <rect x="2" y="4" class="st3" width="1" height="7"/>
|
|
- <rect x="9" y="4" class="st3" width="1" height="7"/>
|
|
- </g>
|
|
- </g>
|
|
-</g>
|
|
-</svg>
|
|
+<svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><defs><style>.cls-1{fill:#fff;opacity:0.65;}</style></defs><title>单色</title><path class="cls-1" d="M14.35,5.79,10.19,1.63A.75.75,0,0,0,9.13,2.69l.48.48L5.9,6.8l-2.68.69a.25.25,0,0,0-.11.42l2.14,2.14L1.87,13.43a.5.5,0,0,0,.35.85.47.47,0,0,0,.35-.15L6,10.75l2.14,2.14a.25.25,0,0,0,.42-.11L9.2,10.1l3.63-3.71.46.46a.74.74,0,0,0,.53.22.71.71,0,0,0,.53-.22A.74.74,0,0,0,14.35,5.79Z"/></svg>
|
|
\ No newline at end of file
|
|
diff --git a/src/CommonUseWidget/commonusewidget.cpp b/src/CommonUseWidget/commonusewidget.cpp
|
|
index d276d82..b216247 100644
|
|
--- a/src/CommonUseWidget/commonusewidget.cpp
|
|
+++ b/src/CommonUseWidget/commonusewidget.cpp
|
|
@@ -79,29 +79,8 @@ void CommonUseWidget::initAppListWidget()
|
|
*/
|
|
void CommonUseWidget::fillAppList()
|
|
{
|
|
- QStringList keys;
|
|
- keys.clear();
|
|
- setting->beginGroup("application");
|
|
- keys=setting->childKeys();
|
|
- QStringList applist;
|
|
- applist.clear();
|
|
- for(int i=0;i<keys.count();i++)
|
|
- {
|
|
- int val=setting->value(keys.at(i)).toInt();
|
|
- if(val==2 || val==0)
|
|
- applist.append(keys.at(i));
|
|
- }
|
|
-
|
|
- data.clear();
|
|
- for(int i=0;i<applist.count();i++)
|
|
- {
|
|
-// QString desktopfp=pUkuiMenuInterface->getDesktopPathByAppName(applist.at(i));
|
|
- QString desktopfp=QString("/usr/share/applications/"+applist.at(i));
|
|
- data.append(QStringList()<<desktopfp<<"1");
|
|
- }
|
|
-
|
|
+ getCommonUseAppList();
|
|
listview->addData(data);
|
|
- setting->endGroup();
|
|
}
|
|
|
|
/**
|
|
@@ -126,30 +105,50 @@ void CommonUseWidget::execApplication(QStringList arg)
|
|
*/
|
|
void CommonUseWidget::updateListViewSlot()
|
|
{
|
|
- QStringList keys;
|
|
- keys.clear();
|
|
+ getCommonUseAppList();
|
|
+ listview->updateData(data);
|
|
+}
|
|
+
|
|
+void CommonUseWidget::getCommonUseAppList()
|
|
+{
|
|
+// QStringList lockdesktopfnList;
|
|
+ QStringList desktopfnList;
|
|
+// lockdesktopfnList.clear();
|
|
+ desktopfnList.clear();
|
|
+ setting->beginGroup("lockapplication");
|
|
+ QStringList lockdesktopfnList=setting->allKeys();
|
|
+ for(int i=0;i<lockdesktopfnList.count()-1;i++)
|
|
+ for(int j=0;j<lockdesktopfnList.count()-1-i;j++)
|
|
+ {
|
|
+ int value_1=setting->value(lockdesktopfnList.at(j)).toInt();
|
|
+ int value_2=setting->value(lockdesktopfnList.at(j+1)).toInt();
|
|
+ if(value_1 > value_2)
|
|
+ {
|
|
+ QString tmp=lockdesktopfnList.at(j);
|
|
+ lockdesktopfnList.replace(j,lockdesktopfnList.at(j+1));
|
|
+ lockdesktopfnList.replace(j+1,tmp);
|
|
+
|
|
+ }
|
|
+ }
|
|
+ setting->endGroup();
|
|
setting->beginGroup("application");
|
|
- keys=setting->childKeys();
|
|
- QStringList applist;
|
|
- applist.clear();
|
|
- for(int i=0;i<keys.count();i++)
|
|
+ Q_FOREACH(QString desktopfn,setting->childKeys())
|
|
{
|
|
- int val=setting->value(keys.at(i)).toInt();
|
|
- if(val==2 || val==0)
|
|
- applist.append(keys.at(i));
|
|
+ if(setting->value(desktopfn)==2)
|
|
+ desktopfnList.append(desktopfn);
|
|
}
|
|
-
|
|
+ setting->endGroup();
|
|
data.clear();
|
|
- for(int i=0;i<applist.count();i++)
|
|
+ Q_FOREACH(QString desktopfn,lockdesktopfnList)
|
|
{
|
|
-// QString desktopfp=pUkuiMenuInterface->getDesktopPathByAppName(applist.at(i));
|
|
- QString desktopfp=QString("/usr/share/applications/"+applist.at(i));
|
|
+ QString desktopfp=QString("/usr/share/applications/"+desktopfn);
|
|
+ data.append(QStringList()<<desktopfp<<"1");
|
|
+ }
|
|
+ Q_FOREACH(QString desktopfn,desktopfnList)
|
|
+ {
|
|
+ QString desktopfp=QString("/usr/share/applications/"+desktopfn);
|
|
data.append(QStringList()<<desktopfp<<"1");
|
|
}
|
|
-
|
|
- listview->updateData(data);
|
|
- setting->endGroup();
|
|
-
|
|
}
|
|
|
|
void CommonUseWidget::widgetMakeZero()
|
|
diff --git a/src/CommonUseWidget/commonusewidget.h b/src/CommonUseWidget/commonusewidget.h
|
|
index 3009327..84dedcd 100644
|
|
--- a/src/CommonUseWidget/commonusewidget.h
|
|
+++ b/src/CommonUseWidget/commonusewidget.h
|
|
@@ -65,7 +65,7 @@ protected:
|
|
void initWidget();
|
|
void initAppListWidget();//初始化应用列表界面
|
|
void fillAppList();//填充应用列表
|
|
-
|
|
+ void getCommonUseAppList();//获取常用应用列表
|
|
|
|
private Q_SLOTS:
|
|
void updateListViewSlot();//更新应用列表槽函数
|
|
diff --git a/src/CommonUseWidget/fullcommonusewidget.cpp b/src/CommonUseWidget/fullcommonusewidget.cpp
|
|
index 3d91c6b..d6bb171 100644
|
|
--- a/src/CommonUseWidget/fullcommonusewidget.cpp
|
|
+++ b/src/CommonUseWidget/fullcommonusewidget.cpp
|
|
@@ -69,29 +69,8 @@ void FullCommonUseWidget::initAppListWidget()
|
|
|
|
void FullCommonUseWidget::fillAppList()
|
|
{
|
|
- QStringList keys;
|
|
- keys.clear();
|
|
- setting->beginGroup("application");
|
|
- keys=setting->childKeys();
|
|
- QStringList applist;
|
|
- applist.clear();
|
|
- for(int i=0;i<keys.count();i++)
|
|
- {
|
|
- int val=setting->value(keys.at(i)).toInt();
|
|
- if(val==2 || val==0)
|
|
- applist.append(keys.at(i));
|
|
- }
|
|
-
|
|
- data.clear();
|
|
- for(int i=0;i<applist.count();i++)
|
|
- {
|
|
-// QString desktopfp=pUkuiMenuInterface->getDesktopPathByAppName(applist.at(i));
|
|
- QString desktopfp=QString("/usr/share/applications/"+applist.at(i));
|
|
- data.append(desktopfp);
|
|
- }
|
|
-
|
|
+ getCommonUseAppList();
|
|
listview->addData(data);
|
|
- setting->endGroup();
|
|
}
|
|
|
|
/**
|
|
@@ -115,29 +94,48 @@ void FullCommonUseWidget::execApplication(QString appname)
|
|
*/
|
|
void FullCommonUseWidget::updateListViewSlot()
|
|
{
|
|
- QStringList keys;
|
|
- keys.clear();
|
|
+ getCommonUseAppList();
|
|
+ listview->updateData(data);
|
|
+}
|
|
+
|
|
+void FullCommonUseWidget::getCommonUseAppList()
|
|
+{
|
|
+ QStringList desktopfnList;
|
|
+ desktopfnList.clear();
|
|
+ setting->beginGroup("lockapplication");
|
|
+ QStringList lockdesktopfnList=setting->allKeys();
|
|
+ for(int i=0;i<lockdesktopfnList.count()-1;i++)
|
|
+ for(int j=0;j<lockdesktopfnList.count()-1-i;j++)
|
|
+ {
|
|
+ int value_1=setting->value(lockdesktopfnList.at(j)).toInt();
|
|
+ int value_2=setting->value(lockdesktopfnList.at(j+1)).toInt();
|
|
+ if(value_1 > value_2)
|
|
+ {
|
|
+ QString tmp=lockdesktopfnList.at(j);
|
|
+ lockdesktopfnList.replace(j,lockdesktopfnList.at(j+1));
|
|
+ lockdesktopfnList.replace(j+1,tmp);
|
|
+
|
|
+ }
|
|
+ }
|
|
+ setting->endGroup();
|
|
setting->beginGroup("application");
|
|
- keys=setting->childKeys();
|
|
- QStringList applist;
|
|
- applist.clear();
|
|
- for(int i=0;i<keys.count();i++)
|
|
+ Q_FOREACH(QString desktopfn,setting->childKeys())
|
|
{
|
|
- int val=setting->value(keys.at(i)).toInt();
|
|
- if(val==2 || val==0)
|
|
- applist.append(keys.at(i));
|
|
+ if(setting->value(desktopfn)==2)
|
|
+ desktopfnList.append(desktopfn);
|
|
}
|
|
-
|
|
+ setting->endGroup();
|
|
data.clear();
|
|
- for(int i=0;i<applist.count();i++)
|
|
+ Q_FOREACH(QString desktopfn,lockdesktopfnList)
|
|
{
|
|
-// QString desktopfp=pUkuiMenuInterface->getDesktopPathByAppName(applist.at(i));
|
|
- QString desktopfp=QString("/usr/share/applications/"+applist.at(i));
|
|
+ QString desktopfp=QString("/usr/share/applications/"+desktopfn);
|
|
+ data.append(desktopfp);
|
|
+ }
|
|
+ Q_FOREACH(QString desktopfn,desktopfnList)
|
|
+ {
|
|
+ QString desktopfp=QString("/usr/share/applications/"+desktopfn);
|
|
data.append(desktopfp);
|
|
}
|
|
-
|
|
- listview->updateData(data);
|
|
- setting->endGroup();
|
|
}
|
|
|
|
void FullCommonUseWidget::widgetMakeZero()
|
|
diff --git a/src/CommonUseWidget/fullcommonusewidget.h b/src/CommonUseWidget/fullcommonusewidget.h
|
|
index ae5eca4..c5a7d4e 100644
|
|
--- a/src/CommonUseWidget/fullcommonusewidget.h
|
|
+++ b/src/CommonUseWidget/fullcommonusewidget.h
|
|
@@ -67,6 +67,7 @@ protected:
|
|
void initWidget();
|
|
void initAppListWidget();//初始化应用列表界面
|
|
void fillAppList();//填充应用列表
|
|
+ void getCommonUseAppList();//获取常用应用列表
|
|
|
|
private Q_SLOTS:
|
|
void updateListViewSlot();//更新应用列表槽函数
|
|
diff --git a/src/Interface/ukuimenuinterface.cpp b/src/Interface/ukuimenuinterface.cpp
|
|
index 577873b..3ebb8cf 100644
|
|
--- a/src/Interface/ukuimenuinterface.cpp
|
|
+++ b/src/Interface/ukuimenuinterface.cpp
|
|
@@ -273,21 +273,24 @@ QString UkuiMenuInterface::getAppName(QString desktopfp)
|
|
char* filepath=fpbyte.data();
|
|
g_key_file_load_from_file(keyfile,filepath,flags,error);
|
|
|
|
- QString namestr;
|
|
- QLocale cn;
|
|
- QString language=cn.languageToString(cn.language());
|
|
- if(QString::compare(language,"Chinese")==0)
|
|
- {
|
|
- char* name;
|
|
- name=g_key_file_get_locale_string(keyfile,"Desktop Entry","Name[zh_CN]", nullptr, nullptr);
|
|
- if(QString::fromLocal8Bit(name).isEmpty())
|
|
- name=g_key_file_get_locale_string(keyfile,"Desktop Entry","Name", nullptr, nullptr);
|
|
- namestr=QString::fromLocal8Bit(name);
|
|
- }
|
|
- else {
|
|
- char* name=g_key_file_get_locale_string(keyfile,"Desktop Entry","Name", nullptr, nullptr);
|
|
- namestr=QString::fromLocal8Bit(name);
|
|
- }
|
|
+ char* name=g_key_file_get_locale_string(keyfile,"Desktop Entry","Name", nullptr, nullptr);
|
|
+ QString namestr=QString::fromLocal8Bit(name);
|
|
+
|
|
+// QString namestr;
|
|
+// QLocale cn;
|
|
+// QString language=cn.languageToString(cn.language());
|
|
+// if(QString::compare(language,"Chinese")==0)
|
|
+// {
|
|
+// char* name;
|
|
+// name=g_key_file_get_locale_string(keyfile,"Desktop Entry","Name[zh_CN]", nullptr, nullptr);
|
|
+// if(QString::fromLocal8Bit(name).isEmpty())
|
|
+// name=g_key_file_get_locale_string(keyfile,"Desktop Entry","Name", nullptr, nullptr);
|
|
+// namestr=QString::fromLocal8Bit(name);
|
|
+// }
|
|
+// else {
|
|
+// char* name=g_key_file_get_locale_string(keyfile,"Desktop Entry","Name", nullptr, nullptr);
|
|
+// namestr=QString::fromLocal8Bit(name);
|
|
+// }
|
|
|
|
g_key_file_free(keyfile);
|
|
return namestr;
|
|
diff --git a/src/MainViewWidget/mainviewwidget.cpp b/src/MainViewWidget/mainviewwidget.cpp
|
|
index 8a4f434..ed354fa 100644
|
|
--- a/src/MainViewWidget/mainviewwidget.cpp
|
|
+++ b/src/MainViewWidget/mainviewwidget.cpp
|
|
@@ -613,6 +613,10 @@ void MainViewWidget::directoryChangedSlot()
|
|
QString desktopfp=UkuiMenuInterface::appInfoVector.at(i).at(0);
|
|
QFileInfo fileInfo(desktopfp);
|
|
QString desktopfn=fileInfo.fileName();
|
|
+ setting->beginGroup("lockapplication");
|
|
+ setting->remove(desktopfn);
|
|
+ setting->sync();
|
|
+ setting->endGroup();
|
|
setting->beginGroup("application");
|
|
setting->remove(desktopfn);
|
|
setting->sync();
|
|
diff --git a/src/MainWindow/mainwindow.cpp b/src/MainWindow/mainwindow.cpp
|
|
index 0db0ffa..e03ddcf 100644
|
|
--- a/src/MainWindow/mainwindow.cpp
|
|
+++ b/src/MainWindow/mainwindow.cpp
|
|
@@ -101,9 +101,8 @@ void MainWindow::initMainWindow()
|
|
// path.addRoundedRect(rect, 6, 6);
|
|
// setProperty("blurRegion", QRegion(path.toFillPolygon().toPolygon()));
|
|
|
|
- ui->mainToolBar->hide();
|
|
- ui->menuBar->hide();
|
|
- ui->statusBar->hide();
|
|
+ ui->menubar->hide();
|
|
+ ui->statusbar->hide();
|
|
this->setSizePolicy(QSizePolicy::Minimum,QSizePolicy::Minimum);
|
|
// this->setMinimumSize(390+20+2,532+20+2);
|
|
// this->setContentsMargins(1,21,21,1);
|
|
@@ -111,7 +110,7 @@ void MainWindow::initMainWindow()
|
|
this->setContentsMargins(0,0,0,0);
|
|
|
|
frame=new QFrame(this);
|
|
- sidebarwid=new SideBarWidget();
|
|
+ sidebarwid=new SideBarWidget(this);
|
|
mainviewwid=new MainViewWidget(this);
|
|
|
|
this->setCentralWidget(frame);
|
|
@@ -168,10 +167,10 @@ void MainWindow::initMainWindow()
|
|
/**
|
|
* 添加阴影
|
|
*/
|
|
-void MainWindow::paintEvent(QPaintEvent *)
|
|
-{
|
|
- if(!is_fullscreen)
|
|
- {
|
|
+//void MainWindow::paintEvent(QPaintEvent *)
|
|
+//{
|
|
+// if(!is_fullscreen)
|
|
+// {
|
|
// QPainter painter(this);
|
|
// const qreal radius =6;
|
|
|
|
@@ -232,8 +231,8 @@ void MainWindow::paintEvent(QPaintEvent *)
|
|
// painter.setBrush(Qt::NoBrush);
|
|
// painter.drawPath(path);
|
|
// }
|
|
- }
|
|
-}
|
|
+// }
|
|
+//}
|
|
|
|
/**
|
|
* 显示全屏窗口
|
|
@@ -300,7 +299,7 @@ void MainWindow::showDefaultWidget()
|
|
mainviewwid->loadMinMainView();
|
|
//插入分割线
|
|
mainlayout->insertWidget(1,line);
|
|
- this->repaint();
|
|
+// this->repaint();
|
|
frame->setStyleSheet(style);
|
|
}
|
|
|
|
@@ -401,5 +400,4 @@ void MainWindow::keyPressEvent(QKeyEvent *e)
|
|
mainviewwid->setLineEditFocus(e->text());
|
|
}
|
|
}
|
|
-
|
|
}
|
|
diff --git a/src/MainWindow/mainwindow.h b/src/MainWindow/mainwindow.h
|
|
index 3c48c5b..8e2902b 100644
|
|
--- a/src/MainWindow/mainwindow.h
|
|
+++ b/src/MainWindow/mainwindow.h
|
|
@@ -72,7 +72,7 @@ private:
|
|
protected:
|
|
void initMainWindow();
|
|
bool event(QEvent *event);//鼠标点击窗口外部事件
|
|
- void paintEvent(QPaintEvent*);//添加阴影
|
|
+// void paintEvent(QPaintEvent*);//添加阴影
|
|
void keyPressEvent(QKeyEvent* e);//查询框响应键盘事件
|
|
|
|
private Q_SLOTS:
|
|
diff --git a/src/MainWindow/mainwindow.ui b/src/MainWindow/mainwindow.ui
|
|
index 8144409..b232854 100644
|
|
--- a/src/MainWindow/mainwindow.ui
|
|
+++ b/src/MainWindow/mainwindow.ui
|
|
@@ -6,35 +6,17 @@
|
|
<rect>
|
|
<x>0</x>
|
|
<y>0</y>
|
|
- <width>400</width>
|
|
- <height>300</height>
|
|
+ <width>800</width>
|
|
+ <height>600</height>
|
|
</rect>
|
|
</property>
|
|
<property name="windowTitle">
|
|
<string>MainWindow</string>
|
|
</property>
|
|
- <widget class="QWidget" name="centralWidget"/>
|
|
- <widget class="QMenuBar" name="menuBar">
|
|
- <property name="geometry">
|
|
- <rect>
|
|
- <x>0</x>
|
|
- <y>0</y>
|
|
- <width>400</width>
|
|
- <height>29</height>
|
|
- </rect>
|
|
- </property>
|
|
- </widget>
|
|
- <widget class="QToolBar" name="mainToolBar">
|
|
- <attribute name="toolBarArea">
|
|
- <enum>TopToolBarArea</enum>
|
|
- </attribute>
|
|
- <attribute name="toolBarBreak">
|
|
- <bool>false</bool>
|
|
- </attribute>
|
|
- </widget>
|
|
- <widget class="QStatusBar" name="statusBar"/>
|
|
+ <widget class="QWidget" name="centralwidget"/>
|
|
+ <widget class="QMenuBar" name="menubar"/>
|
|
+ <widget class="QStatusBar" name="statusbar"/>
|
|
</widget>
|
|
- <layoutdefault spacing="6" margin="11"/>
|
|
<resources/>
|
|
<connections/>
|
|
</ui>
|
|
diff --git a/src/RightClickMenu/rightclickmenu.cpp b/src/RightClickMenu/rightclickmenu.cpp
|
|
index 165a9d6..f21459e 100644
|
|
--- a/src/RightClickMenu/rightclickmenu.cpp
|
|
+++ b/src/RightClickMenu/rightclickmenu.cpp
|
|
@@ -171,24 +171,24 @@ RightClickMenu::~RightClickMenu()
|
|
//常用应用按钮右键菜单
|
|
void RightClickMenu::addCommonUseAppBtnAction()
|
|
{
|
|
- setting->beginGroup("application");
|
|
+ setting->beginGroup("lockapplication");
|
|
QFileInfo fileInfo(desktopfp);
|
|
QString desktopfn=fileInfo.fileName();
|
|
- if(!setting->contains(desktopfn) || setting->value(desktopfn).toInt()>0)
|
|
+ if(!setting->contains(desktopfn))
|
|
{
|
|
initWidgetAction(CuFix2CommonUseWid,":/data/img/mainviewwidget/fixed.svg",tr("Pin to common"));
|
|
CuFix2CommonUseAction->setDefaultWidget(CuFix2CommonUseWid);
|
|
cuappbtnmenu->addAction(CuFix2CommonUseAction);
|
|
connect(CuFix2CommonUseAction, SIGNAL(triggered()),this,SLOT(fixToCommonUseActionTriggerSlot()));
|
|
}
|
|
-
|
|
- if(setting->contains(desktopfn) && setting->value(desktopfn).toInt()==0)
|
|
+ else
|
|
{
|
|
initWidgetAction(CuUnfixed4CommonUseWid,":/data/img/mainviewwidget/unfixed.svg",tr("Unpin from common"));
|
|
CuUnfixed4CommonUseAction->setDefaultWidget(CuUnfixed4CommonUseWid);
|
|
cuappbtnmenu->addAction(CuUnfixed4CommonUseAction);
|
|
connect(CuUnfixed4CommonUseAction, SIGNAL(triggered()),this,SLOT(unfixedFromCommonUseActionTriggerSlot()));
|
|
}
|
|
+ setting->endGroup();
|
|
|
|
cuappbtnmenu->addSeparator();
|
|
|
|
@@ -224,11 +224,13 @@ void RightClickMenu::addCommonUseAppBtnAction()
|
|
cuappbtnmenu->addAction(separatorAction_1);
|
|
// cuappbtnmenu->addSeparator();
|
|
|
|
+
|
|
initWidgetAction(CuDeleteWid,"",tr("Remove from list"));
|
|
CuDeleteAction->setDefaultWidget(CuDeleteWid);
|
|
cuappbtnmenu->addAction(CuDeleteAction);
|
|
connect(CuDeleteAction,SIGNAL(triggered()),this,SLOT(commonUseDeleteActionTriggerSlot()));
|
|
- if(setting->contains(desktopfn) && setting->value(desktopfn).toInt()==0)
|
|
+ setting->beginGroup("lockapplication");
|
|
+ if(setting->contains(desktopfn))
|
|
{
|
|
QLayoutItem* item=CuDeleteWid->layout()->itemAt(0);
|
|
QWidget* wid=item->widget();
|
|
@@ -236,6 +238,7 @@ void RightClickMenu::addCommonUseAppBtnAction()
|
|
label->setStyleSheet("QLabel{background:transparent;border:0px;color:#4Dffffff;font-size:14px;}");
|
|
CuDeleteAction->setDisabled(true);
|
|
}
|
|
+ setting->endGroup();
|
|
|
|
cuappbtnmenu->addSeparator();
|
|
|
|
@@ -243,6 +246,7 @@ void RightClickMenu::addCommonUseAppBtnAction()
|
|
CuDeleteAllAction->setDefaultWidget(CuDeleteAllWid);
|
|
cuappbtnmenu->addAction(CuDeleteAllAction);
|
|
connect(CuDeleteAllAction,SIGNAL(triggered()),this,SLOT(commonUseDeleteAllActionTriggerSlot()));
|
|
+ setting->beginGroup("application");
|
|
QStringList keys=setting->childKeys();
|
|
int count;
|
|
for(count=0;count<keys.count();count++)
|
|
@@ -258,6 +262,7 @@ void RightClickMenu::addCommonUseAppBtnAction()
|
|
label->setStyleSheet("QLabel{background:transparent;border:0px;color:#4Dffffff;font-size:14px;}");
|
|
CuDeleteAllAction->setDisabled(true);
|
|
}
|
|
+ setting->endGroup();
|
|
|
|
// cuappbtnmenu->addSeparator();
|
|
cuappbtnmenu->addAction(separatorAction_2);
|
|
@@ -280,26 +285,22 @@ void RightClickMenu::addCommonUseAppBtnAction()
|
|
cuappbtnmenu->setAttribute(Qt::WA_TranslucentBackground);
|
|
// cuappbtnmenu->setWindowOpacity(RightClickMenuOpacity);
|
|
cuappbtnmenu->setStyleSheet(style);
|
|
-
|
|
- setting->endGroup();
|
|
}
|
|
|
|
//普通应用按钮右键菜单
|
|
void RightClickMenu::addAppBtnAction()
|
|
{
|
|
-
|
|
- setting->beginGroup("application");
|
|
+ setting->beginGroup("lockapplication");
|
|
QFileInfo fileInfo(desktopfp);
|
|
QString desktopfn=fileInfo.fileName();
|
|
- if(!setting->contains(desktopfn) || setting->value(desktopfn).toInt()>0)
|
|
+ if(!setting->contains(desktopfn))
|
|
{
|
|
initWidgetAction(Fix2CommonUseWid,":/data/img/mainviewwidget/fixed.svg",tr("Pin to common"));
|
|
Fix2CommonUseAction->setDefaultWidget(Fix2CommonUseWid);
|
|
appbtnmenu->addAction(Fix2CommonUseAction);
|
|
connect(Fix2CommonUseAction, SIGNAL(triggered()),this,SLOT(fixToCommonUseActionTriggerSlot()));
|
|
}
|
|
-
|
|
- if(setting->contains(desktopfn) && setting->value(desktopfn).toInt()==0)
|
|
+ else
|
|
{
|
|
initWidgetAction(Unfixed4CommonUseWid,":/data/img/mainviewwidget/unfixed.svg",tr("Unpin from common"));
|
|
Unfixed4CommonUseAction->setDefaultWidget(Unfixed4CommonUseWid);
|
|
@@ -499,8 +500,12 @@ void RightClickMenu::fixToCommonUseActionTriggerSlot()
|
|
action_number=1;
|
|
QFileInfo fileInfo(desktopfp);
|
|
QString desktopfn=fileInfo.fileName();
|
|
+ setting->beginGroup("lockapplication");
|
|
+ setting->setValue(desktopfn,setting->allKeys().size());
|
|
+ setting->sync();
|
|
+ setting->endGroup();
|
|
setting->beginGroup("application");
|
|
- setting->setValue(desktopfn,0);
|
|
+ setting->remove(desktopfn);
|
|
setting->sync();
|
|
setting->endGroup();
|
|
setting->beginGroup("datetime");
|
|
@@ -514,6 +519,17 @@ void RightClickMenu::unfixedFromCommonUseActionTriggerSlot()
|
|
action_number=2;
|
|
QFileInfo fileInfo(desktopfp);
|
|
QString desktopfn=fileInfo.fileName();
|
|
+ setting->beginGroup("lockapplication");
|
|
+ Q_FOREACH(QString desktop,setting->allKeys())
|
|
+ {
|
|
+ if(setting->value(desktop).toInt() > setting->value(desktopfn).toInt())
|
|
+ {
|
|
+ setting->setValue(desktop,setting->value(desktop).toInt()-1);
|
|
+ }
|
|
+ }
|
|
+ setting->remove(desktopfn);
|
|
+ setting->sync();
|
|
+ setting->endGroup();
|
|
setting->beginGroup("application");
|
|
setting->setValue(desktopfn,2);
|
|
setting->sync();
|
|
@@ -722,5 +738,3 @@ void RightClickMenu::showOtherMenu(QString desktopfp)
|
|
addOtherAction();
|
|
othermenu->exec(QCursor::pos());
|
|
}
|
|
-
|
|
-
|
|
diff --git a/src/RightClickMenu/rightclickmenu.h b/src/RightClickMenu/rightclickmenu.h
|
|
index 2e4c62b..2fc790a 100644
|
|
--- a/src/RightClickMenu/rightclickmenu.h
|
|
+++ b/src/RightClickMenu/rightclickmenu.h
|
|
@@ -33,6 +33,7 @@
|
|
#include <QFileInfo>
|
|
#include <QDBusInterface>
|
|
#include <QProcess>
|
|
+#include <QEvent>
|
|
#include "src/Interface/ukuimenuinterface.h"
|
|
#include "src/Style/style.h"
|
|
|
|
diff --git a/src/SideBarWidget/sidebarwidget.cpp b/src/SideBarWidget/sidebarwidget.cpp
|
|
index ca69135..c1e0e61 100644
|
|
--- a/src/SideBarWidget/sidebarwidget.cpp
|
|
+++ b/src/SideBarWidget/sidebarwidget.cpp
|
|
@@ -54,30 +54,6 @@ void SideBarWidget::initWidget()
|
|
addSidebarBtn();
|
|
loadMinSidebar();
|
|
|
|
- //全屏侧边栏悬浮动画
|
|
-// pEnterAnimation=new QPropertyAnimation;
|
|
-// pEnterAnimation->setTargetObject(pMainWidget);
|
|
-// pEnterAnimation->setPropertyName("pos");
|
|
-// pEnterAnimation->setDuration(500);
|
|
-// pAnimation->setStartValue(QRect(390,QApplication::desktop()->availableGeometry().height()-532,390,532));
|
|
-// pAnimation->setEndValue(QRect(490,QApplication::desktop()->availableGeometry().height()-532,490,532));
|
|
-// pAnimation->setStartValue(QRect(100,0,
|
|
-// 60,QApplication::desktop()->availableGeometry().height()));
|
|
-// pAnimation->setEndValue(QRect(0,0,
|
|
-// 160,QApplication::desktop()->availableGeometry().height()));
|
|
-// pEnterAnimation->setStartValue(QPoint(100,0));
|
|
-// pEnterAnimation->setEndValue(QPoint(0,0));
|
|
-// pEnterAnimation->setEasingCurve(QEasingCurve::Linear);
|
|
-// connect(pEnterAnimation,SIGNAL(finished()),this,SLOT(animation_finished_slot()));
|
|
-
|
|
-// pLeaveAnimation=new QPropertyAnimation;
|
|
-// pLeaveAnimation->setTargetObject(pMainWidget);
|
|
-// pLeaveAnimation->setPropertyName("pos");
|
|
-// pLeaveAnimation->setDuration(500);
|
|
-// pLeaveAnimation->setStartValue(QPoint(0,0));
|
|
-// pLeaveAnimation->setEndValue(QPoint(100,0));
|
|
-// pLeaveAnimation->setEasingCurve(QEasingCurve::Linear);
|
|
-
|
|
pUkuiMenuInterface=new UkuiMenuInterface;
|
|
|
|
}
|
|
diff --git a/src/UtilityFunction/fullitemdelegate.cpp b/src/UtilityFunction/fullitemdelegate.cpp
|
|
index 29de925..ab8ae81 100644
|
|
--- a/src/UtilityFunction/fullitemdelegate.cpp
|
|
+++ b/src/UtilityFunction/fullitemdelegate.cpp
|
|
@@ -93,18 +93,16 @@ void FullItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opti
|
|
icon.paint(painter,iconRect);
|
|
if(module==0)
|
|
{
|
|
- setting->beginGroup("application");
|
|
+ setting->beginGroup("lockapplication");
|
|
QFileInfo fileInfo(desktopfp);
|
|
QString desktopfn=fileInfo.fileName();
|
|
- if(setting->value(desktopfn).toInt()==0)
|
|
+ if(setting->contains(desktopfn))
|
|
{
|
|
QIcon icon(QString(":/data/img/mainviewwidget/lock-fs.svg"));
|
|
icon.paint(painter,QRect(iconRect.topRight().x()-14,iconRect.topRight().y()-2,16,16));
|
|
-// painter->drawImage(QRect(iconRect.topRight().x()-8,iconRect.topRight().y(),16,16),
|
|
-// icon.pixmap(icon.actualSize(QSize(16, 16))).toImage());
|
|
+// icon.paint(painter,QRect(rect.topRight().x()-18,rect.topRight().y()+6,12,12));
|
|
}
|
|
setting->endGroup();
|
|
-
|
|
}
|
|
|
|
painter->setPen(QPen(Qt::white));
|
|
@@ -116,10 +114,8 @@ void FullItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opti
|
|
rect.height()-iconRect.height()-Style::AppSpaceBetweenIconText);
|
|
QFontMetrics fm=painter->fontMetrics();
|
|
QString appnameElidedText=fm.elidedText(appname,Qt::ElideRight,rect.width(),Qt::TextShowMnemonic);
|
|
-// painter->drawText(textRect,Qt::TextWordWrap |Qt::AlignHCenter | Qt::AlignTop,appname);
|
|
painter->drawText(textRect,Qt::AlignHCenter |Qt::AlignTop,appnameElidedText);
|
|
|
|
-// painter->setRenderHint(QPainter::Antialiasing);
|
|
if(option.state & QStyle::State_MouseOver)
|
|
{
|
|
// painter->setPen(QPen(Qt::NoPen));
|
|
diff --git a/src/UtilityFunction/fulllistview.cpp b/src/UtilityFunction/fulllistview.cpp
|
|
index 18b77c2..75845c7 100644
|
|
--- a/src/UtilityFunction/fulllistview.cpp
|
|
+++ b/src/UtilityFunction/fulllistview.cpp
|
|
@@ -73,7 +73,6 @@ void FullListView::initWidget()
|
|
this->setGridSize(QSize(Style::AppListGridSizeWidth,Style::AppListGridSizeWidth));
|
|
connect(this,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(rightClickedSlot()));
|
|
connect(this,SIGNAL(clicked(QModelIndex)),this,SLOT(onClicked(QModelIndex)));
|
|
- connect(this,SIGNAL(entered(QModelIndex)),this,SLOT(showToolTip(QModelIndex)));
|
|
}
|
|
|
|
void FullListView::addData(QStringList data)
|
|
@@ -135,37 +134,49 @@ void FullListView::rightClickedSlot()
|
|
}
|
|
else{
|
|
int ret=menu->showCommonUseAppBtnMenu(desktopfp);
|
|
- if(ret==1 || ret==2)
|
|
+ if(ret==1)
|
|
{
|
|
this->setCurrentIndex(index);
|
|
+ listmodel->removeRow(index.row());
|
|
+ setting->beginGroup("lockapplication");
|
|
+ QStandardItem* item=new QStandardItem;
|
|
+ item->setData(QVariant::fromValue<QString>(desktopfp),Qt::DisplayRole);
|
|
+ listmodel->insertRow(setting->childKeys().size()-1,item);
|
|
+ setting->endGroup();
|
|
+ Q_EMIT sendUpdateAppListSignal();
|
|
+ }
|
|
+ if(ret==2)
|
|
+ {
|
|
+ listmodel->removeRow(index.row());
|
|
+ setting->beginGroup("lockapplication");
|
|
+ QStandardItem* item=new QStandardItem;
|
|
+ item->setData(QVariant::fromValue<QString>(desktopfp),Qt::DisplayRole);
|
|
+ listmodel->insertRow(setting->childKeys().size(),item);
|
|
+ setting->endGroup();
|
|
+ Q_EMIT sendUpdateAppListSignal();
|
|
}
|
|
|
|
if(ret==7)
|
|
Q_EMIT sendHideMainWindowSignal();
|
|
|
|
- if(ret==8 || ret==9)
|
|
+ if(ret==8)
|
|
{
|
|
- QStringList keys;
|
|
- keys.clear();
|
|
- setting->beginGroup("application");
|
|
- keys=setting->childKeys();
|
|
- QStringList applist;
|
|
- applist.clear();
|
|
- for(int i=0;i<keys.count();i++)
|
|
- {
|
|
- int val=setting->value(keys.at(i)).toInt();
|
|
- if(val==2 || val==0)
|
|
- applist.append(keys.at(i));
|
|
- }
|
|
+ listmodel->removeRow(index.row());
|
|
+ Q_EMIT sendUpdateAppListSignal();
|
|
+ }
|
|
|
|
- data.clear();
|
|
- for(int i=0;i<applist.count();i++)
|
|
+ if(ret==9)
|
|
+ {
|
|
+ setting->beginGroup("lockapplication");
|
|
+ for(int i=listmodel->rowCount()-1;i>=0;i--)
|
|
{
|
|
-// QString desktopfp=pUkuiMenuInterface->getDesktopPathByAppName(applist.at(i));
|
|
- QString desktopfp=QString("/usr/share/applications/"+applist.at(i));
|
|
- data.append(desktopfp);
|
|
+ QVariant var=listmodel->index(i,0).data(Qt::DisplayRole);
|
|
+ QString desktopfp=var.value<QString>();
|
|
+ QFileInfo fileInfo(desktopfp);
|
|
+ QString desktopfn=fileInfo.fileName();
|
|
+ if(!setting->contains(desktopfn))
|
|
+ listmodel->removeRow(i);
|
|
}
|
|
- this->updateData(data);
|
|
setting->endGroup();
|
|
Q_EMIT sendUpdateAppListSignal();
|
|
}
|
|
@@ -188,39 +199,3 @@ void FullListView::leaveEvent(QEvent *e)
|
|
Q_UNUSED(e);
|
|
this->verticalScrollBar()->setVisible(false);
|
|
}
|
|
-
|
|
-void FullListView::showToolTip(const QModelIndex &index)
|
|
-{
|
|
-// qDebug()<<this->y()<<this->visualRect(index).y();
|
|
-// if(!index.isValid())
|
|
-// return;
|
|
-
|
|
-// QVariant var=listmodel->data(index, Qt::DisplayRole);
|
|
-// QString desktopfp=var.value<QString>();
|
|
-// QString appname=pUkuiMenuInterface->getAppName(desktopfp);
|
|
-
|
|
-//// if(file_name.isEmpty())
|
|
-//// return;
|
|
-
|
|
-// QToolTip::showText(QCursor::pos(), appname,this);
|
|
-// QToolTip::hideText();
|
|
-}
|
|
-
|
|
-//bool FullListView::event(QEvent* e)
|
|
-//{
|
|
-// if (e->type() == QEvent::ToolTip) {
|
|
-// QHelpEvent *helpEvent = static_cast<QHelpEvent *>(e);
|
|
-// QModelIndex index=this->currentIndex();
|
|
-// QVariant var=listmodel->data(index, Qt::DisplayRole);
|
|
-// QString desktopfp=var.value<QString>();
|
|
-// QString appname=pUkuiMenuInterface->getAppName(desktopfp);
|
|
-// if (!appname.isEmpty()) {
|
|
-// QToolTip::showText(helpEvent->globalPos(), appname);
|
|
-// } else {
|
|
-// QToolTip::hideText();
|
|
-// e->ignore();
|
|
-// }
|
|
-// return true;
|
|
-// }
|
|
-// return QWidget::event(e);
|
|
-//}
|
|
diff --git a/src/UtilityFunction/fulllistview.h b/src/UtilityFunction/fulllistview.h
|
|
index 29862a2..0739694 100644
|
|
--- a/src/UtilityFunction/fulllistview.h
|
|
+++ b/src/UtilityFunction/fulllistview.h
|
|
@@ -38,19 +38,14 @@ public:
|
|
|
|
void addData(QStringList data);//字母排序模块添加数据
|
|
void updateData(QStringList data);
|
|
-// void removeRow(QString desktopfp);
|
|
-// void insertRow(QString desktopfp);
|
|
|
|
protected:
|
|
void initWidget();
|
|
void enterEvent(QEvent* e) Q_DECL_OVERRIDE;
|
|
void leaveEvent(QEvent* e) Q_DECL_OVERRIDE;
|
|
-// bool event(QEvent* e) Q_DECL_OVERRIDE;
|
|
|
|
private:
|
|
FullItemDelegate* m_delegate=nullptr;
|
|
-// FullListModel* listmodel=nullptr;
|
|
-// QStringListModel* listmodel=nullptr;
|
|
QStandardItemModel* listmodel=nullptr;
|
|
int module=0;
|
|
|
|
@@ -63,7 +58,6 @@ private:
|
|
private Q_SLOTS:
|
|
void onClicked(QModelIndex index);//点击item
|
|
void rightClickedSlot();//右键菜单
|
|
- void showToolTip(const QModelIndex &index);
|
|
|
|
Q_SIGNALS:
|
|
void sendItemClickedSignal(QString arg);//向字母排序或功能分类模块发送item点击信号
|
|
diff --git a/src/UtilityFunction/itemdelegate.cpp b/src/UtilityFunction/itemdelegate.cpp
|
|
index 4f9f0d1..51542b5 100644
|
|
--- a/src/UtilityFunction/itemdelegate.cpp
|
|
+++ b/src/UtilityFunction/itemdelegate.cpp
|
|
@@ -104,7 +104,8 @@ void ItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option,
|
|
else
|
|
{
|
|
painter->setPen(QPen(Qt::white));
|
|
- QRect textRect=QRect(rect.x()+11,rect.y()+(rect.height()-14)/2,strlist.at(0).size()*14,14);
|
|
+// QRect textRect=QRect(rect.x()+11,rect.y()+(rect.height()-14)/2,strlist.at(0).size()*14,14);
|
|
+ QRect textRect=QRect(rect.x()+11,rect.y(),rect.width(),rect.height());
|
|
painter->drawText(textRect,Qt::AlignVCenter,strlist.at(0));
|
|
painter->setRenderHint(QPainter::Antialiasing, true);
|
|
painter->setPen(QPen(QColor("#FFFFFF"),1));
|
|
@@ -115,7 +116,7 @@ void ItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option,
|
|
}
|
|
else
|
|
{
|
|
- setting->beginGroup("application");
|
|
+ setting->beginGroup("lockapplication");
|
|
QRect iconRect=QRect(rect.left()+11,rect.y()+(rect.height()-32)/2,32,32);
|
|
QString iconstr=pUkuiMenuInterface->getAppIcon(strlist.at(0));
|
|
iconstr.remove(".png");
|
|
@@ -127,10 +128,10 @@ void ItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option,
|
|
QString appname=pUkuiMenuInterface->getAppName(strlist.at(0));
|
|
QFileInfo fileInfo(strlist.at(0));
|
|
QString desktopfn=fileInfo.fileName();
|
|
- if(setting->value(desktopfn).toInt()==0)
|
|
+ if(setting->contains(desktopfn))
|
|
{
|
|
QIcon icon(QString(":/data/img/mainviewwidget/lock.svg"));
|
|
- icon.paint(painter,QRect(iconRect.topRight().x()-7,iconRect.topRight().y()-2,12,12));
|
|
+ icon.paint(painter,QRect(rect.topRight().x()-22,rect.y()+(rect.height()-16)/2,16,16));
|
|
}
|
|
painter->setOpacity(1);
|
|
painter->setPen(QPen(Qt::white));
|
|
diff --git a/src/UtilityFunction/listview.cpp b/src/UtilityFunction/listview.cpp
|
|
index a0d4d1c..2b1b58e 100644
|
|
--- a/src/UtilityFunction/listview.cpp
|
|
+++ b/src/UtilityFunction/listview.cpp
|
|
@@ -128,40 +128,49 @@ void ListView::rightClickedSlot()
|
|
}
|
|
else{
|
|
int ret=menu->showCommonUseAppBtnMenu(strlist.at(0));
|
|
- if(ret==1 || ret==2)
|
|
+ if(ret==1)
|
|
{
|
|
this->setCurrentIndex(index);
|
|
+ listmodel->removeRow(index.row());
|
|
+ setting->beginGroup("lockapplication");
|
|
+ QStandardItem* item=new QStandardItem;
|
|
+ item->setData(QVariant::fromValue<QStringList>(strlist),Qt::DisplayRole);
|
|
+ listmodel->insertRow(setting->allKeys().size()-1,item);
|
|
+ setting->endGroup();
|
|
+ Q_EMIT sendUpdateAppListSignal();
|
|
+ }
|
|
+ if(ret==2)
|
|
+ {
|
|
+ listmodel->removeRow(index.row());
|
|
+ setting->beginGroup("lockapplication");
|
|
+ QStandardItem* item=new QStandardItem;
|
|
+ item->setData(QVariant::fromValue<QStringList>(strlist),Qt::DisplayRole);
|
|
+ listmodel->insertRow(setting->allKeys().size(),item);
|
|
+ setting->endGroup();
|
|
+ Q_EMIT sendUpdateAppListSignal();
|
|
}
|
|
|
|
if(ret==7)
|
|
Q_EMIT sendHideMainWindowSignal();
|
|
|
|
- if(ret==8 || ret==9)
|
|
+ if(ret==8)
|
|
{
|
|
- QStringList keys;
|
|
- keys.clear();
|
|
- setting->beginGroup("application");
|
|
- keys=setting->childKeys();
|
|
- QStringList applist;
|
|
- applist.clear();
|
|
- for(int i=0;i<keys.count();i++)
|
|
- {
|
|
- int val=setting->value(keys.at(i)).toInt();
|
|
- if(val==2 || val==0)
|
|
- applist.append(keys.at(i));
|
|
- }
|
|
-
|
|
- data.clear();
|
|
- for(int i=0;i<applist.count();i++)
|
|
+ listmodel->removeRow(index.row());
|
|
+ Q_EMIT sendUpdateAppListSignal();
|
|
+ }
|
|
+ if(ret==9)
|
|
+ {
|
|
+ setting->beginGroup("lockapplication");
|
|
+ for(int i=listmodel->rowCount()-1;i>=0;i--)
|
|
{
|
|
-// QString desktopfp=pUkuiMenuInterface->getDesktopPathByAppName(applist.at(i));
|
|
- QString desktopfp=QString("/usr/share/applications/"+applist.at(i));
|
|
- data.append(QStringList()<<desktopfp<<"1");
|
|
+ QVariant var=listmodel->index(i,0).data(Qt::DisplayRole);
|
|
+ QString desktopfp=var.value<QStringList>().at(0);
|
|
+ QFileInfo fileInfo(desktopfp);
|
|
+ QString desktopfn=fileInfo.fileName();
|
|
+ if(!setting->contains(desktopfn))
|
|
+ listmodel->removeRow(i);
|
|
}
|
|
-
|
|
- this->updateData(data);
|
|
setting->endGroup();
|
|
-
|
|
Q_EMIT sendUpdateAppListSignal();
|
|
}
|
|
|
|
--
|
|
2.33.0
|
|
|